// Package security_and_compliance 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 larksecurity_and_compliance

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

type AdminLog struct {
	UniqueId *string `json:"unique_id,omitempty"` // 唯一id

	UserId *string `json:"user_id,omitempty"` // 管理员id

	CategoryName *string `json:"category_name,omitempty"` // 一级类目

	EventName *string `json:"event_name,omitempty"` // 事件名称

	IpAddress *string `json:"ip_address,omitempty"` // ip地址

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

	Content *string `json:"content,omitempty"` // 事件详情

	OperationStatus *int `json:"operation_status,omitempty"` // 操作状态
}

type AdminLogBuilder struct {
	uniqueId     string // 唯一id
	uniqueIdFlag bool

	userId     string // 管理员id
	userIdFlag bool

	categoryName     string // 一级类目
	categoryNameFlag bool

	eventName     string // 事件名称
	eventNameFlag bool

	ipAddress     string // ip地址
	ipAddressFlag bool

	createTime     string // 创建时间戳
	createTimeFlag bool

	content     string // 事件详情
	contentFlag bool

	operationStatus     int // 操作状态
	operationStatusFlag bool
}

func NewAdminLogBuilder() *AdminLogBuilder {
	builder := &AdminLogBuilder{}
	return builder
}

// 唯一id
//
// 示例值：1
func (builder *AdminLogBuilder) UniqueId(uniqueId string) *AdminLogBuilder {
	builder.uniqueId = uniqueId
	builder.uniqueIdFlag = true
	return builder
}

// 管理员id
//
// 示例值：1
func (builder *AdminLogBuilder) UserId(userId string) *AdminLogBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 一级类目
//
// 示例值：1
func (builder *AdminLogBuilder) CategoryName(categoryName string) *AdminLogBuilder {
	builder.categoryName = categoryName
	builder.categoryNameFlag = true
	return builder
}

// 事件名称
//
// 示例值：1
func (builder *AdminLogBuilder) EventName(eventName string) *AdminLogBuilder {
	builder.eventName = eventName
	builder.eventNameFlag = true
	return builder
}

// ip地址
//
// 示例值：1.0.0.127
func (builder *AdminLogBuilder) IpAddress(ipAddress string) *AdminLogBuilder {
	builder.ipAddress = ipAddress
	builder.ipAddressFlag = true
	return builder
}

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

// 事件详情
//
// 示例值：content
func (builder *AdminLogBuilder) Content(content string) *AdminLogBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 操作状态
//
// 示例值：1
func (builder *AdminLogBuilder) OperationStatus(operationStatus int) *AdminLogBuilder {
	builder.operationStatus = operationStatus
	builder.operationStatusFlag = true
	return builder
}

func (builder *AdminLogBuilder) Build() *AdminLog {
	req := &AdminLog{}
	if builder.uniqueIdFlag {
		req.UniqueId = &builder.uniqueId

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

	}
	if builder.categoryNameFlag {
		req.CategoryName = &builder.categoryName

	}
	if builder.eventNameFlag {
		req.EventName = &builder.eventName

	}
	if builder.ipAddressFlag {
		req.IpAddress = &builder.ipAddress

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

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.operationStatusFlag {
		req.OperationStatus = &builder.operationStatus

	}
	return req
}

type ApiAuditCommonDrawers struct {
	CommonDrawInfoList []*ApiAuditDrawerInfo `json:"common_draw_info_list,omitempty"` // 扩展字段信息
}

type ApiAuditCommonDrawersBuilder struct {
	commonDrawInfoList     []*ApiAuditDrawerInfo // 扩展字段信息
	commonDrawInfoListFlag bool
}

func NewApiAuditCommonDrawersBuilder() *ApiAuditCommonDrawersBuilder {
	builder := &ApiAuditCommonDrawersBuilder{}
	return builder
}

// 扩展字段信息
//
// 示例值：
func (builder *ApiAuditCommonDrawersBuilder) CommonDrawInfoList(commonDrawInfoList []*ApiAuditDrawerInfo) *ApiAuditCommonDrawersBuilder {
	builder.commonDrawInfoList = commonDrawInfoList
	builder.commonDrawInfoListFlag = true
	return builder
}

func (builder *ApiAuditCommonDrawersBuilder) Build() *ApiAuditCommonDrawers {
	req := &ApiAuditCommonDrawers{}
	if builder.commonDrawInfoListFlag {
		req.CommonDrawInfoList = builder.commonDrawInfoList
	}
	return req
}

type ApiAuditDrawerInfo struct {
	InfoKey *string `json:"info_key,omitempty"` // key信息

	InfoVal *string `json:"info_val,omitempty"` // val值

	KeyI18nKey *string `json:"key_i18n_key,omitempty"` // key对应的i18nkey

	ValType *string `json:"val_type,omitempty"` // val类型

	ValI18nKey *string `json:"val_i18n_key,omitempty"` // val对应的i18nkey
}

type ApiAuditDrawerInfoBuilder struct {
	infoKey     string // key信息
	infoKeyFlag bool

	infoVal     string // val值
	infoValFlag bool

	keyI18nKey     string // key对应的i18nkey
	keyI18nKeyFlag bool

	valType     string // val类型
	valTypeFlag bool

	valI18nKey     string // val对应的i18nkey
	valI18nKeyFlag bool
}

func NewApiAuditDrawerInfoBuilder() *ApiAuditDrawerInfoBuilder {
	builder := &ApiAuditDrawerInfoBuilder{}
	return builder
}

// key信息
//
// 示例值：k
func (builder *ApiAuditDrawerInfoBuilder) InfoKey(infoKey string) *ApiAuditDrawerInfoBuilder {
	builder.infoKey = infoKey
	builder.infoKeyFlag = true
	return builder
}

// val值
//
// 示例值：v
func (builder *ApiAuditDrawerInfoBuilder) InfoVal(infoVal string) *ApiAuditDrawerInfoBuilder {
	builder.infoVal = infoVal
	builder.infoValFlag = true
	return builder
}

// key对应的i18nkey
//
// 示例值：
func (builder *ApiAuditDrawerInfoBuilder) KeyI18nKey(keyI18nKey string) *ApiAuditDrawerInfoBuilder {
	builder.keyI18nKey = keyI18nKey
	builder.keyI18nKeyFlag = true
	return builder
}

// val类型
//
// 示例值：1
func (builder *ApiAuditDrawerInfoBuilder) ValType(valType string) *ApiAuditDrawerInfoBuilder {
	builder.valType = valType
	builder.valTypeFlag = true
	return builder
}

// val对应的i18nkey
//
// 示例值：
func (builder *ApiAuditDrawerInfoBuilder) ValI18nKey(valI18nKey string) *ApiAuditDrawerInfoBuilder {
	builder.valI18nKey = valI18nKey
	builder.valI18nKeyFlag = true
	return builder
}

func (builder *ApiAuditDrawerInfoBuilder) Build() *ApiAuditDrawerInfo {
	req := &ApiAuditDrawerInfo{}
	if builder.infoKeyFlag {
		req.InfoKey = &builder.infoKey

	}
	if builder.infoValFlag {
		req.InfoVal = &builder.infoVal

	}
	if builder.keyI18nKeyFlag {
		req.KeyI18nKey = &builder.keyI18nKey

	}
	if builder.valTypeFlag {
		req.ValType = &builder.valType

	}
	if builder.valI18nKeyFlag {
		req.ValI18nKey = &builder.valI18nKey

	}
	return req
}

type AppDlpExecuteLog struct {
	EventName *string `json:"event_name,omitempty"` // 事件名称

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

	ExecuteTime *string `json:"execute_time,omitempty"` // 执行时间

	ActionName *string `json:"action_name,omitempty"` // 执行动作

	HitPolicies []string `json:"hit_policies,omitempty"` // 命中策略列表

	EntityId *string `json:"entity_id,omitempty"` // 指令id

	Evidences *DlpExecuteEvidence `json:"evidences,omitempty"` // 证据
}

type AppDlpExecuteLogBuilder struct {
	eventName     string // 事件名称
	eventNameFlag bool

	userId     string // 用户的open_id
	userIdFlag bool

	executeTime     string // 执行时间
	executeTimeFlag bool

	actionName     string // 执行动作
	actionNameFlag bool

	hitPolicies     []string // 命中策略列表
	hitPoliciesFlag bool

	entityId     string // 指令id
	entityIdFlag bool

	evidences     *DlpExecuteEvidence // 证据
	evidencesFlag bool
}

func NewAppDlpExecuteLogBuilder() *AppDlpExecuteLogBuilder {
	builder := &AppDlpExecuteLogBuilder{}
	return builder
}

// 事件名称
//
// 示例值："MYAIDLP"
func (builder *AppDlpExecuteLogBuilder) EventName(eventName string) *AppDlpExecuteLogBuilder {
	builder.eventName = eventName
	builder.eventNameFlag = true
	return builder
}

// 用户的open_id
//
// 示例值："ou_04444ce34fe049fb495d150dddeac36a"
func (builder *AppDlpExecuteLogBuilder) UserId(userId string) *AppDlpExecuteLogBuilder {
	builder.userId = userId
	builder.userIdFlag = true
	return builder
}

// 执行时间
//
// 示例值：1689685605
func (builder *AppDlpExecuteLogBuilder) ExecuteTime(executeTime string) *AppDlpExecuteLogBuilder {
	builder.executeTime = executeTime
	builder.executeTimeFlag = true
	return builder
}

// 执行动作
//
// 示例值："拦截"
func (builder *AppDlpExecuteLogBuilder) ActionName(actionName string) *AppDlpExecuteLogBuilder {
	builder.actionName = actionName
	builder.actionNameFlag = true
	return builder
}

// 命中策略列表
//
// 示例值：
func (builder *AppDlpExecuteLogBuilder) HitPolicies(hitPolicies []string) *AppDlpExecuteLogBuilder {
	builder.hitPolicies = hitPolicies
	builder.hitPoliciesFlag = true
	return builder
}

// 指令id
//
// 示例值："7d8a6e6df7621556ce0d21922b676706ccs"
func (builder *AppDlpExecuteLogBuilder) EntityId(entityId string) *AppDlpExecuteLogBuilder {
	builder.entityId = entityId
	builder.entityIdFlag = true
	return builder
}

// 证据
//
// 示例值：
func (builder *AppDlpExecuteLogBuilder) Evidences(evidences *DlpExecuteEvidence) *AppDlpExecuteLogBuilder {
	builder.evidences = evidences
	builder.evidencesFlag = true
	return builder
}

func (builder *AppDlpExecuteLogBuilder) Build() *AppDlpExecuteLog {
	req := &AppDlpExecuteLog{}
	if builder.eventNameFlag {
		req.EventName = &builder.eventName

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

	}
	if builder.executeTimeFlag {
		req.ExecuteTime = &builder.executeTime

	}
	if builder.actionNameFlag {
		req.ActionName = &builder.actionName

	}
	if builder.hitPoliciesFlag {
		req.HitPolicies = builder.hitPolicies
	}
	if builder.entityIdFlag {
		req.EntityId = &builder.entityId

	}
	if builder.evidencesFlag {
		req.Evidences = builder.evidences
	}
	return req
}

type AuditAndroidContext struct {
	Udid *string `json:"udid,omitempty"` // UDID

	Did *string `json:"did,omitempty"` // 设备ID

	AppVer *string `json:"app_ver,omitempty"` // app的版本

	Ver *string `json:"ver,omitempty"` // SecSDK版本

	Region *string `json:"region,omitempty"` // 设备语言

	IdI *string `json:"id_i,omitempty"` // 安卓版本号

	IdR *string `json:"id_r,omitempty"` // 安卓版本

	HwBrand *string `json:"hw_brand,omitempty"` // Brand

	HwManuf *string `json:"hw_manuf,omitempty"` // 制造商

	Wifip *string `json:"wifip,omitempty"` // wifi ip

	RouteIip *string `json:"route_iip,omitempty"` // 路由IP

	RouteGip *string `json:"route_gip,omitempty"` // 路由网关IP

	EnvSu *string `json:"env_su,omitempty"` // 表示当前是否root

	EnvTz *string `json:"env_tz,omitempty"` // 手机系统时区

	EnvMl *string `json:"env_ml,omitempty"` // 手机系统语言

	Location *string `json:"location,omitempty"` // GPS经纬度

	ActiveIp *string `json:"active_ip,omitempty"` // 当前设备活跃ip

	ActiveIpDetail *string `json:"active_ip_detail,omitempty"` // 当前设备活跃ip对应网卡类型

	CellBaseStation *string `json:"cell_base_station,omitempty"` // 基站信息

	IP *string `json:"IP,omitempty"` // 公网ip
}

type AuditAndroidContextBuilder struct {
	udid     string // UDID
	udidFlag bool

	did     string // 设备ID
	didFlag bool

	appVer     string // app的版本
	appVerFlag bool

	ver     string // SecSDK版本
	verFlag bool

	region     string // 设备语言
	regionFlag bool

	idI     string // 安卓版本号
	idIFlag bool

	idR     string // 安卓版本
	idRFlag bool

	hwBrand     string // Brand
	hwBrandFlag bool

	hwManuf     string // 制造商
	hwManufFlag bool

	wifip     string // wifi ip
	wifipFlag bool

	routeIip     string // 路由IP
	routeIipFlag bool

	routeGip     string // 路由网关IP
	routeGipFlag bool

	envSu     string // 表示当前是否root
	envSuFlag bool

	envTz     string // 手机系统时区
	envTzFlag bool

	envMl     string // 手机系统语言
	envMlFlag bool

	location     string // GPS经纬度
	locationFlag bool

	activeIp     string // 当前设备活跃ip
	activeIpFlag bool

	activeIpDetail     string // 当前设备活跃ip对应网卡类型
	activeIpDetailFlag bool

	cellBaseStation     string // 基站信息
	cellBaseStationFlag bool

	iP     string // 公网ip
	iPFlag bool
}

func NewAuditAndroidContextBuilder() *AuditAndroidContextBuilder {
	builder := &AuditAndroidContextBuilder{}
	return builder
}

// UDID
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Udid(udid string) *AuditAndroidContextBuilder {
	builder.udid = udid
	builder.udidFlag = true
	return builder
}

// 设备ID
//
// 示例值：7204623689634104876
func (builder *AuditAndroidContextBuilder) Did(did string) *AuditAndroidContextBuilder {
	builder.did = did
	builder.didFlag = true
	return builder
}

// app的版本
//
// 示例值：7.26.0-beta3
func (builder *AuditAndroidContextBuilder) AppVer(appVer string) *AuditAndroidContextBuilder {
	builder.appVer = appVer
	builder.appVerFlag = true
	return builder
}

// SecSDK版本
//
// 示例值：3.0.0.0
func (builder *AuditAndroidContextBuilder) Ver(ver string) *AuditAndroidContextBuilder {
	builder.ver = ver
	builder.verFlag = true
	return builder
}

// 设备语言
//
// 示例值：zh_CN
func (builder *AuditAndroidContextBuilder) Region(region string) *AuditAndroidContextBuilder {
	builder.region = region
	builder.regionFlag = true
	return builder
}

// 安卓版本号
//
// 示例值：33
func (builder *AuditAndroidContextBuilder) IdI(idI string) *AuditAndroidContextBuilder {
	builder.idI = idI
	builder.idIFlag = true
	return builder
}

// 安卓版本
//
// 示例值：13
func (builder *AuditAndroidContextBuilder) IdR(idR string) *AuditAndroidContextBuilder {
	builder.idR = idR
	builder.idRFlag = true
	return builder
}

// Brand
//
// 示例值：Xiaomi
func (builder *AuditAndroidContextBuilder) HwBrand(hwBrand string) *AuditAndroidContextBuilder {
	builder.hwBrand = hwBrand
	builder.hwBrandFlag = true
	return builder
}

// 制造商
//
// 示例值：Xiaomi
func (builder *AuditAndroidContextBuilder) HwManuf(hwManuf string) *AuditAndroidContextBuilder {
	builder.hwManuf = hwManuf
	builder.hwManufFlag = true
	return builder
}

// wifi ip
//
// 示例值：1.1.1.1
func (builder *AuditAndroidContextBuilder) Wifip(wifip string) *AuditAndroidContextBuilder {
	builder.wifip = wifip
	builder.wifipFlag = true
	return builder
}

// 路由IP
//
// 示例值：1.1.1.1
func (builder *AuditAndroidContextBuilder) RouteIip(routeIip string) *AuditAndroidContextBuilder {
	builder.routeIip = routeIip
	builder.routeIipFlag = true
	return builder
}

// 路由网关IP
//
// 示例值：1.1.1.1
func (builder *AuditAndroidContextBuilder) RouteGip(routeGip string) *AuditAndroidContextBuilder {
	builder.routeGip = routeGip
	builder.routeGipFlag = true
	return builder
}

// 表示当前是否root
//
// 示例值：0
func (builder *AuditAndroidContextBuilder) EnvSu(envSu string) *AuditAndroidContextBuilder {
	builder.envSu = envSu
	builder.envSuFlag = true
	return builder
}

// 手机系统时区
//
// 示例值：GMT+8:00
func (builder *AuditAndroidContextBuilder) EnvTz(envTz string) *AuditAndroidContextBuilder {
	builder.envTz = envTz
	builder.envTzFlag = true
	return builder
}

// 手机系统语言
//
// 示例值：zh_CN
func (builder *AuditAndroidContextBuilder) EnvMl(envMl string) *AuditAndroidContextBuilder {
	builder.envMl = envMl
	builder.envMlFlag = true
	return builder
}

// GPS经纬度
//
// 示例值：
func (builder *AuditAndroidContextBuilder) Location(location string) *AuditAndroidContextBuilder {
	builder.location = location
	builder.locationFlag = true
	return builder
}

// 当前设备活跃ip
//
// 示例值：1.1.1.1
func (builder *AuditAndroidContextBuilder) ActiveIp(activeIp string) *AuditAndroidContextBuilder {
	builder.activeIp = activeIp
	builder.activeIpFlag = true
	return builder
}

// 当前设备活跃ip对应网卡类型
//
// 示例值：wlan0
func (builder *AuditAndroidContextBuilder) ActiveIpDetail(activeIpDetail string) *AuditAndroidContextBuilder {
	builder.activeIpDetail = activeIpDetail
	builder.activeIpDetailFlag = true
	return builder
}

// 基站信息
//
// 示例值：
func (builder *AuditAndroidContextBuilder) CellBaseStation(cellBaseStation string) *AuditAndroidContextBuilder {
	builder.cellBaseStation = cellBaseStation
	builder.cellBaseStationFlag = true
	return builder
}

// 公网ip
//
// 示例值：1.1.1.1
func (builder *AuditAndroidContextBuilder) IP(iP string) *AuditAndroidContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditAndroidContextBuilder) Build() *AuditAndroidContext {
	req := &AuditAndroidContext{}
	if builder.udidFlag {
		req.Udid = &builder.udid

	}
	if builder.didFlag {
		req.Did = &builder.did

	}
	if builder.appVerFlag {
		req.AppVer = &builder.appVer

	}
	if builder.verFlag {
		req.Ver = &builder.ver

	}
	if builder.regionFlag {
		req.Region = &builder.region

	}
	if builder.idIFlag {
		req.IdI = &builder.idI

	}
	if builder.idRFlag {
		req.IdR = &builder.idR

	}
	if builder.hwBrandFlag {
		req.HwBrand = &builder.hwBrand

	}
	if builder.hwManufFlag {
		req.HwManuf = &builder.hwManuf

	}
	if builder.wifipFlag {
		req.Wifip = &builder.wifip

	}
	if builder.routeIipFlag {
		req.RouteIip = &builder.routeIip

	}
	if builder.routeGipFlag {
		req.RouteGip = &builder.routeGip

	}
	if builder.envSuFlag {
		req.EnvSu = &builder.envSu

	}
	if builder.envTzFlag {
		req.EnvTz = &builder.envTz

	}
	if builder.envMlFlag {
		req.EnvMl = &builder.envMl

	}
	if builder.locationFlag {
		req.Location = &builder.location

	}
	if builder.activeIpFlag {
		req.ActiveIp = &builder.activeIp

	}
	if builder.activeIpDetailFlag {
		req.ActiveIpDetail = &builder.activeIpDetail

	}
	if builder.cellBaseStationFlag {
		req.CellBaseStation = &builder.cellBaseStation

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type AuditContext struct {
	TerminalType *int `json:"terminal_type,omitempty"` // 终端类型

	IosContext *AuditIosContext `json:"ios_context,omitempty"` // ios的环境信息

	PcContext *AuditPcContext `json:"pc_context,omitempty"` // pc的环境信息

	WebContext *AuditWebContext `json:"web_context,omitempty"` // web的环境信息

	AndroidContext *AuditAndroidContext `json:"android_context,omitempty"` // android的环境信息
}

type AuditContextBuilder struct {
	terminalType     int // 终端类型
	terminalTypeFlag bool

	iosContext     *AuditIosContext // ios的环境信息
	iosContextFlag bool

	pcContext     *AuditPcContext // pc的环境信息
	pcContextFlag bool

	webContext     *AuditWebContext // web的环境信息
	webContextFlag bool

	androidContext     *AuditAndroidContext // android的环境信息
	androidContextFlag bool
}

func NewAuditContextBuilder() *AuditContextBuilder {
	builder := &AuditContextBuilder{}
	return builder
}

// 终端类型
//
// 示例值：
func (builder *AuditContextBuilder) TerminalType(terminalType int) *AuditContextBuilder {
	builder.terminalType = terminalType
	builder.terminalTypeFlag = true
	return builder
}

// ios的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) IosContext(iosContext *AuditIosContext) *AuditContextBuilder {
	builder.iosContext = iosContext
	builder.iosContextFlag = true
	return builder
}

// pc的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) PcContext(pcContext *AuditPcContext) *AuditContextBuilder {
	builder.pcContext = pcContext
	builder.pcContextFlag = true
	return builder
}

// web的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) WebContext(webContext *AuditWebContext) *AuditContextBuilder {
	builder.webContext = webContext
	builder.webContextFlag = true
	return builder
}

// android的环境信息
//
// 示例值：
func (builder *AuditContextBuilder) AndroidContext(androidContext *AuditAndroidContext) *AuditContextBuilder {
	builder.androidContext = androidContext
	builder.androidContextFlag = true
	return builder
}

func (builder *AuditContextBuilder) Build() *AuditContext {
	req := &AuditContext{}
	if builder.terminalTypeFlag {
		req.TerminalType = &builder.terminalType

	}
	if builder.iosContextFlag {
		req.IosContext = builder.iosContext
	}
	if builder.pcContextFlag {
		req.PcContext = builder.pcContext
	}
	if builder.webContextFlag {
		req.WebContext = builder.webContext
	}
	if builder.androidContextFlag {
		req.AndroidContext = builder.androidContext
	}
	return req
}

type AuditDetail struct {
	Mc *string `json:"mc,omitempty"` // mac地址

	DeviceModel *string `json:"device_model,omitempty"` // 设备模型

	Os *string `json:"os,omitempty"` // 操作系统

	City *string `json:"city,omitempty"` // ip属地
}

type AuditDetailBuilder struct {
	mc     string // mac地址
	mcFlag bool

	deviceModel     string // 设备模型
	deviceModelFlag bool

	os     string // 操作系统
	osFlag bool

	city     string // ip属地
	cityFlag bool
}

func NewAuditDetailBuilder() *AuditDetailBuilder {
	builder := &AuditDetailBuilder{}
	return builder
}

// mac地址
//
// 示例值：08:00:20:0A:8C:6D
func (builder *AuditDetailBuilder) Mc(mc string) *AuditDetailBuilder {
	builder.mc = mc
	builder.mcFlag = true
	return builder
}

// 设备模型
//
// 示例值：iphone14
func (builder *AuditDetailBuilder) DeviceModel(deviceModel string) *AuditDetailBuilder {
	builder.deviceModel = deviceModel
	builder.deviceModelFlag = true
	return builder
}

// 操作系统
//
// 示例值：mac os
func (builder *AuditDetailBuilder) Os(os string) *AuditDetailBuilder {
	builder.os = os
	builder.osFlag = true
	return builder
}

// ip属地
//
// 示例值：北京
func (builder *AuditDetailBuilder) City(city string) *AuditDetailBuilder {
	builder.city = city
	builder.cityFlag = true
	return builder
}

func (builder *AuditDetailBuilder) Build() *AuditDetail {
	req := &AuditDetail{}
	if builder.mcFlag {
		req.Mc = &builder.mc

	}
	if builder.deviceModelFlag {
		req.DeviceModel = &builder.deviceModel

	}
	if builder.osFlag {
		req.Os = &builder.os

	}
	if builder.cityFlag {
		req.City = &builder.city

	}
	return req
}

type AuditEventExtend struct {
	CommentType *string `json:"comment_type,omitempty"` // 评论类型

	AppDetail *string `json:"app_detail,omitempty"` // app信息

	TwoStepValidation *bool `json:"two_step_validation,omitempty"` // 是否两步验证

	LoginMethod *string `json:"login_method,omitempty"` // 登录方式

	NewPeopleNumInVideo *int `json:"new_people_num_in_video,omitempty"` // 创建新的{x}人会议/通话

	ExternalPeopleNumInVideo *int `json:"external_people_num_in_video,omitempty"` // 将{x}名外部用户加入/退出通话

	ExternalPeopleNumInChat *int `json:"external_people_num_in_chat,omitempty"` // 将{x}名外部用户加入/退出群组

	JoinGroup *int `json:"join_group,omitempty"` // 创建{x}人数的群组

	QuitGroup *int `json:"quit_group,omitempty"` // 解散{x}人数的群组

	ExternalPeopleNumInDocShare *int `json:"external_people_num_in_doc_share,omitempty"` // 分享文档给{x}名外部用户
}

type AuditEventExtendBuilder struct {
	commentType     string // 评论类型
	commentTypeFlag bool

	appDetail     string // app信息
	appDetailFlag bool

	twoStepValidation     bool // 是否两步验证
	twoStepValidationFlag bool

	loginMethod     string // 登录方式
	loginMethodFlag bool

	newPeopleNumInVideo     int // 创建新的{x}人会议/通话
	newPeopleNumInVideoFlag bool

	externalPeopleNumInVideo     int // 将{x}名外部用户加入/退出通话
	externalPeopleNumInVideoFlag bool

	externalPeopleNumInChat     int // 将{x}名外部用户加入/退出群组
	externalPeopleNumInChatFlag bool

	joinGroup     int // 创建{x}人数的群组
	joinGroupFlag bool

	quitGroup     int // 解散{x}人数的群组
	quitGroupFlag bool

	externalPeopleNumInDocShare     int // 分享文档给{x}名外部用户
	externalPeopleNumInDocShareFlag bool
}

func NewAuditEventExtendBuilder() *AuditEventExtendBuilder {
	builder := &AuditEventExtendBuilder{}
	return builder
}

// 评论类型
//
// 示例值：
func (builder *AuditEventExtendBuilder) CommentType(commentType string) *AuditEventExtendBuilder {
	builder.commentType = commentType
	builder.commentTypeFlag = true
	return builder
}

// app信息
//
// 示例值：
func (builder *AuditEventExtendBuilder) AppDetail(appDetail string) *AuditEventExtendBuilder {
	builder.appDetail = appDetail
	builder.appDetailFlag = true
	return builder
}

// 是否两步验证
//
// 示例值：false
func (builder *AuditEventExtendBuilder) TwoStepValidation(twoStepValidation bool) *AuditEventExtendBuilder {
	builder.twoStepValidation = twoStepValidation
	builder.twoStepValidationFlag = true
	return builder
}

// 登录方式
//
// 示例值：NormalLogin
func (builder *AuditEventExtendBuilder) LoginMethod(loginMethod string) *AuditEventExtendBuilder {
	builder.loginMethod = loginMethod
	builder.loginMethodFlag = true
	return builder
}

// 创建新的{x}人会议/通话
//
// 示例值：1
func (builder *AuditEventExtendBuilder) NewPeopleNumInVideo(newPeopleNumInVideo int) *AuditEventExtendBuilder {
	builder.newPeopleNumInVideo = newPeopleNumInVideo
	builder.newPeopleNumInVideoFlag = true
	return builder
}

// 将{x}名外部用户加入/退出通话
//
// 示例值：1
func (builder *AuditEventExtendBuilder) ExternalPeopleNumInVideo(externalPeopleNumInVideo int) *AuditEventExtendBuilder {
	builder.externalPeopleNumInVideo = externalPeopleNumInVideo
	builder.externalPeopleNumInVideoFlag = true
	return builder
}

// 将{x}名外部用户加入/退出群组
//
// 示例值：1
func (builder *AuditEventExtendBuilder) ExternalPeopleNumInChat(externalPeopleNumInChat int) *AuditEventExtendBuilder {
	builder.externalPeopleNumInChat = externalPeopleNumInChat
	builder.externalPeopleNumInChatFlag = true
	return builder
}

// 创建{x}人数的群组
//
// 示例值：1
func (builder *AuditEventExtendBuilder) JoinGroup(joinGroup int) *AuditEventExtendBuilder {
	builder.joinGroup = joinGroup
	builder.joinGroupFlag = true
	return builder
}

// 解散{x}人数的群组
//
// 示例值：1
func (builder *AuditEventExtendBuilder) QuitGroup(quitGroup int) *AuditEventExtendBuilder {
	builder.quitGroup = quitGroup
	builder.quitGroupFlag = true
	return builder
}

// 分享文档给{x}名外部用户
//
// 示例值：1
func (builder *AuditEventExtendBuilder) ExternalPeopleNumInDocShare(externalPeopleNumInDocShare int) *AuditEventExtendBuilder {
	builder.externalPeopleNumInDocShare = externalPeopleNumInDocShare
	builder.externalPeopleNumInDocShareFlag = true
	return builder
}

func (builder *AuditEventExtendBuilder) Build() *AuditEventExtend {
	req := &AuditEventExtend{}
	if builder.commentTypeFlag {
		req.CommentType = &builder.commentType

	}
	if builder.appDetailFlag {
		req.AppDetail = &builder.appDetail

	}
	if builder.twoStepValidationFlag {
		req.TwoStepValidation = &builder.twoStepValidation

	}
	if builder.loginMethodFlag {
		req.LoginMethod = &builder.loginMethod

	}
	if builder.newPeopleNumInVideoFlag {
		req.NewPeopleNumInVideo = &builder.newPeopleNumInVideo

	}
	if builder.externalPeopleNumInVideoFlag {
		req.ExternalPeopleNumInVideo = &builder.externalPeopleNumInVideo

	}
	if builder.externalPeopleNumInChatFlag {
		req.ExternalPeopleNumInChat = &builder.externalPeopleNumInChat

	}
	if builder.joinGroupFlag {
		req.JoinGroup = &builder.joinGroup

	}
	if builder.quitGroupFlag {
		req.QuitGroup = &builder.quitGroup

	}
	if builder.externalPeopleNumInDocShareFlag {
		req.ExternalPeopleNumInDocShare = &builder.externalPeopleNumInDocShare

	}
	return req
}

type AuditInfo struct {
	EventName *string `json:"event_name,omitempty"` // 事件名称

	DepartmentIds []string `json:"department_ids,omitempty"` // 用户所属部门的ID列表

	EventModule *int `json:"event_module,omitempty"` // 模块

	OperatorType *int `json:"operator_type,omitempty"` // 操作人类型

	OperatorValue *string `json:"operator_value,omitempty"` // 操作人id

	Objects []*AuditObjectEntity `json:"objects,omitempty"` // 操作对象列表

	Recipients []*AuditRecipientEntity `json:"recipients,omitempty"` // 接收者对象列表

	EventTime *int `json:"event_time,omitempty"` // 事件时间

	Ip *string `json:"ip,omitempty"` // ip信息

	OperatorApp *string `json:"operator_app,omitempty"` // 第三方isvID

	AuditContext *AuditContext `json:"audit_context,omitempty"` // 环境信息

	Extend *AuditEventExtend `json:"extend,omitempty"` // 事件级别的扩展

	EventId *string `json:"event_id,omitempty"` // 事件id

	OperatorAppName *string `json:"operator_app_name,omitempty"` // 第三方isv名称

	UniqueId *string `json:"unique_id,omitempty"` // 唯一id

	CommonDrawers *ApiAuditCommonDrawers `json:"common_drawers,omitempty"` // 扩展字段信息

	AuditDetail *AuditDetail `json:"audit_detail,omitempty"` // 日志扩展信息

	OperatorTenant *string `json:"operator_tenant,omitempty"` // 操作人企业编号
}

type AuditInfoBuilder struct {
	eventName     string // 事件名称
	eventNameFlag bool

	departmentIds     []string // 用户所属部门的ID列表
	departmentIdsFlag bool

	eventModule     int // 模块
	eventModuleFlag bool

	operatorType     int // 操作人类型
	operatorTypeFlag bool

	operatorValue     string // 操作人id
	operatorValueFlag bool

	objects     []*AuditObjectEntity // 操作对象列表
	objectsFlag bool

	recipients     []*AuditRecipientEntity // 接收者对象列表
	recipientsFlag bool

	eventTime     int // 事件时间
	eventTimeFlag bool

	ip     string // ip信息
	ipFlag bool

	operatorApp     string // 第三方isvID
	operatorAppFlag bool

	auditContext     *AuditContext // 环境信息
	auditContextFlag bool

	extend     *AuditEventExtend // 事件级别的扩展
	extendFlag bool

	eventId     string // 事件id
	eventIdFlag bool

	operatorAppName     string // 第三方isv名称
	operatorAppNameFlag bool

	uniqueId     string // 唯一id
	uniqueIdFlag bool

	commonDrawers     *ApiAuditCommonDrawers // 扩展字段信息
	commonDrawersFlag bool

	auditDetail     *AuditDetail // 日志扩展信息
	auditDetailFlag bool

	operatorTenant     string // 操作人企业编号
	operatorTenantFlag bool
}

func NewAuditInfoBuilder() *AuditInfoBuilder {
	builder := &AuditInfoBuilder{}
	return builder
}

// 事件名称
//
// 示例值：space_read_doc
func (builder *AuditInfoBuilder) EventName(eventName string) *AuditInfoBuilder {
	builder.eventName = eventName
	builder.eventNameFlag = true
	return builder
}

// 用户所属部门的ID列表
//
// 示例值：
func (builder *AuditInfoBuilder) DepartmentIds(departmentIds []string) *AuditInfoBuilder {
	builder.departmentIds = departmentIds
	builder.departmentIdsFlag = true
	return builder
}

// 模块
//
// 示例值：1
func (builder *AuditInfoBuilder) EventModule(eventModule int) *AuditInfoBuilder {
	builder.eventModule = eventModule
	builder.eventModuleFlag = true
	return builder
}

// 操作人类型
//
// 示例值：
func (builder *AuditInfoBuilder) OperatorType(operatorType int) *AuditInfoBuilder {
	builder.operatorType = operatorType
	builder.operatorTypeFlag = true
	return builder
}

// 操作人id
//
// 示例值：4a3b8541
func (builder *AuditInfoBuilder) OperatorValue(operatorValue string) *AuditInfoBuilder {
	builder.operatorValue = operatorValue
	builder.operatorValueFlag = true
	return builder
}

// 操作对象列表
//
// 示例值：
func (builder *AuditInfoBuilder) Objects(objects []*AuditObjectEntity) *AuditInfoBuilder {
	builder.objects = objects
	builder.objectsFlag = true
	return builder
}

// 接收者对象列表
//
// 示例值：
func (builder *AuditInfoBuilder) Recipients(recipients []*AuditRecipientEntity) *AuditInfoBuilder {
	builder.recipients = recipients
	builder.recipientsFlag = true
	return builder
}

// 事件时间
//
// 示例值：1669046400
func (builder *AuditInfoBuilder) EventTime(eventTime int) *AuditInfoBuilder {
	builder.eventTime = eventTime
	builder.eventTimeFlag = true
	return builder
}

// ip信息
//
// 示例值：192.168.168.1
func (builder *AuditInfoBuilder) Ip(ip string) *AuditInfoBuilder {
	builder.ip = ip
	builder.ipFlag = true
	return builder
}

// 第三方isvID
//
// 示例值：example_value
func (builder *AuditInfoBuilder) OperatorApp(operatorApp string) *AuditInfoBuilder {
	builder.operatorApp = operatorApp
	builder.operatorAppFlag = true
	return builder
}

// 环境信息
//
// 示例值：
func (builder *AuditInfoBuilder) AuditContext(auditContext *AuditContext) *AuditInfoBuilder {
	builder.auditContext = auditContext
	builder.auditContextFlag = true
	return builder
}

// 事件级别的扩展
//
// 示例值：
func (builder *AuditInfoBuilder) Extend(extend *AuditEventExtend) *AuditInfoBuilder {
	builder.extend = extend
	builder.extendFlag = true
	return builder
}

// 事件id
//
// 示例值：7126195947859656705
func (builder *AuditInfoBuilder) EventId(eventId string) *AuditInfoBuilder {
	builder.eventId = eventId
	builder.eventIdFlag = true
	return builder
}

// 第三方isv名称
//
// 示例值：example_value
func (builder *AuditInfoBuilder) OperatorAppName(operatorAppName string) *AuditInfoBuilder {
	builder.operatorAppName = operatorAppName
	builder.operatorAppNameFlag = true
	return builder
}

// 唯一id
//
// 示例值：7126195947859656705
func (builder *AuditInfoBuilder) UniqueId(uniqueId string) *AuditInfoBuilder {
	builder.uniqueId = uniqueId
	builder.uniqueIdFlag = true
	return builder
}

// 扩展字段信息
//
// 示例值：
func (builder *AuditInfoBuilder) CommonDrawers(commonDrawers *ApiAuditCommonDrawers) *AuditInfoBuilder {
	builder.commonDrawers = commonDrawers
	builder.commonDrawersFlag = true
	return builder
}

// 日志扩展信息
//
// 示例值：
func (builder *AuditInfoBuilder) AuditDetail(auditDetail *AuditDetail) *AuditInfoBuilder {
	builder.auditDetail = auditDetail
	builder.auditDetailFlag = true
	return builder
}

// 操作人企业编号
//
// 示例值：F2823442
func (builder *AuditInfoBuilder) OperatorTenant(operatorTenant string) *AuditInfoBuilder {
	builder.operatorTenant = operatorTenant
	builder.operatorTenantFlag = true
	return builder
}

func (builder *AuditInfoBuilder) Build() *AuditInfo {
	req := &AuditInfo{}
	if builder.eventNameFlag {
		req.EventName = &builder.eventName

	}
	if builder.departmentIdsFlag {
		req.DepartmentIds = builder.departmentIds
	}
	if builder.eventModuleFlag {
		req.EventModule = &builder.eventModule

	}
	if builder.operatorTypeFlag {
		req.OperatorType = &builder.operatorType

	}
	if builder.operatorValueFlag {
		req.OperatorValue = &builder.operatorValue

	}
	if builder.objectsFlag {
		req.Objects = builder.objects
	}
	if builder.recipientsFlag {
		req.Recipients = builder.recipients
	}
	if builder.eventTimeFlag {
		req.EventTime = &builder.eventTime

	}
	if builder.ipFlag {
		req.Ip = &builder.ip

	}
	if builder.operatorAppFlag {
		req.OperatorApp = &builder.operatorApp

	}
	if builder.auditContextFlag {
		req.AuditContext = builder.auditContext
	}
	if builder.extendFlag {
		req.Extend = builder.extend
	}
	if builder.eventIdFlag {
		req.EventId = &builder.eventId

	}
	if builder.operatorAppNameFlag {
		req.OperatorAppName = &builder.operatorAppName

	}
	if builder.uniqueIdFlag {
		req.UniqueId = &builder.uniqueId

	}
	if builder.commonDrawersFlag {
		req.CommonDrawers = builder.commonDrawers
	}
	if builder.auditDetailFlag {
		req.AuditDetail = builder.auditDetail
	}
	if builder.operatorTenantFlag {
		req.OperatorTenant = &builder.operatorTenant

	}
	return req
}

type AuditIosContext struct {
	Udid *string `json:"udid,omitempty"` // UDID

	Did *string `json:"did,omitempty"` // 设备ID

	AppVer *string `json:"app_ver,omitempty"` // app的版本

	Ver *string `json:"ver,omitempty"` // SecSDK版本

	Os *string `json:"os,omitempty"` // 系统类型及版本

	STZone *string `json:"STZone,omitempty"` // 系统时区

	ML *string `json:"ML,omitempty"` // 当前语言

	Sjd *string `json:"sjd,omitempty"` // 是否越狱

	Proxyip *string `json:"proxyip,omitempty"` // 代理ip

	Wifip *string `json:"wifip,omitempty"` // wifi ip

	Location *string `json:"location,omitempty"` // GPS经纬度

	ActiveIp *string `json:"active_ip,omitempty"` // 当前设备活跃ip

	ActiveIpDetail *string `json:"active_ip_detail,omitempty"` // 当前设备活跃ip对应网卡类型

	CellBaseStation *string `json:"cell_base_station,omitempty"` // 基站信息

	IP *string `json:"IP,omitempty"` // 公网ip
}

type AuditIosContextBuilder struct {
	udid     string // UDID
	udidFlag bool

	did     string // 设备ID
	didFlag bool

	appVer     string // app的版本
	appVerFlag bool

	ver     string // SecSDK版本
	verFlag bool

	os     string // 系统类型及版本
	osFlag bool

	sTZone     string // 系统时区
	sTZoneFlag bool

	mL     string // 当前语言
	mLFlag bool

	sjd     string // 是否越狱
	sjdFlag bool

	proxyip     string // 代理ip
	proxyipFlag bool

	wifip     string // wifi ip
	wifipFlag bool

	location     string // GPS经纬度
	locationFlag bool

	activeIp     string // 当前设备活跃ip
	activeIpFlag bool

	activeIpDetail     string // 当前设备活跃ip对应网卡类型
	activeIpDetailFlag bool

	cellBaseStation     string // 基站信息
	cellBaseStationFlag bool

	iP     string // 公网ip
	iPFlag bool
}

func NewAuditIosContextBuilder() *AuditIosContextBuilder {
	builder := &AuditIosContextBuilder{}
	return builder
}

// UDID
//
// 示例值：
func (builder *AuditIosContextBuilder) Udid(udid string) *AuditIosContextBuilder {
	builder.udid = udid
	builder.udidFlag = true
	return builder
}

// 设备ID
//
// 示例值：7396893949735993363
func (builder *AuditIosContextBuilder) Did(did string) *AuditIosContextBuilder {
	builder.did = did
	builder.didFlag = true
	return builder
}

// app的版本
//
// 示例值：7.23.7-ci
func (builder *AuditIosContextBuilder) AppVer(appVer string) *AuditIosContextBuilder {
	builder.appVer = appVer
	builder.appVerFlag = true
	return builder
}

// SecSDK版本
//
// 示例值：3.0.0.0
func (builder *AuditIosContextBuilder) Ver(ver string) *AuditIosContextBuilder {
	builder.ver = ver
	builder.verFlag = true
	return builder
}

// 系统类型及版本
//
// 示例值：iOS 16.5
func (builder *AuditIosContextBuilder) Os(os string) *AuditIosContextBuilder {
	builder.os = os
	builder.osFlag = true
	return builder
}

// 系统时区
//
// 示例值：Asia/Shanghai
func (builder *AuditIosContextBuilder) STZone(sTZone string) *AuditIosContextBuilder {
	builder.sTZone = sTZone
	builder.sTZoneFlag = true
	return builder
}

// 当前语言
//
// 示例值：zh-Hans
func (builder *AuditIosContextBuilder) ML(mL string) *AuditIosContextBuilder {
	builder.mL = mL
	builder.mLFlag = true
	return builder
}

// 是否越狱
//
// 示例值：
func (builder *AuditIosContextBuilder) Sjd(sjd string) *AuditIosContextBuilder {
	builder.sjd = sjd
	builder.sjdFlag = true
	return builder
}

// 代理ip
//
// 示例值：1.1.1.1
func (builder *AuditIosContextBuilder) Proxyip(proxyip string) *AuditIosContextBuilder {
	builder.proxyip = proxyip
	builder.proxyipFlag = true
	return builder
}

// wifi ip
//
// 示例值：1.1.1.1
func (builder *AuditIosContextBuilder) Wifip(wifip string) *AuditIosContextBuilder {
	builder.wifip = wifip
	builder.wifipFlag = true
	return builder
}

// GPS经纬度
//
// 示例值：
func (builder *AuditIosContextBuilder) Location(location string) *AuditIosContextBuilder {
	builder.location = location
	builder.locationFlag = true
	return builder
}

// 当前设备活跃ip
//
// 示例值：1.1.1.1
func (builder *AuditIosContextBuilder) ActiveIp(activeIp string) *AuditIosContextBuilder {
	builder.activeIp = activeIp
	builder.activeIpFlag = true
	return builder
}

// 当前设备活跃ip对应网卡类型
//
// 示例值：
func (builder *AuditIosContextBuilder) ActiveIpDetail(activeIpDetail string) *AuditIosContextBuilder {
	builder.activeIpDetail = activeIpDetail
	builder.activeIpDetailFlag = true
	return builder
}

// 基站信息
//
// 示例值：
func (builder *AuditIosContextBuilder) CellBaseStation(cellBaseStation string) *AuditIosContextBuilder {
	builder.cellBaseStation = cellBaseStation
	builder.cellBaseStationFlag = true
	return builder
}

// 公网ip
//
// 示例值：1.1.1.1
func (builder *AuditIosContextBuilder) IP(iP string) *AuditIosContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditIosContextBuilder) Build() *AuditIosContext {
	req := &AuditIosContext{}
	if builder.udidFlag {
		req.Udid = &builder.udid

	}
	if builder.didFlag {
		req.Did = &builder.did

	}
	if builder.appVerFlag {
		req.AppVer = &builder.appVer

	}
	if builder.verFlag {
		req.Ver = &builder.ver

	}
	if builder.osFlag {
		req.Os = &builder.os

	}
	if builder.sTZoneFlag {
		req.STZone = &builder.sTZone

	}
	if builder.mLFlag {
		req.ML = &builder.mL

	}
	if builder.sjdFlag {
		req.Sjd = &builder.sjd

	}
	if builder.proxyipFlag {
		req.Proxyip = &builder.proxyip

	}
	if builder.wifipFlag {
		req.Wifip = &builder.wifip

	}
	if builder.locationFlag {
		req.Location = &builder.location

	}
	if builder.activeIpFlag {
		req.ActiveIp = &builder.activeIp

	}
	if builder.activeIpDetailFlag {
		req.ActiveIpDetail = &builder.activeIpDetail

	}
	if builder.cellBaseStationFlag {
		req.CellBaseStation = &builder.cellBaseStation

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type AuditObjectDetail struct {
	CloneSource *string `json:"clone_source,omitempty"` // 克隆来源

	TextDetail *string `json:"text_detail,omitempty"` // 其他文本

	FileName *string `json:"file_name,omitempty"` // 文件名称

	ThirdPartyAppID *string `json:"third_party_appID,omitempty"` // 第三方APPID

	ContainFileNum *int `json:"contain_file_num,omitempty"` // 文件或文件夹数量

	PermissionSettingType *string `json:"permission_setting_type,omitempty"` // 链接分享设置

	PermissionExternalAccessType *bool `json:"permission_external_access_Type,omitempty"` // 是否开启外部访问设置

	PermissionShareType *string `json:"permission_share_type,omitempty"` // 分享设置

	FileServiceSource *string `json:"file_service_source,omitempty"` // file上传业务来源

	OkrDownloadContent *string `json:"okr_download_content,omitempty"` // 下载OKR时的内容范围

	ContainerType *string `json:"container_type,omitempty"` // 容器类型,标识是否wiki

	ContainerId *string `json:"container_id,omitempty"` // 容器id,wiki标识字段

	CurrentPage *string `json:"current_page,omitempty"` // 截屏、录制的开始页面
}

type AuditObjectDetailBuilder struct {
	cloneSource     string // 克隆来源
	cloneSourceFlag bool

	textDetail     string // 其他文本
	textDetailFlag bool

	fileName     string // 文件名称
	fileNameFlag bool

	thirdPartyAppID     string // 第三方APPID
	thirdPartyAppIDFlag bool

	containFileNum     int // 文件或文件夹数量
	containFileNumFlag bool

	permissionSettingType     string // 链接分享设置
	permissionSettingTypeFlag bool

	permissionExternalAccessType     bool // 是否开启外部访问设置
	permissionExternalAccessTypeFlag bool

	permissionShareType     string // 分享设置
	permissionShareTypeFlag bool

	fileServiceSource     string // file上传业务来源
	fileServiceSourceFlag bool

	okrDownloadContent     string // 下载OKR时的内容范围
	okrDownloadContentFlag bool

	containerType     string // 容器类型,标识是否wiki
	containerTypeFlag bool

	containerId     string // 容器id,wiki标识字段
	containerIdFlag bool

	currentPage     string // 截屏、录制的开始页面
	currentPageFlag bool
}

func NewAuditObjectDetailBuilder() *AuditObjectDetailBuilder {
	builder := &AuditObjectDetailBuilder{}
	return builder
}

// 克隆来源
//
// 示例值：
func (builder *AuditObjectDetailBuilder) CloneSource(cloneSource string) *AuditObjectDetailBuilder {
	builder.cloneSource = cloneSource
	builder.cloneSourceFlag = true
	return builder
}

// 其他文本
//
// 示例值：
func (builder *AuditObjectDetailBuilder) TextDetail(textDetail string) *AuditObjectDetailBuilder {
	builder.textDetail = textDetail
	builder.textDetailFlag = true
	return builder
}

// 文件名称
//
// 示例值：
func (builder *AuditObjectDetailBuilder) FileName(fileName string) *AuditObjectDetailBuilder {
	builder.fileName = fileName
	builder.fileNameFlag = true
	return builder
}

// 第三方APPID
//
// 示例值：
func (builder *AuditObjectDetailBuilder) ThirdPartyAppID(thirdPartyAppID string) *AuditObjectDetailBuilder {
	builder.thirdPartyAppID = thirdPartyAppID
	builder.thirdPartyAppIDFlag = true
	return builder
}

// 文件或文件夹数量
//
// 示例值：1
func (builder *AuditObjectDetailBuilder) ContainFileNum(containFileNum int) *AuditObjectDetailBuilder {
	builder.containFileNum = containFileNum
	builder.containFileNumFlag = true
	return builder
}

// 链接分享设置
//
// 示例值：
func (builder *AuditObjectDetailBuilder) PermissionSettingType(permissionSettingType string) *AuditObjectDetailBuilder {
	builder.permissionSettingType = permissionSettingType
	builder.permissionSettingTypeFlag = true
	return builder
}

// 是否开启外部访问设置
//
// 示例值：false
func (builder *AuditObjectDetailBuilder) PermissionExternalAccessType(permissionExternalAccessType bool) *AuditObjectDetailBuilder {
	builder.permissionExternalAccessType = permissionExternalAccessType
	builder.permissionExternalAccessTypeFlag = true
	return builder
}

// 分享设置
//
// 示例值：
func (builder *AuditObjectDetailBuilder) PermissionShareType(permissionShareType string) *AuditObjectDetailBuilder {
	builder.permissionShareType = permissionShareType
	builder.permissionShareTypeFlag = true
	return builder
}

// file上传业务来源
//
// 示例值：
func (builder *AuditObjectDetailBuilder) FileServiceSource(fileServiceSource string) *AuditObjectDetailBuilder {
	builder.fileServiceSource = fileServiceSource
	builder.fileServiceSourceFlag = true
	return builder
}

// 下载OKR时的内容范围
//
// 示例值：
func (builder *AuditObjectDetailBuilder) OkrDownloadContent(okrDownloadContent string) *AuditObjectDetailBuilder {
	builder.okrDownloadContent = okrDownloadContent
	builder.okrDownloadContentFlag = true
	return builder
}

// 容器类型,标识是否wiki
//
// 示例值：
func (builder *AuditObjectDetailBuilder) ContainerType(containerType string) *AuditObjectDetailBuilder {
	builder.containerType = containerType
	builder.containerTypeFlag = true
	return builder
}

// 容器id,wiki标识字段
//
// 示例值：
func (builder *AuditObjectDetailBuilder) ContainerId(containerId string) *AuditObjectDetailBuilder {
	builder.containerId = containerId
	builder.containerIdFlag = true
	return builder
}

// 截屏、录制的开始页面
//
// 示例值：
func (builder *AuditObjectDetailBuilder) CurrentPage(currentPage string) *AuditObjectDetailBuilder {
	builder.currentPage = currentPage
	builder.currentPageFlag = true
	return builder
}

func (builder *AuditObjectDetailBuilder) Build() *AuditObjectDetail {
	req := &AuditObjectDetail{}
	if builder.cloneSourceFlag {
		req.CloneSource = &builder.cloneSource

	}
	if builder.textDetailFlag {
		req.TextDetail = &builder.textDetail

	}
	if builder.fileNameFlag {
		req.FileName = &builder.fileName

	}
	if builder.thirdPartyAppIDFlag {
		req.ThirdPartyAppID = &builder.thirdPartyAppID

	}
	if builder.containFileNumFlag {
		req.ContainFileNum = &builder.containFileNum

	}
	if builder.permissionSettingTypeFlag {
		req.PermissionSettingType = &builder.permissionSettingType

	}
	if builder.permissionExternalAccessTypeFlag {
		req.PermissionExternalAccessType = &builder.permissionExternalAccessType

	}
	if builder.permissionShareTypeFlag {
		req.PermissionShareType = &builder.permissionShareType

	}
	if builder.fileServiceSourceFlag {
		req.FileServiceSource = &builder.fileServiceSource

	}
	if builder.okrDownloadContentFlag {
		req.OkrDownloadContent = &builder.okrDownloadContent

	}
	if builder.containerTypeFlag {
		req.ContainerType = &builder.containerType

	}
	if builder.containerIdFlag {
		req.ContainerId = &builder.containerId

	}
	if builder.currentPageFlag {
		req.CurrentPage = &builder.currentPage

	}
	return req
}

type AuditObjectEntity struct {
	ObjectType *string `json:"object_type,omitempty"` // 操作对象类型

	ObjectValue *string `json:"object_value,omitempty"` // 操作对象值，可能存在 department_id、user_id 等，需要进行 lark_id 的转换

	ObjectDetail *AuditObjectDetail `json:"object_detail,omitempty"` // object 详情

	ObjectName *string `json:"object_name,omitempty"` // 操作对象名称，如会话名、文档名等

	ObjectOwner *string `json:"object_owner,omitempty"` // 操作对象的所有者
}

type AuditObjectEntityBuilder struct {
	objectType     string // 操作对象类型
	objectTypeFlag bool

	objectValue     string // 操作对象值，可能存在 department_id、user_id 等，需要进行 lark_id 的转换
	objectValueFlag bool

	objectDetail     *AuditObjectDetail // object 详情
	objectDetailFlag bool

	objectName     string // 操作对象名称，如会话名、文档名等
	objectNameFlag bool

	objectOwner     string // 操作对象的所有者
	objectOwnerFlag bool
}

func NewAuditObjectEntityBuilder() *AuditObjectEntityBuilder {
	builder := &AuditObjectEntityBuilder{}
	return builder
}

// 操作对象类型
//
// 示例值：1
func (builder *AuditObjectEntityBuilder) ObjectType(objectType string) *AuditObjectEntityBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 操作对象值，可能存在 department_id、user_id 等，需要进行 lark_id 的转换
//
// 示例值：47d74411
func (builder *AuditObjectEntityBuilder) ObjectValue(objectValue string) *AuditObjectEntityBuilder {
	builder.objectValue = objectValue
	builder.objectValueFlag = true
	return builder
}

// object 详情
//
// 示例值：
func (builder *AuditObjectEntityBuilder) ObjectDetail(objectDetail *AuditObjectDetail) *AuditObjectEntityBuilder {
	builder.objectDetail = objectDetail
	builder.objectDetailFlag = true
	return builder
}

// 操作对象名称，如会话名、文档名等
//
// 示例值：xxx
func (builder *AuditObjectEntityBuilder) ObjectName(objectName string) *AuditObjectEntityBuilder {
	builder.objectName = objectName
	builder.objectNameFlag = true
	return builder
}

// 操作对象的所有者
//
// 示例值：47d74411
func (builder *AuditObjectEntityBuilder) ObjectOwner(objectOwner string) *AuditObjectEntityBuilder {
	builder.objectOwner = objectOwner
	builder.objectOwnerFlag = true
	return builder
}

func (builder *AuditObjectEntityBuilder) Build() *AuditObjectEntity {
	req := &AuditObjectEntity{}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.objectValueFlag {
		req.ObjectValue = &builder.objectValue

	}
	if builder.objectDetailFlag {
		req.ObjectDetail = builder.objectDetail
	}
	if builder.objectNameFlag {
		req.ObjectName = &builder.objectName

	}
	if builder.objectOwnerFlag {
		req.ObjectOwner = &builder.objectOwner

	}
	return req
}

type AuditPcContext struct {
	Udid *string `json:"udid,omitempty"` // UDID

	Did *string `json:"did,omitempty"` // 设备ID

	AppVer *string `json:"app_ver,omitempty"` // app的版本

	Ver *string `json:"ver,omitempty"` // SecSDK版本

	Os *string `json:"os,omitempty"` // 客户端类型

	Wifip *string `json:"wifip,omitempty"` // wifi ip

	Region *string `json:"region,omitempty"` // 设备区域

	IP *string `json:"IP,omitempty"` // 公网ip
}

type AuditPcContextBuilder struct {
	udid     string // UDID
	udidFlag bool

	did     string // 设备ID
	didFlag bool

	appVer     string // app的版本
	appVerFlag bool

	ver     string // SecSDK版本
	verFlag bool

	os     string // 客户端类型
	osFlag bool

	wifip     string // wifi ip
	wifipFlag bool

	region     string // 设备区域
	regionFlag bool

	iP     string // 公网ip
	iPFlag bool
}

func NewAuditPcContextBuilder() *AuditPcContextBuilder {
	builder := &AuditPcContextBuilder{}
	return builder
}

// UDID
//
// 示例值：
func (builder *AuditPcContextBuilder) Udid(udid string) *AuditPcContextBuilder {
	builder.udid = udid
	builder.udidFlag = true
	return builder
}

// 设备ID
//
// 示例值：7204623689634104876
func (builder *AuditPcContextBuilder) Did(did string) *AuditPcContextBuilder {
	builder.did = did
	builder.didFlag = true
	return builder
}

// app的版本
//
// 示例值：7.26.0
func (builder *AuditPcContextBuilder) AppVer(appVer string) *AuditPcContextBuilder {
	builder.appVer = appVer
	builder.appVerFlag = true
	return builder
}

// SecSDK版本
//
// 示例值：3.0.0.0
func (builder *AuditPcContextBuilder) Ver(ver string) *AuditPcContextBuilder {
	builder.ver = ver
	builder.verFlag = true
	return builder
}

// 客户端类型
//
// 示例值：
func (builder *AuditPcContextBuilder) Os(os string) *AuditPcContextBuilder {
	builder.os = os
	builder.osFlag = true
	return builder
}

// wifi ip
//
// 示例值：1.1.1.1
func (builder *AuditPcContextBuilder) Wifip(wifip string) *AuditPcContextBuilder {
	builder.wifip = wifip
	builder.wifipFlag = true
	return builder
}

// 设备区域
//
// 示例值：zh_CN
func (builder *AuditPcContextBuilder) Region(region string) *AuditPcContextBuilder {
	builder.region = region
	builder.regionFlag = true
	return builder
}

// 公网ip
//
// 示例值：1.1.1.1
func (builder *AuditPcContextBuilder) IP(iP string) *AuditPcContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditPcContextBuilder) Build() *AuditPcContext {
	req := &AuditPcContext{}
	if builder.udidFlag {
		req.Udid = &builder.udid

	}
	if builder.didFlag {
		req.Did = &builder.did

	}
	if builder.appVerFlag {
		req.AppVer = &builder.appVer

	}
	if builder.verFlag {
		req.Ver = &builder.ver

	}
	if builder.osFlag {
		req.Os = &builder.os

	}
	if builder.wifipFlag {
		req.Wifip = &builder.wifip

	}
	if builder.regionFlag {
		req.Region = &builder.region

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type AuditRecipientDetail struct {
	PermissionActionType *string `json:"permission_action_type,omitempty"` // 修改权限协作者
}

type AuditRecipientDetailBuilder struct {
	permissionActionType     string // 修改权限协作者
	permissionActionTypeFlag bool
}

func NewAuditRecipientDetailBuilder() *AuditRecipientDetailBuilder {
	builder := &AuditRecipientDetailBuilder{}
	return builder
}

// 修改权限协作者
//
// 示例值：
func (builder *AuditRecipientDetailBuilder) PermissionActionType(permissionActionType string) *AuditRecipientDetailBuilder {
	builder.permissionActionType = permissionActionType
	builder.permissionActionTypeFlag = true
	return builder
}

func (builder *AuditRecipientDetailBuilder) Build() *AuditRecipientDetail {
	req := &AuditRecipientDetail{}
	if builder.permissionActionTypeFlag {
		req.PermissionActionType = &builder.permissionActionType

	}
	return req
}

type AuditRecipientEntity struct {
	RecipientType *string `json:"recipient_type,omitempty"` // 接收者对象类型

	RecipientValue *string `json:"recipient_value,omitempty"` // 接收者对象值，可能存在department_id、user_id等，需要进行lark_id的转换

	RecipientDetail *AuditRecipientDetail `json:"recipient_detail,omitempty"` // recipient 详情
}

type AuditRecipientEntityBuilder struct {
	recipientType     string // 接收者对象类型
	recipientTypeFlag bool

	recipientValue     string // 接收者对象值，可能存在department_id、user_id等，需要进行lark_id的转换
	recipientValueFlag bool

	recipientDetail     *AuditRecipientDetail // recipient 详情
	recipientDetailFlag bool
}

func NewAuditRecipientEntityBuilder() *AuditRecipientEntityBuilder {
	builder := &AuditRecipientEntityBuilder{}
	return builder
}

// 接收者对象类型
//
// 示例值：
func (builder *AuditRecipientEntityBuilder) RecipientType(recipientType string) *AuditRecipientEntityBuilder {
	builder.recipientType = recipientType
	builder.recipientTypeFlag = true
	return builder
}

// 接收者对象值，可能存在department_id、user_id等，需要进行lark_id的转换
//
// 示例值：3d7d922
func (builder *AuditRecipientEntityBuilder) RecipientValue(recipientValue string) *AuditRecipientEntityBuilder {
	builder.recipientValue = recipientValue
	builder.recipientValueFlag = true
	return builder
}

// recipient 详情
//
// 示例值：
func (builder *AuditRecipientEntityBuilder) RecipientDetail(recipientDetail *AuditRecipientDetail) *AuditRecipientEntityBuilder {
	builder.recipientDetail = recipientDetail
	builder.recipientDetailFlag = true
	return builder
}

func (builder *AuditRecipientEntityBuilder) Build() *AuditRecipientEntity {
	req := &AuditRecipientEntity{}
	if builder.recipientTypeFlag {
		req.RecipientType = &builder.recipientType

	}
	if builder.recipientValueFlag {
		req.RecipientValue = &builder.recipientValue

	}
	if builder.recipientDetailFlag {
		req.RecipientDetail = builder.recipientDetail
	}
	return req
}

type AuditWebContext struct {
	UserAgent *string `json:"user_agent,omitempty"` // UA信息

	IP *string `json:"IP,omitempty"` // 本机IP
}

type AuditWebContextBuilder struct {
	userAgent     string // UA信息
	userAgentFlag bool

	iP     string // 本机IP
	iPFlag bool
}

func NewAuditWebContextBuilder() *AuditWebContextBuilder {
	builder := &AuditWebContextBuilder{}
	return builder
}

// UA信息
//
// 示例值：Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
func (builder *AuditWebContextBuilder) UserAgent(userAgent string) *AuditWebContextBuilder {
	builder.userAgent = userAgent
	builder.userAgentFlag = true
	return builder
}

// 本机IP
//
// 示例值：1.1.1.1
func (builder *AuditWebContextBuilder) IP(iP string) *AuditWebContextBuilder {
	builder.iP = iP
	builder.iPFlag = true
	return builder
}

func (builder *AuditWebContextBuilder) Build() *AuditWebContext {
	req := &AuditWebContext{}
	if builder.userAgentFlag {
		req.UserAgent = &builder.userAgent

	}
	if builder.iPFlag {
		req.IP = &builder.iP

	}
	return req
}

type CreateMigrationEntity struct {
	Id *string `json:"id,omitempty"` // 实体的 id

	Type *string `json:"type,omitempty"` // 实体的类型

	Location *string `json:"location,omitempty"` // 实体的数据驻留地

	MailAddress *string `json:"mail_address,omitempty"` // 实体类型为 mailbox 时，返回 mail address，如果没有，则返回空
}

type CreateMigrationEntityBuilder struct {
	id     string // 实体的 id
	idFlag bool

	type_    string // 实体的类型
	typeFlag bool

	location     string // 实体的数据驻留地
	locationFlag bool

	mailAddress     string // 实体类型为 mailbox 时，返回 mail address，如果没有，则返回空
	mailAddressFlag bool
}

func NewCreateMigrationEntityBuilder() *CreateMigrationEntityBuilder {
	builder := &CreateMigrationEntityBuilder{}
	return builder
}

// 实体的 id
//
// 示例值：43c58071254443c580712544
func (builder *CreateMigrationEntityBuilder) Id(id string) *CreateMigrationEntityBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 实体的类型
//
// 示例值：sheets
func (builder *CreateMigrationEntityBuilder) Type(type_ string) *CreateMigrationEntityBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 实体的数据驻留地
//
// 示例值：SG
func (builder *CreateMigrationEntityBuilder) Location(location string) *CreateMigrationEntityBuilder {
	builder.location = location
	builder.locationFlag = true
	return builder
}

// 实体类型为 mailbox 时，返回 mail address，如果没有，则返回空
//
// 示例值：xxx@xxx.xx
func (builder *CreateMigrationEntityBuilder) MailAddress(mailAddress string) *CreateMigrationEntityBuilder {
	builder.mailAddress = mailAddress
	builder.mailAddressFlag = true
	return builder
}

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

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

	}
	if builder.locationFlag {
		req.Location = &builder.location

	}
	if builder.mailAddressFlag {
		req.MailAddress = &builder.mailAddress

	}
	return req
}

type CreateMigrationItems struct {
	TaskId *string `json:"task_id,omitempty"` // 迁移任务的 id

	TaskStatus *string `json:"task_status,omitempty"` // 任务状态。任务创建成功固定返回 create ，若已存在其他待执行任务，则返回已存在任务的状态

	Entity *CreateMigrationEntity `json:"entity,omitempty"` // 实体
}

type CreateMigrationItemsBuilder struct {
	taskId     string // 迁移任务的 id
	taskIdFlag bool

	taskStatus     string // 任务状态。任务创建成功固定返回 create ，若已存在其他待执行任务，则返回已存在任务的状态
	taskStatusFlag bool

	entity     *CreateMigrationEntity // 实体
	entityFlag bool
}

func NewCreateMigrationItemsBuilder() *CreateMigrationItemsBuilder {
	builder := &CreateMigrationItemsBuilder{}
	return builder
}

// 迁移任务的 id
//
// 示例值：134jsi43d3ssi993d435452
func (builder *CreateMigrationItemsBuilder) TaskId(taskId string) *CreateMigrationItemsBuilder {
	builder.taskId = taskId
	builder.taskIdFlag = true
	return builder
}

// 任务状态。任务创建成功固定返回 create ，若已存在其他待执行任务，则返回已存在任务的状态
//
// 示例值：create
func (builder *CreateMigrationItemsBuilder) TaskStatus(taskStatus string) *CreateMigrationItemsBuilder {
	builder.taskStatus = taskStatus
	builder.taskStatusFlag = true
	return builder
}

// 实体
//
// 示例值：
func (builder *CreateMigrationItemsBuilder) Entity(entity *CreateMigrationEntity) *CreateMigrationItemsBuilder {
	builder.entity = entity
	builder.entityFlag = true
	return builder
}

func (builder *CreateMigrationItemsBuilder) Build() *CreateMigrationItems {
	req := &CreateMigrationItems{}
	if builder.taskIdFlag {
		req.TaskId = &builder.taskId

	}
	if builder.taskStatusFlag {
		req.TaskStatus = &builder.taskStatus

	}
	if builder.entityFlag {
		req.Entity = builder.entity
	}
	return req
}

type DataArchivingMessage struct {
	SeqId *string `json:"seq_id,omitempty"` // 序号ID

	Limit *int `json:"limit,omitempty"` // | 分页数量，单次拉取消息数，最大值1000 示例值：100 | | --- |
}

type DataArchivingMessageBuilder struct {
	seqId     string // 序号ID
	seqIdFlag bool

	limit     int // | 分页数量，单次拉取消息数，最大值1000 示例值：100 | | --- |
	limitFlag bool
}

func NewDataArchivingMessageBuilder() *DataArchivingMessageBuilder {
	builder := &DataArchivingMessageBuilder{}
	return builder
}

// 序号ID
//
// 示例值：1
func (builder *DataArchivingMessageBuilder) SeqId(seqId string) *DataArchivingMessageBuilder {
	builder.seqId = seqId
	builder.seqIdFlag = true
	return builder
}

// | 分页数量，单次拉取消息数，最大值1000 示例值：100 | | --- |
//
// 示例值：100
func (builder *DataArchivingMessageBuilder) Limit(limit int) *DataArchivingMessageBuilder {
	builder.limit = limit
	builder.limitFlag = true
	return builder
}

func (builder *DataArchivingMessageBuilder) Build() *DataArchivingMessage {
	req := &DataArchivingMessage{}
	if builder.seqIdFlag {
		req.SeqId = &builder.seqId

	}
	if builder.limitFlag {
		req.Limit = &builder.limit

	}
	return req
}

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

	MessageType *int `json:"message_type,omitempty"` // 消息类型

	SenderInfo *DataArchivingUserStruct `json:"sender_info,omitempty"` // 发送者信息

	ReceiverIds []string `json:"receiver_ids,omitempty"` // 接受者信息

	ActionType *string `json:"action_type,omitempty"` // 操作类型

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

	ActionTime *string `json:"action_time,omitempty"` // 消息动作时间戳ms

	IsSuperChat *bool `json:"is_super_chat,omitempty"` // 是否超大群

	IsCrossTenantChat *bool `json:"is_cross_tenant_chat,omitempty"` // 是否跨租户群

	ChatName *string `json:"chat_name,omitempty"` // 会话名称

	Content *string `json:"content,omitempty"` // 文本内容

	ChatMode *string `json:"chat_mode,omitempty"` // 会话类型

	ReactionType *string `json:"reaction_type,omitempty"` // reaction类型

	ParentMsgId *string `json:"parent_msg_id,omitempty"` // 父id
}

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

	messageType     int // 消息类型
	messageTypeFlag bool

	senderInfo     *DataArchivingUserStruct // 发送者信息
	senderInfoFlag bool

	receiverIds     []string // 接受者信息
	receiverIdsFlag bool

	actionType     string // 操作类型
	actionTypeFlag bool

	chatId     string // 会话ID
	chatIdFlag bool

	actionTime     string // 消息动作时间戳ms
	actionTimeFlag bool

	isSuperChat     bool // 是否超大群
	isSuperChatFlag bool

	isCrossTenantChat     bool // 是否跨租户群
	isCrossTenantChatFlag bool

	chatName     string // 会话名称
	chatNameFlag bool

	content     string // 文本内容
	contentFlag bool

	chatMode     string // 会话类型
	chatModeFlag bool

	reactionType     string // reaction类型
	reactionTypeFlag bool

	parentMsgId     string // 父id
	parentMsgIdFlag bool
}

func NewDataArchivingMessageStructBuilder() *DataArchivingMessageStructBuilder {
	builder := &DataArchivingMessageStructBuilder{}
	return builder
}

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

// 消息类型
//
// 示例值：1
func (builder *DataArchivingMessageStructBuilder) MessageType(messageType int) *DataArchivingMessageStructBuilder {
	builder.messageType = messageType
	builder.messageTypeFlag = true
	return builder
}

// 发送者信息
//
// 示例值：
func (builder *DataArchivingMessageStructBuilder) SenderInfo(senderInfo *DataArchivingUserStruct) *DataArchivingMessageStructBuilder {
	builder.senderInfo = senderInfo
	builder.senderInfoFlag = true
	return builder
}

// 接受者信息
//
// 示例值：
func (builder *DataArchivingMessageStructBuilder) ReceiverIds(receiverIds []string) *DataArchivingMessageStructBuilder {
	builder.receiverIds = receiverIds
	builder.receiverIdsFlag = true
	return builder
}

// 操作类型
//
// 示例值：send
func (builder *DataArchivingMessageStructBuilder) ActionType(actionType string) *DataArchivingMessageStructBuilder {
	builder.actionType = actionType
	builder.actionTypeFlag = true
	return builder
}

// 会话ID
//
// 示例值：oc_1263d7c4d513defb9f5df13214602aa6
func (builder *DataArchivingMessageStructBuilder) ChatId(chatId string) *DataArchivingMessageStructBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

// 消息动作时间戳ms
//
// 示例值：1700191599000
func (builder *DataArchivingMessageStructBuilder) ActionTime(actionTime string) *DataArchivingMessageStructBuilder {
	builder.actionTime = actionTime
	builder.actionTimeFlag = true
	return builder
}

// 是否超大群
//
// 示例值：true
func (builder *DataArchivingMessageStructBuilder) IsSuperChat(isSuperChat bool) *DataArchivingMessageStructBuilder {
	builder.isSuperChat = isSuperChat
	builder.isSuperChatFlag = true
	return builder
}

// 是否跨租户群
//
// 示例值：true
func (builder *DataArchivingMessageStructBuilder) IsCrossTenantChat(isCrossTenantChat bool) *DataArchivingMessageStructBuilder {
	builder.isCrossTenantChat = isCrossTenantChat
	builder.isCrossTenantChatFlag = true
	return builder
}

// 会话名称
//
// 示例值：会话名称
func (builder *DataArchivingMessageStructBuilder) ChatName(chatName string) *DataArchivingMessageStructBuilder {
	builder.chatName = chatName
	builder.chatNameFlag = true
	return builder
}

// 文本内容
//
// 示例值：hello
func (builder *DataArchivingMessageStructBuilder) Content(content string) *DataArchivingMessageStructBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 会话类型
//
// 示例值：group
func (builder *DataArchivingMessageStructBuilder) ChatMode(chatMode string) *DataArchivingMessageStructBuilder {
	builder.chatMode = chatMode
	builder.chatModeFlag = true
	return builder
}

// reaction类型
//
// 示例值：FISTBUMP
func (builder *DataArchivingMessageStructBuilder) ReactionType(reactionType string) *DataArchivingMessageStructBuilder {
	builder.reactionType = reactionType
	builder.reactionTypeFlag = true
	return builder
}

// 父id
//
// 示例值：om_829acd7aaae80c031837ad1946d7cf9f
func (builder *DataArchivingMessageStructBuilder) ParentMsgId(parentMsgId string) *DataArchivingMessageStructBuilder {
	builder.parentMsgId = parentMsgId
	builder.parentMsgIdFlag = true
	return builder
}

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

	}
	if builder.messageTypeFlag {
		req.MessageType = &builder.messageType

	}
	if builder.senderInfoFlag {
		req.SenderInfo = builder.senderInfo
	}
	if builder.receiverIdsFlag {
		req.ReceiverIds = builder.receiverIds
	}
	if builder.actionTypeFlag {
		req.ActionType = &builder.actionType

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

	}
	if builder.actionTimeFlag {
		req.ActionTime = &builder.actionTime

	}
	if builder.isSuperChatFlag {
		req.IsSuperChat = &builder.isSuperChat

	}
	if builder.isCrossTenantChatFlag {
		req.IsCrossTenantChat = &builder.isCrossTenantChat

	}
	if builder.chatNameFlag {
		req.ChatName = &builder.chatName

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.chatModeFlag {
		req.ChatMode = &builder.chatMode

	}
	if builder.reactionTypeFlag {
		req.ReactionType = &builder.reactionType

	}
	if builder.parentMsgIdFlag {
		req.ParentMsgId = &builder.parentMsgId

	}
	return req
}

type DataArchivingUser struct {
	UserIds []string `json:"user_ids,omitempty"` // 归档人员列表
}

type DataArchivingUserBuilder struct {
	userIds     []string // 归档人员列表
	userIdsFlag bool
}

func NewDataArchivingUserBuilder() *DataArchivingUserBuilder {
	builder := &DataArchivingUserBuilder{}
	return builder
}

// 归档人员列表
//
// 示例值：
func (builder *DataArchivingUserBuilder) UserIds(userIds []string) *DataArchivingUserBuilder {
	builder.userIds = userIds
	builder.userIdsFlag = true
	return builder
}

func (builder *DataArchivingUserBuilder) Build() *DataArchivingUser {
	req := &DataArchivingUser{}
	if builder.userIdsFlag {
		req.UserIds = builder.userIds
	}
	return req
}

type DataArchivingUserStruct struct {
	Type *string `json:"type,omitempty"` // 类型

	Id *string `json:"id,omitempty"` // 值

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

type DataArchivingUserStructBuilder struct {
	type_    string // 类型
	typeFlag bool

	id     string // 值
	idFlag bool

	name     string // 姓名
	nameFlag bool
}

func NewDataArchivingUserStructBuilder() *DataArchivingUserStructBuilder {
	builder := &DataArchivingUserStructBuilder{}
	return builder
}

// 类型
//
// 示例值：1
func (builder *DataArchivingUserStructBuilder) Type(type_ string) *DataArchivingUserStructBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

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

// 姓名
//
// 示例值：莉莉
func (builder *DataArchivingUserStructBuilder) Name(name string) *DataArchivingUserStructBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

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

	}
	if builder.idFlag {
		req.Id = &builder.id

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

	}
	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 DetectProofContext struct {
	DetectName *string `json:"detect_name,omitempty"` // 检测器名称

	ProofContexts []*ProofContext `json:"proof_contexts,omitempty"` // 证据上下文
}

type DetectProofContextBuilder struct {
	detectName     string // 检测器名称
	detectNameFlag bool

	proofContexts     []*ProofContext // 证据上下文
	proofContextsFlag bool
}

func NewDetectProofContextBuilder() *DetectProofContextBuilder {
	builder := &DetectProofContextBuilder{}
	return builder
}

// 检测器名称
//
// 示例值：手机号
func (builder *DetectProofContextBuilder) DetectName(detectName string) *DetectProofContextBuilder {
	builder.detectName = detectName
	builder.detectNameFlag = true
	return builder
}

// 证据上下文
//
// 示例值：
func (builder *DetectProofContextBuilder) ProofContexts(proofContexts []*ProofContext) *DetectProofContextBuilder {
	builder.proofContexts = proofContexts
	builder.proofContextsFlag = true
	return builder
}

func (builder *DetectProofContextBuilder) Build() *DetectProofContext {
	req := &DetectProofContext{}
	if builder.detectNameFlag {
		req.DetectName = &builder.detectName

	}
	if builder.proofContextsFlag {
		req.ProofContexts = builder.proofContexts
	}
	return req
}

type DetectRule struct {
	RuleId *string `json:"rule_id,omitempty"` // 规则ID

	RuleVersion *int `json:"rule_version,omitempty"` // 规则版本号

	RuleName *string `json:"rule_name,omitempty"` // 规则名称
}

type DetectRuleBuilder struct {
	ruleId     string // 规则ID
	ruleIdFlag bool

	ruleVersion     int // 规则版本号
	ruleVersionFlag bool

	ruleName     string // 规则名称
	ruleNameFlag bool
}

func NewDetectRuleBuilder() *DetectRuleBuilder {
	builder := &DetectRuleBuilder{}
	return builder
}

// 规则ID
//
// 示例值：'7584161205007289872'
func (builder *DetectRuleBuilder) RuleId(ruleId string) *DetectRuleBuilder {
	builder.ruleId = ruleId
	builder.ruleIdFlag = true
	return builder
}

// 规则版本号
//
// 示例值：1
func (builder *DetectRuleBuilder) RuleVersion(ruleVersion int) *DetectRuleBuilder {
	builder.ruleVersion = ruleVersion
	builder.ruleVersionFlag = true
	return builder
}

// 规则名称
//
// 示例值：规则名称
func (builder *DetectRuleBuilder) RuleName(ruleName string) *DetectRuleBuilder {
	builder.ruleName = ruleName
	builder.ruleNameFlag = true
	return builder
}

func (builder *DetectRuleBuilder) Build() *DetectRule {
	req := &DetectRule{}
	if builder.ruleIdFlag {
		req.RuleId = &builder.ruleId

	}
	if builder.ruleVersionFlag {
		req.RuleVersion = &builder.ruleVersion

	}
	if builder.ruleNameFlag {
		req.RuleName = &builder.ruleName

	}
	return req
}

type DeviceApplyRecord struct {
	ApplyId *string `json:"apply_id,omitempty"` // 设备申请单id

	DeviceTerminalType *string `json:"device_terminal_type,omitempty"` // 设备类型

	Model *string `json:"model,omitempty"` // 设备型号

	SerialNumber *string `json:"serial_number,omitempty"` // 生产序列号

	Uuid *string `json:"uuid,omitempty"` // 主板UUID

	MacAddress *string `json:"mac_address,omitempty"` // Mac地址

	Imei *string `json:"imei,omitempty"` // 国际移动设备识别码

	AndroidId *string `json:"android_id,omitempty"` // Android 标识符

	GoogleAid *string `json:"google_aid,omitempty"` // google广告id

	Idfa *string `json:"idfa,omitempty"` // Ios广告主标识符

	Idfv *string `json:"idfv,omitempty"` // Ios 供应商标识符

	ApplyStatus *string `json:"apply_status,omitempty"` // 申报状态

	Operator *UserId `json:"operator,omitempty"` // 申请人

	ApplyTime *string `json:"apply_time,omitempty"` // 申请时间

	DiskSerialNumber *string `json:"disk_serial_number,omitempty"` // 硬盘序列号

	DeviceOwnership *string `json:"device_ownership,omitempty"` // 设备归属

	DeviceSystem *string `json:"device_system,omitempty"` // 操作系统

	DeviceName *string `json:"device_name,omitempty"` // 设备名称

	DeviceRecordId *string `json:"device_record_id,omitempty"` // 设备单ID

	Aaid *string `json:"aaid,omitempty"` // 鸿蒙系统应用匿名标识符
}

type DeviceApplyRecordBuilder struct {
	applyId     string // 设备申请单id
	applyIdFlag bool

	deviceTerminalType     string // 设备类型
	deviceTerminalTypeFlag bool

	model     string // 设备型号
	modelFlag bool

	serialNumber     string // 生产序列号
	serialNumberFlag bool

	uuid     string // 主板UUID
	uuidFlag bool

	macAddress     string // Mac地址
	macAddressFlag bool

	imei     string // 国际移动设备识别码
	imeiFlag bool

	androidId     string // Android 标识符
	androidIdFlag bool

	googleAid     string // google广告id
	googleAidFlag bool

	idfa     string // Ios广告主标识符
	idfaFlag bool

	idfv     string // Ios 供应商标识符
	idfvFlag bool

	applyStatus     string // 申报状态
	applyStatusFlag bool

	operator     *UserId // 申请人
	operatorFlag bool

	applyTime     string // 申请时间
	applyTimeFlag bool

	diskSerialNumber     string // 硬盘序列号
	diskSerialNumberFlag bool

	deviceOwnership     string // 设备归属
	deviceOwnershipFlag bool

	deviceSystem     string // 操作系统
	deviceSystemFlag bool

	deviceName     string // 设备名称
	deviceNameFlag bool

	deviceRecordId     string // 设备单ID
	deviceRecordIdFlag bool

	aaid     string // 鸿蒙系统应用匿名标识符
	aaidFlag bool
}

func NewDeviceApplyRecordBuilder() *DeviceApplyRecordBuilder {
	builder := &DeviceApplyRecordBuilder{}
	return builder
}

// 设备申请单id
//
// 示例值：321321311
func (builder *DeviceApplyRecordBuilder) ApplyId(applyId string) *DeviceApplyRecordBuilder {
	builder.applyId = applyId
	builder.applyIdFlag = true
	return builder
}

// 设备类型
//
// 示例值：Mobile
func (builder *DeviceApplyRecordBuilder) DeviceTerminalType(deviceTerminalType string) *DeviceApplyRecordBuilder {
	builder.deviceTerminalType = deviceTerminalType
	builder.deviceTerminalTypeFlag = true
	return builder
}

// 设备型号
//
// 示例值：MacBookPro16,2
func (builder *DeviceApplyRecordBuilder) Model(model string) *DeviceApplyRecordBuilder {
	builder.model = model
	builder.modelFlag = true
	return builder
}

// 生产序列号
//
// 示例值：C02DTHRMML7H
func (builder *DeviceApplyRecordBuilder) SerialNumber(serialNumber string) *DeviceApplyRecordBuilder {
	builder.serialNumber = serialNumber
	builder.serialNumberFlag = true
	return builder
}

// 主板UUID
//
// 示例值：CC344362-5990-5A68-8DDD-64A23C99FA0C
func (builder *DeviceApplyRecordBuilder) Uuid(uuid string) *DeviceApplyRecordBuilder {
	builder.uuid = uuid
	builder.uuidFlag = true
	return builder
}

// Mac地址
//
// 示例值：ac:de:48:00:11:22
func (builder *DeviceApplyRecordBuilder) MacAddress(macAddress string) *DeviceApplyRecordBuilder {
	builder.macAddress = macAddress
	builder.macAddressFlag = true
	return builder
}

// 国际移动设备识别码
//
// 示例值：123456-78-901234-5
func (builder *DeviceApplyRecordBuilder) Imei(imei string) *DeviceApplyRecordBuilder {
	builder.imei = imei
	builder.imeiFlag = true
	return builder
}

// Android 标识符
//
// 示例值：02a11ac4a83b918e
func (builder *DeviceApplyRecordBuilder) AndroidId(androidId string) *DeviceApplyRecordBuilder {
	builder.androidId = androidId
	builder.androidIdFlag = true
	return builder
}

// google广告id
//
// 示例值：02a11ac4a83b918e
func (builder *DeviceApplyRecordBuilder) GoogleAid(googleAid string) *DeviceApplyRecordBuilder {
	builder.googleAid = googleAid
	builder.googleAidFlag = true
	return builder
}

// Ios广告主标识符
//
// 示例值：EA7583CD-A667-48BC-B806-42ECB2B48606
func (builder *DeviceApplyRecordBuilder) Idfa(idfa string) *DeviceApplyRecordBuilder {
	builder.idfa = idfa
	builder.idfaFlag = true
	return builder
}

// Ios 供应商标识符
//
// 示例值：968F0E5C-C297-4122-ACB6-102494DEFD9A
func (builder *DeviceApplyRecordBuilder) Idfv(idfv string) *DeviceApplyRecordBuilder {
	builder.idfv = idfv
	builder.idfvFlag = true
	return builder
}

// 申报状态
//
// 示例值：Processing
func (builder *DeviceApplyRecordBuilder) ApplyStatus(applyStatus string) *DeviceApplyRecordBuilder {
	builder.applyStatus = applyStatus
	builder.applyStatusFlag = true
	return builder
}

// 申请人
//
// 示例值：
func (builder *DeviceApplyRecordBuilder) Operator(operator *UserId) *DeviceApplyRecordBuilder {
	builder.operator = operator
	builder.operatorFlag = true
	return builder
}

// 申请时间
//
// 示例值：2022-11-28 17:21:26
func (builder *DeviceApplyRecordBuilder) ApplyTime(applyTime string) *DeviceApplyRecordBuilder {
	builder.applyTime = applyTime
	builder.applyTimeFlag = true
	return builder
}

// 硬盘序列号
//
// 示例值：CC344362-5990-5A68-8DDD-64A23C99FA0C
func (builder *DeviceApplyRecordBuilder) DiskSerialNumber(diskSerialNumber string) *DeviceApplyRecordBuilder {
	builder.diskSerialNumber = diskSerialNumber
	builder.diskSerialNumberFlag = true
	return builder
}

// 设备归属
//
// 示例值：Company
func (builder *DeviceApplyRecordBuilder) DeviceOwnership(deviceOwnership string) *DeviceApplyRecordBuilder {
	builder.deviceOwnership = deviceOwnership
	builder.deviceOwnershipFlag = true
	return builder
}

// 操作系统
//
// 示例值：Windows
func (builder *DeviceApplyRecordBuilder) DeviceSystem(deviceSystem string) *DeviceApplyRecordBuilder {
	builder.deviceSystem = deviceSystem
	builder.deviceSystemFlag = true
	return builder
}

// 设备名称
//
// 示例值：xx的设备
func (builder *DeviceApplyRecordBuilder) DeviceName(deviceName string) *DeviceApplyRecordBuilder {
	builder.deviceName = deviceName
	builder.deviceNameFlag = true
	return builder
}

// 设备单ID
//
// 示例值：321321311112
func (builder *DeviceApplyRecordBuilder) DeviceRecordId(deviceRecordId string) *DeviceApplyRecordBuilder {
	builder.deviceRecordId = deviceRecordId
	builder.deviceRecordIdFlag = true
	return builder
}

// 鸿蒙系统应用匿名标识符
//
// 示例值：84a5a123-04c5-6789-9d71-3706e50f9250
func (builder *DeviceApplyRecordBuilder) Aaid(aaid string) *DeviceApplyRecordBuilder {
	builder.aaid = aaid
	builder.aaidFlag = true
	return builder
}

func (builder *DeviceApplyRecordBuilder) Build() *DeviceApplyRecord {
	req := &DeviceApplyRecord{}
	if builder.applyIdFlag {
		req.ApplyId = &builder.applyId

	}
	if builder.deviceTerminalTypeFlag {
		req.DeviceTerminalType = &builder.deviceTerminalType

	}
	if builder.modelFlag {
		req.Model = &builder.model

	}
	if builder.serialNumberFlag {
		req.SerialNumber = &builder.serialNumber

	}
	if builder.uuidFlag {
		req.Uuid = &builder.uuid

	}
	if builder.macAddressFlag {
		req.MacAddress = &builder.macAddress

	}
	if builder.imeiFlag {
		req.Imei = &builder.imei

	}
	if builder.androidIdFlag {
		req.AndroidId = &builder.androidId

	}
	if builder.googleAidFlag {
		req.GoogleAid = &builder.googleAid

	}
	if builder.idfaFlag {
		req.Idfa = &builder.idfa

	}
	if builder.idfvFlag {
		req.Idfv = &builder.idfv

	}
	if builder.applyStatusFlag {
		req.ApplyStatus = &builder.applyStatus

	}
	if builder.operatorFlag {
		req.Operator = builder.operator
	}
	if builder.applyTimeFlag {
		req.ApplyTime = &builder.applyTime

	}
	if builder.diskSerialNumberFlag {
		req.DiskSerialNumber = &builder.diskSerialNumber

	}
	if builder.deviceOwnershipFlag {
		req.DeviceOwnership = &builder.deviceOwnership

	}
	if builder.deviceSystemFlag {
		req.DeviceSystem = &builder.deviceSystem

	}
	if builder.deviceNameFlag {
		req.DeviceName = &builder.deviceName

	}
	if builder.deviceRecordIdFlag {
		req.DeviceRecordId = &builder.deviceRecordId

	}
	if builder.aaidFlag {
		req.Aaid = &builder.aaid

	}
	return req
}

type DeviceRecord struct {
	DeviceRecordId *string `json:"device_record_id,omitempty"` // 设备主键id

	DeviceTerminalType *string `json:"device_terminal_type,omitempty"` // 设备类型

	DeviceSystem *string `json:"device_system,omitempty"` // 操作系统

	Model *string `json:"model,omitempty"` // 设备型号

	DeviceName *string `json:"device_name,omitempty"` // 设备名称

	SerialNumber *string `json:"serial_number,omitempty"` // 生产序列号

	Uuid *string `json:"uuid,omitempty"` // 主板UUID

	MacAddress *string `json:"mac_address,omitempty"` // Mac地址

	Imei *string `json:"imei,omitempty"` // 国际移动设备识别码

	AndroidId *string `json:"android_id,omitempty"` // Android 标识符

	GoogleAid *string `json:"google_aid,omitempty"` // google广告id

	Idfa *string `json:"idfa,omitempty"` // Ios广告主标识符

	Idfv *string `json:"idfv,omitempty"` // Ios 供应商标识符

	DeviceOwnership *string `json:"device_ownership,omitempty"` // 设备归属

	DeviceSource *string `json:"device_source,omitempty"` // 设备来源

	RegisterTime *string `json:"register_time,omitempty"` // 注册时间

	DeviceCredibility *string `json:"device_credibility,omitempty"` // 设备状态

	Version *string `json:"version,omitempty"` // 设备记录版本

	DiskSerialNumber *string `json:"disk_serial_number,omitempty"` // 硬盘序列号

	Aaid *string `json:"aaid,omitempty"` // 鸿蒙系统应用匿名标识符
}

type DeviceRecordBuilder struct {
	deviceRecordId     string // 设备主键id
	deviceRecordIdFlag bool

	deviceTerminalType     string // 设备类型
	deviceTerminalTypeFlag bool

	deviceSystem     string // 操作系统
	deviceSystemFlag bool

	model     string // 设备型号
	modelFlag bool

	deviceName     string // 设备名称
	deviceNameFlag bool

	serialNumber     string // 生产序列号
	serialNumberFlag bool

	uuid     string // 主板UUID
	uuidFlag bool

	macAddress     string // Mac地址
	macAddressFlag bool

	imei     string // 国际移动设备识别码
	imeiFlag bool

	androidId     string // Android 标识符
	androidIdFlag bool

	googleAid     string // google广告id
	googleAidFlag bool

	idfa     string // Ios广告主标识符
	idfaFlag bool

	idfv     string // Ios 供应商标识符
	idfvFlag bool

	deviceOwnership     string // 设备归属
	deviceOwnershipFlag bool

	deviceSource     string // 设备来源
	deviceSourceFlag bool

	registerTime     string // 注册时间
	registerTimeFlag bool

	deviceCredibility     string // 设备状态
	deviceCredibilityFlag bool

	version     string // 设备记录版本
	versionFlag bool

	diskSerialNumber     string // 硬盘序列号
	diskSerialNumberFlag bool

	aaid     string // 鸿蒙系统应用匿名标识符
	aaidFlag bool
}

func NewDeviceRecordBuilder() *DeviceRecordBuilder {
	builder := &DeviceRecordBuilder{}
	return builder
}

// 设备主键id
//
// 示例值：3a4771nbnd1os
func (builder *DeviceRecordBuilder) DeviceRecordId(deviceRecordId string) *DeviceRecordBuilder {
	builder.deviceRecordId = deviceRecordId
	builder.deviceRecordIdFlag = true
	return builder
}

// 设备类型
//
// 示例值：mobile
func (builder *DeviceRecordBuilder) DeviceTerminalType(deviceTerminalType string) *DeviceRecordBuilder {
	builder.deviceTerminalType = deviceTerminalType
	builder.deviceTerminalTypeFlag = true
	return builder
}

// 操作系统
//
// 示例值：MacOS
func (builder *DeviceRecordBuilder) DeviceSystem(deviceSystem string) *DeviceRecordBuilder {
	builder.deviceSystem = deviceSystem
	builder.deviceSystemFlag = true
	return builder
}

// 设备型号
//
// 示例值：MacBookPro16,2
func (builder *DeviceRecordBuilder) Model(model string) *DeviceRecordBuilder {
	builder.model = model
	builder.modelFlag = true
	return builder
}

// 设备名称
//
// 示例值：HUMAN-PC
func (builder *DeviceRecordBuilder) DeviceName(deviceName string) *DeviceRecordBuilder {
	builder.deviceName = deviceName
	builder.deviceNameFlag = true
	return builder
}

// 生产序列号
//
// 示例值：C02DTHRMML7H
func (builder *DeviceRecordBuilder) SerialNumber(serialNumber string) *DeviceRecordBuilder {
	builder.serialNumber = serialNumber
	builder.serialNumberFlag = true
	return builder
}

// 主板UUID
//
// 示例值：CC344362-5990-5A68-8DDD-64A23C99FA0C
func (builder *DeviceRecordBuilder) Uuid(uuid string) *DeviceRecordBuilder {
	builder.uuid = uuid
	builder.uuidFlag = true
	return builder
}

// Mac地址
//
// 示例值：ac:de:48:00:11:22
func (builder *DeviceRecordBuilder) MacAddress(macAddress string) *DeviceRecordBuilder {
	builder.macAddress = macAddress
	builder.macAddressFlag = true
	return builder
}

// 国际移动设备识别码
//
// 示例值：123456-78-901234-5
func (builder *DeviceRecordBuilder) Imei(imei string) *DeviceRecordBuilder {
	builder.imei = imei
	builder.imeiFlag = true
	return builder
}

// Android 标识符
//
// 示例值：02a11ac4a83b918e
func (builder *DeviceRecordBuilder) AndroidId(androidId string) *DeviceRecordBuilder {
	builder.androidId = androidId
	builder.androidIdFlag = true
	return builder
}

// google广告id
//
// 示例值：02a11ac4a83b918e
func (builder *DeviceRecordBuilder) GoogleAid(googleAid string) *DeviceRecordBuilder {
	builder.googleAid = googleAid
	builder.googleAidFlag = true
	return builder
}

// Ios广告主标识符
//
// 示例值：EA7583CD-A667-48BC-B806-42ECB2B48606
func (builder *DeviceRecordBuilder) Idfa(idfa string) *DeviceRecordBuilder {
	builder.idfa = idfa
	builder.idfaFlag = true
	return builder
}

// Ios 供应商标识符
//
// 示例值：968F0E5C-C297-4122-ACB6-102494DEFD9A
func (builder *DeviceRecordBuilder) Idfv(idfv string) *DeviceRecordBuilder {
	builder.idfv = idfv
	builder.idfvFlag = true
	return builder
}

// 设备归属
//
// 示例值：Company
func (builder *DeviceRecordBuilder) DeviceOwnership(deviceOwnership string) *DeviceRecordBuilder {
	builder.deviceOwnership = deviceOwnership
	builder.deviceOwnershipFlag = true
	return builder
}

// 设备来源
//
// 示例值：ADMIN_IMPORT
func (builder *DeviceRecordBuilder) DeviceSource(deviceSource string) *DeviceRecordBuilder {
	builder.deviceSource = deviceSource
	builder.deviceSourceFlag = true
	return builder
}

// 注册时间
//
// 示例值：2022-11-28 17:21:26
func (builder *DeviceRecordBuilder) RegisterTime(registerTime string) *DeviceRecordBuilder {
	builder.registerTime = registerTime
	builder.registerTimeFlag = true
	return builder
}

// 设备状态
//
// 示例值：Credible
func (builder *DeviceRecordBuilder) DeviceCredibility(deviceCredibility string) *DeviceRecordBuilder {
	builder.deviceCredibility = deviceCredibility
	builder.deviceCredibilityFlag = true
	return builder
}

// 设备记录版本
//
// 示例值：1692341374888
func (builder *DeviceRecordBuilder) Version(version string) *DeviceRecordBuilder {
	builder.version = version
	builder.versionFlag = true
	return builder
}

// 硬盘序列号
//
// 示例值：CC344362-5990-5A68-8DDD-64A23C99FA0C
func (builder *DeviceRecordBuilder) DiskSerialNumber(diskSerialNumber string) *DeviceRecordBuilder {
	builder.diskSerialNumber = diskSerialNumber
	builder.diskSerialNumberFlag = true
	return builder
}

// 鸿蒙系统应用匿名标识符
//
// 示例值：84a5a123-04c5-6789-9d71-3706e50f9250
func (builder *DeviceRecordBuilder) Aaid(aaid string) *DeviceRecordBuilder {
	builder.aaid = aaid
	builder.aaidFlag = true
	return builder
}

func (builder *DeviceRecordBuilder) Build() *DeviceRecord {
	req := &DeviceRecord{}
	if builder.deviceRecordIdFlag {
		req.DeviceRecordId = &builder.deviceRecordId

	}
	if builder.deviceTerminalTypeFlag {
		req.DeviceTerminalType = &builder.deviceTerminalType

	}
	if builder.deviceSystemFlag {
		req.DeviceSystem = &builder.deviceSystem

	}
	if builder.modelFlag {
		req.Model = &builder.model

	}
	if builder.deviceNameFlag {
		req.DeviceName = &builder.deviceName

	}
	if builder.serialNumberFlag {
		req.SerialNumber = &builder.serialNumber

	}
	if builder.uuidFlag {
		req.Uuid = &builder.uuid

	}
	if builder.macAddressFlag {
		req.MacAddress = &builder.macAddress

	}
	if builder.imeiFlag {
		req.Imei = &builder.imei

	}
	if builder.androidIdFlag {
		req.AndroidId = &builder.androidId

	}
	if builder.googleAidFlag {
		req.GoogleAid = &builder.googleAid

	}
	if builder.idfaFlag {
		req.Idfa = &builder.idfa

	}
	if builder.idfvFlag {
		req.Idfv = &builder.idfv

	}
	if builder.deviceOwnershipFlag {
		req.DeviceOwnership = &builder.deviceOwnership

	}
	if builder.deviceSourceFlag {
		req.DeviceSource = &builder.deviceSource

	}
	if builder.registerTimeFlag {
		req.RegisterTime = &builder.registerTime

	}
	if builder.deviceCredibilityFlag {
		req.DeviceCredibility = &builder.deviceCredibility

	}
	if builder.versionFlag {
		req.Version = &builder.version

	}
	if builder.diskSerialNumberFlag {
		req.DiskSerialNumber = &builder.diskSerialNumber

	}
	if builder.aaidFlag {
		req.Aaid = &builder.aaid

	}
	return req
}

type DirectoryItems struct {
	EntityId *string `json:"entity_id,omitempty"` // 实体的 id

	MailAddress *string `json:"mail_address,omitempty"` // 邮箱地址。当通过 mailbox 查询实体时，返回 mail address，如果没有，则返回空。

	EntityLocation *string `json:"entity_location,omitempty"` // 实体的数据驻留地

	EntityCreateTime *string `json:"entity_create_time,omitempty"` // 实体创建时间（毫秒级时间戳）

	EntityType *string `json:"entity_type,omitempty"` // 实体的类型
}

type DirectoryItemsBuilder struct {
	entityId     string // 实体的 id
	entityIdFlag bool

	mailAddress     string // 邮箱地址。当通过 mailbox 查询实体时，返回 mail address，如果没有，则返回空。
	mailAddressFlag bool

	entityLocation     string // 实体的数据驻留地
	entityLocationFlag bool

	entityCreateTime     string // 实体创建时间（毫秒级时间戳）
	entityCreateTimeFlag bool

	entityType     string // 实体的类型
	entityTypeFlag bool
}

func NewDirectoryItemsBuilder() *DirectoryItemsBuilder {
	builder := &DirectoryItemsBuilder{}
	return builder
}

// 实体的 id
//
// 示例值：134jsi43d3ssi993d435452
func (builder *DirectoryItemsBuilder) EntityId(entityId string) *DirectoryItemsBuilder {
	builder.entityId = entityId
	builder.entityIdFlag = true
	return builder
}

// 邮箱地址。当通过 mailbox 查询实体时，返回 mail address，如果没有，则返回空。
//
// 示例值：xxx@xxx.xx
func (builder *DirectoryItemsBuilder) MailAddress(mailAddress string) *DirectoryItemsBuilder {
	builder.mailAddress = mailAddress
	builder.mailAddressFlag = true
	return builder
}

// 实体的数据驻留地
//
// 示例值：SG
func (builder *DirectoryItemsBuilder) EntityLocation(entityLocation string) *DirectoryItemsBuilder {
	builder.entityLocation = entityLocation
	builder.entityLocationFlag = true
	return builder
}

// 实体创建时间（毫秒级时间戳）
//
// 示例值：1615380573411
func (builder *DirectoryItemsBuilder) EntityCreateTime(entityCreateTime string) *DirectoryItemsBuilder {
	builder.entityCreateTime = entityCreateTime
	builder.entityCreateTimeFlag = true
	return builder
}

// 实体的类型
//
// 示例值：sheets
func (builder *DirectoryItemsBuilder) EntityType(entityType string) *DirectoryItemsBuilder {
	builder.entityType = entityType
	builder.entityTypeFlag = true
	return builder
}

func (builder *DirectoryItemsBuilder) Build() *DirectoryItems {
	req := &DirectoryItems{}
	if builder.entityIdFlag {
		req.EntityId = &builder.entityId

	}
	if builder.mailAddressFlag {
		req.MailAddress = &builder.mailAddress

	}
	if builder.entityLocationFlag {
		req.EntityLocation = &builder.entityLocation

	}
	if builder.entityCreateTimeFlag {
		req.EntityCreateTime = &builder.entityCreateTime

	}
	if builder.entityTypeFlag {
		req.EntityType = &builder.entityType

	}
	return req
}

type DlpDetectModeProofContext struct {
	DetectMode *int `json:"detect_mode,omitempty"` // 检测类型

	DetectName *string `json:"detect_name,omitempty"` // 检测类型名称

	ProofContexts []*DlpProofContext `json:"proof_contexts,omitempty"` // 命中片段

	HitCount *int `json:"hit_count,omitempty"` // 命中次数
}

type DlpDetectModeProofContextBuilder struct {
	detectMode     int // 检测类型
	detectModeFlag bool

	detectName     string // 检测类型名称
	detectNameFlag bool

	proofContexts     []*DlpProofContext // 命中片段
	proofContextsFlag bool

	hitCount     int // 命中次数
	hitCountFlag bool
}

func NewDlpDetectModeProofContextBuilder() *DlpDetectModeProofContextBuilder {
	builder := &DlpDetectModeProofContextBuilder{}
	return builder
}

// 检测类型
//
// 示例值：1
func (builder *DlpDetectModeProofContextBuilder) DetectMode(detectMode int) *DlpDetectModeProofContextBuilder {
	builder.detectMode = detectMode
	builder.detectModeFlag = true
	return builder
}

// 检测类型名称
//
// 示例值：关键词1
func (builder *DlpDetectModeProofContextBuilder) DetectName(detectName string) *DlpDetectModeProofContextBuilder {
	builder.detectName = detectName
	builder.detectNameFlag = true
	return builder
}

// 命中片段
//
// 示例值：
func (builder *DlpDetectModeProofContextBuilder) ProofContexts(proofContexts []*DlpProofContext) *DlpDetectModeProofContextBuilder {
	builder.proofContexts = proofContexts
	builder.proofContextsFlag = true
	return builder
}

// 命中次数
//
// 示例值：12
func (builder *DlpDetectModeProofContextBuilder) HitCount(hitCount int) *DlpDetectModeProofContextBuilder {
	builder.hitCount = hitCount
	builder.hitCountFlag = true
	return builder
}

func (builder *DlpDetectModeProofContextBuilder) Build() *DlpDetectModeProofContext {
	req := &DlpDetectModeProofContext{}
	if builder.detectModeFlag {
		req.DetectMode = &builder.detectMode

	}
	if builder.detectNameFlag {
		req.DetectName = &builder.detectName

	}
	if builder.proofContextsFlag {
		req.ProofContexts = builder.proofContexts
	}
	if builder.hitCountFlag {
		req.HitCount = &builder.hitCount

	}
	return req
}

type DlpEvidenceDetail struct {
	KeywordHits []string `json:"keyword_hits,omitempty"` // 命中关键词

	RegularHits []string `json:"regular_hits,omitempty"` // 命中正则表达式

	SensitiveHits []string `json:"sensitive_hits,omitempty"` // 命中敏感信息类型

	FileSizeHits []string `json:"file_size_hits,omitempty"` // 命中文件大小

	FileTypeHits []string `json:"file_type_hits,omitempty"` // 命中文件类型

	FileNameExtHits []string `json:"file_name_ext_hits,omitempty"` // 命中文件拓展名

	TriggerSnippets []*DlpPolicyHitProof `json:"trigger_snippets,omitempty"` // 命中片段

	SecureLabelHits []string `json:"secure_label_hits,omitempty"` // 命中密级标签
}

type DlpEvidenceDetailBuilder struct {
	keywordHits     []string // 命中关键词
	keywordHitsFlag bool

	regularHits     []string // 命中正则表达式
	regularHitsFlag bool

	sensitiveHits     []string // 命中敏感信息类型
	sensitiveHitsFlag bool

	fileSizeHits     []string // 命中文件大小
	fileSizeHitsFlag bool

	fileTypeHits     []string // 命中文件类型
	fileTypeHitsFlag bool

	fileNameExtHits     []string // 命中文件拓展名
	fileNameExtHitsFlag bool

	triggerSnippets     []*DlpPolicyHitProof // 命中片段
	triggerSnippetsFlag bool

	secureLabelHits     []string // 命中密级标签
	secureLabelHitsFlag bool
}

func NewDlpEvidenceDetailBuilder() *DlpEvidenceDetailBuilder {
	builder := &DlpEvidenceDetailBuilder{}
	return builder
}

// 命中关键词
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) KeywordHits(keywordHits []string) *DlpEvidenceDetailBuilder {
	builder.keywordHits = keywordHits
	builder.keywordHitsFlag = true
	return builder
}

// 命中正则表达式
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) RegularHits(regularHits []string) *DlpEvidenceDetailBuilder {
	builder.regularHits = regularHits
	builder.regularHitsFlag = true
	return builder
}

// 命中敏感信息类型
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) SensitiveHits(sensitiveHits []string) *DlpEvidenceDetailBuilder {
	builder.sensitiveHits = sensitiveHits
	builder.sensitiveHitsFlag = true
	return builder
}

// 命中文件大小
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) FileSizeHits(fileSizeHits []string) *DlpEvidenceDetailBuilder {
	builder.fileSizeHits = fileSizeHits
	builder.fileSizeHitsFlag = true
	return builder
}

// 命中文件类型
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) FileTypeHits(fileTypeHits []string) *DlpEvidenceDetailBuilder {
	builder.fileTypeHits = fileTypeHits
	builder.fileTypeHitsFlag = true
	return builder
}

// 命中文件拓展名
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) FileNameExtHits(fileNameExtHits []string) *DlpEvidenceDetailBuilder {
	builder.fileNameExtHits = fileNameExtHits
	builder.fileNameExtHitsFlag = true
	return builder
}

// 命中片段
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) TriggerSnippets(triggerSnippets []*DlpPolicyHitProof) *DlpEvidenceDetailBuilder {
	builder.triggerSnippets = triggerSnippets
	builder.triggerSnippetsFlag = true
	return builder
}

// 命中密级标签
//
// 示例值：
func (builder *DlpEvidenceDetailBuilder) SecureLabelHits(secureLabelHits []string) *DlpEvidenceDetailBuilder {
	builder.secureLabelHits = secureLabelHits
	builder.secureLabelHitsFlag = true
	return builder
}

func (builder *DlpEvidenceDetailBuilder) Build() *DlpEvidenceDetail {
	req := &DlpEvidenceDetail{}
	if builder.keywordHitsFlag {
		req.KeywordHits = builder.keywordHits
	}
	if builder.regularHitsFlag {
		req.RegularHits = builder.regularHits
	}
	if builder.sensitiveHitsFlag {
		req.SensitiveHits = builder.sensitiveHits
	}
	if builder.fileSizeHitsFlag {
		req.FileSizeHits = builder.fileSizeHits
	}
	if builder.fileTypeHitsFlag {
		req.FileTypeHits = builder.fileTypeHits
	}
	if builder.fileNameExtHitsFlag {
		req.FileNameExtHits = builder.fileNameExtHits
	}
	if builder.triggerSnippetsFlag {
		req.TriggerSnippets = builder.triggerSnippets
	}
	if builder.secureLabelHitsFlag {
		req.SecureLabelHits = builder.secureLabelHits
	}
	return req
}

type DlpExecuteEvidence struct {
	KeywordHits []string `json:"keyword_hits,omitempty"` // 关键字

	RegularHits []string `json:"regular_hits,omitempty"` // 正则表达式列表

	SensitiveHits []string `json:"sensitive_hits,omitempty"` // 敏感信息类型列表
}

type DlpExecuteEvidenceBuilder struct {
	keywordHits     []string // 关键字
	keywordHitsFlag bool

	regularHits     []string // 正则表达式列表
	regularHitsFlag bool

	sensitiveHits     []string // 敏感信息类型列表
	sensitiveHitsFlag bool
}

func NewDlpExecuteEvidenceBuilder() *DlpExecuteEvidenceBuilder {
	builder := &DlpExecuteEvidenceBuilder{}
	return builder
}

// 关键字
//
// 示例值：
func (builder *DlpExecuteEvidenceBuilder) KeywordHits(keywordHits []string) *DlpExecuteEvidenceBuilder {
	builder.keywordHits = keywordHits
	builder.keywordHitsFlag = true
	return builder
}

// 正则表达式列表
//
// 示例值：
func (builder *DlpExecuteEvidenceBuilder) RegularHits(regularHits []string) *DlpExecuteEvidenceBuilder {
	builder.regularHits = regularHits
	builder.regularHitsFlag = true
	return builder
}

// 敏感信息类型列表
//
// 示例值：
func (builder *DlpExecuteEvidenceBuilder) SensitiveHits(sensitiveHits []string) *DlpExecuteEvidenceBuilder {
	builder.sensitiveHits = sensitiveHits
	builder.sensitiveHitsFlag = true
	return builder
}

func (builder *DlpExecuteEvidenceBuilder) Build() *DlpExecuteEvidence {
	req := &DlpExecuteEvidence{}
	if builder.keywordHitsFlag {
		req.KeywordHits = builder.keywordHits
	}
	if builder.regularHitsFlag {
		req.RegularHits = builder.regularHits
	}
	if builder.sensitiveHitsFlag {
		req.SensitiveHits = builder.sensitiveHits
	}
	return req
}

type DlpExecuteLog struct {
	ApplicableService *string `json:"applicable_service,omitempty"` // 应用业务线

	UserName *string `json:"user_name,omitempty"` // 用户名

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

	Trigger *string `json:"trigger,omitempty"` // 触发条件

	Time *string `json:"time,omitempty"` // 时间

	SystemAction *string `json:"system_action,omitempty"` // 系统执行动作

	SenderName *string `json:"sender_name,omitempty"` // 消息发送者名称

	SenderId *string `json:"sender_id,omitempty"` // 消息发送者ID

	RecipientName *string `json:"recipient_name,omitempty"` // 消息接收者名称

	RecipientId *string `json:"recipient_id,omitempty"` // 消息接收者ID

	ChatName *string `json:"chat_name,omitempty"` // 会话名称

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

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

	MessageContent *string `json:"message_content,omitempty"` // 消息内容

	AliasIngroup *string `json:"alias_ingroup,omitempty"` // 群昵称

	GroupDescription *string `json:"group_description,omitempty"` // 群描述

	GroupTabContent *string `json:"group_tab_content,omitempty"` // 群标签页内容

	FileName *string `json:"file_name,omitempty"` // 文件名称

	FileKey *string `json:"file_key,omitempty"` // 文件key

	DocumentOwnerName *string `json:"document_owner_name,omitempty"` // 文档所有者名称

	DocumentOwnerId *string `json:"document_owner_id,omitempty"` // 文档所有者ID

	DocumentName *string `json:"document_name,omitempty"` // 文档名称

	DocumentType *string `json:"document_type,omitempty"` // 云文档类型，如文档、电子表格等

	DocumentLink *string `json:"document_link,omitempty"` // 文档链接

	EvidenceDetail *DlpEvidenceDetail `json:"evidence_detail,omitempty"` // 证据详情

	HitPolicies []*DlpHitPolicy `json:"hit_policies,omitempty"` // 命中策略

	FileToken *string `json:"file_token,omitempty"` // 文件token

	TriggerEventType *string `json:"trigger_event_type,omitempty"` // 触发事件类型

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

	GroupOwnerName *string `json:"group_owner_name,omitempty"` // 群主名称

	GroupOwnerId *string `json:"group_owner_id,omitempty"` // 群主ID
}

type DlpExecuteLogBuilder struct {
	applicableService     string // 应用业务线
	applicableServiceFlag bool

	userName     string // 用户名
	userNameFlag bool

	userId     string // 用户id
	userIdFlag bool

	trigger     string // 触发条件
	triggerFlag bool

	time     string // 时间
	timeFlag bool

	systemAction     string // 系统执行动作
	systemActionFlag bool

	senderName     string // 消息发送者名称
	senderNameFlag bool

	senderId     string // 消息发送者ID
	senderIdFlag bool

	recipientName     string // 消息接收者名称
	recipientNameFlag bool

	recipientId     string // 消息接收者ID
	recipientIdFlag bool

	chatName     string // 会话名称
	chatNameFlag bool

	chatId     string // 会话ID
	chatIdFlag bool

	messageId     string // 消息ID
	messageIdFlag bool

	messageContent     string // 消息内容
	messageContentFlag bool

	aliasIngroup     string // 群昵称
	aliasIngroupFlag bool

	groupDescription     string // 群描述
	groupDescriptionFlag bool

	groupTabContent     string // 群标签页内容
	groupTabContentFlag bool

	fileName     string // 文件名称
	fileNameFlag bool

	fileKey     string // 文件key
	fileKeyFlag bool

	documentOwnerName     string // 文档所有者名称
	documentOwnerNameFlag bool

	documentOwnerId     string // 文档所有者ID
	documentOwnerIdFlag bool

	documentName     string // 文档名称
	documentNameFlag bool

	documentType     string // 云文档类型，如文档、电子表格等
	documentTypeFlag bool

	documentLink     string // 文档链接
	documentLinkFlag bool

	evidenceDetail     *DlpEvidenceDetail // 证据详情
	evidenceDetailFlag bool

	hitPolicies     []*DlpHitPolicy // 命中策略
	hitPoliciesFlag bool

	fileToken     string // 文件token
	fileTokenFlag bool

	triggerEventType     string // 触发事件类型
	triggerEventTypeFlag bool

	chatType     string // 会话类型
	chatTypeFlag bool

	groupOwnerName     string // 群主名称
	groupOwnerNameFlag bool

	groupOwnerId     string // 群主ID
	groupOwnerIdFlag bool
}

func NewDlpExecuteLogBuilder() *DlpExecuteLogBuilder {
	builder := &DlpExecuteLogBuilder{}
	return builder
}

// 应用业务线
//
// 示例值：即时消息
func (builder *DlpExecuteLogBuilder) ApplicableService(applicableService string) *DlpExecuteLogBuilder {
	builder.applicableService = applicableService
	builder.applicableServiceFlag = true
	return builder
}

// 用户名
//
// 示例值：张三
func (builder *DlpExecuteLogBuilder) UserName(userName string) *DlpExecuteLogBuilder {
	builder.userName = userName
	builder.userNameFlag = true
	return builder
}

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

// 触发条件
//
// 示例值：下载/打印
func (builder *DlpExecuteLogBuilder) Trigger(trigger string) *DlpExecuteLogBuilder {
	builder.trigger = trigger
	builder.triggerFlag = true
	return builder
}

// 时间
//
// 示例值：16894002
func (builder *DlpExecuteLogBuilder) Time(time string) *DlpExecuteLogBuilder {
	builder.time = time
	builder.timeFlag = true
	return builder
}

// 系统执行动作
//
// 示例值：拦截
func (builder *DlpExecuteLogBuilder) SystemAction(systemAction string) *DlpExecuteLogBuilder {
	builder.systemAction = systemAction
	builder.systemActionFlag = true
	return builder
}

// 消息发送者名称
//
// 示例值：张三
func (builder *DlpExecuteLogBuilder) SenderName(senderName string) *DlpExecuteLogBuilder {
	builder.senderName = senderName
	builder.senderNameFlag = true
	return builder
}

// 消息发送者ID
//
// 示例值：983749203223
func (builder *DlpExecuteLogBuilder) SenderId(senderId string) *DlpExecuteLogBuilder {
	builder.senderId = senderId
	builder.senderIdFlag = true
	return builder
}

// 消息接收者名称
//
// 示例值：李四
func (builder *DlpExecuteLogBuilder) RecipientName(recipientName string) *DlpExecuteLogBuilder {
	builder.recipientName = recipientName
	builder.recipientNameFlag = true
	return builder
}

// 消息接收者ID
//
// 示例值：96382734927001
func (builder *DlpExecuteLogBuilder) RecipientId(recipientId string) *DlpExecuteLogBuilder {
	builder.recipientId = recipientId
	builder.recipientIdFlag = true
	return builder
}

// 会话名称
//
// 示例值：张三的群聊
func (builder *DlpExecuteLogBuilder) ChatName(chatName string) *DlpExecuteLogBuilder {
	builder.chatName = chatName
	builder.chatNameFlag = true
	return builder
}

// 会话ID
//
// 示例值：9374819371047
func (builder *DlpExecuteLogBuilder) ChatId(chatId string) *DlpExecuteLogBuilder {
	builder.chatId = chatId
	builder.chatIdFlag = true
	return builder
}

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

// 消息内容
//
// 示例值：这是一则消息
func (builder *DlpExecuteLogBuilder) MessageContent(messageContent string) *DlpExecuteLogBuilder {
	builder.messageContent = messageContent
	builder.messageContentFlag = true
	return builder
}

// 群昵称
//
// 示例值：李四的昵称
func (builder *DlpExecuteLogBuilder) AliasIngroup(aliasIngroup string) *DlpExecuteLogBuilder {
	builder.aliasIngroup = aliasIngroup
	builder.aliasIngroupFlag = true
	return builder
}

// 群描述
//
// 示例值：这是一个群描述
func (builder *DlpExecuteLogBuilder) GroupDescription(groupDescription string) *DlpExecuteLogBuilder {
	builder.groupDescription = groupDescription
	builder.groupDescriptionFlag = true
	return builder
}

// 群标签页内容
//
// 示例值：文档标签页
func (builder *DlpExecuteLogBuilder) GroupTabContent(groupTabContent string) *DlpExecuteLogBuilder {
	builder.groupTabContent = groupTabContent
	builder.groupTabContentFlag = true
	return builder
}

// 文件名称
//
// 示例值：文件1
func (builder *DlpExecuteLogBuilder) FileName(fileName string) *DlpExecuteLogBuilder {
	builder.fileName = fileName
	builder.fileNameFlag = true
	return builder
}

// 文件key
//
// 示例值：key-skjfldljbf
func (builder *DlpExecuteLogBuilder) FileKey(fileKey string) *DlpExecuteLogBuilder {
	builder.fileKey = fileKey
	builder.fileKeyFlag = true
	return builder
}

// 文档所有者名称
//
// 示例值：王五
func (builder *DlpExecuteLogBuilder) DocumentOwnerName(documentOwnerName string) *DlpExecuteLogBuilder {
	builder.documentOwnerName = documentOwnerName
	builder.documentOwnerNameFlag = true
	return builder
}

// 文档所有者ID
//
// 示例值：93743293493
func (builder *DlpExecuteLogBuilder) DocumentOwnerId(documentOwnerId string) *DlpExecuteLogBuilder {
	builder.documentOwnerId = documentOwnerId
	builder.documentOwnerIdFlag = true
	return builder
}

// 文档名称
//
// 示例值：文档名称一
func (builder *DlpExecuteLogBuilder) DocumentName(documentName string) *DlpExecuteLogBuilder {
	builder.documentName = documentName
	builder.documentNameFlag = true
	return builder
}

// 云文档类型，如文档、电子表格等
//
// 示例值：doc
func (builder *DlpExecuteLogBuilder) DocumentType(documentType string) *DlpExecuteLogBuilder {
	builder.documentType = documentType
	builder.documentTypeFlag = true
	return builder
}

// 文档链接
//
// 示例值：http://example.test/testdoc
func (builder *DlpExecuteLogBuilder) DocumentLink(documentLink string) *DlpExecuteLogBuilder {
	builder.documentLink = documentLink
	builder.documentLinkFlag = true
	return builder
}

// 证据详情
//
// 示例值：
func (builder *DlpExecuteLogBuilder) EvidenceDetail(evidenceDetail *DlpEvidenceDetail) *DlpExecuteLogBuilder {
	builder.evidenceDetail = evidenceDetail
	builder.evidenceDetailFlag = true
	return builder
}

// 命中策略
//
// 示例值：
func (builder *DlpExecuteLogBuilder) HitPolicies(hitPolicies []*DlpHitPolicy) *DlpExecuteLogBuilder {
	builder.hitPolicies = hitPolicies
	builder.hitPoliciesFlag = true
	return builder
}

// 文件token
//
// 示例值：token-aaddtken
func (builder *DlpExecuteLogBuilder) FileToken(fileToken string) *DlpExecuteLogBuilder {
	builder.fileToken = fileToken
	builder.fileTokenFlag = true
	return builder
}

// 触发事件类型
//
// 示例值：系统送检
func (builder *DlpExecuteLogBuilder) TriggerEventType(triggerEventType string) *DlpExecuteLogBuilder {
	builder.triggerEventType = triggerEventType
	builder.triggerEventTypeFlag = true
	return builder
}

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

// 群主名称
//
// 示例值：李四
func (builder *DlpExecuteLogBuilder) GroupOwnerName(groupOwnerName string) *DlpExecuteLogBuilder {
	builder.groupOwnerName = groupOwnerName
	builder.groupOwnerNameFlag = true
	return builder
}

// 群主ID
//
// 示例值：983749203223
func (builder *DlpExecuteLogBuilder) GroupOwnerId(groupOwnerId string) *DlpExecuteLogBuilder {
	builder.groupOwnerId = groupOwnerId
	builder.groupOwnerIdFlag = true
	return builder
}

func (builder *DlpExecuteLogBuilder) Build() *DlpExecuteLog {
	req := &DlpExecuteLog{}
	if builder.applicableServiceFlag {
		req.ApplicableService = &builder.applicableService

	}
	if builder.userNameFlag {
		req.UserName = &builder.userName

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

	}
	if builder.triggerFlag {
		req.Trigger = &builder.trigger

	}
	if builder.timeFlag {
		req.Time = &builder.time

	}
	if builder.systemActionFlag {
		req.SystemAction = &builder.systemAction

	}
	if builder.senderNameFlag {
		req.SenderName = &builder.senderName

	}
	if builder.senderIdFlag {
		req.SenderId = &builder.senderId

	}
	if builder.recipientNameFlag {
		req.RecipientName = &builder.recipientName

	}
	if builder.recipientIdFlag {
		req.RecipientId = &builder.recipientId

	}
	if builder.chatNameFlag {
		req.ChatName = &builder.chatName

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

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

	}
	if builder.messageContentFlag {
		req.MessageContent = &builder.messageContent

	}
	if builder.aliasIngroupFlag {
		req.AliasIngroup = &builder.aliasIngroup

	}
	if builder.groupDescriptionFlag {
		req.GroupDescription = &builder.groupDescription

	}
	if builder.groupTabContentFlag {
		req.GroupTabContent = &builder.groupTabContent

	}
	if builder.fileNameFlag {
		req.FileName = &builder.fileName

	}
	if builder.fileKeyFlag {
		req.FileKey = &builder.fileKey

	}
	if builder.documentOwnerNameFlag {
		req.DocumentOwnerName = &builder.documentOwnerName

	}
	if builder.documentOwnerIdFlag {
		req.DocumentOwnerId = &builder.documentOwnerId

	}
	if builder.documentNameFlag {
		req.DocumentName = &builder.documentName

	}
	if builder.documentTypeFlag {
		req.DocumentType = &builder.documentType

	}
	if builder.documentLinkFlag {
		req.DocumentLink = &builder.documentLink

	}
	if builder.evidenceDetailFlag {
		req.EvidenceDetail = builder.evidenceDetail
	}
	if builder.hitPoliciesFlag {
		req.HitPolicies = builder.hitPolicies
	}
	if builder.fileTokenFlag {
		req.FileToken = &builder.fileToken

	}
	if builder.triggerEventTypeFlag {
		req.TriggerEventType = &builder.triggerEventType

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

	}
	if builder.groupOwnerNameFlag {
		req.GroupOwnerName = &builder.groupOwnerName

	}
	if builder.groupOwnerIdFlag {
		req.GroupOwnerId = &builder.groupOwnerId

	}
	return req
}

type DlpHitPolicy struct {
	PolicyId *string `json:"policy_id,omitempty"` // 策略ID

	PolicyName *string `json:"policy_name,omitempty"` // 策略名称
}

type DlpHitPolicyBuilder struct {
	policyId     string // 策略ID
	policyIdFlag bool

	policyName     string // 策略名称
	policyNameFlag bool
}

func NewDlpHitPolicyBuilder() *DlpHitPolicyBuilder {
	builder := &DlpHitPolicyBuilder{}
	return builder
}

// 策略ID
//
// 示例值：713628373819212
func (builder *DlpHitPolicyBuilder) PolicyId(policyId string) *DlpHitPolicyBuilder {
	builder.policyId = policyId
	builder.policyIdFlag = true
	return builder
}

// 策略名称
//
// 示例值：dlp测试策略一
func (builder *DlpHitPolicyBuilder) PolicyName(policyName string) *DlpHitPolicyBuilder {
	builder.policyName = policyName
	builder.policyNameFlag = true
	return builder
}

func (builder *DlpHitPolicyBuilder) Build() *DlpHitPolicy {
	req := &DlpHitPolicy{}
	if builder.policyIdFlag {
		req.PolicyId = &builder.policyId

	}
	if builder.policyNameFlag {
		req.PolicyName = &builder.policyName

	}
	return req
}

type DlpPolicyHitProof struct {
	PolicyId *string `json:"policy_id,omitempty"` // dlp策略ID

	DetectModeProofContexts []*DlpDetectModeProofContext `json:"detect_mode_proof_contexts,omitempty"` // 命中片段证据详情
}

type DlpPolicyHitProofBuilder struct {
	policyId     string // dlp策略ID
	policyIdFlag bool

	detectModeProofContexts     []*DlpDetectModeProofContext // 命中片段证据详情
	detectModeProofContextsFlag bool
}

func NewDlpPolicyHitProofBuilder() *DlpPolicyHitProofBuilder {
	builder := &DlpPolicyHitProofBuilder{}
	return builder
}

// dlp策略ID
//
// 示例值：123123123123
func (builder *DlpPolicyHitProofBuilder) PolicyId(policyId string) *DlpPolicyHitProofBuilder {
	builder.policyId = policyId
	builder.policyIdFlag = true
	return builder
}

// 命中片段证据详情
//
// 示例值：
func (builder *DlpPolicyHitProofBuilder) DetectModeProofContexts(detectModeProofContexts []*DlpDetectModeProofContext) *DlpPolicyHitProofBuilder {
	builder.detectModeProofContexts = detectModeProofContexts
	builder.detectModeProofContextsFlag = true
	return builder
}

func (builder *DlpPolicyHitProofBuilder) Build() *DlpPolicyHitProof {
	req := &DlpPolicyHitProof{}
	if builder.policyIdFlag {
		req.PolicyId = &builder.policyId

	}
	if builder.detectModeProofContextsFlag {
		req.DetectModeProofContexts = builder.detectModeProofContexts
	}
	return req
}

type DlpProofContext struct {
	HitContent *string `json:"hit_content,omitempty"` // 命中内容

	ContextSnippet *string `json:"context_snippet,omitempty"` // 上下文片段
}

type DlpProofContextBuilder struct {
	hitContent     string // 命中内容
	hitContentFlag bool

	contextSnippet     string // 上下文片段
	contextSnippetFlag bool
}

func NewDlpProofContextBuilder() *DlpProofContextBuilder {
	builder := &DlpProofContextBuilder{}
	return builder
}

// 命中内容
//
// 示例值：关键词
func (builder *DlpProofContextBuilder) HitContent(hitContent string) *DlpProofContextBuilder {
	builder.hitContent = hitContent
	builder.hitContentFlag = true
	return builder
}

// 上下文片段
//
// 示例值：这是一条关键词内容
func (builder *DlpProofContextBuilder) ContextSnippet(contextSnippet string) *DlpProofContextBuilder {
	builder.contextSnippet = contextSnippet
	builder.contextSnippetFlag = true
	return builder
}

func (builder *DlpProofContextBuilder) Build() *DlpProofContext {
	req := &DlpProofContext{}
	if builder.hitContentFlag {
		req.HitContent = &builder.hitContent

	}
	if builder.contextSnippetFlag {
		req.ContextSnippet = &builder.contextSnippet

	}
	return req
}

type Document struct {
	Token *string `json:"token,omitempty"` // 文档唯一标识token

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

	UpdateTime *int `json:"update_time,omitempty"` // 文档更新时间戳

	ObjectStatus *int `json:"object_status,omitempty"` // 文档状态

	ObjectType *int `json:"object_type,omitempty"` // 文档类型

	Owner *SimpleUser `json:"owner,omitempty"` // 文档所有者
}

type DocumentBuilder struct {
	token     string // 文档唯一标识token
	tokenFlag bool

	title     string // 文档标题
	titleFlag bool

	updateTime     int // 文档更新时间戳
	updateTimeFlag bool

	objectStatus     int // 文档状态
	objectStatusFlag bool

	objectType     int // 文档类型
	objectTypeFlag bool

	owner     *SimpleUser // 文档所有者
	ownerFlag bool
}

func NewDocumentBuilder() *DocumentBuilder {
	builder := &DocumentBuilder{}
	return builder
}

// 文档唯一标识token
//
// 示例值：
func (builder *DocumentBuilder) Token(token string) *DocumentBuilder {
	builder.token = token
	builder.tokenFlag = true
	return builder
}

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

// 文档更新时间戳
//
// 示例值：
func (builder *DocumentBuilder) UpdateTime(updateTime int) *DocumentBuilder {
	builder.updateTime = updateTime
	builder.updateTimeFlag = true
	return builder
}

// 文档状态
//
// 示例值：
func (builder *DocumentBuilder) ObjectStatus(objectStatus int) *DocumentBuilder {
	builder.objectStatus = objectStatus
	builder.objectStatusFlag = true
	return builder
}

// 文档类型
//
// 示例值：
func (builder *DocumentBuilder) ObjectType(objectType int) *DocumentBuilder {
	builder.objectType = objectType
	builder.objectTypeFlag = true
	return builder
}

// 文档所有者
//
// 示例值：
func (builder *DocumentBuilder) Owner(owner *SimpleUser) *DocumentBuilder {
	builder.owner = owner
	builder.ownerFlag = true
	return builder
}

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

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

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

	}
	if builder.objectStatusFlag {
		req.ObjectStatus = &builder.objectStatus

	}
	if builder.objectTypeFlag {
		req.ObjectType = &builder.objectType

	}
	if builder.ownerFlag {
		req.Owner = builder.owner
	}
	return req
}

type DownloadToken struct {
	Token *string `json:"token,omitempty"` // 下载token
}

type DownloadTokenBuilder struct {
	token     string // 下载token
	tokenFlag bool
}

func NewDownloadTokenBuilder() *DownloadTokenBuilder {
	builder := &DownloadTokenBuilder{}
	return builder
}

// 下载token
//
// 示例值：
func (builder *DownloadTokenBuilder) Token(token string) *DownloadTokenBuilder {
	builder.token = token
	builder.tokenFlag = true
	return builder
}

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

	}
	return req
}

type Email struct {
	Id *string `json:"id,omitempty"` // email ID

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

	OwnerType *int `json:"owner_type,omitempty"` // email owner类型

	CreateTime *string `json:"create_time,omitempty"` // email 创建时间, 单位秒

	OwnerUserId *string `json:"owner_user_id,omitempty"` // 企业用户ID

	OwnerAddress *string `json:"owner_address,omitempty"` // 公共邮箱地址
}

type EmailBuilder struct {
	id     string // email ID
	idFlag bool

	title     string // email 标题
	titleFlag bool

	ownerType     int // email owner类型
	ownerTypeFlag bool

	createTime     string // email 创建时间, 单位秒
	createTimeFlag bool

	ownerUserId     string // 企业用户ID
	ownerUserIdFlag bool

	ownerAddress     string // 公共邮箱地址
	ownerAddressFlag bool
}

func NewEmailBuilder() *EmailBuilder {
	builder := &EmailBuilder{}
	return builder
}

// email ID
//
// 示例值：5e1d0913ea6770d309fd18778fb45a15a1e69857.8fb8a4da.a4fd.4d48.baa0.2396bf70c04d@staging.feishu.cn
func (builder *EmailBuilder) Id(id string) *EmailBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// email 标题
//
// 示例值：scs vault test email
func (builder *EmailBuilder) Title(title string) *EmailBuilder {
	builder.title = title
	builder.titleFlag = true
	return builder
}

// email owner类型
//
// 示例值：1
func (builder *EmailBuilder) OwnerType(ownerType int) *EmailBuilder {
	builder.ownerType = ownerType
	builder.ownerTypeFlag = true
	return builder
}

// email 创建时间, 单位秒
//
// 示例值：1645180346
func (builder *EmailBuilder) CreateTime(createTime string) *EmailBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 企业用户ID
//
// 示例值：ou_7636758725e268a4c67dc7457d27719d
func (builder *EmailBuilder) OwnerUserId(ownerUserId string) *EmailBuilder {
	builder.ownerUserId = ownerUserId
	builder.ownerUserIdFlag = true
	return builder
}

// 公共邮箱地址
//
// 示例值：jiajinqud@zijietiaobudong.top
func (builder *EmailBuilder) OwnerAddress(ownerAddress string) *EmailBuilder {
	builder.ownerAddress = ownerAddress
	builder.ownerAddressFlag = true
	return builder
}

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

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

	}
	if builder.ownerTypeFlag {
		req.OwnerType = &builder.ownerType

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

	}
	if builder.ownerUserIdFlag {
		req.OwnerUserId = &builder.ownerUserId

	}
	if builder.ownerAddressFlag {
		req.OwnerAddress = &builder.ownerAddress

	}
	return req
}

type EmailFilter struct {
	OwnerUseridList []string `json:"owner_userid_list,omitempty"` // 企业用户列表

	OwnerAddressList []string `json:"owner_address_list,omitempty"` // 公共邮箱列表

	TimeRange *TimeRange `json:"time_range,omitempty"` // 查询时间范围

	Senders []string `json:"senders,omitempty"` // 发件人邮箱列表

	Recipients []string `json:"recipients,omitempty"` // 收件人邮箱列表

	EmailTitle *string `json:"email_title,omitempty"` // 邮件标题

	EmailId *string `json:"email_id,omitempty"` // 邮件ID
}

type EmailFilterBuilder struct {
	ownerUseridList     []string // 企业用户列表
	ownerUseridListFlag bool

	ownerAddressList     []string // 公共邮箱列表
	ownerAddressListFlag bool

	timeRange     *TimeRange // 查询时间范围
	timeRangeFlag bool

	senders     []string // 发件人邮箱列表
	sendersFlag bool

	recipients     []string // 收件人邮箱列表
	recipientsFlag bool

	emailTitle     string // 邮件标题
	emailTitleFlag bool

	emailId     string // 邮件ID
	emailIdFlag bool
}

func NewEmailFilterBuilder() *EmailFilterBuilder {
	builder := &EmailFilterBuilder{}
	return builder
}

// 企业用户列表
//
// 示例值：ou_7636758725e268a4c67dc7457d27719d
func (builder *EmailFilterBuilder) OwnerUseridList(ownerUseridList []string) *EmailFilterBuilder {
	builder.ownerUseridList = ownerUseridList
	builder.ownerUseridListFlag = true
	return builder
}

// 公共邮箱列表
//
// 示例值：jiajinqud@zijietiaobudong.top
func (builder *EmailFilterBuilder) OwnerAddressList(ownerAddressList []string) *EmailFilterBuilder {
	builder.ownerAddressList = ownerAddressList
	builder.ownerAddressListFlag = true
	return builder
}

// 查询时间范围
//
// 示例值：
func (builder *EmailFilterBuilder) TimeRange(timeRange *TimeRange) *EmailFilterBuilder {
	builder.timeRange = timeRange
	builder.timeRangeFlag = true
	return builder
}

// 发件人邮箱列表
//
// 示例值：mail-noreply@feishu.cn
func (builder *EmailFilterBuilder) Senders(senders []string) *EmailFilterBuilder {
	builder.senders = senders
	builder.sendersFlag = true
	return builder
}

// 收件人邮箱列表
//
// 示例值：jiajinqud@zijietiaobudong.top
func (builder *EmailFilterBuilder) Recipients(recipients []string) *EmailFilterBuilder {
	builder.recipients = recipients
	builder.recipientsFlag = true
	return builder
}

// 邮件标题
//
// 示例值：test email
func (builder *EmailFilterBuilder) EmailTitle(emailTitle string) *EmailFilterBuilder {
	builder.emailTitle = emailTitle
	builder.emailTitleFlag = true
	return builder
}

// 邮件ID
//
// 示例值：5e1d0913ea6770d309fd18778fb45a15a1e69857.8fb8a4da.a4fd.4d48.baa0.2396bf70c04d@staging.feishu.cn
func (builder *EmailFilterBuilder) EmailId(emailId string) *EmailFilterBuilder {
	builder.emailId = emailId
	builder.emailIdFlag = true
	return builder
}

func (builder *EmailFilterBuilder) Build() *EmailFilter {
	req := &EmailFilter{}
	if builder.ownerUseridListFlag {
		req.OwnerUseridList = builder.ownerUseridList
	}
	if builder.ownerAddressListFlag {
		req.OwnerAddressList = builder.ownerAddressList
	}
	if builder.timeRangeFlag {
		req.TimeRange = builder.timeRange
	}
	if builder.sendersFlag {
		req.Senders = builder.senders
	}
	if builder.recipientsFlag {
		req.Recipients = builder.recipients
	}
	if builder.emailTitleFlag {
		req.EmailTitle = &builder.emailTitle

	}
	if builder.emailIdFlag {
		req.EmailId = &builder.emailId

	}
	return req
}

type File struct {
}

type FileBuilder struct {
}

func NewFileBuilder() *FileBuilder {
	builder := &FileBuilder{}
	return builder
}

func (builder *FileBuilder) Build() *File {
	req := &File{}
	return req
}

type FileRiskDetectionRecord struct {
	RecordId *string `json:"record_id,omitempty"` // 文件送检记录主键

	FileUrl *string `json:"file_url,omitempty"` // 文件下载链接

	FileUrlExpireTime *string `json:"file_url_expire_time,omitempty"` // 文件下载链接失效时间戳（秒）

	FileSize *string `json:"file_size,omitempty"` // 文件大小（字节）

	TriggerReason *int `json:"trigger_reason,omitempty"` // 触发送检原因
}

type FileRiskDetectionRecordBuilder struct {
	recordId     string // 文件送检记录主键
	recordIdFlag bool

	fileUrl     string // 文件下载链接
	fileUrlFlag bool

	fileUrlExpireTime     string // 文件下载链接失效时间戳（秒）
	fileUrlExpireTimeFlag bool

	fileSize     string // 文件大小（字节）
	fileSizeFlag bool

	triggerReason     int // 触发送检原因
	triggerReasonFlag bool
}

func NewFileRiskDetectionRecordBuilder() *FileRiskDetectionRecordBuilder {
	builder := &FileRiskDetectionRecordBuilder{}
	return builder
}

// 文件送检记录主键
//
// 示例值：308975127
func (builder *FileRiskDetectionRecordBuilder) RecordId(recordId string) *FileRiskDetectionRecordBuilder {
	builder.recordId = recordId
	builder.recordIdFlag = true
	return builder
}

// 文件下载链接
//
// 示例值：https://example.com
func (builder *FileRiskDetectionRecordBuilder) FileUrl(fileUrl string) *FileRiskDetectionRecordBuilder {
	builder.fileUrl = fileUrl
	builder.fileUrlFlag = true
	return builder
}

// 文件下载链接失效时间戳（秒）
//
// 示例值：1735660799
func (builder *FileRiskDetectionRecordBuilder) FileUrlExpireTime(fileUrlExpireTime string) *FileRiskDetectionRecordBuilder {
	builder.fileUrlExpireTime = fileUrlExpireTime
	builder.fileUrlExpireTimeFlag = true
	return builder
}

// 文件大小（字节）
//
// 示例值：1024
func (builder *FileRiskDetectionRecordBuilder) FileSize(fileSize string) *FileRiskDetectionRecordBuilder {
	builder.fileSize = fileSize
	builder.fileSizeFlag = true
	return builder
}

// 触发送检原因
//
// 示例值：1
func (builder *FileRiskDetectionRecordBuilder) TriggerReason(triggerReason int) *FileRiskDetectionRecordBuilder {
	builder.triggerReason = triggerReason
	builder.triggerReasonFlag = true
	return builder
}

func (builder *FileRiskDetectionRecordBuilder) Build() *FileRiskDetectionRecord {
	req := &FileRiskDetectionRecord{}
	if builder.recordIdFlag {
		req.RecordId = &builder.recordId

	}
	if builder.fileUrlFlag {
		req.FileUrl = &builder.fileUrl

	}
	if builder.fileUrlExpireTimeFlag {
		req.FileUrlExpireTime = &builder.fileUrlExpireTime

	}
	if builder.fileSizeFlag {
		req.FileSize = &builder.fileSize

	}
	if builder.triggerReasonFlag {
		req.TriggerReason = &builder.triggerReason

	}
	return req
}

type FileRiskDetectionRecordResult struct {
	Status *string `json:"status,omitempty"` // 检测状态

	RiskTag *string `json:"risk_tag,omitempty"` // 风险类型

	NeedBotNotify *bool `json:"need_bot_notify,omitempty"` // 是否需要机器人通知
}

type FileRiskDetectionRecordResultBuilder struct {
	status     string // 检测状态
	statusFlag bool

	riskTag     string // 风险类型
	riskTagFlag bool

	needBotNotify     bool // 是否需要机器人通知
	needBotNotifyFlag bool
}

func NewFileRiskDetectionRecordResultBuilder() *FileRiskDetectionRecordResultBuilder {
	builder := &FileRiskDetectionRecordResultBuilder{}
	return builder
}

// 检测状态
//
// 示例值：FINISHED
func (builder *FileRiskDetectionRecordResultBuilder) Status(status string) *FileRiskDetectionRecordResultBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 风险类型
//
// 示例值：RISK
func (builder *FileRiskDetectionRecordResultBuilder) RiskTag(riskTag string) *FileRiskDetectionRecordResultBuilder {
	builder.riskTag = riskTag
	builder.riskTagFlag = true
	return builder
}

// 是否需要机器人通知
//
// 示例值：true
func (builder *FileRiskDetectionRecordResultBuilder) NeedBotNotify(needBotNotify bool) *FileRiskDetectionRecordResultBuilder {
	builder.needBotNotify = needBotNotify
	builder.needBotNotifyFlag = true
	return builder
}

func (builder *FileRiskDetectionRecordResultBuilder) Build() *FileRiskDetectionRecordResult {
	req := &FileRiskDetectionRecordResult{}
	if builder.statusFlag {
		req.Status = &builder.status

	}
	if builder.riskTagFlag {
		req.RiskTag = &builder.riskTag

	}
	if builder.needBotNotifyFlag {
		req.NeedBotNotify = &builder.needBotNotify

	}
	return req
}

type GwCommon struct {
	Locale *string `json:"locale,omitempty"` // 地区

	ReportTime *string `json:"report_time,omitempty"` // 上报时间戳（单位：纳秒）

	SessionUuid *string `json:"session_uuid,omitempty"` // session唯一id

	TerminalType *string `json:"terminal_type,omitempty"` // 终端类型

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

	OpenplatformAppId *string `json:"openplatform_app_id,omitempty"` // 开放平台应用ID

	RequestId *string `json:"request_id,omitempty"` // 请求标识

	LogId *string `json:"log_id,omitempty"` // 链路标识
}

type GwCommonBuilder struct {
	locale     string // 地区
	localeFlag bool

	reportTime     string // 上报时间戳（单位：纳秒）
	reportTimeFlag bool

	sessionUuid     string // session唯一id
	sessionUuidFlag bool

	terminalType     string // 终端类型
	terminalTypeFlag bool

	userId     *UserId // 用户ID
	userIdFlag bool

	openplatformAppId     string // 开放平台应用ID
	openplatformAppIdFlag bool

	requestId     string // 请求标识
	requestIdFlag bool

	logId     string // 链路标识
	logIdFlag bool
}

func NewGwCommonBuilder() *GwCommonBuilder {
	builder := &GwCommonBuilder{}
	return builder
}

// 地区
//
// 示例值：zh-CN
func (builder *GwCommonBuilder) Locale(locale string) *GwCommonBuilder {
	builder.locale = locale
	builder.localeFlag = true
	return builder
}

// 上报时间戳（单位：纳秒）
//
// 示例值：1694164396263769182
func (builder *GwCommonBuilder) ReportTime(reportTime string) *GwCommonBuilder {
	builder.reportTime = reportTime
	builder.reportTimeFlag = true
	return builder
}

// session唯一id
//
// 示例值：AAAAAAAAAANkfVio7oAAFA==
func (builder *GwCommonBuilder) SessionUuid(sessionUuid string) *GwCommonBuilder {
	builder.sessionUuid = sessionUuid
	builder.sessionUuidFlag = true
	return builder
}

// 终端类型
//
// 示例值：1
func (builder *GwCommonBuilder) TerminalType(terminalType string) *GwCommonBuilder {
	builder.terminalType = terminalType
	builder.terminalTypeFlag = true
	return builder
}

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

// 开放平台应用ID
//
// 示例值：12345
func (builder *GwCommonBuilder) OpenplatformAppId(openplatformAppId string) *GwCommonBuilder {
	builder.openplatformAppId = openplatformAppId
	builder.openplatformAppIdFlag = true
	return builder
}

// 请求标识
//
// 示例值：dd8300ae-0f93-4a5f-8638-0051e76502d6
func (builder *GwCommonBuilder) RequestId(requestId string) *GwCommonBuilder {
	builder.requestId = requestId
	builder.requestIdFlag = true
	return builder
}

// 链路标识
//
// 示例值：2022050711522601021218102322038985
func (builder *GwCommonBuilder) LogId(logId string) *GwCommonBuilder {
	builder.logId = logId
	builder.logIdFlag = true
	return builder
}

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

	}
	if builder.reportTimeFlag {
		req.ReportTime = &builder.reportTime

	}
	if builder.sessionUuidFlag {
		req.SessionUuid = &builder.sessionUuid

	}
	if builder.terminalTypeFlag {
		req.TerminalType = &builder.terminalType

	}
	if builder.userIdFlag {
		req.UserId = builder.userId
	}
	if builder.openplatformAppIdFlag {
		req.OpenplatformAppId = &builder.openplatformAppId

	}
	if builder.requestIdFlag {
		req.RequestId = &builder.requestId

	}
	if builder.logIdFlag {
		req.LogId = &builder.logId

	}
	return req
}

type GwRequest struct {
	Host *string `json:"host,omitempty"` // 域名

	Path *string `json:"path,omitempty"` // 请求路径

	PathParams []*Param `json:"path_params,omitempty"` // 路径中的参数

	Query *string `json:"query,omitempty"` // 请求经网关解析后的query参数

	Method *string `json:"method,omitempty"` // 请求方法

	UserAgent *string `json:"user_agent,omitempty"` // 访问用户代理字段

	ClientIp *string `json:"client_ip,omitempty"` // 来源页面地址

	Referer *string `json:"referer,omitempty"` // referer防盗链

	Origin *string `json:"origin,omitempty"` // 来源页面域名

	Header *string `json:"header,omitempty"` // 请求头
}

type GwRequestBuilder struct {
	host     string // 域名
	hostFlag bool

	path     string // 请求路径
	pathFlag bool

	pathParams     []*Param // 路径中的参数
	pathParamsFlag bool

	query     string // 请求经网关解析后的query参数
	queryFlag bool

	method     string // 请求方法
	methodFlag bool

	userAgent     string // 访问用户代理字段
	userAgentFlag bool

	clientIp     string // 来源页面地址
	clientIpFlag bool

	referer     string // referer防盗链
	refererFlag bool

	origin     string // 来源页面域名
	originFlag bool

	header     string // 请求头
	headerFlag bool
}

func NewGwRequestBuilder() *GwRequestBuilder {
	builder := &GwRequestBuilder{}
	return builder
}

// 域名
//
// 示例值：bytedance.feishu.net
func (builder *GwRequestBuilder) Host(host string) *GwRequestBuilder {
	builder.host = host
	builder.hostFlag = true
	return builder
}

// 请求路径
//
// 示例值：/space/api/msg_box/get_version
func (builder *GwRequestBuilder) Path(path string) *GwRequestBuilder {
	builder.path = path
	builder.pathFlag = true
	return builder
}

// 路径中的参数
//
// 示例值：
func (builder *GwRequestBuilder) PathParams(pathParams []*Param) *GwRequestBuilder {
	builder.pathParams = pathParams
	builder.pathParamsFlag = true
	return builder
}

// 请求经网关解析后的query参数
//
// 示例值：{\"docx_synced_block_host_token\":[\"T7lCdrCcsrAH8oxmLfRbn4GecWf\"],\"docx_synced_block_host_type\":[\"22\"]}
func (builder *GwRequestBuilder) Query(query string) *GwRequestBuilder {
	builder.query = query
	builder.queryFlag = true
	return builder
}

// 请求方法
//
// 示例值：GET
func (builder *GwRequestBuilder) Method(method string) *GwRequestBuilder {
	builder.method = method
	builder.methodFlag = true
	return builder
}

// 访问用户代理字段
//
// 示例值：Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36
func (builder *GwRequestBuilder) UserAgent(userAgent string) *GwRequestBuilder {
	builder.userAgent = userAgent
	builder.userAgentFlag = true
	return builder
}

// 来源页面地址
//
// 示例值：fdbd:ff1:ce00:8028::1969
func (builder *GwRequestBuilder) ClientIp(clientIp string) *GwRequestBuilder {
	builder.clientIp = clientIp
	builder.clientIpFlag = true
	return builder
}

// referer防盗链
//
// 示例值：https://bytedance.feishu.net/docx/<encryptToken>45c200080eea138771be507263e4c9930939c279?v=1.0.11.8737&vdx=1.0.9.4444
func (builder *GwRequestBuilder) Referer(referer string) *GwRequestBuilder {
	builder.referer = referer
	builder.refererFlag = true
	return builder
}

// 来源页面域名
//
// 示例值：https://bytedance.feishu.net
func (builder *GwRequestBuilder) Origin(origin string) *GwRequestBuilder {
	builder.origin = origin
	builder.originFlag = true
	return builder
}

// 请求头
//
// 示例值：{\"x-lgw-locale\": [\"en-US\"], \"x-lgw-app-version\": null}
func (builder *GwRequestBuilder) Header(header string) *GwRequestBuilder {
	builder.header = header
	builder.headerFlag = true
	return builder
}

func (builder *GwRequestBuilder) Build() *GwRequest {
	req := &GwRequest{}
	if builder.hostFlag {
		req.Host = &builder.host

	}
	if builder.pathFlag {
		req.Path = &builder.path

	}
	if builder.pathParamsFlag {
		req.PathParams = builder.pathParams
	}
	if builder.queryFlag {
		req.Query = &builder.query

	}
	if builder.methodFlag {
		req.Method = &builder.method

	}
	if builder.userAgentFlag {
		req.UserAgent = &builder.userAgent

	}
	if builder.clientIpFlag {
		req.ClientIp = &builder.clientIp

	}
	if builder.refererFlag {
		req.Referer = &builder.referer

	}
	if builder.originFlag {
		req.Origin = &builder.origin

	}
	if builder.headerFlag {
		req.Header = &builder.header

	}
	return req
}

type GwResponse struct {
	StatusCode *int `json:"status_code,omitempty"` // HTTP响应状态码

	Header *string `json:"header,omitempty"` // 返回头
}

type GwResponseBuilder struct {
	statusCode     int // HTTP响应状态码
	statusCodeFlag bool

	header     string // 返回头
	headerFlag bool
}

func NewGwResponseBuilder() *GwResponseBuilder {
	builder := &GwResponseBuilder{}
	return builder
}

// HTTP响应状态码
//
// 示例值：404
func (builder *GwResponseBuilder) StatusCode(statusCode int) *GwResponseBuilder {
	builder.statusCode = statusCode
	builder.statusCodeFlag = true
	return builder
}

// 返回头
//
// 示例值：{\"Vary\": [\"gzip\"]}
func (builder *GwResponseBuilder) Header(header string) *GwResponseBuilder {
	builder.header = header
	builder.headerFlag = true
	return builder
}

func (builder *GwResponseBuilder) Build() *GwResponse {
	req := &GwResponse{}
	if builder.statusCodeFlag {
		req.StatusCode = &builder.statusCode

	}
	if builder.headerFlag {
		req.Header = &builder.header

	}
	return req
}

type HitContent struct {
	FieldKey *string `json:"field_key,omitempty"` // 命中内容的key

	FieldValue *string `json:"field_value,omitempty"` // 命中内容的值
}

type HitContentBuilder struct {
	fieldKey     string // 命中内容的key
	fieldKeyFlag bool

	fieldValue     string // 命中内容的值
	fieldValueFlag bool
}

func NewHitContentBuilder() *HitContentBuilder {
	builder := &HitContentBuilder{}
	return builder
}

// 命中内容的key
//
// 示例值：FileID
func (builder *HitContentBuilder) FieldKey(fieldKey string) *HitContentBuilder {
	builder.fieldKey = fieldKey
	builder.fieldKeyFlag = true
	return builder
}

// 命中内容的值
//
// 示例值：'Vt2nScFweBnwsshsnIFfpL9C'
func (builder *HitContentBuilder) FieldValue(fieldValue string) *HitContentBuilder {
	builder.fieldValue = fieldValue
	builder.fieldValueFlag = true
	return builder
}

func (builder *HitContentBuilder) Build() *HitContent {
	req := &HitContent{}
	if builder.fieldKeyFlag {
		req.FieldKey = &builder.fieldKey

	}
	if builder.fieldValueFlag {
		req.FieldValue = &builder.fieldValue

	}
	return req
}

type KeyPerson struct {
	KeyPersonId *string `json:"key_person_id,omitempty"` // 高管的用户ID

	Name *string `json:"name,omitempty"` // 用户姓名

	Email *string `json:"email,omitempty"` // 邮箱地址

	AvatarUrl *string `json:"avatar_url,omitempty"` // 头像图片链接
}

type KeyPersonBuilder struct {
	keyPersonId     string // 高管的用户ID
	keyPersonIdFlag bool

	name     string // 用户姓名
	nameFlag bool

	email     string // 邮箱地址
	emailFlag bool

	avatarUrl     string // 头像图片链接
	avatarUrlFlag bool
}

func NewKeyPersonBuilder() *KeyPersonBuilder {
	builder := &KeyPersonBuilder{}
	return builder
}

// 高管的用户ID
//
// 示例值：u28c128c
func (builder *KeyPersonBuilder) KeyPersonId(keyPersonId string) *KeyPersonBuilder {
	builder.keyPersonId = keyPersonId
	builder.keyPersonIdFlag = true
	return builder
}

// 用户姓名
//
// 示例值：某人
func (builder *KeyPersonBuilder) Name(name string) *KeyPersonBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 邮箱地址
//
// 示例值：xxx@xxx.com
func (builder *KeyPersonBuilder) Email(email string) *KeyPersonBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 头像图片链接
//
// 示例值：https://xxx.com/xxx.jpg
func (builder *KeyPersonBuilder) AvatarUrl(avatarUrl string) *KeyPersonBuilder {
	builder.avatarUrl = avatarUrl
	builder.avatarUrlFlag = true
	return builder
}

func (builder *KeyPersonBuilder) Build() *KeyPerson {
	req := &KeyPerson{}
	if builder.keyPersonIdFlag {
		req.KeyPersonId = &builder.keyPersonId

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

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.avatarUrlFlag {
		req.AvatarUrl = &builder.avatarUrl

	}
	return req
}

type ListOpenapiLogRequest struct {
	ApiKeys []string `json:"api_keys,omitempty"` // 飞书开放平台定义的API

	StartTime *int `json:"start_time,omitempty"` // 以秒为单位的起始时间戳

	EndTime *int `json:"end_time,omitempty"` // 以秒为单位的终止时间戳

	AppId *string `json:"app_id,omitempty"` // 在开发者后台——凭证与基础信息页面查看的app_id（cli_xxx），指调用openapi的应用

	PageSize *int `json:"page_size,omitempty"` // 分页大小

	PageToken *string `json:"page_token,omitempty"` // 分页标记，第一次请求不填，表示从头开始遍历；当返回的has_more为true时，会返回新的page_token，再次调用接口，传入这个page_token，将获得下一页数据
}

type ListOpenapiLogRequestBuilder struct {
	apiKeys     []string // 飞书开放平台定义的API
	apiKeysFlag bool

	startTime     int // 以秒为单位的起始时间戳
	startTimeFlag bool

	endTime     int // 以秒为单位的终止时间戳
	endTimeFlag bool

	appId     string // 在开发者后台——凭证与基础信息页面查看的app_id（cli_xxx），指调用openapi的应用
	appIdFlag bool

	pageSize     int // 分页大小
	pageSizeFlag bool

	pageToken     string // 分页标记，第一次请求不填，表示从头开始遍历；当返回的has_more为true时，会返回新的page_token，再次调用接口，传入这个page_token，将获得下一页数据
	pageTokenFlag bool
}

func NewListOpenapiLogRequestBuilder() *ListOpenapiLogRequestBuilder {
	builder := &ListOpenapiLogRequestBuilder{}
	return builder
}

// 飞书开放平台定义的API
//
// 示例值：
func (builder *ListOpenapiLogRequestBuilder) ApiKeys(apiKeys []string) *ListOpenapiLogRequestBuilder {
	builder.apiKeys = apiKeys
	builder.apiKeysFlag = true
	return builder
}

// 以秒为单位的起始时间戳
//
// 示例值：1610613336
func (builder *ListOpenapiLogRequestBuilder) StartTime(startTime int) *ListOpenapiLogRequestBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 以秒为单位的终止时间戳
//
// 示例值：1610613336
func (builder *ListOpenapiLogRequestBuilder) EndTime(endTime int) *ListOpenapiLogRequestBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

// 在开发者后台——凭证与基础信息页面查看的app_id（cli_xxx），指调用openapi的应用
//
// 示例值：cli_xxx
func (builder *ListOpenapiLogRequestBuilder) AppId(appId string) *ListOpenapiLogRequestBuilder {
	builder.appId = appId
	builder.appIdFlag = true
	return builder
}

// 分页大小
//
// 示例值：20
func (builder *ListOpenapiLogRequestBuilder) PageSize(pageSize int) *ListOpenapiLogRequestBuilder {
	builder.pageSize = pageSize
	builder.pageSizeFlag = true
	return builder
}

// 分页标记，第一次请求不填，表示从头开始遍历；当返回的has_more为true时，会返回新的page_token，再次调用接口，传入这个page_token，将获得下一页数据
//
// 示例值：xxx
func (builder *ListOpenapiLogRequestBuilder) PageToken(pageToken string) *ListOpenapiLogRequestBuilder {
	builder.pageToken = pageToken
	builder.pageTokenFlag = true
	return builder
}

func (builder *ListOpenapiLogRequestBuilder) Build() *ListOpenapiLogRequest {
	req := &ListOpenapiLogRequest{}
	if builder.apiKeysFlag {
		req.ApiKeys = builder.apiKeys
	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	if builder.appIdFlag {
		req.AppId = &builder.appId

	}
	if builder.pageSizeFlag {
		req.PageSize = &builder.pageSize

	}
	if builder.pageTokenFlag {
		req.PageToken = &builder.pageToken

	}
	return req
}

type Message struct {
	OpenMessageId *string `json:"open_message_id,omitempty"` // 消息ID(open_message_id)

	Text *string `json:"text,omitempty"` // 文本内容

	OpenChatId *string `json:"open_chat_id,omitempty"` // 会话ID(open_chat_id)

	ChatName *string `json:"chat_name,omitempty"` // 会话名称

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

	Owner *User `json:"owner,omitempty"` // 消息发送人

	CreateTime *string `json:"create_time,omitempty"` // 创建时间(秒级时间戳)
}

type MessageBuilder struct {
	openMessageId     string // 消息ID(open_message_id)
	openMessageIdFlag bool

	text     string // 文本内容
	textFlag bool

	openChatId     string // 会话ID(open_chat_id)
	openChatIdFlag bool

	chatName     string // 会话名称
	chatNameFlag bool

	chatType     int // 会话类型
	chatTypeFlag bool

	owner     *User // 消息发送人
	ownerFlag bool

	createTime     string // 创建时间(秒级时间戳)
	createTimeFlag bool
}

func NewMessageBuilder() *MessageBuilder {
	builder := &MessageBuilder{}
	return builder
}

// 消息ID(open_message_id)
//
// 示例值：om_xxx
func (builder *MessageBuilder) OpenMessageId(openMessageId string) *MessageBuilder {
	builder.openMessageId = openMessageId
	builder.openMessageIdFlag = true
	return builder
}

// 文本内容
//
// 示例值：聊天记录
func (builder *MessageBuilder) Text(text string) *MessageBuilder {
	builder.text = text
	builder.textFlag = true
	return builder
}

// 会话ID(open_chat_id)
//
// 示例值：oc_xxx
func (builder *MessageBuilder) OpenChatId(openChatId string) *MessageBuilder {
	builder.openChatId = openChatId
	builder.openChatIdFlag = true
	return builder
}

// 会话名称
//
// 示例值：xx与xx的聊天
func (builder *MessageBuilder) ChatName(chatName string) *MessageBuilder {
	builder.chatName = chatName
	builder.chatNameFlag = true
	return builder
}

// 会话类型
//
// 示例值：1
func (builder *MessageBuilder) ChatType(chatType int) *MessageBuilder {
	builder.chatType = chatType
	builder.chatTypeFlag = true
	return builder
}

// 消息发送人
//
// 示例值：
func (builder *MessageBuilder) Owner(owner *User) *MessageBuilder {
	builder.owner = owner
	builder.ownerFlag = true
	return builder
}

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

func (builder *MessageBuilder) Build() *Message {
	req := &Message{}
	if builder.openMessageIdFlag {
		req.OpenMessageId = &builder.openMessageId

	}
	if builder.textFlag {
		req.Text = &builder.text

	}
	if builder.openChatIdFlag {
		req.OpenChatId = &builder.openChatId

	}
	if builder.chatNameFlag {
		req.ChatName = &builder.chatName

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

	}
	if builder.ownerFlag {
		req.Owner = builder.owner
	}
	if builder.createTimeFlag {
		req.CreateTime = &builder.createTime

	}
	return req
}

type MigrationEntity struct {
	Id *string `json:"id,omitempty"` // 迁移的实体 id

	Location *string `json:"location,omitempty"` // 实体的数据驻留地

	Type *string `json:"type,omitempty"` // 实体的类型

	CreatorId *string `json:"creator_id,omitempty"` // 创建者的 id

	CreatorType *string `json:"creator_type,omitempty"` // 创建者的类型

	CreateTime *string `json:"create_time,omitempty"` // 实体创建时间（毫秒级时间戳）

	MailAddress *string `json:"mail_address,omitempty"` // 实体类型为 mailbox 时，返回 mail address，如果没有，则返回空
}

type MigrationEntityBuilder struct {
	id     string // 迁移的实体 id
	idFlag bool

	location     string // 实体的数据驻留地
	locationFlag bool

	type_    string // 实体的类型
	typeFlag bool

	creatorId     string // 创建者的 id
	creatorIdFlag bool

	creatorType     string // 创建者的类型
	creatorTypeFlag bool

	createTime     string // 实体创建时间（毫秒级时间戳）
	createTimeFlag bool

	mailAddress     string // 实体类型为 mailbox 时，返回 mail address，如果没有，则返回空
	mailAddressFlag bool
}

func NewMigrationEntityBuilder() *MigrationEntityBuilder {
	builder := &MigrationEntityBuilder{}
	return builder
}

// 迁移的实体 id
//
// 示例值：43c58071254443c580712544
func (builder *MigrationEntityBuilder) Id(id string) *MigrationEntityBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 实体的数据驻留地
//
// 示例值：SG
func (builder *MigrationEntityBuilder) Location(location string) *MigrationEntityBuilder {
	builder.location = location
	builder.locationFlag = true
	return builder
}

// 实体的类型
//
// 示例值：sheets
func (builder *MigrationEntityBuilder) Type(type_ string) *MigrationEntityBuilder {
	builder.type_ = type_
	builder.typeFlag = true
	return builder
}

// 创建者的 id
//
// 示例值：4443c580712544
func (builder *MigrationEntityBuilder) CreatorId(creatorId string) *MigrationEntityBuilder {
	builder.creatorId = creatorId
	builder.creatorIdFlag = true
	return builder
}

// 创建者的类型
//
// 示例值：user
func (builder *MigrationEntityBuilder) CreatorType(creatorType string) *MigrationEntityBuilder {
	builder.creatorType = creatorType
	builder.creatorTypeFlag = true
	return builder
}

// 实体创建时间（毫秒级时间戳）
//
// 示例值：1615380573411
func (builder *MigrationEntityBuilder) CreateTime(createTime string) *MigrationEntityBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 实体类型为 mailbox 时，返回 mail address，如果没有，则返回空
//
// 示例值：xxx@xxx.xx
func (builder *MigrationEntityBuilder) MailAddress(mailAddress string) *MigrationEntityBuilder {
	builder.mailAddress = mailAddress
	builder.mailAddressFlag = true
	return builder
}

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

	}
	if builder.locationFlag {
		req.Location = &builder.location

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

	}
	if builder.creatorIdFlag {
		req.CreatorId = &builder.creatorId

	}
	if builder.creatorTypeFlag {
		req.CreatorType = &builder.creatorType

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

	}
	if builder.mailAddressFlag {
		req.MailAddress = &builder.mailAddress

	}
	return req
}

type MigrationItems struct {
	TaskId *string `json:"task_id,omitempty"` // 迁移任务的 id

	TaskStatus *string `json:"task_status,omitempty"` // 任务状态

	Entity *MigrationEntity `json:"entity,omitempty"` // 实体。当 entity 因为物理删除等原因找不到了，则不返回 entity 这个 obejct。

	Message *string `json:"message,omitempty"` // 只有当 task status 为 stop 时，返回 entity 找不到的信息。
}

type MigrationItemsBuilder struct {
	taskId     string // 迁移任务的 id
	taskIdFlag bool

	taskStatus     string // 任务状态
	taskStatusFlag bool

	entity     *MigrationEntity // 实体。当 entity 因为物理删除等原因找不到了，则不返回 entity 这个 obejct。
	entityFlag bool

	message     string // 只有当 task status 为 stop 时，返回 entity 找不到的信息。
	messageFlag bool
}

func NewMigrationItemsBuilder() *MigrationItemsBuilder {
	builder := &MigrationItemsBuilder{}
	return builder
}

// 迁移任务的 id
//
// 示例值：DUoTvpjqEMgzaDU5CmfpPhx2ncp8nh+EGtQtXXQDiBdxp7QBYwI55YnfCM7Pmoxirb9V8k9CMaqLESoXLX7ny7qj7mNlbhHBMcvzsuemDpSN5aF9TmzNEJHtcmtEfdCr
func (builder *MigrationItemsBuilder) TaskId(taskId string) *MigrationItemsBuilder {
	builder.taskId = taskId
	builder.taskIdFlag = true
	return builder
}

// 任务状态
//
// 示例值：create
func (builder *MigrationItemsBuilder) TaskStatus(taskStatus string) *MigrationItemsBuilder {
	builder.taskStatus = taskStatus
	builder.taskStatusFlag = true
	return builder
}

// 实体。当 entity 因为物理删除等原因找不到了，则不返回 entity 这个 obejct。
//
// 示例值：
func (builder *MigrationItemsBuilder) Entity(entity *MigrationEntity) *MigrationItemsBuilder {
	builder.entity = entity
	builder.entityFlag = true
	return builder
}

// 只有当 task status 为 stop 时，返回 entity 找不到的信息。
//
// 示例值：Entity not exist.
func (builder *MigrationItemsBuilder) Message(message string) *MigrationItemsBuilder {
	builder.message = message
	builder.messageFlag = true
	return builder
}

func (builder *MigrationItemsBuilder) Build() *MigrationItems {
	req := &MigrationItems{}
	if builder.taskIdFlag {
		req.TaskId = &builder.taskId

	}
	if builder.taskStatusFlag {
		req.TaskStatus = &builder.taskStatus

	}
	if builder.entityFlag {
		req.Entity = builder.entity
	}
	if builder.messageFlag {
		req.Message = &builder.message

	}
	return req
}

type Notification struct {
	IdempotentKey *string `json:"idempotent_key,omitempty"` // 幂等建

	Content *string `json:"content,omitempty"` // 通知内容
}

type NotificationBuilder struct {
	idempotentKey     string // 幂等建
	idempotentKeyFlag bool

	content     string // 通知内容
	contentFlag bool
}

func NewNotificationBuilder() *NotificationBuilder {
	builder := &NotificationBuilder{}
	return builder
}

// 幂等建
//
// 示例值：0cbd65e0-c7ab-4e9f-a80c-be29dd21df8f
func (builder *NotificationBuilder) IdempotentKey(idempotentKey string) *NotificationBuilder {
	builder.idempotentKey = idempotentKey
	builder.idempotentKeyFlag = true
	return builder
}

// 通知内容
//
// 示例值：
func (builder *NotificationBuilder) Content(content string) *NotificationBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

func (builder *NotificationBuilder) Build() *Notification {
	req := &Notification{}
	if builder.idempotentKeyFlag {
		req.IdempotentKey = &builder.idempotentKey

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	return req
}

type OpenapiLog struct {
	Id *string `json:"id,omitempty"` // openapi日志唯一标识

	ApiKey *string `json:"api_key,omitempty"` // 飞书开放平台定义的API

	EventTime *int `json:"event_time,omitempty"` // 日志产生的时间，以秒为单位的时间戳

	AppId *string `json:"app_id,omitempty"` // 在开发者后台——凭证与基础信息页面查看的app_id（cli_xxxxx）

	Ip *string `json:"ip,omitempty"` // 发起调用api的ip地址

	LogDetail *OpenapiLogDetail `json:"log_detail,omitempty"` // openapi调用日志详情
}

type OpenapiLogBuilder struct {
	id     string // openapi日志唯一标识
	idFlag bool

	apiKey     string // 飞书开放平台定义的API
	apiKeyFlag bool

	eventTime     int // 日志产生的时间，以秒为单位的时间戳
	eventTimeFlag bool

	appId     string // 在开发者后台——凭证与基础信息页面查看的app_id（cli_xxxxx）
	appIdFlag bool

	ip     string // 发起调用api的ip地址
	ipFlag bool

	logDetail     *OpenapiLogDetail // openapi调用日志详情
	logDetailFlag bool
}

func NewOpenapiLogBuilder() *OpenapiLogBuilder {
	builder := &OpenapiLogBuilder{}
	return builder
}

// openapi日志唯一标识
//
// 示例值：10000
func (builder *OpenapiLogBuilder) Id(id string) *OpenapiLogBuilder {
	builder.id = id
	builder.idFlag = true
	return builder
}

// 飞书开放平台定义的API
//
// 示例值：POST/open-apis/demo/v1/example
func (builder *OpenapiLogBuilder) ApiKey(apiKey string) *OpenapiLogBuilder {
	builder.apiKey = apiKey
	builder.apiKeyFlag = true
	return builder
}

// 日志产生的时间，以秒为单位的时间戳
//
// 示例值：1610613336
func (builder *OpenapiLogBuilder) EventTime(eventTime int) *OpenapiLogBuilder {
	builder.eventTime = eventTime
	builder.eventTimeFlag = true
	return builder
}

// 在开发者后台——凭证与基础信息页面查看的app_id（cli_xxxxx）
//
// 示例值：cli_xxx
func (builder *OpenapiLogBuilder) AppId(appId string) *OpenapiLogBuilder {
	builder.appId = appId
	builder.appIdFlag = true
	return builder
}

// 发起调用api的ip地址
//
// 示例值：192.123.12.1或fdbd:ff1:ce00:135:c7e:d128:5028:6546
func (builder *OpenapiLogBuilder) Ip(ip string) *OpenapiLogBuilder {
	builder.ip = ip
	builder.ipFlag = true
	return builder
}

// openapi调用日志详情
//
// 示例值：
func (builder *OpenapiLogBuilder) LogDetail(logDetail *OpenapiLogDetail) *OpenapiLogBuilder {
	builder.logDetail = logDetail
	builder.logDetailFlag = true
	return builder
}

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

	}
	if builder.apiKeyFlag {
		req.ApiKey = &builder.apiKey

	}
	if builder.eventTimeFlag {
		req.EventTime = &builder.eventTime

	}
	if builder.appIdFlag {
		req.AppId = &builder.appId

	}
	if builder.ipFlag {
		req.Ip = &builder.ip

	}
	if builder.logDetailFlag {
		req.LogDetail = builder.logDetail
	}
	return req
}

type OpenapiLogDetail struct {
	Path *string `json:"path,omitempty"` // http请求路径

	Method *string `json:"method,omitempty"` // http请求方法

	QueryParam *string `json:"query_param,omitempty"` // http查询参数

	Payload *string `json:"payload,omitempty"` // http请求体

	StatusCode *int `json:"status_code,omitempty"` // http状态码

	Response *string `json:"response,omitempty"` // http响应体，仅返回code，msg，error信息等
}

type OpenapiLogDetailBuilder struct {
	path     string // http请求路径
	pathFlag bool

	method     string // http请求方法
	methodFlag bool

	queryParam     string // http查询参数
	queryParamFlag bool

	payload     string // http请求体
	payloadFlag bool

	statusCode     int // http状态码
	statusCodeFlag bool

	response     string // http响应体，仅返回code，msg，error信息等
	responseFlag bool
}

func NewOpenapiLogDetailBuilder() *OpenapiLogDetailBuilder {
	builder := &OpenapiLogDetailBuilder{}
	return builder
}

// http请求路径
//
// 示例值：/open-apis/demo/v1/example
func (builder *OpenapiLogDetailBuilder) Path(path string) *OpenapiLogDetailBuilder {
	builder.path = path
	builder.pathFlag = true
	return builder
}

// http请求方法
//
// 示例值：POST
func (builder *OpenapiLogDetailBuilder) Method(method string) *OpenapiLogDetailBuilder {
	builder.method = method
	builder.methodFlag = true
	return builder
}

// http查询参数
//
// 示例值：{}
func (builder *OpenapiLogDetailBuilder) QueryParam(queryParam string) *OpenapiLogDetailBuilder {
	builder.queryParam = queryParam
	builder.queryParamFlag = true
	return builder
}

// http请求体
//
// 示例值：{\"param1\": \"val1\", \"param2\": \"val2\"}
func (builder *OpenapiLogDetailBuilder) Payload(payload string) *OpenapiLogDetailBuilder {
	builder.payload = payload
	builder.payloadFlag = true
	return builder
}

// http状态码
//
// 示例值：0
func (builder *OpenapiLogDetailBuilder) StatusCode(statusCode int) *OpenapiLogDetailBuilder {
	builder.statusCode = statusCode
	builder.statusCodeFlag = true
	return builder
}

// http响应体，仅返回code，msg，error信息等
//
// 示例值：{\"code\": 0, \"msg\": \"ok\"}
func (builder *OpenapiLogDetailBuilder) Response(response string) *OpenapiLogDetailBuilder {
	builder.response = response
	builder.responseFlag = true
	return builder
}

func (builder *OpenapiLogDetailBuilder) Build() *OpenapiLogDetail {
	req := &OpenapiLogDetail{}
	if builder.pathFlag {
		req.Path = &builder.path

	}
	if builder.methodFlag {
		req.Method = &builder.method

	}
	if builder.queryParamFlag {
		req.QueryParam = &builder.queryParam

	}
	if builder.payloadFlag {
		req.Payload = &builder.payload

	}
	if builder.statusCodeFlag {
		req.StatusCode = &builder.statusCode

	}
	if builder.responseFlag {
		req.Response = &builder.response

	}
	return req
}

type Param struct {
	Key *string `json:"key,omitempty"` // key

	Value *string `json:"value,omitempty"` // value
}

type ParamBuilder struct {
	key     string // key
	keyFlag bool

	value     string // value
	valueFlag bool
}

func NewParamBuilder() *ParamBuilder {
	builder := &ParamBuilder{}
	return builder
}

// key
//
// 示例值：token
func (builder *ParamBuilder) Key(key string) *ParamBuilder {
	builder.key = key
	builder.keyFlag = true
	return builder
}

// value
//
// 示例值：12345
func (builder *ParamBuilder) Value(value string) *ParamBuilder {
	builder.value = value
	builder.valueFlag = true
	return builder
}

func (builder *ParamBuilder) Build() *Param {
	req := &Param{}
	if builder.keyFlag {
		req.Key = &builder.key

	}
	if builder.valueFlag {
		req.Value = &builder.value

	}
	return req
}

type PolicyEntity struct {
	PolicyId *string `json:"policy_id,omitempty"` // 策略快照ID

	PolicyName *string `json:"policy_name,omitempty"` // 策略名称
}

type PolicyEntityBuilder struct {
	policyId     string // 策略快照ID
	policyIdFlag bool

	policyName     string // 策略名称
	policyNameFlag bool
}

func NewPolicyEntityBuilder() *PolicyEntityBuilder {
	builder := &PolicyEntityBuilder{}
	return builder
}

// 策略快照ID
//
// 示例值：123456
func (builder *PolicyEntityBuilder) PolicyId(policyId string) *PolicyEntityBuilder {
	builder.policyId = policyId
	builder.policyIdFlag = true
	return builder
}

// 策略名称
//
// 示例值：策略名称Demo
func (builder *PolicyEntityBuilder) PolicyName(policyName string) *PolicyEntityBuilder {
	builder.policyName = policyName
	builder.policyNameFlag = true
	return builder
}

func (builder *PolicyEntityBuilder) Build() *PolicyEntity {
	req := &PolicyEntity{}
	if builder.policyIdFlag {
		req.PolicyId = &builder.policyId

	}
	if builder.policyNameFlag {
		req.PolicyName = &builder.policyName

	}
	return req
}

type PolicyLog struct {
	HasMore *bool `json:"has_more,omitempty"` //

	PageToken *string `json:"page_token,omitempty"` //

	Items []*PolicyLogItem `json:"items,omitempty"` // 策略日志列表
}

type PolicyLogBuilder struct {
	hasMore     bool //
	hasMoreFlag bool

	pageToken     string //
	pageTokenFlag bool

	items     []*PolicyLogItem // 策略日志列表
	itemsFlag bool
}

func NewPolicyLogBuilder() *PolicyLogBuilder {
	builder := &PolicyLogBuilder{}
	return builder
}

//
//
// 示例值：
func (builder *PolicyLogBuilder) HasMore(hasMore bool) *PolicyLogBuilder {
	builder.hasMore = hasMore
	builder.hasMoreFlag = true
	return builder
}

//
//
// 示例值：
func (builder *PolicyLogBuilder) PageToken(pageToken string) *PolicyLogBuilder {
	builder.pageToken = pageToken
	builder.pageTokenFlag = true
	return builder
}

// 策略日志列表
//
// 示例值：
func (builder *PolicyLogBuilder) Items(items []*PolicyLogItem) *PolicyLogBuilder {
	builder.items = items
	builder.itemsFlag = true
	return builder
}

func (builder *PolicyLogBuilder) Build() *PolicyLog {
	req := &PolicyLog{}
	if builder.hasMoreFlag {
		req.HasMore = &builder.hasMore

	}
	if builder.pageTokenFlag {
		req.PageToken = &builder.pageToken

	}
	if builder.itemsFlag {
		req.Items = builder.items
	}
	return req
}

type PolicyLogItem struct {
	UserId *string `json:"user_id,omitempty"` // 用户ID

	UserName *string `json:"user_name,omitempty"` // 用户名

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

	Resource *string `json:"resource,omitempty"` // 场景

	EventTime *string `json:"event_time,omitempty"` // 命中时间

	Condition *string `json:"condition,omitempty"` // 条件

	PolicyInfos []*PolicyEntity `json:"policy_infos,omitempty"` // 策略信息

	SystemAction *string `json:"system_action,omitempty"` // 系统执行动作

	HitContents []*HitContent `json:"hit_contents,omitempty"` // 命中的内容信息

	ProofDetails []*ProofContentDetail `json:"proof_details,omitempty"` // 证据详情

	DetectRules []*DetectRule `json:"detect_rules,omitempty"` // 命中的检测规则

	ResourceAttributes []*ResourceAttribute `json:"resource_attributes,omitempty"` // 管控场景的资源属性
}

type PolicyLogItemBuilder struct {
	userId     string // 用户ID
	userIdFlag bool

	userName     string // 用户名
	userNameFlag bool

	action     string // 操作
	actionFlag bool

	resource     string // 场景
	resourceFlag bool

	eventTime     string // 命中时间
	eventTimeFlag bool

	condition     string // 条件
	conditionFlag bool

	policyInfos     []*PolicyEntity // 策略信息
	policyInfosFlag bool

	systemAction     string // 系统执行动作
	systemActionFlag bool

	hitContents     []*HitContent // 命中的内容信息
	hitContentsFlag bool

	proofDetails     []*ProofContentDetail // 证据详情
	proofDetailsFlag bool

	detectRules     []*DetectRule // 命中的检测规则
	detectRulesFlag bool

	resourceAttributes     []*ResourceAttribute // 管控场景的资源属性
	resourceAttributesFlag bool
}

func NewPolicyLogItemBuilder() *PolicyLogItemBuilder {
	builder := &PolicyLogItemBuilder{}
	return builder
}

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

// 用户名
//
// 示例值：张三
func (builder *PolicyLogItemBuilder) UserName(userName string) *PolicyLogItemBuilder {
	builder.userName = userName
	builder.userNameFlag = true
	return builder
}

// 操作
//
// 示例值：Access
func (builder *PolicyLogItemBuilder) Action(action string) *PolicyLogItemBuilder {
	builder.action = action
	builder.actionFlag = true
	return builder
}

// 场景
//
// 示例值：飞书
func (builder *PolicyLogItemBuilder) Resource(resource string) *PolicyLogItemBuilder {
	builder.resource = resource
	builder.resourceFlag = true
	return builder
}

// 命中时间
//
// 示例值：1668700799000
func (builder *PolicyLogItemBuilder) EventTime(eventTime string) *PolicyLogItemBuilder {
	builder.eventTime = eventTime
	builder.eventTimeFlag = true
	return builder
}

// 条件
//
// 示例值：{\"DEVICE_OWNERSHIP\":\"Unknown\",\"DEVICE_TERMINAL\":\"Web\",\"LSA_CLIENT_BIND_STATUS\":\"Unknown\",\"USER_ID\":7564320266201861655,\"DEVICE_CREDIBILITY\":\"Unknown\",\"DEVICE_OS\":\"macOS\"}
func (builder *PolicyLogItemBuilder) Condition(condition string) *PolicyLogItemBuilder {
	builder.condition = condition
	builder.conditionFlag = true
	return builder
}

// 策略信息
//
// 示例值：
func (builder *PolicyLogItemBuilder) PolicyInfos(policyInfos []*PolicyEntity) *PolicyLogItemBuilder {
	builder.policyInfos = policyInfos
	builder.policyInfosFlag = true
	return builder
}

// 系统执行动作
//
// 示例值：DENY_WITHOUT_APPROVAL
func (builder *PolicyLogItemBuilder) SystemAction(systemAction string) *PolicyLogItemBuilder {
	builder.systemAction = systemAction
	builder.systemActionFlag = true
	return builder
}

// 命中的内容信息
//
// 示例值：
func (builder *PolicyLogItemBuilder) HitContents(hitContents []*HitContent) *PolicyLogItemBuilder {
	builder.hitContents = hitContents
	builder.hitContentsFlag = true
	return builder
}

// 证据详情
//
// 示例值：
func (builder *PolicyLogItemBuilder) ProofDetails(proofDetails []*ProofContentDetail) *PolicyLogItemBuilder {
	builder.proofDetails = proofDetails
	builder.proofDetailsFlag = true
	return builder
}

// 命中的检测规则
//
// 示例值：
func (builder *PolicyLogItemBuilder) DetectRules(detectRules []*DetectRule) *PolicyLogItemBuilder {
	builder.detectRules = detectRules
	builder.detectRulesFlag = true
	return builder
}

// 管控场景的资源属性
//
// 示例值：
func (builder *PolicyLogItemBuilder) ResourceAttributes(resourceAttributes []*ResourceAttribute) *PolicyLogItemBuilder {
	builder.resourceAttributes = resourceAttributes
	builder.resourceAttributesFlag = true
	return builder
}

func (builder *PolicyLogItemBuilder) Build() *PolicyLogItem {
	req := &PolicyLogItem{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.userNameFlag {
		req.UserName = &builder.userName

	}
	if builder.actionFlag {
		req.Action = &builder.action

	}
	if builder.resourceFlag {
		req.Resource = &builder.resource

	}
	if builder.eventTimeFlag {
		req.EventTime = &builder.eventTime

	}
	if builder.conditionFlag {
		req.Condition = &builder.condition

	}
	if builder.policyInfosFlag {
		req.PolicyInfos = builder.policyInfos
	}
	if builder.systemActionFlag {
		req.SystemAction = &builder.systemAction

	}
	if builder.hitContentsFlag {
		req.HitContents = builder.hitContents
	}
	if builder.proofDetailsFlag {
		req.ProofDetails = builder.proofDetails
	}
	if builder.detectRulesFlag {
		req.DetectRules = builder.detectRules
	}
	if builder.resourceAttributesFlag {
		req.ResourceAttributes = builder.resourceAttributes
	}
	return req
}

type ProofContentDetail struct {
	DetectMode *int `json:"detect_mode,omitempty"` // 检测器

	DetectProofContexts []*DetectProofContext `json:"detect_proof_contexts,omitempty"` // 检测的证据信息
}

type ProofContentDetailBuilder struct {
	detectMode     int // 检测器
	detectModeFlag bool

	detectProofContexts     []*DetectProofContext // 检测的证据信息
	detectProofContextsFlag bool
}

func NewProofContentDetailBuilder() *ProofContentDetailBuilder {
	builder := &ProofContentDetailBuilder{}
	return builder
}

// 检测器
//
// 示例值：1
func (builder *ProofContentDetailBuilder) DetectMode(detectMode int) *ProofContentDetailBuilder {
	builder.detectMode = detectMode
	builder.detectModeFlag = true
	return builder
}

// 检测的证据信息
//
// 示例值：
func (builder *ProofContentDetailBuilder) DetectProofContexts(detectProofContexts []*DetectProofContext) *ProofContentDetailBuilder {
	builder.detectProofContexts = detectProofContexts
	builder.detectProofContextsFlag = true
	return builder
}

func (builder *ProofContentDetailBuilder) Build() *ProofContentDetail {
	req := &ProofContentDetail{}
	if builder.detectModeFlag {
		req.DetectMode = &builder.detectMode

	}
	if builder.detectProofContextsFlag {
		req.DetectProofContexts = builder.detectProofContexts
	}
	return req
}

type ProofContext struct {
	Prefix *string `json:"prefix,omitempty"` // 证据上文

	Content *string `json:"content,omitempty"` // 证据关键词

	Suffix *string `json:"suffix,omitempty"` // 证据下文
}

type ProofContextBuilder struct {
	prefix     string // 证据上文
	prefixFlag bool

	content     string // 证据关键词
	contentFlag bool

	suffix     string // 证据下文
	suffixFlag bool
}

func NewProofContextBuilder() *ProofContextBuilder {
	builder := &ProofContextBuilder{}
	return builder
}

// 证据上文
//
// 示例值：'上文内容'
func (builder *ProofContextBuilder) Prefix(prefix string) *ProofContextBuilder {
	builder.prefix = prefix
	builder.prefixFlag = true
	return builder
}

// 证据关键词
//
// 示例值：'关键词'
func (builder *ProofContextBuilder) Content(content string) *ProofContextBuilder {
	builder.content = content
	builder.contentFlag = true
	return builder
}

// 证据下文
//
// 示例值：'下文内容'
func (builder *ProofContextBuilder) Suffix(suffix string) *ProofContextBuilder {
	builder.suffix = suffix
	builder.suffixFlag = true
	return builder
}

func (builder *ProofContextBuilder) Build() *ProofContext {
	req := &ProofContext{}
	if builder.prefixFlag {
		req.Prefix = &builder.prefix

	}
	if builder.contentFlag {
		req.Content = &builder.content

	}
	if builder.suffixFlag {
		req.Suffix = &builder.suffix

	}
	return req
}

type ResourceAttribute struct {
	ResourceKey *string `json:"resource_key,omitempty"` // 资源属性Key

	ResourceId *string `json:"resource_id,omitempty"` // 资源属性ID

	ResourceValue *string `json:"resource_value,omitempty"` // 资源属性值
}

type ResourceAttributeBuilder struct {
	resourceKey     string // 资源属性Key
	resourceKeyFlag bool

	resourceId     string // 资源属性ID
	resourceIdFlag bool

	resourceValue     string // 资源属性值
	resourceValueFlag bool
}

func NewResourceAttributeBuilder() *ResourceAttributeBuilder {
	builder := &ResourceAttributeBuilder{}
	return builder
}

// 资源属性Key
//
// 示例值：FileToken
func (builder *ResourceAttributeBuilder) ResourceKey(resourceKey string) *ResourceAttributeBuilder {
	builder.resourceKey = resourceKey
	builder.resourceKeyFlag = true
	return builder
}

// 资源属性ID
//
// 示例值：78697689739864232
func (builder *ResourceAttributeBuilder) ResourceId(resourceId string) *ResourceAttributeBuilder {
	builder.resourceId = resourceId
	builder.resourceIdFlag = true
	return builder
}

// 资源属性值
//
// 示例值：'text'
func (builder *ResourceAttributeBuilder) ResourceValue(resourceValue string) *ResourceAttributeBuilder {
	builder.resourceValue = resourceValue
	builder.resourceValueFlag = true
	return builder
}

func (builder *ResourceAttributeBuilder) Build() *ResourceAttribute {
	req := &ResourceAttribute{}
	if builder.resourceKeyFlag {
		req.ResourceKey = &builder.resourceKey

	}
	if builder.resourceIdFlag {
		req.ResourceId = &builder.resourceId

	}
	if builder.resourceValueFlag {
		req.ResourceValue = &builder.resourceValue

	}
	return req
}

type SecurityLogError struct {
	Request *GwRequest `json:"request,omitempty"` // 请求体

	Response *GwResponse `json:"response,omitempty"` // 响应体

	Common *GwCommon `json:"common,omitempty"` // 通用参数
}

type SecurityLogErrorBuilder struct {
	request     *GwRequest // 请求体
	requestFlag bool

	response     *GwResponse // 响应体
	responseFlag bool

	common     *GwCommon // 通用参数
	commonFlag bool
}

func NewSecurityLogErrorBuilder() *SecurityLogErrorBuilder {
	builder := &SecurityLogErrorBuilder{}
	return builder
}

// 请求体
//
// 示例值：
func (builder *SecurityLogErrorBuilder) Request(request *GwRequest) *SecurityLogErrorBuilder {
	builder.request = request
	builder.requestFlag = true
	return builder
}

// 响应体
//
// 示例值：
func (builder *SecurityLogErrorBuilder) Response(response *GwResponse) *SecurityLogErrorBuilder {
	builder.response = response
	builder.responseFlag = true
	return builder
}

// 通用参数
//
// 示例值：
func (builder *SecurityLogErrorBuilder) Common(common *GwCommon) *SecurityLogErrorBuilder {
	builder.common = common
	builder.commonFlag = true
	return builder
}

func (builder *SecurityLogErrorBuilder) Build() *SecurityLogError {
	req := &SecurityLogError{}
	if builder.requestFlag {
		req.Request = builder.request
	}
	if builder.responseFlag {
		req.Response = builder.response
	}
	if builder.commonFlag {
		req.Common = builder.common
	}
	return req
}

type SimpleUser struct {
	Id *string `json:"id,omitempty"` // 用户id

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

type SimpleUserBuilder struct {
	id     string // 用户id
	idFlag bool

	name     string // 用户名
	nameFlag bool
}

func NewSimpleUserBuilder() *SimpleUserBuilder {
	builder := &SimpleUserBuilder{}
	return builder
}

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

// 用户名
//
// 示例值：
func (builder *SimpleUserBuilder) Name(name string) *SimpleUserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

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

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

	}
	return req
}

type SubscribeAuditLogFile struct {
	FileId *string `json:"file_id,omitempty"` // 文件 id

	FileUrl *string `json:"file_url,omitempty"` // 文件地址

	FileUrlExpireTime *int `json:"file_url_expire_time,omitempty"` // 文件过期时间，秒级时间戳

	FileSize *int `json:"file_size,omitempty"` // 文件大小

	StartTime *int `json:"start_time,omitempty"` // 文件打包的日志的开始时间

	EndTime *int `json:"end_time,omitempty"` // 文件打包的日志的结束时间
}

type SubscribeAuditLogFileBuilder struct {
	fileId     string // 文件 id
	fileIdFlag bool

	fileUrl     string // 文件地址
	fileUrlFlag bool

	fileUrlExpireTime     int // 文件过期时间，秒级时间戳
	fileUrlExpireTimeFlag bool

	fileSize     int // 文件大小
	fileSizeFlag bool

	startTime     int // 文件打包的日志的开始时间
	startTimeFlag bool

	endTime     int // 文件打包的日志的结束时间
	endTimeFlag bool
}

func NewSubscribeAuditLogFileBuilder() *SubscribeAuditLogFileBuilder {
	builder := &SubscribeAuditLogFileBuilder{}
	return builder
}

// 文件 id
//
// 示例值：example
func (builder *SubscribeAuditLogFileBuilder) FileId(fileId string) *SubscribeAuditLogFileBuilder {
	builder.fileId = fileId
	builder.fileIdFlag = true
	return builder
}

// 文件地址
//
// 示例值：example.gz
func (builder *SubscribeAuditLogFileBuilder) FileUrl(fileUrl string) *SubscribeAuditLogFileBuilder {
	builder.fileUrl = fileUrl
	builder.fileUrlFlag = true
	return builder
}

// 文件过期时间，秒级时间戳
//
// 示例值：1741759604
func (builder *SubscribeAuditLogFileBuilder) FileUrlExpireTime(fileUrlExpireTime int) *SubscribeAuditLogFileBuilder {
	builder.fileUrlExpireTime = fileUrlExpireTime
	builder.fileUrlExpireTimeFlag = true
	return builder
}

// 文件大小
//
// 示例值：10
func (builder *SubscribeAuditLogFileBuilder) FileSize(fileSize int) *SubscribeAuditLogFileBuilder {
	builder.fileSize = fileSize
	builder.fileSizeFlag = true
	return builder
}

// 文件打包的日志的开始时间
//
// 示例值：1741759604
func (builder *SubscribeAuditLogFileBuilder) StartTime(startTime int) *SubscribeAuditLogFileBuilder {
	builder.startTime = startTime
	builder.startTimeFlag = true
	return builder
}

// 文件打包的日志的结束时间
//
// 示例值：1741759704
func (builder *SubscribeAuditLogFileBuilder) EndTime(endTime int) *SubscribeAuditLogFileBuilder {
	builder.endTime = endTime
	builder.endTimeFlag = true
	return builder
}

func (builder *SubscribeAuditLogFileBuilder) Build() *SubscribeAuditLogFile {
	req := &SubscribeAuditLogFile{}
	if builder.fileIdFlag {
		req.FileId = &builder.fileId

	}
	if builder.fileUrlFlag {
		req.FileUrl = &builder.fileUrl

	}
	if builder.fileUrlExpireTimeFlag {
		req.FileUrlExpireTime = &builder.fileUrlExpireTime

	}
	if builder.fileSizeFlag {
		req.FileSize = &builder.fileSize

	}
	if builder.startTimeFlag {
		req.StartTime = &builder.startTime

	}
	if builder.endTimeFlag {
		req.EndTime = &builder.endTime

	}
	return req
}

type TaskStatus struct {
	FailureReason *string `json:"failure_reason,omitempty"` // 任务失败原因

	StatusCode *int `json:"status_code,omitempty"` // 任务状态码
}

type TaskStatusBuilder struct {
	failureReason     string // 任务失败原因
	failureReasonFlag bool

	statusCode     int // 任务状态码
	statusCodeFlag bool
}

func NewTaskStatusBuilder() *TaskStatusBuilder {
	builder := &TaskStatusBuilder{}
	return builder
}

// 任务失败原因
//
// 示例值：
func (builder *TaskStatusBuilder) FailureReason(failureReason string) *TaskStatusBuilder {
	builder.failureReason = failureReason
	builder.failureReasonFlag = true
	return builder
}

// 任务状态码
//
// 示例值：
func (builder *TaskStatusBuilder) StatusCode(statusCode int) *TaskStatusBuilder {
	builder.statusCode = statusCode
	builder.statusCodeFlag = true
	return builder
}

func (builder *TaskStatusBuilder) Build() *TaskStatus {
	req := &TaskStatus{}
	if builder.failureReasonFlag {
		req.FailureReason = &builder.failureReason

	}
	if builder.statusCodeFlag {
		req.StatusCode = &builder.statusCode

	}
	return req
}

type Tenant struct {
	AvailableGeoLocations []string `json:"available_geo_locations,omitempty"` // 可选多地理位置列表
}

type TenantBuilder struct {
	availableGeoLocations     []string // 可选多地理位置列表
	availableGeoLocationsFlag bool
}

func NewTenantBuilder() *TenantBuilder {
	builder := &TenantBuilder{}
	return builder
}

// 可选多地理位置列表
//
// 示例值：["cn", "sg", "us", "jp"]
func (builder *TenantBuilder) AvailableGeoLocations(availableGeoLocations []string) *TenantBuilder {
	builder.availableGeoLocations = availableGeoLocations
	builder.availableGeoLocationsFlag = true
	return builder
}

func (builder *TenantBuilder) Build() *Tenant {
	req := &Tenant{}
	if builder.availableGeoLocationsFlag {
		req.AvailableGeoLocations = builder.availableGeoLocations
	}
	return req
}

type TenantThirdPartyEncryptionApp struct {
	VendorName *string `json:"vendor_name,omitempty"` // 加密服务提供商的名字

	Status *int `json:"status,omitempty"` // 服务状态

	ServiceStartTime *string `json:"service_start_time,omitempty"` // 服务开始时间（Unix秒级时间戳）

	ServiceEndTime *string `json:"service_end_time,omitempty"` // 服务结束时间（Unix秒级时间戳）

	Config *string `json:"config,omitempty"` // 服务商SDK需要的特化的SDK配置，status=1时必填
}

type TenantThirdPartyEncryptionAppBuilder struct {
	vendorName     string // 加密服务提供商的名字
	vendorNameFlag bool

	status     int // 服务状态
	statusFlag bool

	serviceStartTime     string // 服务开始时间（Unix秒级时间戳）
	serviceStartTimeFlag bool

	serviceEndTime     string // 服务结束时间（Unix秒级时间戳）
	serviceEndTimeFlag bool

	config     string // 服务商SDK需要的特化的SDK配置，status=1时必填
	configFlag bool
}

func NewTenantThirdPartyEncryptionAppBuilder() *TenantThirdPartyEncryptionAppBuilder {
	builder := &TenantThirdPartyEncryptionAppBuilder{}
	return builder
}

// 加密服务提供商的名字
//
// 示例值：卫士通
func (builder *TenantThirdPartyEncryptionAppBuilder) VendorName(vendorName string) *TenantThirdPartyEncryptionAppBuilder {
	builder.vendorName = vendorName
	builder.vendorNameFlag = true
	return builder
}

// 服务状态
//
// 示例值：1
func (builder *TenantThirdPartyEncryptionAppBuilder) Status(status int) *TenantThirdPartyEncryptionAppBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 服务开始时间（Unix秒级时间戳）
//
// 示例值：1653473995
func (builder *TenantThirdPartyEncryptionAppBuilder) ServiceStartTime(serviceStartTime string) *TenantThirdPartyEncryptionAppBuilder {
	builder.serviceStartTime = serviceStartTime
	builder.serviceStartTimeFlag = true
	return builder
}

// 服务结束时间（Unix秒级时间戳）
//
// 示例值：1684944000
func (builder *TenantThirdPartyEncryptionAppBuilder) ServiceEndTime(serviceEndTime string) *TenantThirdPartyEncryptionAppBuilder {
	builder.serviceEndTime = serviceEndTime
	builder.serviceEndTimeFlag = true
	return builder
}

// 服务商SDK需要的特化的SDK配置，status=1时必填
//
// 示例值：
func (builder *TenantThirdPartyEncryptionAppBuilder) Config(config string) *TenantThirdPartyEncryptionAppBuilder {
	builder.config = config
	builder.configFlag = true
	return builder
}

func (builder *TenantThirdPartyEncryptionAppBuilder) Build() *TenantThirdPartyEncryptionApp {
	req := &TenantThirdPartyEncryptionApp{}
	if builder.vendorNameFlag {
		req.VendorName = &builder.vendorName

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

	}
	if builder.serviceStartTimeFlag {
		req.ServiceStartTime = &builder.serviceStartTime

	}
	if builder.serviceEndTimeFlag {
		req.ServiceEndTime = &builder.serviceEndTime

	}
	if builder.configFlag {
		req.Config = &builder.config

	}
	return req
}

type TimeRange struct {
	Start *string `json:"start,omitempty"` // 开始时间(秒)

	End *string `json:"end,omitempty"` // 结束时间(秒)
}

type TimeRangeBuilder struct {
	start     string // 开始时间(秒)
	startFlag bool

	end     string // 结束时间(秒)
	endFlag bool
}

func NewTimeRangeBuilder() *TimeRangeBuilder {
	builder := &TimeRangeBuilder{}
	return builder
}

// 开始时间(秒)
//
// 示例值：1644854400
func (builder *TimeRangeBuilder) Start(start string) *TimeRangeBuilder {
	builder.start = start
	builder.startFlag = true
	return builder
}

// 结束时间(秒)
//
// 示例值：1645459199
func (builder *TimeRangeBuilder) End(end string) *TimeRangeBuilder {
	builder.end = end
	builder.endFlag = true
	return builder
}

func (builder *TimeRangeBuilder) Build() *TimeRange {
	req := &TimeRange{}
	if builder.startFlag {
		req.Start = &builder.start

	}
	if builder.endFlag {
		req.End = &builder.end

	}
	return req
}

type User struct {
	UserId *string `json:"user_id,omitempty"` // 用户ID

	Name *string `json:"name,omitempty"` // 用户姓名

	Email *string `json:"email,omitempty"` // 邮箱地址

	AvatarUrl *string `json:"avatar_url,omitempty"` // 头像图片链接
}

type UserBuilder struct {
	userId     string // 用户ID
	userIdFlag bool

	name     string // 用户姓名
	nameFlag bool

	email     string // 邮箱地址
	emailFlag bool

	avatarUrl     string // 头像图片链接
	avatarUrlFlag bool
}

func NewUserBuilder() *UserBuilder {
	builder := &UserBuilder{}
	return builder
}

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

// 用户姓名
//
// 示例值：某人
func (builder *UserBuilder) Name(name string) *UserBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 邮箱地址
//
// 示例值：xxx@xxx.com
func (builder *UserBuilder) Email(email string) *UserBuilder {
	builder.email = email
	builder.emailFlag = true
	return builder
}

// 头像图片链接
//
// 示例值：https://xxx.com/xxx.jpg
func (builder *UserBuilder) AvatarUrl(avatarUrl string) *UserBuilder {
	builder.avatarUrl = avatarUrl
	builder.avatarUrlFlag = true
	return builder
}

func (builder *UserBuilder) Build() *User {
	req := &User{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

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

	}
	if builder.emailFlag {
		req.Email = &builder.email

	}
	if builder.avatarUrlFlag {
		req.AvatarUrl = &builder.avatarUrl

	}
	return req
}

type UserId struct {
	UserId *string `json:"user_id,omitempty"` //

	OpenId *string `json:"open_id,omitempty"` //

	UnionId *string `json:"union_id,omitempty"` //
}

type UserIdBuilder struct {
	userId     string //
	userIdFlag bool

	openId     string //
	openIdFlag bool

	unionId     string //
	unionIdFlag bool
}

func NewUserIdBuilder() *UserIdBuilder {
	builder := &UserIdBuilder{}
	return builder
}

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

//
//
// 示例值：
func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder {
	builder.openId = openId
	builder.openIdFlag = true
	return builder
}

//
//
// 示例值：
func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder {
	builder.unionId = unionId
	builder.unionIdFlag = true
	return builder
}

func (builder *UserIdBuilder) Build() *UserId {
	req := &UserId{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.openIdFlag {
		req.OpenId = &builder.openId

	}
	if builder.unionIdFlag {
		req.UnionId = &builder.unionId

	}
	return req
}

type UserMigration struct {
	UserId *string `json:"user_id,omitempty"` // 用户 id

	DestGeo *string `json:"dest_geo,omitempty"` // 目标地理位置区域

	TaskId *string `json:"task_id,omitempty"` // 最新迁移任务 id

	Status *string `json:"status,omitempty"` // 用户迁移状态

	Progress *int `json:"progress,omitempty"` // 用户迁移进度
}

type UserMigrationBuilder struct {
	userId     string // 用户 id
	userIdFlag bool

	destGeo     string // 目标地理位置区域
	destGeoFlag bool

	taskId     string // 最新迁移任务 id
	taskIdFlag bool

	status     string // 用户迁移状态
	statusFlag bool

	progress     int // 用户迁移进度
	progressFlag bool
}

func NewUserMigrationBuilder() *UserMigrationBuilder {
	builder := &UserMigrationBuilder{}
	return builder
}

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

// 目标地理位置区域
//
// 示例值：
func (builder *UserMigrationBuilder) DestGeo(destGeo string) *UserMigrationBuilder {
	builder.destGeo = destGeo
	builder.destGeoFlag = true
	return builder
}

// 最新迁移任务 id
//
// 示例值：
func (builder *UserMigrationBuilder) TaskId(taskId string) *UserMigrationBuilder {
	builder.taskId = taskId
	builder.taskIdFlag = true
	return builder
}

// 用户迁移状态
//
// 示例值：
func (builder *UserMigrationBuilder) Status(status string) *UserMigrationBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

// 用户迁移进度
//
// 示例值：
func (builder *UserMigrationBuilder) Progress(progress int) *UserMigrationBuilder {
	builder.progress = progress
	builder.progressFlag = true
	return builder
}

func (builder *UserMigrationBuilder) Build() *UserMigration {
	req := &UserMigration{}
	if builder.userIdFlag {
		req.UserId = &builder.userId

	}
	if builder.destGeoFlag {
		req.DestGeo = &builder.destGeo

	}
	if builder.taskIdFlag {
		req.TaskId = &builder.taskId

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

	}
	if builder.progressFlag {
		req.Progress = &builder.progress

	}
	return req
}

type VaultExportFile struct {
	Name *string `json:"name,omitempty"` // 文件名

	Size *string `json:"size,omitempty"` // 文件大小

	Url *string `json:"url,omitempty"` // 文件tos uri

	DownloadUrl *string `json:"download_url,omitempty"` // 文件下载的链接(临时链接，数分钟后失效)
}

type VaultExportFileBuilder struct {
	name     string // 文件名
	nameFlag bool

	size     string // 文件大小
	sizeFlag bool

	url     string // 文件tos uri
	urlFlag bool

	downloadUrl     string // 文件下载的链接(临时链接，数分钟后失效)
	downloadUrlFlag bool
}

func NewVaultExportFileBuilder() *VaultExportFileBuilder {
	builder := &VaultExportFileBuilder{}
	return builder
}

// 文件名
//
// 示例值：
func (builder *VaultExportFileBuilder) Name(name string) *VaultExportFileBuilder {
	builder.name = name
	builder.nameFlag = true
	return builder
}

// 文件大小
//
// 示例值：
func (builder *VaultExportFileBuilder) Size(size string) *VaultExportFileBuilder {
	builder.size = size
	builder.sizeFlag = true
	return builder
}

// 文件tos uri
//
// 示例值：
func (builder *VaultExportFileBuilder) Url(url string) *VaultExportFileBuilder {
	builder.url = url
	builder.urlFlag = true
	return builder
}

// 文件下载的链接(临时链接，数分钟后失效)
//
// 示例值：
func (builder *VaultExportFileBuilder) DownloadUrl(downloadUrl string) *VaultExportFileBuilder {
	builder.downloadUrl = downloadUrl
	builder.downloadUrlFlag = true
	return builder
}

func (builder *VaultExportFileBuilder) Build() *VaultExportFile {
	req := &VaultExportFile{}
	if builder.nameFlag {
		req.Name = &builder.name

	}
	if builder.sizeFlag {
		req.Size = &builder.size

	}
	if builder.urlFlag {
		req.Url = &builder.url

	}
	if builder.downloadUrlFlag {
		req.DownloadUrl = &builder.downloadUrl

	}
	return req
}

type VaultTask struct {
	TaskId *string `json:"task_id,omitempty"` // 任务id

	Name *string `json:"name,omitempty"` // 任务名

	Size *string `json:"size,omitempty"` // 任务文件总大小

	ValidDays *int `json:"valid_days,omitempty"` // 任务有效天数

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

	ExtractKey *string `json:"extract_key,omitempty"` // 文件包解压密码

	Creator *SimpleUser `json:"creator,omitempty"` // 任务创建者

	Files []*VaultExportFile `json:"files,omitempty"` // 导出任务文件列表

	Status *string `json:"status,omitempty"` // 导出任务状态信息
}

type VaultTaskBuilder struct {
	taskId     string // 任务id
	taskIdFlag bool

	name     string // 任务名
	nameFlag bool

	size     string // 任务文件总大小
	sizeFlag bool

	validDays     int // 任务有效天数
	validDaysFlag bool

	createTime     string // 任务创建时间戳
	createTimeFlag bool

	extractKey     string // 文件包解压密码
	extractKeyFlag bool

	creator     *SimpleUser // 任务创建者
	creatorFlag bool

	files     []*VaultExportFile // 导出任务文件列表
	filesFlag bool

	status     string // 导出任务状态信息
	statusFlag bool
}

func NewVaultTaskBuilder() *VaultTaskBuilder {
	builder := &VaultTaskBuilder{}
	return builder
}

// 任务id
//
// 示例值：123
func (builder *VaultTaskBuilder) TaskId(taskId string) *VaultTaskBuilder {
	builder.taskId = taskId
	builder.taskIdFlag = true
	return builder
}

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

// 任务文件总大小
//
// 示例值：10
func (builder *VaultTaskBuilder) Size(size string) *VaultTaskBuilder {
	builder.size = size
	builder.sizeFlag = true
	return builder
}

// 任务有效天数
//
// 示例值：1
func (builder *VaultTaskBuilder) ValidDays(validDays int) *VaultTaskBuilder {
	builder.validDays = validDays
	builder.validDaysFlag = true
	return builder
}

// 任务创建时间戳
//
// 示例值：2025
func (builder *VaultTaskBuilder) CreateTime(createTime string) *VaultTaskBuilder {
	builder.createTime = createTime
	builder.createTimeFlag = true
	return builder
}

// 文件包解压密码
//
// 示例值：123
func (builder *VaultTaskBuilder) ExtractKey(extractKey string) *VaultTaskBuilder {
	builder.extractKey = extractKey
	builder.extractKeyFlag = true
	return builder
}

// 任务创建者
//
// 示例值：
func (builder *VaultTaskBuilder) Creator(creator *SimpleUser) *VaultTaskBuilder {
	builder.creator = creator
	builder.creatorFlag = true
	return builder
}

// 导出任务文件列表
//
// 示例值：
func (builder *VaultTaskBuilder) Files(files []*VaultExportFile) *VaultTaskBuilder {
	builder.files = files
	builder.filesFlag = true
	return builder
}

// 导出任务状态信息
//
// 示例值：stop
func (builder *VaultTaskBuilder) Status(status string) *VaultTaskBuilder {
	builder.status = status
	builder.statusFlag = true
	return builder
}

func (builder *VaultTaskBuilder) Build() *VaultTask {
	req := &VaultTask{}
	if builder.taskIdFlag {
		req.TaskId = &builder.taskId

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

	}
	if builder.sizeFlag {
		req.Size = &builder.size

	}
	if builder.validDaysFlag {
		req.ValidDays = &builder.validDays

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

	}
	if builder.extractKeyFlag {
		req.ExtractKey = &builder.extractKey

	}
	if builder.creatorFlag {
		req.Creator = builder.creator
	}
	if builder.filesFlag {
		req.Files = builder.files
	}
	if builder.statusFlag {
		req.Status = &builder.status

	}
	return req
}

type ListDataOpenapiLogReqBuilder struct {
	apiReq                *larkcore.ApiReq
	listOpenapiLogRequest *ListOpenapiLogRequest
}

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

//
func (builder *ListDataOpenapiLogReqBuilder) ListOpenapiLogRequest(listOpenapiLogRequest *ListOpenapiLogRequest) *ListDataOpenapiLogReqBuilder {
	builder.listOpenapiLogRequest = listOpenapiLogRequest
	return builder
}

func (builder *ListDataOpenapiLogReqBuilder) Build() *ListDataOpenapiLogReq {
	req := &ListDataOpenapiLogReq{}
	req.apiReq = &larkcore.ApiReq{}
	req.apiReq.Body = builder.listOpenapiLogRequest
	return req
}

type ListDataOpenapiLogReq struct {
	apiReq                *larkcore.ApiReq
	ListOpenapiLogRequest *ListOpenapiLogRequest `body:""`
}

type ListDataOpenapiLogRespData struct {
	Items []*OpenapiLog `json:"items,omitempty"` // openapi日志列表

	PageToken *string `json:"page_token,omitempty"` // 分页标记

	HasMore *bool `json:"has_more,omitempty"` // 是否有更多数据
}

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

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