// Package im code generated by oapi sdk gen
/*
 * MIT License
 *
 * Copyright (c) 2022 Lark Technologies Pte. Ltd.
 *
 * 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:
 *
 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software.
 *
 * 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.
 */

package larkim

import (
	"fmt"

	"github.com/larksuite/oapi-sdk-go/v3/core"
)

const (
	UserIdTypeOpenId  = "open_id"  // open_id
	UserIdTypeUnionId = "union_id" // union_id
	UserIdTypeUserId  = "user_id"  // user_id
)

const (
	UserIdTypeDeleteAppFeedCardBatchOpenId  = "open_id"  // 以open_id来识别用户
	UserIdTypeDeleteAppFeedCardBatchUserId  = "user_id"  // 以user_id来识别用户
	UserIdTypeDeleteAppFeedCardBatchUnionId = "union_id" // 以union_id来识别用户
)

const (
	UserIdTypeUpdateAppFeedCardBatchOpenId  = "open_id"  // 以open_id来识别用户
	UserIdTypeUpdateAppFeedCardBatchUserId  = "user_id"  // 以user_id来识别用户
	UserIdTypeUpdateAppFeedCardBatchUnionId = "union_id" // 以union_id来识别用户
)

const (
	TagBizTypeChat = "chat" // chat类型
)

const (
	TagBizTypeGetBizEntityTagRelationChat = "chat" // chat类型
)

const (
	TagBizTypeUpdateBizEntityTagRelationChat = "chat" // chat类型
)

const (
	UserIdTypeUpdateChatButtonOpenId  = "open_id"  // open_id
	UserIdTypeUpdateChatButtonUnionId = "union_id" // union_id
	UserIdTypeUpdateChatButtonUserId  = "user_id"  // user_id
)

const (
	UserIdTypeBotTimeSentiveFeedCardOpenId  = "open_id"  // 以open_id来识别用户
	UserIdTypeBotTimeSentiveFeedCardUserId  = "user_id"  // 以user_id来识别用户
	UserIdTypeBotTimeSentiveFeedCardUnionId = "union_id" // 以union_id来识别用户
)

const (
	UserIdTypePatchFeedCardOpenId  = "open_id"  // 以open_id来识别用户
	UserIdTypePatchFeedCardUserId  = "user_id"  // 以user_id来识别用户
	UserIdTypePatchFeedCardUnionId = "union_id" // 以union_id来识别用户
)

type AppFeedNotify struct {
	CloseNotify *bool `json:"close_notify,omitempty"` // 是否关闭通知

	CustomSoundText *string `json:"custom_sound_text,omitempty"` // 自定义语音播报文本内容

	WithCustomSound *bool `json:"with_custom_sound,omitempty"` // 是否播报自定义语音
}

type AppFeedNotifyBuilder struct {
	closeNotify     bool // 是否关闭通知
	closeNotifyFlag bool

	customSoundText     string // 自定义语音播报文本内容
	customSoundTextFlag bool

	withCustomSound     bool // 是否播报自定义语音
	withCustomSoundFlag bool
}

func NewAppFeedNotifyBuilder() *AppFeedNotifyBuilder {
	builder := &AppFeedNotifyBuilder{}
	return builder
}

// 是否关闭通知
//
// 示例值：true
func (builder *AppFeedNotifyBuilder) CloseNotify(closeNotify bool) *AppFeedNotifyBuilder {
	builder.closeNotify = closeNotify
	builder.closeNotifyFlag = true
	return builder
}

// 自定义语音播报文本内容
//
// 示例值：您有新的订单
func (builder *AppFeedNotifyBuilder) CustomSoundText(customSoundText string) *AppFeedNotifyBuilder {
	builder.customSoundText = customSoundText
	builder.customSoundTextFlag = true
	return builder
}

// 是否播报自定义语音
//
// 示例值：true
func (builder *AppFeedNotifyBuilder) WithCustomSound(withCustomSound bool) *AppFeedNotifyBuilder {
	builder.withCustomSound = withCustomSound
	builder.withCustomSoundFlag = true
	return builder
}

func (builder *AppFeedNotifyBuilder) Build() *AppFeedNotify {
	req := &AppFeedNotify{}
	if builder.closeNotifyFlag {
		req.CloseNotify = &builder.closeNotify

	}
	if builder.customSoundTextFlag {
		req.CustomSoundText = &builder.customSoundText

	}
	if builder.withCustomSoundFlag {
		req.WithCustomSound = &builder.withCustomSound

	}
	return req
}

type ChatCommonHeader struct {
	ChatId *string `json:"chat_id,omitempty"` // 群ID

	BotId *string `json:"bot_id,omitempty"` // botid，不对外展示
}

type ChatCommonHeaderBuilder struct {
	chatId     string // 群ID
	chatIdFlag bool

	botId     string // botid，不对外展示
	botIdFlag bool
}

func NewChatCommonHeaderBuilder() *ChatCommonHeaderBuilder {
	builder := &ChatCommonHeaderBuilder{}
	return builder
}

// 群ID
//
// 示例值：oc_a0553eda9014c201e6969b478895c230
func (builder *ChatCommonHeaderBuilder) ChatId(chatId string) *ChatCommonHeaderBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

// botid，不对外展示
//
// 示例值：0
func (builder *ChatCommonHeaderBuilder) BotId(botId string) *ChatCommonHeaderBuilder {
	builder.botId = botId
	builder.botIdFlag = true
	return builder
}

func (builder *ChatCommonHeaderBuilder) Build() *ChatCommonHeader {
	req := &ChatCommonHeader{}
	if builder.chatIdFlag {
		req.ChatId = &builder.chatId

	}
	if builder.botIdFlag {
		req.BotId = &builder.botId

	}
	return req
}

type ChatPin struct {
	ChatPinId *string `json:"chat_pin_id,omitempty"` // 置顶ID

	ChatId *string `json:"chat_id,omitempty"` // 群ID

	ChatPinType *string `json:"chat_pin_type,omitempty"` // 置顶类型

	CreateTime *string `json:"create_time,omitempty"` // 置顶创建时间，毫秒级别

	ChatterId *string `json:"chatter_id,omitempty"` // 创建置顶的操作者ID

	IsFixed *bool `json:"is_fixed,omitempty"` // 该置顶是否固定在置顶列表的最前面

	OperateFixChatterId *string `json:"operate_fix_chatter_id,omitempty"` // 固定置顶到置顶列表前面的操作者ID

	MessagePinData *MessagePin `json:"message_pin_data,omitempty"` // 消息置顶数据

	UrlPinData *UrlPin `json:"url_pin_data,omitempty"` // url类型置顶数据
}

type ChatPinBuilder struct {
	chatPinId     string // 置顶ID
	chatPinIdFlag bool

	chatId     string // 群ID
	chatIdFlag bool

	chatPinType     string // 置顶类型
	chatPinTypeFlag bool

	createTime     string // 置顶创建时间，毫秒级别
	createTimeFlag bool

	chatterId     string // 创建置顶的操作者ID
	chatterIdFlag bool

	isFixed     bool // 该置顶是否固定在置顶列表的最前面
	isFixedFlag bool

	operateFixChatterId     string // 固定置顶到置顶列表前面的操作者ID
	operateFixChatterIdFlag bool

	messagePinData     *MessagePin // 消息置顶数据
	messagePinDataFlag bool

	urlPinData     *UrlPin // url类型置顶数据
	urlPinDataFlag bool
}

func NewChatPinBuilder() *ChatPinBuilder {
	builder := &ChatPinBuilder{}
	return builder
}

// 置顶ID
//
// 示例值：7262656565168242692
func (builder *ChatPinBuilder) ChatPinId(chatPinId string) *ChatPinBuilder {
	builder.chatPinId = chatPinId
	builder.chatPinIdFlag = true
	return builder
}

// 群ID
//
// 示例值：oc_a0553eda9014c201e6969b478895c230
func (builder *ChatPinBuilder) ChatId(chatId string) *ChatPinBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

// 置顶类型
//
// 示例值：message_pin
func (builder *ChatPinBuilder) ChatPinType(chatPinType string) *ChatPinBuilder {
	builder.chatPinType = chatPinType
	builder.chatPinTypeFlag = true
	return builder
}

// 置顶创建时间，毫秒级别
//
// 示例值：1694519103000
func (builder *ChatPinBuilder) CreateTime(createTime string) *ChatPinBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 创建置顶的操作者ID
//
// 示例值：ou_7d8a6e6df7621556ce0d21922b676706ccs
func (builder *ChatPinBuilder) ChatterId(chatterId string) *ChatPinBuilder {
	builder.chatterId = chatterId
	builder.chatterIdFlag = true
	return builder
}

// 该置顶是否固定在置顶列表的最前面
//
// 示例值：false
func (builder *ChatPinBuilder) IsFixed(isFixed bool) *ChatPinBuilder {
	builder.isFixed = isFixed
	builder.isFixedFlag = true
	return builder
}

// 固定置顶到置顶列表前面的操作者ID
//
// 示例值：ou_7d8a6e6df7621556ce0d21922b676706ccs
func (builder *ChatPinBuilder) OperateFixChatterId(operateFixChatterId string) *ChatPinBuilder {
	builder.operateFixChatterId = operateFixChatterId
	builder.operateFixChatterIdFlag = true
	return builder
}

// 消息置顶数据
//
// 示例值：
func (builder *ChatPinBuilder) MessagePinData(messagePinData *MessagePin) *ChatPinBuilder {
	builder.messagePinData = messagePinData
	builder.messagePinDataFlag = true
	return builder
}

// url类型置顶数据
//
// 示例值：
func (builder *ChatPinBuilder) UrlPinData(urlPinData *UrlPin) *ChatPinBuilder {
	builder.urlPinData = urlPinData
	builder.urlPinDataFlag = true
	return builder
}

func (builder *ChatPinBuilder) Build() *ChatPin {
	req := &ChatPin{}
	if builder.chatPinIdFlag {
		req.ChatPinId = &builder.chatPinId

	}
	if builder.chatIdFlag {
		req.ChatId = &builder.chatId

	}
	if builder.chatPinTypeFlag {
		req.ChatPinType = &builder.chatPinType

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.chatterIdFlag {
		req.ChatterId = &builder.chatterId

	}
	if builder.isFixedFlag {
		req.IsFixed = &builder.isFixed

	}
	if builder.operateFixChatterIdFlag {
		req.OperateFixChatterId = &builder.operateFixChatterId

	}
	if builder.messagePinDataFlag {
		req.MessagePinData = builder.messagePinData
	}
	if builder.urlPinDataFlag {
		req.UrlPinData = builder.urlPinData
	}
	return req
}

type ChatPinIcon struct {
	ChatPinIconType *string `json:"chat_pin_icon_type,omitempty"` // 图标类型

	IconKey *string `json:"icon_key,omitempty"` // 图标key
}

type ChatPinIconBuilder struct {
	chatPinIconType     string // 图标类型
	chatPinIconTypeFlag bool

	iconKey     string // 图标key
	iconKeyFlag bool
}

func NewChatPinIconBuilder() *ChatPinIconBuilder {
	builder := &ChatPinIconBuilder{}
	return builder
}

// 图标类型
//
// 示例值：0
func (builder *ChatPinIconBuilder) ChatPinIconType(chatPinIconType string) *ChatPinIconBuilder {
	builder.chatPinIconType = chatPinIconType
	builder.chatPinIconTypeFlag = true
	return builder
}

// 图标key
//
// 示例值：img_v3_0237_9cba8614-abab-47c3-bb0e-318564d9d7ej
func (builder *ChatPinIconBuilder) IconKey(iconKey string) *ChatPinIconBuilder {
	builder.iconKey = iconKey
	builder.iconKeyFlag = true
	return builder
}

func (builder *ChatPinIconBuilder) Build() *ChatPinIcon {
	req := &ChatPinIcon{}
	if builder.chatPinIconTypeFlag {
		req.ChatPinIconType = &builder.chatPinIconType

	}
	if builder.iconKeyFlag {
		req.IconKey = &builder.iconKey

	}
	return req
}

type CreateTag struct {
	TagType *string `json:"tag_type,omitempty"` // 标签类型

	Name *string `json:"name,omitempty"` // 标签默认名称

	I18nNames []*TagI18nName `json:"i18n_names,omitempty"` // i18n标签名称集合
}

type CreateTagBuilder struct {
	tagType     string // 标签类型
	tagTypeFlag bool

	name     string // 标签默认名称
	nameFlag bool

	i18nNames     []*TagI18nName // i18n标签名称集合
	i18nNamesFlag bool
}

func NewCreateTagBuilder() *CreateTagBuilder {
	builder := &CreateTagBuilder{}
	return builder
}

// 标签类型
//
// 示例值：tenant
func (builder *CreateTagBuilder) TagType(tagType string) *CreateTagBuilder {
	builder.tagType = tagType
	builder.tagTypeFlag = true
	return builder
}

// 标签默认名称
//
// 示例值：default name
func (builder *CreateTagBuilder) Name(name string) *CreateTagBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// i18n标签名称集合
//
// 示例值：
func (builder *CreateTagBuilder) I18nNames(i18nNames []*TagI18nName) *CreateTagBuilder {
	builder.i18nNames = i18nNames
	builder.i18nNamesFlag = true
	return builder
}

func (builder *CreateTagBuilder) Build() *CreateTag {
	req := &CreateTag{}
	if builder.tagTypeFlag {
		req.TagType = &builder.tagType

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.i18nNamesFlag {
		req.I18nNames = builder.i18nNames
	}
	return req
}

type CreateTagFailReason struct {
	DuplicateId *string `json:"duplicate_id,omitempty"` // 名称重复的标签id
}

type CreateTagFailReasonBuilder struct {
	duplicateId     string // 名称重复的标签id
	duplicateIdFlag bool
}

func NewCreateTagFailReasonBuilder() *CreateTagFailReasonBuilder {
	builder := &CreateTagFailReasonBuilder{}
	return builder
}

// 名称重复的标签id
//
// 示例值：716168xxxxx
func (builder *CreateTagFailReasonBuilder) DuplicateId(duplicateId string) *CreateTagFailReasonBuilder {
	builder.duplicateId = duplicateId
	builder.duplicateIdFlag = true
	return builder
}

func (builder *CreateTagFailReasonBuilder) Build() *CreateTagFailReason {
	req := &CreateTagFailReason{}
	if builder.duplicateIdFlag {
		req.DuplicateId = &builder.duplicateId

	}
	return req
}

type DepartmentId struct {
	DepartmentId *string `json:"department_id,omitempty"` //

	OpenDepartmentId *string `json:"open_department_id,omitempty"` //
}

type DepartmentIdBuilder struct {
	departmentId     string //
	departmentIdFlag bool

	openDepartmentId     string //
	openDepartmentIdFlag bool
}

func NewDepartmentIdBuilder() *DepartmentIdBuilder {
	builder := &DepartmentIdBuilder{}
	return builder
}

//
//
// 示例值：
func (builder *DepartmentIdBuilder) DepartmentId(departmentId string) *DepartmentIdBuilder {
	builder.departmentId = departmentId
	builder.departmentIdFlag = true
	return builder
}

//
//
// 示例值：
func (builder *DepartmentIdBuilder) OpenDepartmentId(openDepartmentId string) *DepartmentIdBuilder {
	builder.openDepartmentId = openDepartmentId
	builder.openDepartmentIdFlag = true
	return builder
}

func (builder *DepartmentIdBuilder) Build() *DepartmentId {
	req := &DepartmentId{}
	if builder.departmentIdFlag {
		req.DepartmentId = &builder.departmentId

	}
	if builder.openDepartmentIdFlag {
		req.OpenDepartmentId = &builder.openDepartmentId

	}
	return req
}

type FailedReason struct {
	ErrorCode *int `json:"error_code,omitempty"` // 错误码

	ErrorMessage *string `json:"error_message,omitempty"` // 错误信息

	UserId *string `json:"user_id,omitempty"` // 用户id
}

type FailedReasonBuilder struct {
	errorCode     int // 错误码
	errorCodeFlag bool

	errorMessage     string // 错误信息
	errorMessageFlag bool

	userId     string // 用户id
	userIdFlag bool
}

func NewFailedReasonBuilder() *FailedReasonBuilder {
	builder := &FailedReasonBuilder{}
	return builder
}

// 错误码
//
// 示例值：0
func (builder *FailedReasonBuilder) ErrorCode(errorCode int) *FailedReasonBuilder {
	builder.errorCode = errorCode
	builder.errorCodeFlag = true
	return builder
}

// 错误信息
//
// 示例值：The user is not in the chat
func (builder *FailedReasonBuilder) ErrorMessage(errorMessage string) *FailedReasonBuilder {
	builder.errorMessage = errorMessage
	builder.errorMessageFlag = true
	return builder
}

// 用户id
//
// 示例值：ou_679eaeb583654bff73fefcc6e6371301
func (builder *FailedReasonBuilder) UserId(userId string) *FailedReasonBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

func (builder *FailedReasonBuilder) Build() *FailedReason {
	req := &FailedReason{}
	if builder.errorCodeFlag {
		req.ErrorCode = &builder.errorCode

	}
	if builder.errorMessageFlag {
		req.ErrorMessage = &builder.errorMessage

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	return req
}

type FeedCardDisplayRuleFailedItem struct {
	Id *string `json:"id,omitempty"` // ..

	ErrorCode *int `json:"error_code,omitempty"` // ..

	ErrorMessage *string `json:"error_message,omitempty"` // ..
}

type FeedCardDisplayRuleFailedItemBuilder struct {
	id     string // ..
	idFlag bool

	errorCode     int // ..
	errorCodeFlag bool

	errorMessage     string // ..
	errorMessageFlag bool
}

func NewFeedCardDisplayRuleFailedItemBuilder() *FeedCardDisplayRuleFailedItemBuilder {
	builder := &FeedCardDisplayRuleFailedItemBuilder{}
	return builder
}

// ..
//
// 示例值：..
func (builder *FeedCardDisplayRuleFailedItemBuilder) Id(id string) *FeedCardDisplayRuleFailedItemBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// ..
//
// 示例值：0
func (builder *FeedCardDisplayRuleFailedItemBuilder) ErrorCode(errorCode int) *FeedCardDisplayRuleFailedItemBuilder {
	builder.errorCode = errorCode
	builder.errorCodeFlag = true
	return builder
}

// ..
//
// 示例值：..
func (builder *FeedCardDisplayRuleFailedItemBuilder) ErrorMessage(errorMessage string) *FeedCardDisplayRuleFailedItemBuilder {
	builder.errorMessage = errorMessage
	builder.errorMessageFlag = true
	return builder
}

func (builder *FeedCardDisplayRuleFailedItemBuilder) Build() *FeedCardDisplayRuleFailedItem {
	req := &FeedCardDisplayRuleFailedItem{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.errorCodeFlag {
		req.ErrorCode = &builder.errorCode

	}
	if builder.errorMessageFlag {
		req.ErrorMessage = &builder.errorMessage

	}
	return req
}

type FeedCardDisplayRuleUpdater struct {
	Id *string `json:"id,omitempty"` // id

	DisplayFeedRule *OpenDisplayFeedRule `json:"display_feed_rule,omitempty"` // 消息展示规则

	DisplayFeedRuleUpdateType *string `json:"display_feed_rule_update_type,omitempty"` // 消息展示规则更新类型
}

type FeedCardDisplayRuleUpdaterBuilder struct {
	id     string // id
	idFlag bool

	displayFeedRule     *OpenDisplayFeedRule // 消息展示规则
	displayFeedRuleFlag bool

	displayFeedRuleUpdateType     string // 消息展示规则更新类型
	displayFeedRuleUpdateTypeFlag bool
}

func NewFeedCardDisplayRuleUpdaterBuilder() *FeedCardDisplayRuleUpdaterBuilder {
	builder := &FeedCardDisplayRuleUpdaterBuilder{}
	return builder
}

// id
//
// 示例值：6881602603248009218
func (builder *FeedCardDisplayRuleUpdaterBuilder) Id(id string) *FeedCardDisplayRuleUpdaterBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 消息展示规则
//
// 示例值：
func (builder *FeedCardDisplayRuleUpdaterBuilder) DisplayFeedRule(displayFeedRule *OpenDisplayFeedRule) *FeedCardDisplayRuleUpdaterBuilder {
	builder.displayFeedRule = displayFeedRule
	builder.displayFeedRuleFlag = true
	return builder
}

// 消息展示规则更新类型
//
// 示例值：filter
func (builder *FeedCardDisplayRuleUpdaterBuilder) DisplayFeedRuleUpdateType(displayFeedRuleUpdateType string) *FeedCardDisplayRuleUpdaterBuilder {
	builder.displayFeedRuleUpdateType = displayFeedRuleUpdateType
	builder.displayFeedRuleUpdateTypeFlag = true
	return builder
}

func (builder *FeedCardDisplayRuleUpdaterBuilder) Build() *FeedCardDisplayRuleUpdater {
	req := &FeedCardDisplayRuleUpdater{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.displayFeedRuleFlag {
		req.DisplayFeedRule = builder.displayFeedRule
	}
	if builder.displayFeedRuleUpdateTypeFlag {
		req.DisplayFeedRuleUpdateType = &builder.displayFeedRuleUpdateType

	}
	return req
}

type FeedCardSettingFailedItem struct {
	FeedCardId *string `json:"feed_card_id,omitempty"` // 消息流卡片 ID

	ErrorCode *int `json:"error_code,omitempty"` // 错误码

	ErrorMessage *string `json:"error_message,omitempty"` // 错误信息
}

type FeedCardSettingFailedItemBuilder struct {
	feedCardId     string // 消息流卡片 ID
	feedCardIdFlag bool

	errorCode     int // 错误码
	errorCodeFlag bool

	errorMessage     string // 错误信息
	errorMessageFlag bool
}

func NewFeedCardSettingFailedItemBuilder() *FeedCardSettingFailedItemBuilder {
	builder := &FeedCardSettingFailedItemBuilder{}
	return builder
}

// 消息流卡片 ID
//
// 示例值：oc_785fae31552ae88681bc69b4a1550289
func (builder *FeedCardSettingFailedItemBuilder) FeedCardId(feedCardId string) *FeedCardSettingFailedItemBuilder {
	builder.feedCardId = feedCardId
	builder.feedCardIdFlag = true
	return builder
}

// 错误码
//
// 示例值：0
func (builder *FeedCardSettingFailedItemBuilder) ErrorCode(errorCode int) *FeedCardSettingFailedItemBuilder {
	builder.errorCode = errorCode
	builder.errorCodeFlag = true
	return builder
}

// 错误信息
//
// 示例值：test error message
func (builder *FeedCardSettingFailedItemBuilder) ErrorMessage(errorMessage string) *FeedCardSettingFailedItemBuilder {
	builder.errorMessage = errorMessage
	builder.errorMessageFlag = true
	return builder
}

func (builder *FeedCardSettingFailedItemBuilder) Build() *FeedCardSettingFailedItem {
	req := &FeedCardSettingFailedItem{}
	if builder.feedCardIdFlag {
		req.FeedCardId = &builder.feedCardId

	}
	if builder.errorCodeFlag {
		req.ErrorCode = &builder.errorCode

	}
	if builder.errorMessageFlag {
		req.ErrorMessage = &builder.errorMessage

	}
	return req
}

type FeedCardSettingUpdater struct {
	FeedCardId *string `json:"feed_card_id,omitempty"` // 消息流卡片 ID

	ReadTimestamp *string `json:"read_timestamp,omitempty"` // 标记已读的时间戳

	MuteWithSystemMessage *bool `json:"mute_with_system_message,omitempty"` // 免打扰操作是否发送系统消息
}

type FeedCardSettingUpdaterBuilder struct {
	feedCardId     string // 消息流卡片 ID
	feedCardIdFlag bool

	readTimestamp     string // 标记已读的时间戳
	readTimestampFlag bool

	muteWithSystemMessage     bool // 免打扰操作是否发送系统消息
	muteWithSystemMessageFlag bool
}

func NewFeedCardSettingUpdaterBuilder() *FeedCardSettingUpdaterBuilder {
	builder := &FeedCardSettingUpdaterBuilder{}
	return builder
}

// 消息流卡片 ID
//
// 示例值：oc_785fae31552ae88681bc69b4a1550289
func (builder *FeedCardSettingUpdaterBuilder) FeedCardId(feedCardId string) *FeedCardSettingUpdaterBuilder {
	builder.feedCardId = feedCardId
	builder.feedCardIdFlag = true
	return builder
}

// 标记已读的时间戳
//
// 示例值：1701246710
func (builder *FeedCardSettingUpdaterBuilder) ReadTimestamp(readTimestamp string) *FeedCardSettingUpdaterBuilder {
	builder.readTimestamp = readTimestamp
	builder.readTimestampFlag = true
	return builder
}

// 免打扰操作是否发送系统消息
//
// 示例值：false
func (builder *FeedCardSettingUpdaterBuilder) MuteWithSystemMessage(muteWithSystemMessage bool) *FeedCardSettingUpdaterBuilder {
	builder.muteWithSystemMessage = muteWithSystemMessage
	builder.muteWithSystemMessageFlag = true
	return builder
}

func (builder *FeedCardSettingUpdaterBuilder) Build() *FeedCardSettingUpdater {
	req := &FeedCardSettingUpdater{}
	if builder.feedCardIdFlag {
		req.FeedCardId = &builder.feedCardId

	}
	if builder.readTimestampFlag {
		req.ReadTimestamp = &builder.readTimestamp

	}
	if builder.muteWithSystemMessageFlag {
		req.MuteWithSystemMessage = &builder.muteWithSystemMessage

	}
	return req
}

type FeedGroup struct {
	GroupId *string `json:"group_id,omitempty"` // 标签 ID

	Type *string `json:"type,omitempty"` // 标签类型

	Name *string `json:"name,omitempty"` // 标签名

	Rules *FeedGroupRules `json:"rules,omitempty"` // 标签规则
}

type FeedGroupBuilder struct {
	groupId     string // 标签 ID
	groupIdFlag bool

	type_    string // 标签类型
	typeFlag bool

	name     string // 标签名
	nameFlag bool

	rules     *FeedGroupRules // 标签规则
	rulesFlag bool
}

func NewFeedGroupBuilder() *FeedGroupBuilder {
	builder := &FeedGroupBuilder{}
	return builder
}

// 标签 ID
//
// 示例值：7091086414609645828
func (builder *FeedGroupBuilder) GroupId(groupId string) *FeedGroupBuilder {
	builder.groupId = groupId
	builder.groupIdFlag = true
	return builder
}

// 标签类型
//
// 示例值：normal
func (builder *FeedGroupBuilder) Type(type_ string) *FeedGroupBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 标签名
//
// 示例值：test
func (builder *FeedGroupBuilder) Name(name string) *FeedGroupBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 标签规则
//
// 示例值：
func (builder *FeedGroupBuilder) Rules(rules *FeedGroupRules) *FeedGroupBuilder {
	builder.rules = rules
	builder.rulesFlag = true
	return builder
}

func (builder *FeedGroupBuilder) Build() *FeedGroup {
	req := &FeedGroup{}
	if builder.groupIdFlag {
		req.GroupId = &builder.groupId

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.rulesFlag {
		req.Rules = builder.rules
	}
	return req
}

type FeedGroupCreator struct {
	Type *string `json:"type,omitempty"` // 标签类型

	Name *string `json:"name,omitempty"` // 标签名

	Rules *FeedGroupRules `json:"rules,omitempty"` // 标签规则
}

type FeedGroupCreatorBuilder struct {
	type_    string // 标签类型
	typeFlag bool

	name     string // 标签名
	nameFlag bool

	rules     *FeedGroupRules // 标签规则
	rulesFlag bool
}

func NewFeedGroupCreatorBuilder() *FeedGroupCreatorBuilder {
	builder := &FeedGroupCreatorBuilder{}
	return builder
}

// 标签类型
//
// 示例值：rule
func (builder *FeedGroupCreatorBuilder) Type(type_ string) *FeedGroupCreatorBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 标签名
//
// 示例值：测试标签
func (builder *FeedGroupCreatorBuilder) Name(name string) *FeedGroupCreatorBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 标签规则
//
// 示例值：
func (builder *FeedGroupCreatorBuilder) Rules(rules *FeedGroupRules) *FeedGroupCreatorBuilder {
	builder.rules = rules
	builder.rulesFlag = true
	return builder
}

func (builder *FeedGroupCreatorBuilder) Build() *FeedGroupCreator {
	req := &FeedGroupCreator{}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.rulesFlag {
		req.Rules = builder.rules
	}
	return req
}

type FeedGroupItem struct {
	FeedId *string `json:"feed_id,omitempty"` // 消息卡片 ID

	FeedType *string `json:"feed_type,omitempty"` // 消息卡片类型
}

type FeedGroupItemBuilder struct {
	feedId     string // 消息卡片 ID
	feedIdFlag bool

	feedType     string // 消息卡片类型
	feedTypeFlag bool
}

func NewFeedGroupItemBuilder() *FeedGroupItemBuilder {
	builder := &FeedGroupItemBuilder{}
	return builder
}

// 消息卡片 ID
//
// 示例值：7191086414609645000
func (builder *FeedGroupItemBuilder) FeedId(feedId string) *FeedGroupItemBuilder {
	builder.feedId = feedId
	builder.feedIdFlag = true
	return builder
}

// 消息卡片类型
//
// 示例值：3
func (builder *FeedGroupItemBuilder) FeedType(feedType string) *FeedGroupItemBuilder {
	builder.feedType = feedType
	builder.feedTypeFlag = true
	return builder
}

func (builder *FeedGroupItemBuilder) Build() *FeedGroupItem {
	req := &FeedGroupItem{}
	if builder.feedIdFlag {
		req.FeedId = &builder.feedId

	}
	if builder.feedTypeFlag {
		req.FeedType = &builder.feedType

	}
	return req
}

type FeedGroupRule struct {
	Condition *FeedGroupRuleCond `json:"condition,omitempty"` // 条件

	Action *string `json:"action,omitempty"` // 动作
}

type FeedGroupRuleBuilder struct {
	condition     *FeedGroupRuleCond // 条件
	conditionFlag bool

	action     string // 动作
	actionFlag bool
}

func NewFeedGroupRuleBuilder() *FeedGroupRuleBuilder {
	builder := &FeedGroupRuleBuilder{}
	return builder
}

// 条件
//
// 示例值：
func (builder *FeedGroupRuleBuilder) Condition(condition *FeedGroupRuleCond) *FeedGroupRuleBuilder {
	builder.condition = condition
	builder.conditionFlag = true
	return builder
}

// 动作
//
// 示例值：add
func (builder *FeedGroupRuleBuilder) Action(action string) *FeedGroupRuleBuilder {
	builder.action = action
	builder.actionFlag = true
	return builder
}

func (builder *FeedGroupRuleBuilder) Build() *FeedGroupRule {
	req := &FeedGroupRule{}
	if builder.conditionFlag {
		req.Condition = builder.condition
	}
	if builder.actionFlag {
		req.Action = &builder.action

	}
	return req
}

type FeedGroupRuleCond struct {
	MatchType *string `json:"match_type,omitempty"` // 匹配类型

	ConditionItems []*FeedGroupRuleCondItem `json:"condition_items,omitempty"` // 条件项列表
}

type FeedGroupRuleCondBuilder struct {
	matchType     string // 匹配类型
	matchTypeFlag bool

	conditionItems     []*FeedGroupRuleCondItem // 条件项列表
	conditionItemsFlag bool
}

func NewFeedGroupRuleCondBuilder() *FeedGroupRuleCondBuilder {
	builder := &FeedGroupRuleCondBuilder{}
	return builder
}

// 匹配类型
//
// 示例值：match_all
func (builder *FeedGroupRuleCondBuilder) MatchType(matchType string) *FeedGroupRuleCondBuilder {
	builder.matchType = matchType
	builder.matchTypeFlag = true
	return builder
}

// 条件项列表
//
// 示例值：
func (builder *FeedGroupRuleCondBuilder) ConditionItems(conditionItems []*FeedGroupRuleCondItem) *FeedGroupRuleCondBuilder {
	builder.conditionItems = conditionItems
	builder.conditionItemsFlag = true
	return builder
}

func (builder *FeedGroupRuleCondBuilder) Build() *FeedGroupRuleCond {
	req := &FeedGroupRuleCond{}
	if builder.matchTypeFlag {
		req.MatchType = &builder.matchType

	}
	if builder.conditionItemsFlag {
		req.ConditionItems = builder.conditionItems
	}
	return req
}

type FeedGroupRuleCondItem struct {
	Type *string `json:"type,omitempty"` // 条件类型

	Operator *string `json:"operator,omitempty"` // 操作符

	Keyword *string `json:"keyword,omitempty"` // 关键词

	UserId *string `json:"user_id,omitempty"` // 用户 ID

	ChatType *string `json:"chat_type,omitempty"` // 会话类型
}

type FeedGroupRuleCondItemBuilder struct {
	type_    string // 条件类型
	typeFlag bool

	operator     string // 操作符
	operatorFlag bool

	keyword     string // 关键词
	keywordFlag bool

	userId     string // 用户 ID
	userIdFlag bool

	chatType     string // 会话类型
	chatTypeFlag bool
}

func NewFeedGroupRuleCondItemBuilder() *FeedGroupRuleCondItemBuilder {
	builder := &FeedGroupRuleCondItemBuilder{}
	return builder
}

// 条件类型
//
// 示例值：keyword
func (builder *FeedGroupRuleCondItemBuilder) Type(type_ string) *FeedGroupRuleCondItemBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 操作符
//
// 示例值：contain
func (builder *FeedGroupRuleCondItemBuilder) Operator(operator string) *FeedGroupRuleCondItemBuilder {
	builder.operator = operator
	builder.operatorFlag = true
	return builder
}

// 关键词
//
// 示例值：test
func (builder *FeedGroupRuleCondItemBuilder) Keyword(keyword string) *FeedGroupRuleCondItemBuilder {
	builder.keyword = keyword
	builder.keywordFlag = true
	return builder
}

// 用户 ID
//
// 示例值：ou_685fae31552ae88681bc69b4a15502df
func (builder *FeedGroupRuleCondItemBuilder) UserId(userId string) *FeedGroupRuleCondItemBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 会话类型
//
// 示例值：p2p
func (builder *FeedGroupRuleCondItemBuilder) ChatType(chatType string) *FeedGroupRuleCondItemBuilder {
	builder.chatType = chatType
	builder.chatTypeFlag = true
	return builder
}

func (builder *FeedGroupRuleCondItemBuilder) Build() *FeedGroupRuleCondItem {
	req := &FeedGroupRuleCondItem{}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.operatorFlag {
		req.Operator = &builder.operator

	}
	if builder.keywordFlag {
		req.Keyword = &builder.keyword

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.chatTypeFlag {
		req.ChatType = &builder.chatType

	}
	return req
}

type FeedGroupRules struct {
	Rules []*FeedGroupRule `json:"rules,omitempty"` // 规则列表
}

type FeedGroupRulesBuilder struct {
	rules     []*FeedGroupRule // 规则列表
	rulesFlag bool
}

func NewFeedGroupRulesBuilder() *FeedGroupRulesBuilder {
	builder := &FeedGroupRulesBuilder{}
	return builder
}

// 规则列表
//
// 示例值：
func (builder *FeedGroupRulesBuilder) Rules(rules []*FeedGroupRule) *FeedGroupRulesBuilder {
	builder.rules = rules
	builder.rulesFlag = true
	return builder
}

func (builder *FeedGroupRulesBuilder) Build() *FeedGroupRules {
	req := &FeedGroupRules{}
	if builder.rulesFlag {
		req.Rules = builder.rules
	}
	return req
}

type FeedGroupUpdater struct {
	GroupId *string `json:"group_id,omitempty"` // 标签 ID

	Name *string `json:"name,omitempty"` // 标签名

	Rules *FeedGroupRules `json:"rules,omitempty"` // 标签规则列表

	UpdateFields []string `json:"update_fields,omitempty"` // 更新字段列表
}

type FeedGroupUpdaterBuilder struct {
	groupId     string // 标签 ID
	groupIdFlag bool

	name     string // 标签名
	nameFlag bool

	rules     *FeedGroupRules // 标签规则列表
	rulesFlag bool

	updateFields     []string // 更新字段列表
	updateFieldsFlag bool
}

func NewFeedGroupUpdaterBuilder() *FeedGroupUpdaterBuilder {
	builder := &FeedGroupUpdaterBuilder{}
	return builder
}

// 标签 ID
//
// 示例值：7091086414609645828
func (builder *FeedGroupUpdaterBuilder) GroupId(groupId string) *FeedGroupUpdaterBuilder {
	builder.groupId = groupId
	builder.groupIdFlag = true
	return builder
}

// 标签名
//
// 示例值：test
func (builder *FeedGroupUpdaterBuilder) Name(name string) *FeedGroupUpdaterBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 标签规则列表
//
// 示例值：
func (builder *FeedGroupUpdaterBuilder) Rules(rules *FeedGroupRules) *FeedGroupUpdaterBuilder {
	builder.rules = rules
	builder.rulesFlag = true
	return builder
}

// 更新字段列表
//
// 示例值：
func (builder *FeedGroupUpdaterBuilder) UpdateFields(updateFields []string) *FeedGroupUpdaterBuilder {
	builder.updateFields = updateFields
	builder.updateFieldsFlag = true
	return builder
}

func (builder *FeedGroupUpdaterBuilder) Build() *FeedGroupUpdater {
	req := &FeedGroupUpdater{}
	if builder.groupIdFlag {
		req.GroupId = &builder.groupId

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.rulesFlag {
		req.Rules = builder.rules
	}
	if builder.updateFieldsFlag {
		req.UpdateFields = builder.updateFields
	}
	return req
}

type GroupFailedReason struct {
	GroupId *string `json:"group_id,omitempty"` // 标签 ID

	ErrorCode *int `json:"error_code,omitempty"` // 错误码

	ErrorMessage *string `json:"error_message,omitempty"` // 错误信息
}

type GroupFailedReasonBuilder struct {
	groupId     string // 标签 ID
	groupIdFlag bool

	errorCode     int // 错误码
	errorCodeFlag bool

	errorMessage     string // 错误信息
	errorMessageFlag bool
}

func NewGroupFailedReasonBuilder() *GroupFailedReasonBuilder {
	builder := &GroupFailedReasonBuilder{}
	return builder
}

// 标签 ID
//
// 示例值：7091086414609645828
func (builder *GroupFailedReasonBuilder) GroupId(groupId string) *GroupFailedReasonBuilder {
	builder.groupId = groupId
	builder.groupIdFlag = true
	return builder
}

// 错误码
//
// 示例值：0
func (builder *GroupFailedReasonBuilder) ErrorCode(errorCode int) *GroupFailedReasonBuilder {
	builder.errorCode = errorCode
	builder.errorCodeFlag = true
	return builder
}

// 错误信息
//
// 示例值：test error message
func (builder *GroupFailedReasonBuilder) ErrorMessage(errorMessage string) *GroupFailedReasonBuilder {
	builder.errorMessage = errorMessage
	builder.errorMessageFlag = true
	return builder
}

func (builder *GroupFailedReasonBuilder) Build() *GroupFailedReason {
	req := &GroupFailedReason{}
	if builder.groupIdFlag {
		req.GroupId = &builder.groupId

	}
	if builder.errorCodeFlag {
		req.ErrorCode = &builder.errorCode

	}
	if builder.errorMessageFlag {
		req.ErrorMessage = &builder.errorMessage

	}
	return req
}

type GroupItemFailedReason struct {
	Item *FeedGroupItem `json:"item,omitempty"` // 标签项

	ErrorCode *int `json:"error_code,omitempty"` // 错误码

	ErrorMessage *string `json:"error_message,omitempty"` // 错误消息
}

type GroupItemFailedReasonBuilder struct {
	item     *FeedGroupItem // 标签项
	itemFlag bool

	errorCode     int // 错误码
	errorCodeFlag bool

	errorMessage     string // 错误消息
	errorMessageFlag bool
}

func NewGroupItemFailedReasonBuilder() *GroupItemFailedReasonBuilder {
	builder := &GroupItemFailedReasonBuilder{}
	return builder
}

// 标签项
//
// 示例值：
func (builder *GroupItemFailedReasonBuilder) Item(item *FeedGroupItem) *GroupItemFailedReasonBuilder {
	builder.item = item
	builder.itemFlag = true
	return builder
}

// 错误码
//
// 示例值：0
func (builder *GroupItemFailedReasonBuilder) ErrorCode(errorCode int) *GroupItemFailedReasonBuilder {
	builder.errorCode = errorCode
	builder.errorCodeFlag = true
	return builder
}

// 错误消息
//
// 示例值：test error message
func (builder *GroupItemFailedReasonBuilder) ErrorMessage(errorMessage string) *GroupItemFailedReasonBuilder {
	builder.errorMessage = errorMessage
	builder.errorMessageFlag = true
	return builder
}

func (builder *GroupItemFailedReasonBuilder) Build() *GroupItemFailedReason {
	req := &GroupItemFailedReason{}
	if builder.itemFlag {
		req.Item = builder.item
	}
	if builder.errorCodeFlag {
		req.ErrorCode = &builder.errorCode

	}
	if builder.errorMessageFlag {
		req.ErrorMessage = &builder.errorMessage

	}
	return req
}

type I18nNames struct {
	ZhCn *string `json:"zh_cn,omitempty"` // 中文名称

	EnUs *string `json:"en_us,omitempty"` // 英文名称

	JaJp *string `json:"ja_jp,omitempty"` // 日文名称
}

type I18nNamesBuilder struct {
	zhCn     string // 中文名称
	zhCnFlag bool

	enUs     string // 英文名称
	enUsFlag bool

	jaJp     string // 日文名称
	jaJpFlag bool
}

func NewI18nNamesBuilder() *I18nNamesBuilder {
	builder := &I18nNamesBuilder{}
	return builder
}

// 中文名称
//
// 示例值：待办事项
func (builder *I18nNamesBuilder) ZhCn(zhCn string) *I18nNamesBuilder {
	builder.zhCn = zhCn
	builder.zhCnFlag = true
	return builder
}

// 英文名称
//
// 示例值：To-do items
func (builder *I18nNamesBuilder) EnUs(enUs string) *I18nNamesBuilder {
	builder.enUs = enUs
	builder.enUsFlag = true
	return builder
}

// 日文名称
//
// 示例值：To Do アイテム
func (builder *I18nNamesBuilder) JaJp(jaJp string) *I18nNamesBuilder {
	builder.jaJp = jaJp
	builder.jaJpFlag = true
	return builder
}

func (builder *I18nNamesBuilder) Build() *I18nNames {
	req := &I18nNames{}
	if builder.zhCnFlag {
		req.ZhCn = &builder.zhCn

	}
	if builder.enUsFlag {
		req.EnUs = &builder.enUs

	}
	if builder.jaJpFlag {
		req.JaJp = &builder.jaJp

	}
	return req
}

type MessageCommonHeader struct {
	BotId *string `json:"bot_id,omitempty"` // botid，不对外展示
}

type MessageCommonHeaderBuilder struct {
	botId     string // botid，不对外展示
	botIdFlag bool
}

func NewMessageCommonHeaderBuilder() *MessageCommonHeaderBuilder {
	builder := &MessageCommonHeaderBuilder{}
	return builder
}

// botid，不对外展示
//
// 示例值：0
func (builder *MessageCommonHeaderBuilder) BotId(botId string) *MessageCommonHeaderBuilder {
	builder.botId = botId
	builder.botIdFlag = true
	return builder
}

func (builder *MessageCommonHeaderBuilder) Build() *MessageCommonHeader {
	req := &MessageCommonHeader{}
	if builder.botIdFlag {
		req.BotId = &builder.botId

	}
	return req
}

type MessageLink struct {
	Token *string `json:"token,omitempty"` // 消息链接化Token

	TokenUrl *string `json:"token_url,omitempty"` // 消息链接化URL
}

type MessageLinkBuilder struct {
	token     string // 消息链接化Token
	tokenFlag bool

	tokenUrl     string // 消息链接化URL
	tokenUrlFlag bool
}

func NewMessageLinkBuilder() *MessageLinkBuilder {
	builder := &MessageLinkBuilder{}
	return builder
}

// 消息链接化Token
//
// 示例值：Alx4rstyAAEHZNIAS0abcdefgh
func (builder *MessageLinkBuilder) Token(token string) *MessageLinkBuilder {
	builder.token = token
	builder.tokenFlag = true
	return builder
}

// 消息链接化URL
//
// 示例值：https://applink.feishu.cn/client/message/link/open?token=Alx4rstyAAEHZNIAS0abcdefgh
func (builder *MessageLinkBuilder) TokenUrl(tokenUrl string) *MessageLinkBuilder {
	builder.tokenUrl = tokenUrl
	builder.tokenUrlFlag = true
	return builder
}

func (builder *MessageLinkBuilder) Build() *MessageLink {
	req := &MessageLink{}
	if builder.tokenFlag {
		req.Token = &builder.token

	}
	if builder.tokenUrlFlag {
		req.TokenUrl = &builder.tokenUrl

	}
	return req
}

type MessagePin struct {
	MessageId *string `json:"message_id,omitempty"` // 消息ID
}

type MessagePinBuilder struct {
	messageId     string // 消息ID
	messageIdFlag bool
}

func NewMessagePinBuilder() *MessagePinBuilder {
	builder := &MessagePinBuilder{}
	return builder
}

// 消息ID
//
// 示例值：om_dc13264520392913993dd051dba21dcf
func (builder *MessagePinBuilder) MessageId(messageId string) *MessagePinBuilder {
	builder.messageId = messageId
	builder.messageIdFlag = true
	return builder
}

func (builder *MessagePinBuilder) Build() *MessagePin {
	req := &MessagePin{}
	if builder.messageIdFlag {
		req.MessageId = &builder.messageId

	}
	return req
}

type OpenAppFeedCard struct {
	BizId *string `json:"biz_id,omitempty"` // 业务 ID

	Title *string `json:"title,omitempty"` // 主标题

	AvatarKey *string `json:"avatar_key,omitempty"` // 头像 key

	Preview *string `json:"preview,omitempty"` // 预览信息

	StatusLabel *OpenFeedStatusLabel `json:"status_label,omitempty"` // 状态标签

	Buttons *OpenAppFeedCardButtons `json:"buttons,omitempty"` // 交互按钮

	Link *OpenAppFeedLink `json:"link,omitempty"` // 跳转链接

	TimeSensitive *bool `json:"time_sensitive,omitempty"` // 即时提醒状态，true-打开，false-关闭

	Notify *AppFeedNotify `json:"notify,omitempty"` // 通知设置，当前可设置通知是否关闭，为空时默认进行通知
}

type OpenAppFeedCardBuilder struct {
	bizId     string // 业务 ID
	bizIdFlag bool

	title     string // 主标题
	titleFlag bool

	avatarKey     string // 头像 key
	avatarKeyFlag bool

	preview     string // 预览信息
	previewFlag bool

	statusLabel     *OpenFeedStatusLabel // 状态标签
	statusLabelFlag bool

	buttons     *OpenAppFeedCardButtons // 交互按钮
	buttonsFlag bool

	link     *OpenAppFeedLink // 跳转链接
	linkFlag bool

	timeSensitive     bool // 即时提醒状态，true-打开，false-关闭
	timeSensitiveFlag bool

	notify     *AppFeedNotify // 通知设置，当前可设置通知是否关闭，为空时默认进行通知
	notifyFlag bool
}

func NewOpenAppFeedCardBuilder() *OpenAppFeedCardBuilder {
	builder := &OpenAppFeedCardBuilder{}
	return builder
}

// 业务 ID
//
// 示例值：096e2927-40a6-41a3-9562-314d641d09ae
func (builder *OpenAppFeedCardBuilder) BizId(bizId string) *OpenAppFeedCardBuilder {
	builder.bizId = bizId
	builder.bizIdFlag = true
	return builder
}

// 主标题
//
// 示例值：主标题
func (builder *OpenAppFeedCardBuilder) Title(title string) *OpenAppFeedCardBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 头像 key
//
// 示例值：v3_0041_007bca9f-67ba-4199-bf00-4031b12cf226
func (builder *OpenAppFeedCardBuilder) AvatarKey(avatarKey string) *OpenAppFeedCardBuilder {
	builder.avatarKey = avatarKey
	builder.avatarKeyFlag = true
	return builder
}

// 预览信息
//
// 示例值：预览信息
func (builder *OpenAppFeedCardBuilder) Preview(preview string) *OpenAppFeedCardBuilder {
	builder.preview = preview
	builder.previewFlag = true
	return builder
}

// 状态标签
//
// 示例值：
func (builder *OpenAppFeedCardBuilder) StatusLabel(statusLabel *OpenFeedStatusLabel) *OpenAppFeedCardBuilder {
	builder.statusLabel = statusLabel
	builder.statusLabelFlag = true
	return builder
}

// 交互按钮
//
// 示例值：
func (builder *OpenAppFeedCardBuilder) Buttons(buttons *OpenAppFeedCardButtons) *OpenAppFeedCardBuilder {
	builder.buttons = buttons
	builder.buttonsFlag = true
	return builder
}

// 跳转链接
//
// 示例值：
func (builder *OpenAppFeedCardBuilder) Link(link *OpenAppFeedLink) *OpenAppFeedCardBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

// 即时提醒状态，true-打开，false-关闭
//
// 示例值：false
func (builder *OpenAppFeedCardBuilder) TimeSensitive(timeSensitive bool) *OpenAppFeedCardBuilder {
	builder.timeSensitive = timeSensitive
	builder.timeSensitiveFlag = true
	return builder
}

// 通知设置，当前可设置通知是否关闭，为空时默认进行通知
//
// 示例值：
func (builder *OpenAppFeedCardBuilder) Notify(notify *AppFeedNotify) *OpenAppFeedCardBuilder {
	builder.notify = notify
	builder.notifyFlag = true
	return builder
}

func (builder *OpenAppFeedCardBuilder) Build() *OpenAppFeedCard {
	req := &OpenAppFeedCard{}
	if builder.bizIdFlag {
		req.BizId = &builder.bizId

	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.avatarKeyFlag {
		req.AvatarKey = &builder.avatarKey

	}
	if builder.previewFlag {
		req.Preview = &builder.preview

	}
	if builder.statusLabelFlag {
		req.StatusLabel = builder.statusLabel
	}
	if builder.buttonsFlag {
		req.Buttons = builder.buttons
	}
	if builder.linkFlag {
		req.Link = builder.link
	}
	if builder.timeSensitiveFlag {
		req.TimeSensitive = &builder.timeSensitive

	}
	if builder.notifyFlag {
		req.Notify = builder.notify
	}
	return req
}

type OpenAppFeedCardButton struct {
	MultiUrl *OpenAppFeedCardUrl `json:"multi_url,omitempty"` // 跳转 URL

	ActionType *string `json:"action_type,omitempty"` // 交互类型

	Text *OpenAppFeedCardText `json:"text,omitempty"` // 文字

	ButtonType *string `json:"button_type,omitempty"` // 按钮类型

	ActionMap map[string]string `json:"action_map,omitempty"` // action 字典
}

type OpenAppFeedCardButtonBuilder struct {
	multiUrl     *OpenAppFeedCardUrl // 跳转 URL
	multiUrlFlag bool

	actionType     string // 交互类型
	actionTypeFlag bool

	text     *OpenAppFeedCardText // 文字
	textFlag bool

	buttonType     string // 按钮类型
	buttonTypeFlag bool

	actionMap     map[string]string // action 字典
	actionMapFlag bool
}

func NewOpenAppFeedCardButtonBuilder() *OpenAppFeedCardButtonBuilder {
	builder := &OpenAppFeedCardButtonBuilder{}
	return builder
}

// 跳转 URL
//
// 示例值：
func (builder *OpenAppFeedCardButtonBuilder) MultiUrl(multiUrl *OpenAppFeedCardUrl) *OpenAppFeedCardButtonBuilder {
	builder.multiUrl = multiUrl
	builder.multiUrlFlag = true
	return builder
}

// 交互类型
//
// 示例值：url_page
func (builder *OpenAppFeedCardButtonBuilder) ActionType(actionType string) *OpenAppFeedCardButtonBuilder {
	builder.actionType = actionType
	builder.actionTypeFlag = true
	return builder
}

// 文字
//
// 示例值：
func (builder *OpenAppFeedCardButtonBuilder) Text(text *OpenAppFeedCardText) *OpenAppFeedCardButtonBuilder {
	builder.text = text
	builder.textFlag = true
	return builder
}

// 按钮类型
//
// 示例值：default
func (builder *OpenAppFeedCardButtonBuilder) ButtonType(buttonType string) *OpenAppFeedCardButtonBuilder {
	builder.buttonType = buttonType
	builder.buttonTypeFlag = true
	return builder
}

// action 字典
//
// 示例值：
func (builder *OpenAppFeedCardButtonBuilder) ActionMap(actionMap map[string]string) *OpenAppFeedCardButtonBuilder {
	builder.actionMap = actionMap
	builder.actionMapFlag = true
	return builder
}

func (builder *OpenAppFeedCardButtonBuilder) Build() *OpenAppFeedCardButton {
	req := &OpenAppFeedCardButton{}
	if builder.multiUrlFlag {
		req.MultiUrl = builder.multiUrl
	}
	if builder.actionTypeFlag {
		req.ActionType = &builder.actionType

	}
	if builder.textFlag {
		req.Text = builder.text
	}
	if builder.buttonTypeFlag {
		req.ButtonType = &builder.buttonType

	}
	if builder.actionMapFlag {
		req.ActionMap = builder.actionMap
	}
	return req
}

type OpenAppFeedCardButtons struct {
	Buttons []*OpenAppFeedCardButton `json:"buttons,omitempty"` // 按钮组合
}

type OpenAppFeedCardButtonsBuilder struct {
	buttons     []*OpenAppFeedCardButton // 按钮组合
	buttonsFlag bool
}

func NewOpenAppFeedCardButtonsBuilder() *OpenAppFeedCardButtonsBuilder {
	builder := &OpenAppFeedCardButtonsBuilder{}
	return builder
}

// 按钮组合
//
// 示例值：
func (builder *OpenAppFeedCardButtonsBuilder) Buttons(buttons []*OpenAppFeedCardButton) *OpenAppFeedCardButtonsBuilder {
	builder.buttons = buttons
	builder.buttonsFlag = true
	return builder
}

func (builder *OpenAppFeedCardButtonsBuilder) Build() *OpenAppFeedCardButtons {
	req := &OpenAppFeedCardButtons{}
	if builder.buttonsFlag {
		req.Buttons = builder.buttons
	}
	return req
}

type OpenAppFeedCardText struct {
	Text *string `json:"text,omitempty"` // 文本
}

type OpenAppFeedCardTextBuilder struct {
	text     string // 文本
	textFlag bool
}

func NewOpenAppFeedCardTextBuilder() *OpenAppFeedCardTextBuilder {
	builder := &OpenAppFeedCardTextBuilder{}
	return builder
}

// 文本
//
// 示例值：文本
func (builder *OpenAppFeedCardTextBuilder) Text(text string) *OpenAppFeedCardTextBuilder {
	builder.text = text
	builder.textFlag = true
	return builder
}

func (builder *OpenAppFeedCardTextBuilder) Build() *OpenAppFeedCardText {
	req := &OpenAppFeedCardText{}
	if builder.textFlag {
		req.Text = &builder.text

	}
	return req
}

type OpenAppFeedCardUrl struct {
	Url *string `json:"url,omitempty"` // 默认 URL

	AndroidUrl *string `json:"android_url,omitempty"` // Android 平台 URL

	IosUrl *string `json:"ios_url,omitempty"` // iOS 平台 URL

	PcUrl *string `json:"pc_url,omitempty"` // PC URL
}

type OpenAppFeedCardUrlBuilder struct {
	url     string // 默认 URL
	urlFlag bool

	androidUrl     string // Android 平台 URL
	androidUrlFlag bool

	iosUrl     string // iOS 平台 URL
	iosUrlFlag bool

	pcUrl     string // PC URL
	pcUrlFlag bool
}

func NewOpenAppFeedCardUrlBuilder() *OpenAppFeedCardUrlBuilder {
	builder := &OpenAppFeedCardUrlBuilder{}
	return builder
}

// 默认 URL
//
// 示例值：https://www.feishu.cn/
func (builder *OpenAppFeedCardUrlBuilder) Url(url string) *OpenAppFeedCardUrlBuilder {
	builder.url = url
	builder.urlFlag = true
	return builder
}

// Android 平台 URL
//
// 示例值：https://www.feishu.cn/
func (builder *OpenAppFeedCardUrlBuilder) AndroidUrl(androidUrl string) *OpenAppFeedCardUrlBuilder {
	builder.androidUrl = androidUrl
	builder.androidUrlFlag = true
	return builder
}

// iOS 平台 URL
//
// 示例值：https://www.feishu.cn/
func (builder *OpenAppFeedCardUrlBuilder) IosUrl(iosUrl string) *OpenAppFeedCardUrlBuilder {
	builder.iosUrl = iosUrl
	builder.iosUrlFlag = true
	return builder
}

// PC URL
//
// 示例值：https://www.feishu.cn/
func (builder *OpenAppFeedCardUrlBuilder) PcUrl(pcUrl string) *OpenAppFeedCardUrlBuilder {
	builder.pcUrl = pcUrl
	builder.pcUrlFlag = true
	return builder
}

func (builder *OpenAppFeedCardUrlBuilder) Build() *OpenAppFeedCardUrl {
	req := &OpenAppFeedCardUrl{}
	if builder.urlFlag {
		req.Url = &builder.url

	}
	if builder.androidUrlFlag {
		req.AndroidUrl = &builder.androidUrl

	}
	if builder.iosUrlFlag {
		req.IosUrl = &builder.iosUrl

	}
	if builder.pcUrlFlag {
		req.PcUrl = &builder.pcUrl

	}
	return req
}

type OpenAppFeedLink struct {
	Link *string `json:"link,omitempty"` // 链接
}

type OpenAppFeedLinkBuilder struct {
	link     string // 链接
	linkFlag bool
}

func NewOpenAppFeedLinkBuilder() *OpenAppFeedLinkBuilder {
	builder := &OpenAppFeedLinkBuilder{}
	return builder
}

// 链接
//
// 示例值：https://www.feishu.cn/
func (builder *OpenAppFeedLinkBuilder) Link(link string) *OpenAppFeedLinkBuilder {
	builder.link = link
	builder.linkFlag = true
	return builder
}

func (builder *OpenAppFeedLinkBuilder) Build() *OpenAppFeedLink {
	req := &OpenAppFeedLink{}
	if builder.linkFlag {
		req.Link = &builder.link

	}
	return req
}

type OpenDisplayFeedRule struct {
	MainRule *string `json:"main_rule,omitempty"` // 主规则

	MsgTypes []string `json:"msg_types,omitempty"` // 重要新消息类型
}

type OpenDisplayFeedRuleBuilder struct {
	mainRule     string // 主规则
	mainRuleFlag bool

	msgTypes     []string // 重要新消息类型
	msgTypesFlag bool
}

func NewOpenDisplayFeedRuleBuilder() *OpenDisplayFeedRuleBuilder {
	builder := &OpenDisplayFeedRuleBuilder{}
	return builder
}

// 主规则
//
// 示例值：always_display
func (builder *OpenDisplayFeedRuleBuilder) MainRule(mainRule string) *OpenDisplayFeedRuleBuilder {
	builder.mainRule = mainRule
	builder.mainRuleFlag = true
	return builder
}

// 重要新消息类型
//
// 示例值：
func (builder *OpenDisplayFeedRuleBuilder) MsgTypes(msgTypes []string) *OpenDisplayFeedRuleBuilder {
	builder.msgTypes = msgTypes
	builder.msgTypesFlag = true
	return builder
}

func (builder *OpenDisplayFeedRuleBuilder) Build() *OpenDisplayFeedRule {
	req := &OpenDisplayFeedRule{}
	if builder.mainRuleFlag {
		req.MainRule = &builder.mainRule

	}
	if builder.msgTypesFlag {
		req.MsgTypes = builder.msgTypes
	}
	return req
}

type OpenFailedUserAppFeedCardItem struct {
	BizId *string `json:"biz_id,omitempty"` // 业务 ID

	UserId *string `json:"user_id,omitempty"` // 用户 ID

	Reason *string `json:"reason,omitempty"` // 原因
}

type OpenFailedUserAppFeedCardItemBuilder struct {
	bizId     string // 业务 ID
	bizIdFlag bool

	userId     string // 用户 ID
	userIdFlag bool

	reason     string // 原因
	reasonFlag bool
}

func NewOpenFailedUserAppFeedCardItemBuilder() *OpenFailedUserAppFeedCardItemBuilder {
	builder := &OpenFailedUserAppFeedCardItemBuilder{}
	return builder
}

// 业务 ID
//
// 示例值：bdf22389-87ec-4890-9eb6-78a7efaeecbb
func (builder *OpenFailedUserAppFeedCardItemBuilder) BizId(bizId string) *OpenFailedUserAppFeedCardItemBuilder {
	builder.bizId = bizId
	builder.bizIdFlag = true
	return builder
}

// 用户 ID
//
// 示例值：
func (builder *OpenFailedUserAppFeedCardItemBuilder) UserId(userId string) *OpenFailedUserAppFeedCardItemBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 原因
//
// 示例值：
func (builder *OpenFailedUserAppFeedCardItemBuilder) Reason(reason string) *OpenFailedUserAppFeedCardItemBuilder {
	builder.reason = reason
	builder.reasonFlag = true
	return builder
}

func (builder *OpenFailedUserAppFeedCardItemBuilder) Build() *OpenFailedUserAppFeedCardItem {
	req := &OpenFailedUserAppFeedCardItem{}
	if builder.bizIdFlag {
		req.BizId = &builder.bizId

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.reasonFlag {
		req.Reason = &builder.reason

	}
	return req
}

type OpenFeedStatusLabel struct {
	Text *string `json:"text,omitempty"` // 标签文字

	Type *string `json:"type,omitempty"` // 标签类型
}

type OpenFeedStatusLabelBuilder struct {
	text     string // 标签文字
	textFlag bool

	type_    string // 标签类型
	typeFlag bool
}

func NewOpenFeedStatusLabelBuilder() *OpenFeedStatusLabelBuilder {
	builder := &OpenFeedStatusLabelBuilder{}
	return builder
}

// 标签文字
//
// 示例值：标签文字
func (builder *OpenFeedStatusLabelBuilder) Text(text string) *OpenFeedStatusLabelBuilder {
	builder.text = text
	builder.textFlag = true
	return builder
}

// 标签类型
//
// 示例值：primary
func (builder *OpenFeedStatusLabelBuilder) Type(type_ string) *OpenFeedStatusLabelBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

func (builder *OpenFeedStatusLabelBuilder) Build() *OpenFeedStatusLabel {
	req := &OpenFeedStatusLabel{}
	if builder.textFlag {
		req.Text = &builder.text

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	return req
}

type PatchTag struct {
	Id *string `json:"id,omitempty"` // tagid

	Name *string `json:"name,omitempty"` // tag name

	I18nNames []*TagI18nName `json:"i18n_names,omitempty"` // i18n名称集合
}

type PatchTagBuilder struct {
	id     string // tagid
	idFlag bool

	name     string // tag name
	nameFlag bool

	i18nNames     []*TagI18nName // i18n名称集合
	i18nNamesFlag bool
}

func NewPatchTagBuilder() *PatchTagBuilder {
	builder := &PatchTagBuilder{}
	return builder
}

// tagid
//
// 示例值：716168xxxxx
func (builder *PatchTagBuilder) Id(id string) *PatchTagBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// tag name
//
// 示例值：tag name
func (builder *PatchTagBuilder) Name(name string) *PatchTagBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// i18n名称集合
//
// 示例值：
func (builder *PatchTagBuilder) I18nNames(i18nNames []*TagI18nName) *PatchTagBuilder {
	builder.i18nNames = i18nNames
	builder.i18nNamesFlag = true
	return builder
}

func (builder *PatchTagBuilder) Build() *PatchTag {
	req := &PatchTag{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.i18nNamesFlag {
		req.I18nNames = builder.i18nNames
	}
	return req
}

type PatchTagFailReason struct {
	DuplicateId *string `json:"duplicate_id,omitempty"` // 名称重复的标签id
}

type PatchTagFailReasonBuilder struct {
	duplicateId     string // 名称重复的标签id
	duplicateIdFlag bool
}

func NewPatchTagFailReasonBuilder() *PatchTagFailReasonBuilder {
	builder := &PatchTagFailReasonBuilder{}
	return builder
}

// 名称重复的标签id
//
// 示例值：716168xxxxx
func (builder *PatchTagFailReasonBuilder) DuplicateId(duplicateId string) *PatchTagFailReasonBuilder {
	builder.duplicateId = duplicateId
	builder.duplicateIdFlag = true
	return builder
}

func (builder *PatchTagFailReasonBuilder) Build() *PatchTagFailReason {
	req := &PatchTagFailReason{}
	if builder.duplicateIdFlag {
		req.DuplicateId = &builder.duplicateId

	}
	return req
}

type TagI18nName struct {
	Locale *string `json:"locale,omitempty"` // 语言

	Name *string `json:"name,omitempty"` // 名称
}

type TagI18nNameBuilder struct {
	locale     string // 语言
	localeFlag bool

	name     string // 名称
	nameFlag bool
}

func NewTagI18nNameBuilder() *TagI18nNameBuilder {
	builder := &TagI18nNameBuilder{}
	return builder
}

// 语言
//
// 示例值：zh-CN
func (builder *TagI18nNameBuilder) Locale(locale string) *TagI18nNameBuilder {
	builder.locale = locale
	builder.localeFlag = true
	return builder
}

// 名称
//
// 示例值：tagName1
func (builder *TagI18nNameBuilder) Name(name string) *TagI18nNameBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

func (builder *TagI18nNameBuilder) Build() *TagI18nName {
	req := &TagI18nName{}
	if builder.localeFlag {
		req.Locale = &builder.locale

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	return req
}

type TagInfo struct {
	Id *string `json:"id,omitempty"` // id

	TenantId *string `json:"tenant_id,omitempty"` // 租户id

	TagType *string `json:"tag_type,omitempty"` // 标签类型

	Name *string `json:"name,omitempty"` // name

	I18nNames []*TagI18nName `json:"i18n_names,omitempty"` // i18n name

	CreatorId *string `json:"creator_id,omitempty"` // 创建人

	CreateTime *string `json:"create_time,omitempty"` // 创建时间

	UpdateTime *string `json:"update_time,omitempty"` // 更新时间
}

type TagInfoBuilder struct {
	id     string // id
	idFlag bool

	tenantId     string // 租户id
	tenantIdFlag bool

	tagType     string // 标签类型
	tagTypeFlag bool

	name     string // name
	nameFlag bool

	i18nNames     []*TagI18nName // i18n name
	i18nNamesFlag bool

	creatorId     string // 创建人
	creatorIdFlag bool

	createTime     string // 创建时间
	createTimeFlag bool

	updateTime     string // 更新时间
	updateTimeFlag bool
}

func NewTagInfoBuilder() *TagInfoBuilder {
	builder := &TagInfoBuilder{}
	return builder
}

// id
//
// 示例值：716168xxxxx
func (builder *TagInfoBuilder) Id(id string) *TagInfoBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 租户id
//
// 示例值：716168xxxxx
func (builder *TagInfoBuilder) TenantId(tenantId string) *TagInfoBuilder {
	builder.tenantId = tenantId
	builder.tenantIdFlag = true
	return builder
}

// 标签类型
//
// 示例值：tenant
func (builder *TagInfoBuilder) TagType(tagType string) *TagInfoBuilder {
	builder.tagType = tagType
	builder.tagTypeFlag = true
	return builder
}

// name
//
// 示例值：tagName1
func (builder *TagInfoBuilder) Name(name string) *TagInfoBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// i18n name
//
// 示例值：
func (builder *TagInfoBuilder) I18nNames(i18nNames []*TagI18nName) *TagInfoBuilder {
	builder.i18nNames = i18nNames
	builder.i18nNamesFlag = true
	return builder
}

// 创建人
//
// 示例值：716168xxxxx
func (builder *TagInfoBuilder) CreatorId(creatorId string) *TagInfoBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 创建时间
//
// 示例值：1700793403850
func (builder *TagInfoBuilder) CreateTime(createTime string) *TagInfoBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 更新时间
//
// 示例值：1700793403850
func (builder *TagInfoBuilder) UpdateTime(updateTime string) *TagInfoBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

func (builder *TagInfoBuilder) Build() *TagInfo {
	req := &TagInfo{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.tenantIdFlag {
		req.TenantId = &builder.tenantId

	}
	if builder.tagTypeFlag {
		req.TagType = &builder.tagType

	}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.i18nNamesFlag {
		req.I18nNames = builder.i18nNames
	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.updateTimeFlag {
		req.UpdateTime = &builder.updateTime

	}
	return req
}

type TagInfoWithBindVersion struct {
	TagInfo *TagInfo `json:"tag_info,omitempty"` // 标签内容

	BindVersion *string `json:"bind_version,omitempty"` // 绑定时间
}

type TagInfoWithBindVersionBuilder struct {
	tagInfo     *TagInfo // 标签内容
	tagInfoFlag bool

	bindVersion     string // 绑定时间
	bindVersionFlag bool
}

func NewTagInfoWithBindVersionBuilder() *TagInfoWithBindVersionBuilder {
	builder := &TagInfoWithBindVersionBuilder{}
	return builder
}

// 标签内容
//
// 示例值：
func (builder *TagInfoWithBindVersionBuilder) TagInfo(tagInfo *TagInfo) *TagInfoWithBindVersionBuilder {
	builder.tagInfo = tagInfo
	builder.tagInfoFlag = true
	return builder
}

// 绑定时间
//
// 示例值：1710401562336
func (builder *TagInfoWithBindVersionBuilder) BindVersion(bindVersion string) *TagInfoWithBindVersionBuilder {
	builder.bindVersion = bindVersion
	builder.bindVersionFlag = true
	return builder
}

func (builder *TagInfoWithBindVersionBuilder) Build() *TagInfoWithBindVersion {
	req := &TagInfoWithBindVersion{}
	if builder.tagInfoFlag {
		req.TagInfo = builder.tagInfo
	}
	if builder.bindVersionFlag {
		req.BindVersion = &builder.bindVersion

	}
	return req
}

type UnReadUrgentMessage struct {
	Id *string `json:"id,omitempty"` // id

	MessageId *string `json:"message_id,omitempty"` // 消息id

	ChatterId *string `json:"chatter_id,omitempty"` // 加急接受者id

	Status *int `json:"status,omitempty"` // 加急状态

	ConfirmTime *string `json:"confirm_time,omitempty"` // 确定时间

	SendTime *string `json:"send_time,omitempty"` // 加急时间

	Type *int `json:"type,omitempty"` // 加急类型

	FromId *string `json:"from_id,omitempty"` // 消息发送者

	ChatId *string `json:"chat_id,omitempty"` // 群组id
}

type UnReadUrgentMessageBuilder struct {
	id     string // id
	idFlag bool

	messageId     string // 消息id
	messageIdFlag bool

	chatterId     string // 加急接受者id
	chatterIdFlag bool

	status     int // 加急状态
	statusFlag bool

	confirmTime     string // 确定时间
	confirmTimeFlag bool

	sendTime     string // 加急时间
	sendTimeFlag bool

	type_    int // 加急类型
	typeFlag bool

	fromId     string // 消息发送者
	fromIdFlag bool

	chatId     string // 群组id
	chatIdFlag bool
}

func NewUnReadUrgentMessageBuilder() *UnReadUrgentMessageBuilder {
	builder := &UnReadUrgentMessageBuilder{}
	return builder
}

// id
//
// 示例值：7220315920974954516
func (builder *UnReadUrgentMessageBuilder) Id(id string) *UnReadUrgentMessageBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 消息id
//
// 示例值：om_dc13264520392913993dd051dba21dcf
func (builder *UnReadUrgentMessageBuilder) MessageId(messageId string) *UnReadUrgentMessageBuilder {
	builder.messageId = messageId
	builder.messageIdFlag = true
	return builder
}

// 加急接受者id
//
// 示例值：ou_61c3751f5c2ba7f57aa14885a6512c02
func (builder *UnReadUrgentMessageBuilder) ChatterId(chatterId string) *UnReadUrgentMessageBuilder {
	builder.chatterId = chatterId
	builder.chatterIdFlag = true
	return builder
}

// 加急状态
//
// 示例值：0
func (builder *UnReadUrgentMessageBuilder) Status(status int) *UnReadUrgentMessageBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 确定时间
//
// 示例值：1704038400000
func (builder *UnReadUrgentMessageBuilder) ConfirmTime(confirmTime string) *UnReadUrgentMessageBuilder {
	builder.confirmTime = confirmTime
	builder.confirmTimeFlag = true
	return builder
}

// 加急时间
//
// 示例值：1704038400000
func (builder *UnReadUrgentMessageBuilder) SendTime(sendTime string) *UnReadUrgentMessageBuilder {
	builder.sendTime = sendTime
	builder.sendTimeFlag = true
	return builder
}

// 加急类型
//
// 示例值：0
func (builder *UnReadUrgentMessageBuilder) Type(type_ int) *UnReadUrgentMessageBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 消息发送者
//
// 示例值：ou_a0553eda9014c201e6969b478895c230
func (builder *UnReadUrgentMessageBuilder) FromId(fromId string) *UnReadUrgentMessageBuilder {
	builder.fromId = fromId
	builder.fromIdFlag = true
	return builder
}

// 群组id
//
// 示例值：oc_a0553eda9014c201e6969b478895c2343
func (builder *UnReadUrgentMessageBuilder) ChatId(chatId string) *UnReadUrgentMessageBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

func (builder *UnReadUrgentMessageBuilder) Build() *UnReadUrgentMessage {
	req := &UnReadUrgentMessage{}
	if builder.idFlag {
		req.Id = &builder.id

	}
	if builder.messageIdFlag {
		req.MessageId = &builder.messageId

	}
	if builder.chatterIdFlag {
		req.ChatterId = &builder.chatterId

	}
	if builder.statusFlag {
		req.Status = &builder.status

	}
	if builder.confirmTimeFlag {
		req.ConfirmTime = &builder.confirmTime

	}
	if builder.sendTimeFlag {
		req.SendTime = &builder.sendTime

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.fromIdFlag {
		req.FromId = &builder.fromId

	}
	if builder.chatIdFlag {
		req.ChatId = &builder.chatId

	}
	return req
}

type UnreadAtMessage struct {
	MessageId *string `json:"message_id,omitempty"` // 消息id

	FromId *string `json:"from_id,omitempty"` // 消息发送者

	ChatId *string `json:"chat_id,omitempty"` // 群组id

	CreateTime *string `json:"create_time,omitempty"` // 发送时间

	CreateTimeMs *string `json:"create_time_ms,omitempty"` // 发送时间毫秒

	UpdateTimeMs *string `json:"update_time_ms,omitempty"` // 更新时间毫秒

	Type *int `json:"type,omitempty"` // 消息类型

	IsAtAll *bool `json:"is_at_all,omitempty"` // 是否为atall
}

type UnreadAtMessageBuilder struct {
	messageId     string // 消息id
	messageIdFlag bool

	fromId     string // 消息发送者
	fromIdFlag bool

	chatId     string // 群组id
	chatIdFlag bool

	createTime     string // 发送时间
	createTimeFlag bool

	createTimeMs     string // 发送时间毫秒
	createTimeMsFlag bool

	updateTimeMs     string // 更新时间毫秒
	updateTimeMsFlag bool

	type_    int // 消息类型
	typeFlag bool

	isAtAll     bool // 是否为atall
	isAtAllFlag bool
}

func NewUnreadAtMessageBuilder() *UnreadAtMessageBuilder {
	builder := &UnreadAtMessageBuilder{}
	return builder
}

// 消息id
//
// 示例值：om_dc13264520392913993dd051dba21dcf
func (builder *UnreadAtMessageBuilder) MessageId(messageId string) *UnreadAtMessageBuilder {
	builder.messageId = messageId
	builder.messageIdFlag = true
	return builder
}

// 消息发送者
//
// 示例值：ou_a0553eda9014c201e6969b478895c230
func (builder *UnreadAtMessageBuilder) FromId(fromId string) *UnreadAtMessageBuilder {
	builder.fromId = fromId
	builder.fromIdFlag = true
	return builder
}

// 群组id
//
// 示例值：oc_a0553eda9014c201e6969b478895c2343
func (builder *UnreadAtMessageBuilder) ChatId(chatId string) *UnreadAtMessageBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

// 发送时间
//
// 示例值：1704038400000
func (builder *UnreadAtMessageBuilder) CreateTime(createTime string) *UnreadAtMessageBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 发送时间毫秒
//
// 示例值：1704038400000
func (builder *UnreadAtMessageBuilder) CreateTimeMs(createTimeMs string) *UnreadAtMessageBuilder {
	builder.createTimeMs = createTimeMs
	builder.createTimeMsFlag = true
	return builder
}

// 更新时间毫秒
//
// 示例值：1704038400000
func (builder *UnreadAtMessageBuilder) UpdateTimeMs(updateTimeMs string) *UnreadAtMessageBuilder {
	builder.updateTimeMs = updateTimeMs
	builder.updateTimeMsFlag = true
	return builder
}

// 消息类型
//
// 示例值：
func (builder *UnreadAtMessageBuilder) Type(type_ int) *UnreadAtMessageBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 是否为atall
//
// 示例值：false
func (builder *UnreadAtMessageBuilder) IsAtAll(isAtAll bool) *UnreadAtMessageBuilder {
	builder.isAtAll = isAtAll
	builder.isAtAllFlag = true
	return builder
}

func (builder *UnreadAtMessageBuilder) Build() *UnreadAtMessage {
	req := &UnreadAtMessage{}
	if builder.messageIdFlag {
		req.MessageId = &builder.messageId

	}
	if builder.fromIdFlag {
		req.FromId = &builder.fromId

	}
	if builder.chatIdFlag {
		req.ChatId = &builder.chatId

	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	if builder.createTimeMsFlag {
		req.CreateTimeMs = &builder.createTimeMs

	}
	if builder.updateTimeMsFlag {
		req.UpdateTimeMs = &builder.updateTimeMs

	}
	if builder.typeFlag {
		req.Type = &builder.type_

	}
	if builder.isAtAllFlag {
		req.IsAtAll = &builder.isAtAll

	}
	return req
}

type UpdateChatPin struct {
	IsFixed *bool `json:"is_fixed,omitempty"` // 置顶是否被固定到置顶列表前方,目前每个群内最多可以固定一个置顶。

	UpdateUrlPin *UpdateUrlPin `json:"update_url_pin,omitempty"` //
}

type UpdateChatPinBuilder struct {
	isFixed     bool // 置顶是否被固定到置顶列表前方,目前每个群内最多可以固定一个置顶。
	isFixedFlag bool

	updateUrlPin     *UpdateUrlPin //
	updateUrlPinFlag bool
}

func NewUpdateChatPinBuilder() *UpdateChatPinBuilder {
	builder := &UpdateChatPinBuilder{}
	return builder
}

// 置顶是否被固定到置顶列表前方,目前每个群内最多可以固定一个置顶。
//
// 示例值：
func (builder *UpdateChatPinBuilder) IsFixed(isFixed bool) *UpdateChatPinBuilder {
	builder.isFixed = isFixed
	builder.isFixedFlag = true
	return builder
}

//
//
// 示例值：
func (builder *UpdateChatPinBuilder) UpdateUrlPin(updateUrlPin *UpdateUrlPin) *UpdateChatPinBuilder {
	builder.updateUrlPin = updateUrlPin
	builder.updateUrlPinFlag = true
	return builder
}

func (builder *UpdateChatPinBuilder) Build() *UpdateChatPin {
	req := &UpdateChatPin{}
	if builder.isFixedFlag {
		req.IsFixed = &builder.isFixed

	}
	if builder.updateUrlPinFlag {
		req.UpdateUrlPin = builder.updateUrlPin
	}
	return req
}

type UpdateUrlPin struct {
	Icon *ChatPinIcon `json:"icon,omitempty"` // 图标信息

	Title *string `json:"title,omitempty"` // 名称

	I18nTitle *I18nNames `json:"i18n_title,omitempty"` // 国际化名称，如果客户端语言环境对应的i18n_title存在则会被优先展示，否则展示title。
}

type UpdateUrlPinBuilder struct {
	icon     *ChatPinIcon // 图标信息
	iconFlag bool

	title     string // 名称
	titleFlag bool

	i18nTitle     *I18nNames // 国际化名称，如果客户端语言环境对应的i18n_title存在则会被优先展示，否则展示title。
	i18nTitleFlag bool
}

func NewUpdateUrlPinBuilder() *UpdateUrlPinBuilder {
	builder := &UpdateUrlPinBuilder{}
	return builder
}

// 图标信息
//
// 示例值：
func (builder *UpdateUrlPinBuilder) Icon(icon *ChatPinIcon) *UpdateUrlPinBuilder {
	builder.icon = icon
	builder.iconFlag = true
	return builder
}

// 名称
//
// 示例值：待办事项
func (builder *UpdateUrlPinBuilder) Title(title string) *UpdateUrlPinBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 国际化名称，如果客户端语言环境对应的i18n_title存在则会被优先展示，否则展示title。
//
// 示例值：
func (builder *UpdateUrlPinBuilder) I18nTitle(i18nTitle *I18nNames) *UpdateUrlPinBuilder {
	builder.i18nTitle = i18nTitle
	builder.i18nTitleFlag = true
	return builder
}

func (builder *UpdateUrlPinBuilder) Build() *UpdateUrlPin {
	req := &UpdateUrlPin{}
	if builder.iconFlag {
		req.Icon = builder.icon
	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.i18nTitleFlag {
		req.I18nTitle = builder.i18nTitle
	}
	return req
}

type UrgentCommonHeader struct {
	BotId *string `json:"bot_id,omitempty"` // botid，不对外展示
}

type UrgentCommonHeaderBuilder struct {
	botId     string // botid，不对外展示
	botIdFlag bool
}

func NewUrgentCommonHeaderBuilder() *UrgentCommonHeaderBuilder {
	builder := &UrgentCommonHeaderBuilder{}
	return builder
}

// botid，不对外展示
//
// 示例值：0
func (builder *UrgentCommonHeaderBuilder) BotId(botId string) *UrgentCommonHeaderBuilder {
	builder.botId = botId
	builder.botIdFlag = true
	return builder
}

func (builder *UrgentCommonHeaderBuilder) Build() *UrgentCommonHeader {
	req := &UrgentCommonHeader{}
	if builder.botIdFlag {
		req.BotId = &builder.botId

	}
	return req
}

type UrlPin struct {
	Url *string `json:"url,omitempty"` // url

	Icon *ChatPinIcon `json:"icon,omitempty"` //

	Title *string `json:"title,omitempty"` // 名称

	I18nTitle *I18nNames `json:"i18n_title,omitempty"` // 国际化名称，如果客户端语言环境对应的i18n_title存在则会被优先展示，否则展示title。

	TitleDynamicUpdate *bool `json:"title_dynamic_update,omitempty"` // 标题是否需要动态更新

	IconDynamicUpdate *bool `json:"icon_dynamic_update,omitempty"` // 图标是否需要动态更新
}

type UrlPinBuilder struct {
	url     string // url
	urlFlag bool

	icon     *ChatPinIcon //
	iconFlag bool

	title     string // 名称
	titleFlag bool

	i18nTitle     *I18nNames // 国际化名称，如果客户端语言环境对应的i18n_title存在则会被优先展示，否则展示title。
	i18nTitleFlag bool

	titleDynamicUpdate     bool // 标题是否需要动态更新
	titleDynamicUpdateFlag bool

	iconDynamicUpdate     bool // 图标是否需要动态更新
	iconDynamicUpdateFlag bool
}

func NewUrlPinBuilder() *UrlPinBuilder {
	builder := &UrlPinBuilder{}
	return builder
}

// url
//
// 示例值：https://open.feishu.cn/
func (builder *UrlPinBuilder) Url(url string) *UrlPinBuilder {
	builder.url = url
	builder.urlFlag = true
	return builder
}

//
//
// 示例值：
func (builder *UrlPinBuilder) Icon(icon *ChatPinIcon) *UrlPinBuilder {
	builder.icon = icon
	builder.iconFlag = true
	return builder
}

// 名称
//
// 示例值：待办事项
func (builder *UrlPinBuilder) Title(title string) *UrlPinBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// 国际化名称，如果客户端语言环境对应的i18n_title存在则会被优先展示，否则展示title。
//
// 示例值：
func (builder *UrlPinBuilder) I18nTitle(i18nTitle *I18nNames) *UrlPinBuilder {
	builder.i18nTitle = i18nTitle
	builder.i18nTitleFlag = true
	return builder
}

// 标题是否需要动态更新
//
// 示例值：false
func (builder *UrlPinBuilder) TitleDynamicUpdate(titleDynamicUpdate bool) *UrlPinBuilder {
	builder.titleDynamicUpdate = titleDynamicUpdate
	builder.titleDynamicUpdateFlag = true
	return builder
}

// 图标是否需要动态更新
//
// 示例值：false
func (builder *UrlPinBuilder) IconDynamicUpdate(iconDynamicUpdate bool) *UrlPinBuilder {
	builder.iconDynamicUpdate = iconDynamicUpdate
	builder.iconDynamicUpdateFlag = true
	return builder
}

func (builder *UrlPinBuilder) Build() *UrlPin {
	req := &UrlPin{}
	if builder.urlFlag {
		req.Url = &builder.url

	}
	if builder.iconFlag {
		req.Icon = builder.icon
	}
	if builder.titleFlag {
		req.Title = &builder.title

	}
	if builder.i18nTitleFlag {
		req.I18nTitle = builder.i18nTitle
	}
	if builder.titleDynamicUpdateFlag {
		req.TitleDynamicUpdate = &builder.titleDynamicUpdate

	}
	if builder.iconDynamicUpdateFlag {
		req.IconDynamicUpdate = &builder.iconDynamicUpdate

	}
	return req
}

type UserOpenAppFeedCardDeleter struct {
	BizId *string `json:"biz_id,omitempty"` // 业务 ID

	UserId *string `json:"user_id,omitempty"` // 用户 ID
}

type UserOpenAppFeedCardDeleterBuilder struct {
	bizId     string // 业务 ID
	bizIdFlag bool

	userId     string // 用户 ID
	userIdFlag bool
}

func NewUserOpenAppFeedCardDeleterBuilder() *UserOpenAppFeedCardDeleterBuilder {
	builder := &UserOpenAppFeedCardDeleterBuilder{}
	return builder
}

// 业务 ID
//
// 示例值：ed381d34-49ac-4876-8d9e-23447acb587e
func (builder *UserOpenAppFeedCardDeleterBuilder) BizId(bizId string) *UserOpenAppFeedCardDeleterBuilder {
	builder.bizId = bizId
	builder.bizIdFlag = true
	return builder
}

// 用户 ID
//
// 示例值：
func (builder *UserOpenAppFeedCardDeleterBuilder) UserId(userId string) *UserOpenAppFeedCardDeleterBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

func (builder *UserOpenAppFeedCardDeleterBuilder) Build() *UserOpenAppFeedCardDeleter {
	req := &UserOpenAppFeedCardDeleter{}
	if builder.bizIdFlag {
		req.BizId = &builder.bizId

	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	return req
}

type UserOpenAppFeedCardUpdater struct {
	AppFeedCard *OpenAppFeedCard `json:"app_feed_card,omitempty"` // 应用消息卡片

	UserId *string `json:"user_id,omitempty"` // 用户 id

	UpdateFields []string `json:"update_fields,omitempty"` // 更新字段列表
}

type UserOpenAppFeedCardUpdaterBuilder struct {
	appFeedCard     *OpenAppFeedCard // 应用消息卡片
	appFeedCardFlag bool

	userId     string // 用户 id
	userIdFlag bool

	updateFields     []string // 更新字段列表
	updateFieldsFlag bool
}

func NewUserOpenAppFeedCardUpdaterBuilder() *UserOpenAppFeedCardUpdaterBuilder {
	builder := &UserOpenAppFeedCardUpdaterBuilder{}
	return builder
}

// 应用消息卡片
//
// 示例值：
func (builder *UserOpenAppFeedCardUpdaterBuilder) AppFeedCard(appFeedCard *OpenAppFeedCard) *UserOpenAppFeedCardUpdaterBuilder {
	builder.appFeedCard = appFeedCard
	builder.appFeedCardFlag = true
	return builder
}

// 用户 id
//
// 示例值：
func (builder *UserOpenAppFeedCardUpdaterBuilder) UserId(userId string) *UserOpenAppFeedCardUpdaterBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 更新字段列表
//
// 示例值：
func (builder *UserOpenAppFeedCardUpdaterBuilder) UpdateFields(updateFields []string) *UserOpenAppFeedCardUpdaterBuilder {
	builder.updateFields = updateFields
	builder.updateFieldsFlag = true
	return builder
}

func (builder *UserOpenAppFeedCardUpdaterBuilder) Build() *UserOpenAppFeedCardUpdater {
	req := &UserOpenAppFeedCardUpdater{}
	if builder.appFeedCardFlag {
		req.AppFeedCard = builder.appFeedCard
	}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.updateFieldsFlag {
		req.UpdateFields = builder.updateFields
	}
	return req
}

type CreateAppFeedCardReqBodyBuilder struct {
	appFeedCard     *OpenAppFeedCard // 应用消息卡片
	appFeedCardFlag bool

	userIds     []string // 用户 ID
	userIdsFlag bool
}

func NewCreateAppFeedCardReqBodyBuilder() *CreateAppFeedCardReqBodyBuilder {
	builder := &CreateAppFeedCardReqBodyBuilder{}
	return builder
}

// 应用消息卡片
//
//示例值：
func (builder *CreateAppFeedCardReqBodyBuilder) AppFeedCard(appFeedCard *OpenAppFeedCard) *CreateAppFeedCardReqBodyBuilder {
	builder.appFeedCard = appFeedCard
	builder.appFeedCardFlag = true
	return builder
}

// 用户 ID
//
//示例值：
func (builder *CreateAppFeedCardReqBodyBuilder) UserIds(userIds []string) *CreateAppFeedCardReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

func (builder *CreateAppFeedCardReqBodyBuilder) Build() *CreateAppFeedCardReqBody {
	req := &CreateAppFeedCardReqBody{}
	if builder.appFeedCardFlag {
		req.AppFeedCard = builder.appFeedCard
	}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	return req
}

type CreateAppFeedCardPathReqBodyBuilder struct {
	appFeedCard     *OpenAppFeedCard
	appFeedCardFlag bool
	userIds         []string
	userIdsFlag     bool
}

func NewCreateAppFeedCardPathReqBodyBuilder() *CreateAppFeedCardPathReqBodyBuilder {
	builder := &CreateAppFeedCardPathReqBodyBuilder{}
	return builder
}

// 应用消息卡片
//
// 示例值：
func (builder *CreateAppFeedCardPathReqBodyBuilder) AppFeedCard(appFeedCard *OpenAppFeedCard) *CreateAppFeedCardPathReqBodyBuilder {
	builder.appFeedCard = appFeedCard
	builder.appFeedCardFlag = true
	return builder
}

// 用户 ID
//
// 示例值：
func (builder *CreateAppFeedCardPathReqBodyBuilder) UserIds(userIds []string) *CreateAppFeedCardPathReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

func (builder *CreateAppFeedCardPathReqBodyBuilder) Build() (*CreateAppFeedCardReqBody, error) {
	req := &CreateAppFeedCardReqBody{}
	if builder.appFeedCardFlag {
		req.AppFeedCard = builder.appFeedCard
	}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	return req, nil
}

type CreateAppFeedCardReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateAppFeedCardReqBody
}

func NewCreateAppFeedCardReqBuilder() *CreateAppFeedCardReqBuilder {
	builder := &CreateAppFeedCardReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *CreateAppFeedCardReqBuilder) UserIdType(userIdType string) *CreateAppFeedCardReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *CreateAppFeedCardReqBuilder) Body(body *CreateAppFeedCardReqBody) *CreateAppFeedCardReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateAppFeedCardReqBuilder) Build() *CreateAppFeedCardReq {
	req := &CreateAppFeedCardReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type CreateAppFeedCardReqBody struct {
	AppFeedCard *OpenAppFeedCard `json:"app_feed_card,omitempty"` // 应用消息卡片

	UserIds []string `json:"user_ids,omitempty"` // 用户 ID
}

type CreateAppFeedCardReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateAppFeedCardReqBody `body:""`
}

type CreateAppFeedCardRespData struct {
	FailedCards []*OpenFailedUserAppFeedCardItem `json:"failed_cards,omitempty"` // 失败的卡片

	BizId *string `json:"biz_id,omitempty"` // 卡片业务 ID
}

type CreateAppFeedCardResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateAppFeedCardRespData `json:"data"` // 业务数据
}

func (resp *CreateAppFeedCardResp) Success() bool {
	return resp.Code == 0
}

type DeleteAppFeedCardBatchReqBodyBuilder struct {
	feedCards     []*UserOpenAppFeedCardDeleter // 应用消息卡片
	feedCardsFlag bool
}

func NewDeleteAppFeedCardBatchReqBodyBuilder() *DeleteAppFeedCardBatchReqBodyBuilder {
	builder := &DeleteAppFeedCardBatchReqBodyBuilder{}
	return builder
}

// 应用消息卡片
//
//示例值：
func (builder *DeleteAppFeedCardBatchReqBodyBuilder) FeedCards(feedCards []*UserOpenAppFeedCardDeleter) *DeleteAppFeedCardBatchReqBodyBuilder {
	builder.feedCards = feedCards
	builder.feedCardsFlag = true
	return builder
}

func (builder *DeleteAppFeedCardBatchReqBodyBuilder) Build() *DeleteAppFeedCardBatchReqBody {
	req := &DeleteAppFeedCardBatchReqBody{}
	if builder.feedCardsFlag {
		req.FeedCards = builder.feedCards
	}
	return req
}

type DeleteAppFeedCardBatchPathReqBodyBuilder struct {
	feedCards     []*UserOpenAppFeedCardDeleter
	feedCardsFlag bool
}

func NewDeleteAppFeedCardBatchPathReqBodyBuilder() *DeleteAppFeedCardBatchPathReqBodyBuilder {
	builder := &DeleteAppFeedCardBatchPathReqBodyBuilder{}
	return builder
}

// 应用消息卡片
//
// 示例值：
func (builder *DeleteAppFeedCardBatchPathReqBodyBuilder) FeedCards(feedCards []*UserOpenAppFeedCardDeleter) *DeleteAppFeedCardBatchPathReqBodyBuilder {
	builder.feedCards = feedCards
	builder.feedCardsFlag = true
	return builder
}

func (builder *DeleteAppFeedCardBatchPathReqBodyBuilder) Build() (*DeleteAppFeedCardBatchReqBody, error) {
	req := &DeleteAppFeedCardBatchReqBody{}
	if builder.feedCardsFlag {
		req.FeedCards = builder.feedCards
	}
	return req, nil
}

type DeleteAppFeedCardBatchReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *DeleteAppFeedCardBatchReqBody
}

func NewDeleteAppFeedCardBatchReqBuilder() *DeleteAppFeedCardBatchReqBuilder {
	builder := &DeleteAppFeedCardBatchReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型 可选值有:	 - open_id: 以open_id来识别用户	 - user_id: 以user_id来识别用户	 - union_id: 以union_id来识别用户
//
// 示例值：open_id
func (builder *DeleteAppFeedCardBatchReqBuilder) UserIdType(userIdType string) *DeleteAppFeedCardBatchReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *DeleteAppFeedCardBatchReqBuilder) Body(body *DeleteAppFeedCardBatchReqBody) *DeleteAppFeedCardBatchReqBuilder {
	builder.body = body
	return builder
}

func (builder *DeleteAppFeedCardBatchReqBuilder) Build() *DeleteAppFeedCardBatchReq {
	req := &DeleteAppFeedCardBatchReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type DeleteAppFeedCardBatchReqBody struct {
	FeedCards []*UserOpenAppFeedCardDeleter `json:"feed_cards,omitempty"` // 应用消息卡片
}

type DeleteAppFeedCardBatchReq struct {
	apiReq *larkcore.ApiReq
	Body   *DeleteAppFeedCardBatchReqBody `body:""`
}

type DeleteAppFeedCardBatchRespData struct {
	FailedCards []*OpenFailedUserAppFeedCardItem `json:"failed_cards,omitempty"` // 失败的卡片
}

type DeleteAppFeedCardBatchResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *DeleteAppFeedCardBatchRespData `json:"data"` // 业务数据
}

func (resp *DeleteAppFeedCardBatchResp) Success() bool {
	return resp.Code == 0
}

type UpdateAppFeedCardBatchReqBodyBuilder struct {
	feedCards     []*UserOpenAppFeedCardUpdater // 应用消息卡片
	feedCardsFlag bool
}

func NewUpdateAppFeedCardBatchReqBodyBuilder() *UpdateAppFeedCardBatchReqBodyBuilder {
	builder := &UpdateAppFeedCardBatchReqBodyBuilder{}
	return builder
}

// 应用消息卡片
//
//示例值：
func (builder *UpdateAppFeedCardBatchReqBodyBuilder) FeedCards(feedCards []*UserOpenAppFeedCardUpdater) *UpdateAppFeedCardBatchReqBodyBuilder {
	builder.feedCards = feedCards
	builder.feedCardsFlag = true
	return builder
}

func (builder *UpdateAppFeedCardBatchReqBodyBuilder) Build() *UpdateAppFeedCardBatchReqBody {
	req := &UpdateAppFeedCardBatchReqBody{}
	if builder.feedCardsFlag {
		req.FeedCards = builder.feedCards
	}
	return req
}

type UpdateAppFeedCardBatchPathReqBodyBuilder struct {
	feedCards     []*UserOpenAppFeedCardUpdater
	feedCardsFlag bool
}

func NewUpdateAppFeedCardBatchPathReqBodyBuilder() *UpdateAppFeedCardBatchPathReqBodyBuilder {
	builder := &UpdateAppFeedCardBatchPathReqBodyBuilder{}
	return builder
}

// 应用消息卡片
//
// 示例值：
func (builder *UpdateAppFeedCardBatchPathReqBodyBuilder) FeedCards(feedCards []*UserOpenAppFeedCardUpdater) *UpdateAppFeedCardBatchPathReqBodyBuilder {
	builder.feedCards = feedCards
	builder.feedCardsFlag = true
	return builder
}

func (builder *UpdateAppFeedCardBatchPathReqBodyBuilder) Build() (*UpdateAppFeedCardBatchReqBody, error) {
	req := &UpdateAppFeedCardBatchReqBody{}
	if builder.feedCardsFlag {
		req.FeedCards = builder.feedCards
	}
	return req, nil
}

type UpdateAppFeedCardBatchReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateAppFeedCardBatchReqBody
}

func NewUpdateAppFeedCardBatchReqBuilder() *UpdateAppFeedCardBatchReqBuilder {
	builder := &UpdateAppFeedCardBatchReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型 可选值有:	 - open_id: 以open_id来识别用户	 - user_id: 以user_id来识别用户	 - union_id: 以union_id来识别用户
//
// 示例值：open_id
func (builder *UpdateAppFeedCardBatchReqBuilder) UserIdType(userIdType string) *UpdateAppFeedCardBatchReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *UpdateAppFeedCardBatchReqBuilder) Body(body *UpdateAppFeedCardBatchReqBody) *UpdateAppFeedCardBatchReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateAppFeedCardBatchReqBuilder) Build() *UpdateAppFeedCardBatchReq {
	req := &UpdateAppFeedCardBatchReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type UpdateAppFeedCardBatchReqBody struct {
	FeedCards []*UserOpenAppFeedCardUpdater `json:"feed_cards,omitempty"` // 应用消息卡片
}

type UpdateAppFeedCardBatchReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateAppFeedCardBatchReqBody `body:""`
}

type UpdateAppFeedCardBatchRespData struct {
	FailedCards []*OpenFailedUserAppFeedCardItem `json:"failed_cards,omitempty"` // 失败的卡片
}

type UpdateAppFeedCardBatchResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateAppFeedCardBatchRespData `json:"data"` // 业务数据
}

func (resp *UpdateAppFeedCardBatchResp) Success() bool {
	return resp.Code == 0
}

type CreateBizEntityTagRelationReqBodyBuilder struct {
	tagBizType     string // 业务类型
	tagBizTypeFlag bool

	bizEntityId     string // 业务实体id
	bizEntityIdFlag bool

	tagIds     []string // 标签id
	tagIdsFlag bool

	botId     string // 机器人id
	botIdFlag bool
}

func NewCreateBizEntityTagRelationReqBodyBuilder() *CreateBizEntityTagRelationReqBodyBuilder {
	builder := &CreateBizEntityTagRelationReqBodyBuilder{}
	return builder
}

// 业务类型
//
//示例值：chat
func (builder *CreateBizEntityTagRelationReqBodyBuilder) TagBizType(tagBizType string) *CreateBizEntityTagRelationReqBodyBuilder {
	builder.tagBizType = tagBizType
	builder.tagBizTypeFlag = true
	return builder
}

// 业务实体id
//
//示例值：71616xxxx
func (builder *CreateBizEntityTagRelationReqBodyBuilder) BizEntityId(bizEntityId string) *CreateBizEntityTagRelationReqBodyBuilder {
	builder.bizEntityId = bizEntityId
	builder.bizEntityIdFlag = true
	return builder
}

// 标签id
//
//示例值：
func (builder *CreateBizEntityTagRelationReqBodyBuilder) TagIds(tagIds []string) *CreateBizEntityTagRelationReqBodyBuilder {
	builder.tagIds = tagIds
	builder.tagIdsFlag = true
	return builder
}

func (builder *CreateBizEntityTagRelationReqBodyBuilder) Build() *CreateBizEntityTagRelationReqBody {
	req := &CreateBizEntityTagRelationReqBody{}
	if builder.tagBizTypeFlag {
		req.TagBizType = &builder.tagBizType
	}
	if builder.bizEntityIdFlag {
		req.BizEntityId = &builder.bizEntityId
	}
	if builder.tagIdsFlag {
		req.TagIds = builder.tagIds
	}
	return req
}

type CreateBizEntityTagRelationPathReqBodyBuilder struct {
	tagBizType      string
	tagBizTypeFlag  bool
	bizEntityId     string
	bizEntityIdFlag bool
	tagIds          []string
	tagIdsFlag      bool
	botId           string
	botIdFlag       bool
}

func NewCreateBizEntityTagRelationPathReqBodyBuilder() *CreateBizEntityTagRelationPathReqBodyBuilder {
	builder := &CreateBizEntityTagRelationPathReqBodyBuilder{}
	return builder
}

// 业务类型
//
// 示例值：chat
func (builder *CreateBizEntityTagRelationPathReqBodyBuilder) TagBizType(tagBizType string) *CreateBizEntityTagRelationPathReqBodyBuilder {
	builder.tagBizType = tagBizType
	builder.tagBizTypeFlag = true
	return builder
}

// 业务实体id
//
// 示例值：71616xxxx
func (builder *CreateBizEntityTagRelationPathReqBodyBuilder) BizEntityId(bizEntityId string) *CreateBizEntityTagRelationPathReqBodyBuilder {
	builder.bizEntityId = bizEntityId
	builder.bizEntityIdFlag = true
	return builder
}

// 标签id
//
// 示例值：
func (builder *CreateBizEntityTagRelationPathReqBodyBuilder) TagIds(tagIds []string) *CreateBizEntityTagRelationPathReqBodyBuilder {
	builder.tagIds = tagIds
	builder.tagIdsFlag = true
	return builder
}

func (builder *CreateBizEntityTagRelationPathReqBodyBuilder) Build() (*CreateBizEntityTagRelationReqBody, error) {
	req := &CreateBizEntityTagRelationReqBody{}
	if builder.tagBizTypeFlag {
		req.TagBizType = &builder.tagBizType
	}
	if builder.bizEntityIdFlag {
		req.BizEntityId = &builder.bizEntityId
	}
	if builder.tagIdsFlag {
		req.TagIds = builder.tagIds
	}
	return req, nil
}

type CreateBizEntityTagRelationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateBizEntityTagRelationReqBody
}

func NewCreateBizEntityTagRelationReqBuilder() *CreateBizEntityTagRelationReqBuilder {
	builder := &CreateBizEntityTagRelationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *CreateBizEntityTagRelationReqBuilder) Body(body *CreateBizEntityTagRelationReqBody) *CreateBizEntityTagRelationReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateBizEntityTagRelationReqBuilder) Build() *CreateBizEntityTagRelationReq {
	req := &CreateBizEntityTagRelationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type CreateBizEntityTagRelationReqBody struct {
	TagBizType *string `json:"tag_biz_type,omitempty"` // 业务类型

	BizEntityId *string `json:"biz_entity_id,omitempty"` // 业务实体id

	TagIds []string `json:"tag_ids,omitempty"` // 标签id

	BotId *string `json:"bot_id,omitempty"` // 机器人id
}

type CreateBizEntityTagRelationReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateBizEntityTagRelationReqBody `body:""`
}

type CreateBizEntityTagRelationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *CreateBizEntityTagRelationResp) Success() bool {
	return resp.Code == 0
}

type GetBizEntityTagRelationReqBuilder struct {
	apiReq *larkcore.ApiReq
}

func NewGetBizEntityTagRelationReqBuilder() *GetBizEntityTagRelationReqBuilder {
	builder := &GetBizEntityTagRelationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 业务类型
//
// 示例值：chat
func (builder *GetBizEntityTagRelationReqBuilder) TagBizType(tagBizType string) *GetBizEntityTagRelationReqBuilder {
	builder.apiReq.QueryParams.Set("tag_biz_type", fmt.Sprint(tagBizType))
	return builder
}

// 业务实体id
//
// 示例值：71616xxxx
func (builder *GetBizEntityTagRelationReqBuilder) BizEntityId(bizEntityId string) *GetBizEntityTagRelationReqBuilder {
	builder.apiReq.QueryParams.Set("biz_entity_id", fmt.Sprint(bizEntityId))
	return builder
}

// 机器人id
//
// 示例值：71616xxxx
func (builder *GetBizEntityTagRelationReqBuilder) BotId(botId string) *GetBizEntityTagRelationReqBuilder {
	builder.apiReq.QueryParams.Set("bot_id", fmt.Sprint(botId))
	return builder
}

func (builder *GetBizEntityTagRelationReqBuilder) Build() *GetBizEntityTagRelationReq {
	req := &GetBizEntityTagRelationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	return req
}

type GetBizEntityTagRelationReq struct {
	apiReq *larkcore.ApiReq
}

type GetBizEntityTagRelationRespData struct {
	TagInfoWithBindVersions []*TagInfoWithBindVersion `json:"tag_info_with_bind_versions,omitempty"` // 标签内容及绑定时间
}

type GetBizEntityTagRelationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *GetBizEntityTagRelationRespData `json:"data"` // 业务数据
}

func (resp *GetBizEntityTagRelationResp) Success() bool {
	return resp.Code == 0
}

type UpdateBizEntityTagRelationReqBodyBuilder struct {
	tagBizType     string // 业务类型
	tagBizTypeFlag bool

	bizEntityId     string // 业务实体id
	bizEntityIdFlag bool

	tagIds     []string // 标签id
	tagIdsFlag bool

	botId     string // 机器人id
	botIdFlag bool
}

func NewUpdateBizEntityTagRelationReqBodyBuilder() *UpdateBizEntityTagRelationReqBodyBuilder {
	builder := &UpdateBizEntityTagRelationReqBodyBuilder{}
	return builder
}

// 业务类型
//
//示例值：chat
func (builder *UpdateBizEntityTagRelationReqBodyBuilder) TagBizType(tagBizType string) *UpdateBizEntityTagRelationReqBodyBuilder {
	builder.tagBizType = tagBizType
	builder.tagBizTypeFlag = true
	return builder
}

// 业务实体id
//
//示例值：7161681111
func (builder *UpdateBizEntityTagRelationReqBodyBuilder) BizEntityId(bizEntityId string) *UpdateBizEntityTagRelationReqBodyBuilder {
	builder.bizEntityId = bizEntityId
	builder.bizEntityIdFlag = true
	return builder
}

// 标签id
//
//示例值：
func (builder *UpdateBizEntityTagRelationReqBodyBuilder) TagIds(tagIds []string) *UpdateBizEntityTagRelationReqBodyBuilder {
	builder.tagIds = tagIds
	builder.tagIdsFlag = true
	return builder
}

func (builder *UpdateBizEntityTagRelationReqBodyBuilder) Build() *UpdateBizEntityTagRelationReqBody {
	req := &UpdateBizEntityTagRelationReqBody{}
	if builder.tagBizTypeFlag {
		req.TagBizType = &builder.tagBizType
	}
	if builder.bizEntityIdFlag {
		req.BizEntityId = &builder.bizEntityId
	}
	if builder.tagIdsFlag {
		req.TagIds = builder.tagIds
	}
	return req
}

type UpdateBizEntityTagRelationPathReqBodyBuilder struct {
	tagBizType      string
	tagBizTypeFlag  bool
	bizEntityId     string
	bizEntityIdFlag bool
	tagIds          []string
	tagIdsFlag      bool
	botId           string
	botIdFlag       bool
}

func NewUpdateBizEntityTagRelationPathReqBodyBuilder() *UpdateBizEntityTagRelationPathReqBodyBuilder {
	builder := &UpdateBizEntityTagRelationPathReqBodyBuilder{}
	return builder
}

// 业务类型
//
// 示例值：chat
func (builder *UpdateBizEntityTagRelationPathReqBodyBuilder) TagBizType(tagBizType string) *UpdateBizEntityTagRelationPathReqBodyBuilder {
	builder.tagBizType = tagBizType
	builder.tagBizTypeFlag = true
	return builder
}

// 业务实体id
//
// 示例值：7161681111
func (builder *UpdateBizEntityTagRelationPathReqBodyBuilder) BizEntityId(bizEntityId string) *UpdateBizEntityTagRelationPathReqBodyBuilder {
	builder.bizEntityId = bizEntityId
	builder.bizEntityIdFlag = true
	return builder
}

// 标签id
//
// 示例值：
func (builder *UpdateBizEntityTagRelationPathReqBodyBuilder) TagIds(tagIds []string) *UpdateBizEntityTagRelationPathReqBodyBuilder {
	builder.tagIds = tagIds
	builder.tagIdsFlag = true
	return builder
}

func (builder *UpdateBizEntityTagRelationPathReqBodyBuilder) Build() (*UpdateBizEntityTagRelationReqBody, error) {
	req := &UpdateBizEntityTagRelationReqBody{}
	if builder.tagBizTypeFlag {
		req.TagBizType = &builder.tagBizType
	}
	if builder.bizEntityIdFlag {
		req.BizEntityId = &builder.bizEntityId
	}
	if builder.tagIdsFlag {
		req.TagIds = builder.tagIds
	}
	return req, nil
}

type UpdateBizEntityTagRelationReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateBizEntityTagRelationReqBody
}

func NewUpdateBizEntityTagRelationReqBuilder() *UpdateBizEntityTagRelationReqBuilder {
	builder := &UpdateBizEntityTagRelationReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *UpdateBizEntityTagRelationReqBuilder) Body(body *UpdateBizEntityTagRelationReqBody) *UpdateBizEntityTagRelationReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateBizEntityTagRelationReqBuilder) Build() *UpdateBizEntityTagRelationReq {
	req := &UpdateBizEntityTagRelationReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type UpdateBizEntityTagRelationReqBody struct {
	TagBizType *string `json:"tag_biz_type,omitempty"` // 业务类型

	BizEntityId *string `json:"biz_entity_id,omitempty"` // 业务实体id

	TagIds []string `json:"tag_ids,omitempty"` // 标签id

	BotId *string `json:"bot_id,omitempty"` // 机器人id
}

type UpdateBizEntityTagRelationReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateBizEntityTagRelationReqBody `body:""`
}

type UpdateBizEntityTagRelationResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *UpdateBizEntityTagRelationResp) Success() bool {
	return resp.Code == 0
}

type UpdateChatButtonReqBodyBuilder struct {
	userIds     []string // 用户 ID 列表
	userIdsFlag bool

	chatId     string // 群 ID
	chatIdFlag bool

	buttons     *OpenAppFeedCardButtons // 按钮
	buttonsFlag bool

	botId     string // Bot id
	botIdFlag bool
}

func NewUpdateChatButtonReqBodyBuilder() *UpdateChatButtonReqBodyBuilder {
	builder := &UpdateChatButtonReqBodyBuilder{}
	return builder
}

// 用户 ID 列表
//
//示例值：
func (builder *UpdateChatButtonReqBodyBuilder) UserIds(userIds []string) *UpdateChatButtonReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

// 群 ID
//
//示例值：oc_a0553eda9014c201e6969b478895c230
func (builder *UpdateChatButtonReqBodyBuilder) ChatId(chatId string) *UpdateChatButtonReqBodyBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

// 按钮
//
//示例值：
func (builder *UpdateChatButtonReqBodyBuilder) Buttons(buttons *OpenAppFeedCardButtons) *UpdateChatButtonReqBodyBuilder {
	builder.buttons = buttons
	builder.buttonsFlag = true
	return builder
}

func (builder *UpdateChatButtonReqBodyBuilder) Build() *UpdateChatButtonReqBody {
	req := &UpdateChatButtonReqBody{}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	if builder.chatIdFlag {
		req.ChatId = &builder.chatId
	}
	if builder.buttonsFlag {
		req.Buttons = builder.buttons
	}
	return req
}

type UpdateChatButtonPathReqBodyBuilder struct {
	userIds     []string
	userIdsFlag bool
	chatId      string
	chatIdFlag  bool
	buttons     *OpenAppFeedCardButtons
	buttonsFlag bool
	botId       string
	botIdFlag   bool
}

func NewUpdateChatButtonPathReqBodyBuilder() *UpdateChatButtonPathReqBodyBuilder {
	builder := &UpdateChatButtonPathReqBodyBuilder{}
	return builder
}

// 用户 ID 列表
//
// 示例值：
func (builder *UpdateChatButtonPathReqBodyBuilder) UserIds(userIds []string) *UpdateChatButtonPathReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

// 群 ID
//
// 示例值：oc_a0553eda9014c201e6969b478895c230
func (builder *UpdateChatButtonPathReqBodyBuilder) ChatId(chatId string) *UpdateChatButtonPathReqBodyBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

// 按钮
//
// 示例值：
func (builder *UpdateChatButtonPathReqBodyBuilder) Buttons(buttons *OpenAppFeedCardButtons) *UpdateChatButtonPathReqBodyBuilder {
	builder.buttons = buttons
	builder.buttonsFlag = true
	return builder
}

func (builder *UpdateChatButtonPathReqBodyBuilder) Build() (*UpdateChatButtonReqBody, error) {
	req := &UpdateChatButtonReqBody{}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	if builder.chatIdFlag {
		req.ChatId = &builder.chatId
	}
	if builder.buttonsFlag {
		req.Buttons = builder.buttons
	}
	return req, nil
}

type UpdateChatButtonReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *UpdateChatButtonReqBody
}

func NewUpdateChatButtonReqBuilder() *UpdateChatButtonReqBuilder {
	builder := &UpdateChatButtonReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 用户 ID 类型
//
// 示例值：open_id
func (builder *UpdateChatButtonReqBuilder) UserIdType(userIdType string) *UpdateChatButtonReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *UpdateChatButtonReqBuilder) Body(body *UpdateChatButtonReqBody) *UpdateChatButtonReqBuilder {
	builder.body = body
	return builder
}

func (builder *UpdateChatButtonReqBuilder) Build() *UpdateChatButtonReq {
	req := &UpdateChatButtonReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type UpdateChatButtonReqBody struct {
	UserIds []string `json:"user_ids,omitempty"` // 用户 ID 列表

	ChatId *string `json:"chat_id,omitempty"` // 群 ID

	Buttons *OpenAppFeedCardButtons `json:"buttons,omitempty"` // 按钮

	BotId *string `json:"bot_id,omitempty"` // Bot id
}

type UpdateChatButtonReq struct {
	apiReq *larkcore.ApiReq
	Body   *UpdateChatButtonReqBody `body:""`
}

type UpdateChatButtonRespData struct {
	FailedUserReasons []*FailedReason `json:"failed_user_reasons,omitempty"` // 失败的用户
}

type UpdateChatButtonResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *UpdateChatButtonRespData `json:"data"` // 业务数据
}

func (resp *UpdateChatButtonResp) Success() bool {
	return resp.Code == 0
}

type BotTimeSentiveFeedCardReqBodyBuilder struct {
	botId     string // 机器人id
	botIdFlag bool

	timeSensitive     bool // 临时置顶状态，true-打开，false-关闭
	timeSensitiveFlag bool

	userIds     []string // 用户id 列表
	userIdsFlag bool
}

func NewBotTimeSentiveFeedCardReqBodyBuilder() *BotTimeSentiveFeedCardReqBodyBuilder {
	builder := &BotTimeSentiveFeedCardReqBodyBuilder{}
	return builder
}

// 临时置顶状态，true-打开，false-关闭
//
//示例值：true
func (builder *BotTimeSentiveFeedCardReqBodyBuilder) TimeSensitive(timeSensitive bool) *BotTimeSentiveFeedCardReqBodyBuilder {
	builder.timeSensitive = timeSensitive
	builder.timeSensitiveFlag = true
	return builder
}

// 用户id 列表
//
//示例值：
func (builder *BotTimeSentiveFeedCardReqBodyBuilder) UserIds(userIds []string) *BotTimeSentiveFeedCardReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

func (builder *BotTimeSentiveFeedCardReqBodyBuilder) Build() *BotTimeSentiveFeedCardReqBody {
	req := &BotTimeSentiveFeedCardReqBody{}
	if builder.timeSensitiveFlag {
		req.TimeSensitive = &builder.timeSensitive
	}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	return req
}

type BotTimeSentiveFeedCardPathReqBodyBuilder struct {
	botId             string
	botIdFlag         bool
	timeSensitive     bool
	timeSensitiveFlag bool
	userIds           []string
	userIdsFlag       bool
}

func NewBotTimeSentiveFeedCardPathReqBodyBuilder() *BotTimeSentiveFeedCardPathReqBodyBuilder {
	builder := &BotTimeSentiveFeedCardPathReqBodyBuilder{}
	return builder
}

// 临时置顶状态，true-打开，false-关闭
//
// 示例值：true
func (builder *BotTimeSentiveFeedCardPathReqBodyBuilder) TimeSensitive(timeSensitive bool) *BotTimeSentiveFeedCardPathReqBodyBuilder {
	builder.timeSensitive = timeSensitive
	builder.timeSensitiveFlag = true
	return builder
}

// 用户id 列表
//
// 示例值：
func (builder *BotTimeSentiveFeedCardPathReqBodyBuilder) UserIds(userIds []string) *BotTimeSentiveFeedCardPathReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

func (builder *BotTimeSentiveFeedCardPathReqBodyBuilder) Build() (*BotTimeSentiveFeedCardReqBody, error) {
	req := &BotTimeSentiveFeedCardReqBody{}
	if builder.timeSensitiveFlag {
		req.TimeSensitive = &builder.timeSensitive
	}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	return req, nil
}

type BotTimeSentiveFeedCardReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BotTimeSentiveFeedCardReqBody
}

func NewBotTimeSentiveFeedCardReqBuilder() *BotTimeSentiveFeedCardReqBuilder {
	builder := &BotTimeSentiveFeedCardReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 此次调用中使用的用户ID的类型 可选值有:	 - open_id: 以open_id来识别用户	 - user_id: 以user_id来识别用户	 - union_id: 以union_id来识别用户
//
// 示例值：open_id
func (builder *BotTimeSentiveFeedCardReqBuilder) UserIdType(userIdType string) *BotTimeSentiveFeedCardReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *BotTimeSentiveFeedCardReqBuilder) Body(body *BotTimeSentiveFeedCardReqBody) *BotTimeSentiveFeedCardReqBuilder {
	builder.body = body
	return builder
}

func (builder *BotTimeSentiveFeedCardReqBuilder) Build() *BotTimeSentiveFeedCardReq {
	req := &BotTimeSentiveFeedCardReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type BotTimeSentiveFeedCardReqBody struct {
	BotId *string `json:"bot_id,omitempty"` // 机器人id

	TimeSensitive *bool `json:"time_sensitive,omitempty"` // 临时置顶状态，true-打开，false-关闭

	UserIds []string `json:"user_ids,omitempty"` // 用户id 列表
}

type BotTimeSentiveFeedCardReq struct {
	apiReq *larkcore.ApiReq
	Body   *BotTimeSentiveFeedCardReqBody `body:""`
}

type BotTimeSentiveFeedCardRespData struct {
	FailedUserReasons []*FailedReason `json:"failed_user_reasons,omitempty"` // 失败原因
}

type BotTimeSentiveFeedCardResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *BotTimeSentiveFeedCardRespData `json:"data"` // 业务数据
}

func (resp *BotTimeSentiveFeedCardResp) Success() bool {
	return resp.Code == 0
}

type PatchFeedCardReqBodyBuilder struct {
	timeSensitive     bool // 临时置顶状态，true-打开，false-关闭
	timeSensitiveFlag bool

	userIds     []string // 用户id 列表
	userIdsFlag bool
}

func NewPatchFeedCardReqBodyBuilder() *PatchFeedCardReqBodyBuilder {
	builder := &PatchFeedCardReqBodyBuilder{}
	return builder
}

// 临时置顶状态，true-打开，false-关闭
//
//示例值：true
func (builder *PatchFeedCardReqBodyBuilder) TimeSensitive(timeSensitive bool) *PatchFeedCardReqBodyBuilder {
	builder.timeSensitive = timeSensitive
	builder.timeSensitiveFlag = true
	return builder
}

// 用户id 列表
//
//示例值：
func (builder *PatchFeedCardReqBodyBuilder) UserIds(userIds []string) *PatchFeedCardReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

func (builder *PatchFeedCardReqBodyBuilder) Build() *PatchFeedCardReqBody {
	req := &PatchFeedCardReqBody{}
	if builder.timeSensitiveFlag {
		req.TimeSensitive = &builder.timeSensitive
	}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	return req
}

type PatchFeedCardPathReqBodyBuilder struct {
	timeSensitive     bool
	timeSensitiveFlag bool
	userIds           []string
	userIdsFlag       bool
}

func NewPatchFeedCardPathReqBodyBuilder() *PatchFeedCardPathReqBodyBuilder {
	builder := &PatchFeedCardPathReqBodyBuilder{}
	return builder
}

// 临时置顶状态，true-打开，false-关闭
//
// 示例值：true
func (builder *PatchFeedCardPathReqBodyBuilder) TimeSensitive(timeSensitive bool) *PatchFeedCardPathReqBodyBuilder {
	builder.timeSensitive = timeSensitive
	builder.timeSensitiveFlag = true
	return builder
}

// 用户id 列表
//
// 示例值：
func (builder *PatchFeedCardPathReqBodyBuilder) UserIds(userIds []string) *PatchFeedCardPathReqBodyBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

func (builder *PatchFeedCardPathReqBodyBuilder) Build() (*PatchFeedCardReqBody, error) {
	req := &PatchFeedCardReqBody{}
	if builder.timeSensitiveFlag {
		req.TimeSensitive = &builder.timeSensitive
	}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	return req, nil
}

type PatchFeedCardReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *PatchFeedCardReqBody
}

func NewPatchFeedCardReqBuilder() *PatchFeedCardReqBuilder {
	builder := &PatchFeedCardReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// 群id，现只支持群
//
// 示例值：oc_679eaeb583654bff73fefcc6e6371370
func (builder *PatchFeedCardReqBuilder) FeedCardId(feedCardId string) *PatchFeedCardReqBuilder {
	builder.apiReq.PathParams.Set("feed_card_id", fmt.Sprint(feedCardId))
	return builder
}

// 此次调用中使用的用户ID的类型 可选值有:	 - open_id: 以open_id来识别用户	 - user_id: 以user_id来识别用户	 - union_id: 以union_id来识别用户
//
// 示例值：open_id
func (builder *PatchFeedCardReqBuilder) UserIdType(userIdType string) *PatchFeedCardReqBuilder {
	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
	return builder
}

//
func (builder *PatchFeedCardReqBuilder) Body(body *PatchFeedCardReqBody) *PatchFeedCardReqBuilder {
	builder.body = body
	return builder
}

func (builder *PatchFeedCardReqBuilder) Build() *PatchFeedCardReq {
	req := &PatchFeedCardReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.QueryParams = builder.apiReq.QueryParams
	req.apiReq.Body = builder.body
	return req
}

type PatchFeedCardReqBody struct {
	TimeSensitive *bool `json:"time_sensitive,omitempty"` // 临时置顶状态，true-打开，false-关闭

	UserIds []string `json:"user_ids,omitempty"` // 用户id 列表
}

type PatchFeedCardReq struct {
	apiReq *larkcore.ApiReq
	Body   *PatchFeedCardReqBody `body:""`
}

type PatchFeedCardRespData struct {
	FailedUserReasons []*FailedReason `json:"failed_user_reasons,omitempty"` // 失败原因
}

type PatchFeedCardResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *PatchFeedCardRespData `json:"data"` // 业务数据
}

func (resp *PatchFeedCardResp) Success() bool {
	return resp.Code == 0
}

type CreateTagReqBodyBuilder struct {
	createTag     *CreateTag // 创建标签
	createTagFlag bool

	botId     string // 机器人id
	botIdFlag bool
}

func NewCreateTagReqBodyBuilder() *CreateTagReqBodyBuilder {
	builder := &CreateTagReqBodyBuilder{}
	return builder
}

// 创建标签
//
//示例值：
func (builder *CreateTagReqBodyBuilder) CreateTag(createTag *CreateTag) *CreateTagReqBodyBuilder {
	builder.createTag = createTag
	builder.createTagFlag = true
	return builder
}

func (builder *CreateTagReqBodyBuilder) Build() *CreateTagReqBody {
	req := &CreateTagReqBody{}
	if builder.createTagFlag {
		req.CreateTag = builder.createTag
	}
	return req
}

type CreateTagPathReqBodyBuilder struct {
	createTag     *CreateTag
	createTagFlag bool
	botId         string
	botIdFlag     bool
}

func NewCreateTagPathReqBodyBuilder() *CreateTagPathReqBodyBuilder {
	builder := &CreateTagPathReqBodyBuilder{}
	return builder
}

// 创建标签
//
// 示例值：
func (builder *CreateTagPathReqBodyBuilder) CreateTag(createTag *CreateTag) *CreateTagPathReqBodyBuilder {
	builder.createTag = createTag
	builder.createTagFlag = true
	return builder
}

func (builder *CreateTagPathReqBodyBuilder) Build() (*CreateTagReqBody, error) {
	req := &CreateTagReqBody{}
	if builder.createTagFlag {
		req.CreateTag = builder.createTag
	}
	return req, nil
}

type CreateTagReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *CreateTagReqBody
}

func NewCreateTagReqBuilder() *CreateTagReqBuilder {
	builder := &CreateTagReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *CreateTagReqBuilder) Body(body *CreateTagReqBody) *CreateTagReqBuilder {
	builder.body = body
	return builder
}

func (builder *CreateTagReqBuilder) Build() *CreateTagReq {
	req := &CreateTagReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type CreateTagReqBody struct {
	CreateTag *CreateTag `json:"create_tag,omitempty"` // 创建标签

	BotId *string `json:"bot_id,omitempty"` // 机器人id
}

type CreateTagReq struct {
	apiReq *larkcore.ApiReq
	Body   *CreateTagReqBody `body:""`
}

type CreateTagRespData struct {
	Id *string `json:"id,omitempty"` // 创建的tagid

	CreateTagFailReason *CreateTagFailReason `json:"create_tag_fail_reason,omitempty"` // 创建失败原因
}

type CreateTagResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *CreateTagRespData `json:"data"` // 业务数据
}

func (resp *CreateTagResp) Success() bool {
	return resp.Code == 0
}

type PatchTagReqBodyBuilder struct {
	patchTag     *PatchTag // 编辑标签
	patchTagFlag bool

	botId     string // 机器人id
	botIdFlag bool
}

func NewPatchTagReqBodyBuilder() *PatchTagReqBodyBuilder {
	builder := &PatchTagReqBodyBuilder{}
	return builder
}

// 编辑标签
//
//示例值：
func (builder *PatchTagReqBodyBuilder) PatchTag(patchTag *PatchTag) *PatchTagReqBodyBuilder {
	builder.patchTag = patchTag
	builder.patchTagFlag = true
	return builder
}

func (builder *PatchTagReqBodyBuilder) Build() *PatchTagReqBody {
	req := &PatchTagReqBody{}
	if builder.patchTagFlag {
		req.PatchTag = builder.patchTag
	}
	return req
}

type PatchTagPathReqBodyBuilder struct {
	patchTag     *PatchTag
	patchTagFlag bool
	botId        string
	botIdFlag    bool
}

func NewPatchTagPathReqBodyBuilder() *PatchTagPathReqBodyBuilder {
	builder := &PatchTagPathReqBodyBuilder{}
	return builder
}

// 编辑标签
//
// 示例值：
func (builder *PatchTagPathReqBodyBuilder) PatchTag(patchTag *PatchTag) *PatchTagPathReqBodyBuilder {
	builder.patchTag = patchTag
	builder.patchTagFlag = true
	return builder
}

func (builder *PatchTagPathReqBodyBuilder) Build() (*PatchTagReqBody, error) {
	req := &PatchTagReqBody{}
	if builder.patchTagFlag {
		req.PatchTag = builder.patchTag
	}
	return req, nil
}

type PatchTagReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *PatchTagReqBody
}

func NewPatchTagReqBuilder() *PatchTagReqBuilder {
	builder := &PatchTagReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

// tagid
//
// 示例值：716168xxxxx
func (builder *PatchTagReqBuilder) TagId(tagId string) *PatchTagReqBuilder {
	builder.apiReq.PathParams.Set("tag_id", fmt.Sprint(tagId))
	return builder
}

//
func (builder *PatchTagReqBuilder) Body(body *PatchTagReqBody) *PatchTagReqBuilder {
	builder.body = body
	return builder
}

func (builder *PatchTagReqBuilder) Build() *PatchTagReq {
	req := &PatchTagReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.PathParams = builder.apiReq.PathParams
	req.apiReq.Body = builder.body
	return req
}

type PatchTagReqBody struct {
	PatchTag *PatchTag `json:"patch_tag,omitempty"` // 编辑标签

	BotId *string `json:"bot_id,omitempty"` // 机器人id
}

type PatchTagReq struct {
	apiReq *larkcore.ApiReq
	Body   *PatchTagReqBody `body:""`
}

type PatchTagRespData struct {
	TagInfo *TagInfo `json:"tag_info,omitempty"` // 编辑后的taginfo

	PatchTagFailReason *PatchTagFailReason `json:"patch_tag_fail_reason,omitempty"` // 修改失败原因
}

type PatchTagResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
	Data *PatchTagRespData `json:"data"` // 业务数据
}

func (resp *PatchTagResp) Success() bool {
	return resp.Code == 0
}

type BatchUpdateUrlPreviewReqBodyBuilder struct {
	previewTokens     []string // URL预览的token列表
	previewTokensFlag bool

	openIds     []string // 需要更新URL预览的用户open_id。若不传，则默认更新URL所在会话成员；若用户不在URL所在会话，则无法更新该用户
	openIdsFlag bool
}

func NewBatchUpdateUrlPreviewReqBodyBuilder() *BatchUpdateUrlPreviewReqBodyBuilder {
	builder := &BatchUpdateUrlPreviewReqBodyBuilder{}
	return builder
}

// URL预览的token列表
//
//示例值：
func (builder *BatchUpdateUrlPreviewReqBodyBuilder) PreviewTokens(previewTokens []string) *BatchUpdateUrlPreviewReqBodyBuilder {
	builder.previewTokens = previewTokens
	builder.previewTokensFlag = true
	return builder
}

// 需要更新URL预览的用户open_id。若不传，则默认更新URL所在会话成员；若用户不在URL所在会话，则无法更新该用户
//
//示例值：
func (builder *BatchUpdateUrlPreviewReqBodyBuilder) OpenIds(openIds []string) *BatchUpdateUrlPreviewReqBodyBuilder {
	builder.openIds = openIds
	builder.openIdsFlag = true
	return builder
}

func (builder *BatchUpdateUrlPreviewReqBodyBuilder) Build() *BatchUpdateUrlPreviewReqBody {
	req := &BatchUpdateUrlPreviewReqBody{}
	if builder.previewTokensFlag {
		req.PreviewTokens = builder.previewTokens
	}
	if builder.openIdsFlag {
		req.OpenIds = builder.openIds
	}
	return req
}

type BatchUpdateUrlPreviewPathReqBodyBuilder struct {
	previewTokens     []string
	previewTokensFlag bool
	openIds           []string
	openIdsFlag       bool
}

func NewBatchUpdateUrlPreviewPathReqBodyBuilder() *BatchUpdateUrlPreviewPathReqBodyBuilder {
	builder := &BatchUpdateUrlPreviewPathReqBodyBuilder{}
	return builder
}

// URL预览的token列表
//
// 示例值：
func (builder *BatchUpdateUrlPreviewPathReqBodyBuilder) PreviewTokens(previewTokens []string) *BatchUpdateUrlPreviewPathReqBodyBuilder {
	builder.previewTokens = previewTokens
	builder.previewTokensFlag = true
	return builder
}

// 需要更新URL预览的用户open_id。若不传，则默认更新URL所在会话成员；若用户不在URL所在会话，则无法更新该用户
//
// 示例值：
func (builder *BatchUpdateUrlPreviewPathReqBodyBuilder) OpenIds(openIds []string) *BatchUpdateUrlPreviewPathReqBodyBuilder {
	builder.openIds = openIds
	builder.openIdsFlag = true
	return builder
}

func (builder *BatchUpdateUrlPreviewPathReqBodyBuilder) Build() (*BatchUpdateUrlPreviewReqBody, error) {
	req := &BatchUpdateUrlPreviewReqBody{}
	if builder.previewTokensFlag {
		req.PreviewTokens = builder.previewTokens
	}
	if builder.openIdsFlag {
		req.OpenIds = builder.openIds
	}
	return req, nil
}

type BatchUpdateUrlPreviewReqBuilder struct {
	apiReq *larkcore.ApiReq
	body   *BatchUpdateUrlPreviewReqBody
}

func NewBatchUpdateUrlPreviewReqBuilder() *BatchUpdateUrlPreviewReqBuilder {
	builder := &BatchUpdateUrlPreviewReqBuilder{}
	builder.apiReq = &larkcore.ApiReq{
		PathParams:  larkcore.PathParams{},
		QueryParams: larkcore.QueryParams{},
	}
	return builder
}

//
func (builder *BatchUpdateUrlPreviewReqBuilder) Body(body *BatchUpdateUrlPreviewReqBody) *BatchUpdateUrlPreviewReqBuilder {
	builder.body = body
	return builder
}

func (builder *BatchUpdateUrlPreviewReqBuilder) Build() *BatchUpdateUrlPreviewReq {
	req := &BatchUpdateUrlPreviewReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.body
	return req
}

type BatchUpdateUrlPreviewReqBody struct {
	PreviewTokens []string `json:"preview_tokens,omitempty"` // URL预览的token列表

	OpenIds []string `json:"open_ids,omitempty"` // 需要更新URL预览的用户open_id。若不传，则默认更新URL所在会话成员；若用户不在URL所在会话，则无法更新该用户
}

type BatchUpdateUrlPreviewReq struct {
	apiReq *larkcore.ApiReq
	Body   *BatchUpdateUrlPreviewReqBody `body:""`
}

type BatchUpdateUrlPreviewResp struct {
	*larkcore.ApiResp `json:"-"`
	larkcore.CodeError
}

func (resp *BatchUpdateUrlPreviewResp) Success() bool {
	return resp.Code == 0
}
