// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package v20190722

import (
    tcerr "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/errors"
    tchttp "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/http"
    "github.com/tencentcloud/tencentcloud-sdk-go-intl-en/tencentcloud/common/json"
)

type AbnormalEvent struct {
	// Exception event ID. view the specific value in the appendix: abnormal experience ID [mapping table](https://trtc.io/document/37906)
	AbnormalEventId *uint64 `json:"AbnormalEventId,omitnil,omitempty" name:"AbnormalEventId"`

	// Remote user ID,"": indicates the exception event is not user-generated.
	PeerId *string `json:"PeerId,omitnil,omitempty" name:"PeerId"`
}

type AbnormalExperience struct {
	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The abnormal experience ID.
	ExperienceId *uint64 `json:"ExperienceId,omitnil,omitempty" name:"ExperienceId"`

	// The room ID (string).
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The possible error events.
	AbnormalEventList []*AbnormalEvent `json:"AbnormalEventList,omitnil,omitempty" name:"AbnormalEventList"`

	// The report time.
	EventTime *uint64 `json:"EventTime,omitnil,omitempty" name:"EventTime"`
}

type AgentConfig struct {
	// The robot's UserId is used to enter a room and initiate a task. note that this UserId cannot be duplicated with the host or audience [UserId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#UserId) in the current room. if multiple tasks are initiated in a room, the robot's UserId cannot be mutually duplicated. otherwise, the previous task will be interrupted. ensure the robot's UserId is unique in the room.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Signature verification corresponding to the chatbot's UserId, namely, the UserId and UserSig serve as the login password for the chatbot to enter the room. for specific calculation methods, see TRTC solution for calculating.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// UserId for robot stream pulling. after fill, the robot performs stream pulling and processes in real time.
	TargetUserId *string `json:"TargetUserId,omitnil,omitempty" name:"TargetUserId"`

	// Exceeding MaxIdleTime in the room with no streaming automatically shuts down the backend task. default value is 60s.
	MaxIdleTime *uint64 `json:"MaxIdleTime,omitnil,omitempty" name:"MaxIdleTime"`

	// Robot'S greeting.
	WelcomeMessage *string `json:"WelcomeMessage,omitnil,omitempty" name:"WelcomeMessage"`

	// Intelligent interruption mode, defaults to 0. 0 means server-side automatic interruption. 1 means the server does not interrupt, and the client sends an interruption signal to perform interruption.
	InterruptMode *uint64 `json:"InterruptMode,omitnil,omitempty" name:"InterruptMode"`

	// Used when InterruptMode is 0, in milliseconds, defaults to 500ms. indicates the server will interrupt when it detects continuous voice for InterruptSpeechDuration milliseconds.
	InterruptSpeechDuration *uint64 `json:"InterruptSpeechDuration,omitnil,omitempty" name:"InterruptSpeechDuration"`

	// Controls the trigger mode for a new dialogue. default is 0.
	// -0 means a new dialogue is automatically triggered when the server detects a complete sentence through automatic speech recognition.
	// -1 indicates the client determines whether to manually send a chat signaling trigger for a new dialogue upon receiving the caption message.
	TurnDetectionMode *uint64 `json:"TurnDetectionMode,omitnil,omitempty" name:"TurnDetectionMode"`

	// Whether to filter out sentences where the user only says one word. true indicates filtering, false indicates no filtering. default value is true.
	FilterOneWord *bool `json:"FilterOneWord,omitnil,omitempty" name:"FilterOneWord"`

	// Welcome message priority. valid values: 0 (default), 1 (high priority). high priority messages cannot be interrupted.
	WelcomeMessagePriority *uint64 `json:"WelcomeMessagePriority,omitnil,omitempty" name:"WelcomeMessagePriority"`

	// For filtering LLM return content, do not play the content in brackets.
	// Chinese bracket ().
	// 2: english parentheses.
	// 3: chinese square brackets [].
	// 4: english square brackets [].
	// 5: english curly braces {}.
	// Empty by default, means no filtering.
	FilterBracketsContent *uint64 `json:"FilterBracketsContent,omitnil,omitempty" name:"FilterBracketsContent"`

	// Ambient sound settings.
	AmbientSound *AmbientSound `json:"AmbientSound,omitnil,omitempty" name:"AmbientSound"`

	// Voiceprint configuration.
	VoicePrint *VoicePrint `json:"VoicePrint,omitnil,omitempty" name:"VoicePrint"`

	// Semantic sentence segmentation detection.
	TurnDetection *TurnDetection `json:"TurnDetection,omitnil,omitempty" name:"TurnDetection"`

	// Robot subtitle display mode.
	// -0 means display as soon as possible without synchronizing with audio playback. at this point, subtitles are fully delivered, and subsequent subtitles will include previous ones.
	// -1 indicates sentence-level real-time display, which synchronizes with audio playback. only when the current sentence's corresponding audio playback is complete will the next subtitle be delivered. at this point, subtitles are delivered incrementally, and the terminal needs to concatenate the leading and trailing subtitles to form a complete subtitle.
	SubtitleMode *uint64 `json:"SubtitleMode,omitnil,omitempty" name:"SubtitleMode"`

	// Interruption word list. during AI speaking, only speak words in the list to interrupt AI speaking.
	// Note: interrupt words avoid triggering AI reply.
	InterruptWordList []*string `json:"InterruptWordList,omitnil,omitempty" name:"InterruptWordList"`
}

type AgentParams struct {
	// The [user ID](https://intl.cloud.tencent.com/document/product/647/37714) of the relaying robot in the TRTC room, which cannot be the same as a user ID already in use. We recommend you include the room ID in this user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The signature (similar to a login password) required for the relaying robot to enter the room. For information on how to calculate the signature, see [What is UserSig?](https://intl.cloud.tencent.com/document/product/647/38104). |
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// The timeout period (seconds) for relaying to stop automatically after all the users whose streams are mixed leave the room. The value cannot be smaller than 5 or larger than 86400 (24 hours). Default value: 30.
	MaxIdleTime *uint64 `json:"MaxIdleTime,omitnil,omitempty" name:"MaxIdleTime"`
}

type AlignmentItem struct {

	TimeBeginMs *uint64 `json:"TimeBeginMs,omitnil,omitempty" name:"TimeBeginMs"`


	TimeEndMs *uint64 `json:"TimeEndMs,omitnil,omitempty" name:"TimeEndMs"`


	TextBegin *uint64 `json:"TextBegin,omitnil,omitempty" name:"TextBegin"`


	TextEnd *uint64 `json:"TextEnd,omitnil,omitempty" name:"TextEnd"`
}

type AmbientSound struct {
	// Scenario selection.
	Scene *string `json:"Scene,omitnil,omitempty" name:"Scene"`

	// Control the volume of ambient sound. value ranges from [0,2]. the lower the value, the softer the ambient sound; the higher the value, the louder the ambient sound. if not set, use the default value 1.
	Volume *float64 `json:"Volume,omitnil,omitempty" name:"Volume"`
}

type AsrParam struct {
	// The model type used for the transcription service. Example: <code>"zh"</code>.
	// 
	// Supported languages for speech-to-text:
	// 
	// - <code>"zh"</code>: Chinese (Simplified) - Powered by the latest 16k large model engine. Supports Mandarin, English, multiple Chinese regional accents, and code-switching between Chinese and English.
	// - <code>"zh-TW"</code>: Chinese (Traditional)
	// - <code>"en"</code>: English
	// - <code>"vi"</code>: Vietnamese
	// - <code>"ja"</code>: Japanese
	// - <code>"ko"</code>: Korean
	// - <code>"id"</code>: Indonesian
	// - <code>"th"</code>: Thai
	// - <code>"pt"</code>: Portuguese
	// - <code>"tr"</code>: Turkish
	// - <code>"ar"</code>: Arabic
	// - <code>"es"</code>: Spanish
	// - <code>"hi"</code>: Hindi
	// - <code>"fr"</code>: French
	// - <code>"ms"</code>: Malay
	// - <code>"fil"</code>: Filipino
	// - <code>"de"</code>: German
	// - <code>"it"</code>: Italian
	// - <code>"ru"</code>: Russian
	// - <code>"sv"</code>: Swedish
	// - <code>"da"</code>: Danish
	// - <code>"no"</code>: Norwegian
	// 
	// > **Note:** If the language you need is not listed, please contact our support team.
	Lang *string `json:"Lang,omitnil,omitempty" name:"Lang"`

	// The time for speech recognition vad ranges (ms) from 240 to 2000, with a default of 1000. A smaller value enables faster sentence segmentation in speech recognition.Example value: 1000.
	VadSilenceTime *uint64 `json:"VadSilenceTime,omitnil,omitempty" name:"VadSilenceTime"`

	// Temporary hotword list: This parameter is used for improving recognition accuracy.
	// 
	// - Hotword limit: "hotword|weight". Each hotword contains no more than 30 characters (10 Chinese characters max). Weight ranges from 1 to 11 or 100, for example: "Tencent Cloud|5" or "ASR|11".
	// - Restrictions for the temporary term list: multiple terms separated by commas, supports up to 128 terms, for example: "Tencent Cloud|10,speech recognition|5,ASR|11".
	// 
	// > Note:
	// - When the hotword weight is set to 11, the current hotword will be upgraded to a super term. It is advisable to only set important and must-effective hotwords to 11. Setting too many hotwords with weight 11 will affect overall accuracy.
	// - When a hotword weight is set to 100, the hotword enhancement feature forces an exact match replacement: any recognized word that is a homophone of the configured hotword will be replaced with the hotword in the transcription output. 
	// - For example, if the hotword Lyft|100 is configured, the word lift, which is phonetically identical, will always be transcribed as Lyft. 
	// - Use this feature with caution. Only assign a weight of 100 to hotwords that are business-critical and must always appear verbatim in the output. Overuse of weight 100 hotwords may degrade overall transcription accuracy.
	// - Hot words cannot contain spaces, for example: ASR Tencent Cloud
	// - Example value: voice assistant|10
	HotWordList *string `json:"HotWordList,omitnil,omitempty" name:"HotWordList"`

	// Fuzzy language detection is an advanced function, which is billed at the Advanced tier rate by default. Only Advanced tier languages are supported, excluding zh-dialect and zh-yue. Note: A maximum of 4 languages can be specified.
	AlternativeLanguage []*string `json:"AlternativeLanguage,omitnil,omitempty" name:"AlternativeLanguage"`

	// vad far-field voice suppression capacity (does not impact asr recognition accuracy), range [0, 3], default is 0. Recommended setting is 2 for better far-field voice suppression.
	VadLevel *uint64 `json:"VadLevel,omitnil,omitempty" name:"VadLevel"`
}

type AudioEncode struct {
	// The audio sample rate (Hz). Valid values: 48000, 44100, 32000, 24000, 16000, 8000.
	SampleRate *uint64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"`

	// The number of sound channels. Valid values: 1 (mono), 2 (dual).
	Channel *uint64 `json:"Channel,omitnil,omitempty" name:"Channel"`

	// The audio bitrate (Kbps). Value range: 8-500.
	BitRate *uint64 `json:"BitRate,omitnil,omitempty" name:"BitRate"`

	// The audio codec. Valid values: 0 (LC-AAC), 1 (HE-AAC), 2 (HE-AACv2). The default value is 0. If this parameter is set to 2, `Channel` must be 2. If it is set to 1 or 2, `SampleRate` can only be 48000, 44100, 32000, 24000, or 16000.
	Codec *uint64 `json:"Codec,omitnil,omitempty" name:"Codec"`
}

type AudioEncodeParams struct {
	// Audio Sample rate, Value range [48000, 44100], unit is Hz.
	SampleRate *uint64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"`

	// Audio Channel number, Value range [1,2], 1 means Audio is Mono-channel, 2 means Audio is Dual-channel.
	Channel *uint64 `json:"Channel,omitnil,omitempty" name:"Channel"`

	// Audio Bitrate, Value range [8,500], unit is kbps.
	BitRate *uint64 `json:"BitRate,omitnil,omitempty" name:"BitRate"`
}

type AudioFormat struct {
	// Generated audio format.
	// 
	// -TextToSpeechSSE streaming API.
	// 
	// Supports pcm. default: pcm.
	// 
	// -TextToSpeech non-streaming API.
	// 
	// Supports pcm, wav, mp3. default: pcm.
	Format *string `json:"Format,omitnil,omitempty" name:"Format"`

	// Generated audio sample rate. default 24000.
	// Selectable.
	// - 16000
	// - 24000 
	SampleRate *uint64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"`

	// MP3 bitrate (kbps), only applicable to mp3 format. can choose: `64`, `128`, `192`, `256`. default: `128`.
	Bitrate *uint64 `json:"Bitrate,omitnil,omitempty" name:"Bitrate"`
}

type AudioParams struct {
	// The audio sample rate.
	// 1: 48000 Hz (default)
	// 2: 44100 Hz
	// 3: 16000 Hz
	SampleRate *uint64 `json:"SampleRate,omitnil,omitempty" name:"SampleRate"`

	// The number of sound channels.
	// 1: Mono-channel
	// 2: Dual-channel (default)
	Channel *uint64 `json:"Channel,omitnil,omitempty" name:"Channel"`

	// The audio bitrate (bps). Value range: [32000, 128000]. Default: 64000.
	BitRate *uint64 `json:"BitRate,omitnil,omitempty" name:"BitRate"`
}

type CloudModerationStorage struct {
	// Information about Tencent COS and third-party cloud storage accounts.
	// 0: Tencent COS.
	// 1: AWS S3.
	// 2: Alibaba Cloud OSS.
	// Example value: 0.
	Vendor *uint64 `json:"Vendor,omitnil,omitempty" name:"Vendor"`

	// [Region information](https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1#.E5.9C.B0.E5.9F.9F) of Tencent COS.
	// Example value: cn-shanghai-1.
	// 
	// [Region information](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions) of AWS S3.
	// Example value: ap-southeast-3.	
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// Cloud bucket name.
	Bucket *string `json:"Bucket,omitnil,omitempty" name:"Bucket"`

	// access_key account information of the cloud storage.
	// To store files to Tencent COS, visit https://console.cloud.tencent.com/cam/capi to view or create the SecretId value corresponding to the key fields in the link.
	// Example value: test-accesskey.
	AccessKey *string `json:"AccessKey,omitnil,omitempty" name:"AccessKey"`

	// secret_key account information of cloud storage.
	// To store files to Tencent COS, visit https://console.cloud.tencent.com/cam/capi to view or create the SecretKey value corresponding to the key fields in the link.
	// Example value: test-secretkey.
	SecretKey *string `json:"SecretKey,omitnil,omitempty" name:"SecretKey"`

	// Specified location of the cloud bucket, which consists of arrays of strings. Value range for the strings is lowercase letters (a-z), uppercase letters (A-Z), digits (0-9), and special characters (_-). For example, under the feature of ["prefix1", "prefix2"], the audio slicing file (xxx.mp3) is stored as prefix1/prefix2/{taskId}/{userId}/audios/{sdkappid}_{roomId}_{userid}_{UTC time}.ogg, while the video frame is stored as prefix1/prefix2/{taskId}/{userId}/images/{sdkappid}_{roomId}_{userid}_{UTC time}.png.
	FileNamePrefix []*string `json:"FileNamePrefix,omitnil,omitempty" name:"FileNamePrefix"`
}

type CloudSliceStorage struct {
	// Information about Tencent COS and third-party cloud storage accounts.
	// 0: Tencent COS.
	// 1: AWS S3.
	// 2: Alibaba Cloud OSS.
	// Example value: 0.
	Vendor *uint64 `json:"Vendor,omitnil,omitempty" name:"Vendor"`

	// [Region information](https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1#.E5.9C.B0.E5.9F.9F) of Tencent COS.
	// Example value: cn-shanghai-1.
	// [Region information](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions) of AWS S3.
	// Example value: ap-southeast-3.	
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// Cloud bucket name.
	Bucket *string `json:"Bucket,omitnil,omitempty" name:"Bucket"`

	// access_key account information of the cloud storage.
	// To store files to Tencent COS, visit https://console.cloud.tencent.com/cam/capi to view or create the SecretId value corresponding to the key fields in the link.
	// Example value: test-accesskey.
	AccessKey *string `json:"AccessKey,omitnil,omitempty" name:"AccessKey"`

	// secret_key account information of the cloud storage.
	// To store files to Tencent COS, visit https://console.cloud.tencent.com/cam/capi to view or create the SecretKey value corresponding to the key fields in the link.
	// Example value: test-secretkey.
	SecretKey *string `json:"SecretKey,omitnil,omitempty" name:"SecretKey"`

	// Specified location of the cloud bucket, which consists of an array of strings. Value range for the strings is lowercase letters (a-z), uppercase letters (A-Z), digits (0-9), and special characters (_-). For example, under the feature of ["prefix1", "prefix2"], the audio slicing file (xxx.mp3) is stored as prefix1/prefix2/{taskId}/{userId}/audios/{sdkappid}_{roomId}_{userid}_{UTC time}.ogg, while the video frame is stored as prefix1/prefix2/{taskId}/{userId}/images/{sdkappid}_{roomId}_{userid}_{UTC time}.png.
	FileNamePrefix []*string `json:"FileNamePrefix,omitnil,omitempty" name:"FileNamePrefix"`
}

type CloudStorage struct {
	// The cloud storage provider.
	// `0`: Tencent Cloud COS; `1`: AWS storage. Other vendors are not supported currently.
	Vendor *uint64 `json:"Vendor,omitnil,omitempty" name:"Vendor"`

	// [Region information](https://www.tencentcloud.com/document/product/436/6224?from_cn_redirect=1#.E5.9C.B0.E5.9F.9F) of tencent cloud object storage.
	// Example value: cn-shanghai-1.
	// 
	// [Region information](https://docs.AWS.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions) of AWS S3.
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// The storage bucket.
	Bucket *string `json:"Bucket,omitnil,omitempty" name:"Bucket"`

	// access_key account information of the cloud storage.
	// To store files to tencent cloud object storage (COS), visit https://console.cloud.tencent.com/cam/capi to view or create the SecretId value corresponding to the key fields in the link.
	AccessKey *string `json:"AccessKey,omitnil,omitempty" name:"AccessKey"`

	// secret_key account information of the cloud storage.
	// To store files to tencent cloud object storage (COS), visit https://console.cloud.tencent.com/cam/capi to view or create the SecretKey value corresponding to the key fields in the link.
	SecretKey *string `json:"SecretKey,omitnil,omitempty" name:"SecretKey"`

	// The specified position of the cloud storage bucket consists of an array of strings. valid values: az, az, 0-9, '_', and '-'. for example, the recording file xxx.m3u8 becomes prefix1/prefix2/TaskId/xxx.m3u8 under the function of ["prefix1", "prefix2"].
	FileNamePrefix []*string `json:"FileNamePrefix,omitnil,omitempty" name:"FileNamePrefix"`

	// If specified, the client uses this S3-compatible endpoint override instead of the default AWS S3 endpoint. This is useful for S3-compatible storage services such as Cloudflare R2. Example: "account_id.r2.cloudflarestorage.com"
	EndpointUrl *string `json:"EndpointUrl,omitnil,omitempty" name:"EndpointUrl"`
}

type CloudVod struct {
	// The Tencent Cloud VOD parameters.
	TencentVod *TencentVod `json:"TencentVod,omitnil,omitempty" name:"TencentVod"`
}

// Predefined struct for user
type ControlAIConversationRequestParams struct {
	// Task unique identifier.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Control command. currently supports the following commands: - ServerPushText: server sends text to the AI robot, and the AI robot will broadcast the text. - InvokeLLM: server sends text to the large model to trigger dialogue.
	Command *string `json:"Command,omitnil,omitempty" name:"Command"`

	// Server-Sent broadcast text Command. required when Command is ServerPushText.
	ServerPushText *ServerPushText `json:"ServerPushText,omitnil,omitempty" name:"ServerPushText"`

	// The server sends a Command to proactively request the large model. when Command is InvokeLLM, it sends the content request to the large model and adds X-Invoke-LLM="1" to the header.
	InvokeLLM *InvokeLLM `json:"InvokeLLM,omitnil,omitempty" name:"InvokeLLM"`
}

type ControlAIConversationRequest struct {
	*tchttp.BaseRequest
	
	// Task unique identifier.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Control command. currently supports the following commands: - ServerPushText: server sends text to the AI robot, and the AI robot will broadcast the text. - InvokeLLM: server sends text to the large model to trigger dialogue.
	Command *string `json:"Command,omitnil,omitempty" name:"Command"`

	// Server-Sent broadcast text Command. required when Command is ServerPushText.
	ServerPushText *ServerPushText `json:"ServerPushText,omitnil,omitempty" name:"ServerPushText"`

	// The server sends a Command to proactively request the large model. when Command is InvokeLLM, it sends the content request to the large model and adds X-Invoke-LLM="1" to the header.
	InvokeLLM *InvokeLLM `json:"InvokeLLM,omitnil,omitempty" name:"InvokeLLM"`
}

func (r *ControlAIConversationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ControlAIConversationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "Command")
	delete(f, "ServerPushText")
	delete(f, "InvokeLLM")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ControlAIConversationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ControlAIConversationResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ControlAIConversationResponse struct {
	*tchttp.BaseResponse
	Response *ControlAIConversationResponseParams `json:"Response"`
}

func (r *ControlAIConversationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ControlAIConversationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudModerationRequestParams struct {
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#sdkappid) of TRTC, which is the same as the SdkAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#roomid) of TRTC, which is the RoomId corresponding to the TRTC room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Chatbot's UserId, which is used to enter the room and initiate a moderation task. [*Note] This UserId should not be duplicated with the UserIds of the current anchors or audience members in the room. If multiple moderation tasks are initiated in one room, the chatbot's UserId should also be unique; otherwise, the previous moderation task is interrupted. It is recommended to include the room ID as part of the UserId, ensuring that the chatbot's UserId is unique in the room.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Signature verification corresponding to the chatbot's UserId, namely, the UserId and UserSig serve as the login password for the chatbot to enter the room. For specific calculation methods, see TRTC solution for calculating UserSig.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// Control parameters for cloud moderation.
	ModerationParams *ModerationParams `json:"ModerationParams,omitnil,omitempty" name:"ModerationParams"`

	// Parameters for uploading cloud moderation files to the cloud storage.
	ModerationStorageParams *ModerationStorageParams `json:"ModerationStorageParams,omitnil,omitempty" name:"ModerationStorageParams"`

	// Type of the TRTC room number. [*Note] It should be the same as the type of the RoomId corresponding to the recording room. 0: string type; 1: 32-bit integer type (default value). Example value: 1.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Validity period for calling the task ID, which starts upon successful initiation of the task and obtaining the task ID. After the timeout, APIs such as querying, updating, or stopping cannot be called, but the moderation task is not stopped. The unit of the parameter is hours, with a default value of 24 hours (1 day). The maximum value is 72 hours (3 days), while the minimum value is 6 hours. For example, if this parameter is not specified, the validity period for calling the querying, updating, and stopping slicing APIs is 24 hours upon the successful start of slicing.
	ResourceExpiredHour *uint64 `json:"ResourceExpiredHour,omitnil,omitempty" name:"ResourceExpiredHour"`
}

type CreateCloudModerationRequest struct {
	*tchttp.BaseRequest
	
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#sdkappid) of TRTC, which is the same as the SdkAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#roomid) of TRTC, which is the RoomId corresponding to the TRTC room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Chatbot's UserId, which is used to enter the room and initiate a moderation task. [*Note] This UserId should not be duplicated with the UserIds of the current anchors or audience members in the room. If multiple moderation tasks are initiated in one room, the chatbot's UserId should also be unique; otherwise, the previous moderation task is interrupted. It is recommended to include the room ID as part of the UserId, ensuring that the chatbot's UserId is unique in the room.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Signature verification corresponding to the chatbot's UserId, namely, the UserId and UserSig serve as the login password for the chatbot to enter the room. For specific calculation methods, see TRTC solution for calculating UserSig.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// Control parameters for cloud moderation.
	ModerationParams *ModerationParams `json:"ModerationParams,omitnil,omitempty" name:"ModerationParams"`

	// Parameters for uploading cloud moderation files to the cloud storage.
	ModerationStorageParams *ModerationStorageParams `json:"ModerationStorageParams,omitnil,omitempty" name:"ModerationStorageParams"`

	// Type of the TRTC room number. [*Note] It should be the same as the type of the RoomId corresponding to the recording room. 0: string type; 1: 32-bit integer type (default value). Example value: 1.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Validity period for calling the task ID, which starts upon successful initiation of the task and obtaining the task ID. After the timeout, APIs such as querying, updating, or stopping cannot be called, but the moderation task is not stopped. The unit of the parameter is hours, with a default value of 24 hours (1 day). The maximum value is 72 hours (3 days), while the minimum value is 6 hours. For example, if this parameter is not specified, the validity period for calling the querying, updating, and stopping slicing APIs is 24 hours upon the successful start of slicing.
	ResourceExpiredHour *uint64 `json:"ResourceExpiredHour,omitnil,omitempty" name:"ResourceExpiredHour"`
}

func (r *CreateCloudModerationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudModerationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "UserId")
	delete(f, "UserSig")
	delete(f, "ModerationParams")
	delete(f, "ModerationStorageParams")
	delete(f, "RoomIdType")
	delete(f, "ResourceExpiredHour")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCloudModerationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudModerationResponseParams struct {
	// Task ID assigned by the cloud moderation service. It is a unique identifier for the lifecycle of a moderation task, which loses its significance after the task is completed. The task ID needs to be retained by the business system as a parameter for future operations related to this task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateCloudModerationResponse struct {
	*tchttp.BaseResponse
	Response *CreateCloudModerationResponseParams `json:"Response"`
}

func (r *CreateCloudModerationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudModerationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudRecordingRequestParams struct {
	// The [SDKAppID](https://intl.cloud.tencent.com/document/product/647/37714) of the TRTC room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#RoomId) of TRTC, which is the RoomId corresponding to the TRTC room in the recording.
	// Note: the room id type defaults to integer. if the room id type is a string, specify it via RoomIdType.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The [user ID](https://www.tencentcloud.com/document/product/647/37714#userid) of the recording robot in the TRTC room, which cannot be identical to the user IDs of anchors in the room or other recording robots. To distinguish this user ID from others, we recommend you include the room ID in the user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The signature (similar to a login password) required for the recording robot to enter the room. Each user ID corresponds to a signature. For information on how to calculate the signature, see [What is UserSig?](https://intl.cloud.tencent.com/document/product/647/38104).
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// The on-cloud recording parameters.
	RecordParams *RecordParams `json:"RecordParams,omitnil,omitempty" name:"RecordParams"`

	// The storage information of the recording file. Currently, you can save recording files to Tencent Cloud VOD or COS.
	StorageParams *StorageParams `json:"StorageParams,omitnil,omitempty" name:"StorageParams"`

	// The type of the TRTC room ID, which must be the same as the ID type of the room whose streams are recorded.
	// 0: String
	// 1: 32-bit integer (default)
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// The stream mixing parameters, which are valid if the mixed-stream recording mode is used.
	MixTranscodeParams *MixTranscodeParams `json:"MixTranscodeParams,omitnil,omitempty" name:"MixTranscodeParams"`

	// The layout parameters, which are valid if the mixed-stream recording mode is used.
	MixLayoutParams *MixLayoutParams `json:"MixLayoutParams,omitnil,omitempty" name:"MixLayoutParams"`

	// The amount of time (in hours) during which API requests can be made after recording starts. Calculation starts when a recording task is started (when the recording task ID is returned). Once the period elapses, the query, modification, and stop recording APIs can no longer be called, but the recording task will continue. The default value is `72` (three days), and the maximum and minimum values allowed are `720` (30 days) and `6` respectively. If you do not set this parameter, the query, modification, and stop recording APIs can be called within 72 hours after recording starts.
	ResourceExpiredHour *uint64 `json:"ResourceExpiredHour,omitnil,omitempty" name:"ResourceExpiredHour"`

	// The permission ticket for a TRTC room. This parameter is required if advanced permission control is enabled in the console, in which case the TRTC backend will verify users' [PrivateMapKey](https://intl.cloud.tencent.com/document/product/647/32240?from_cn_redirect=1), which include an encrypted room ID and permission bit list. A user providing only `UserSig` and not `PrivateMapKey` will be unable to enter the room.
	PrivateMapKey *string `json:"PrivateMapKey,omitnil,omitempty" name:"PrivateMapKey"`
}

type CreateCloudRecordingRequest struct {
	*tchttp.BaseRequest
	
	// The [SDKAppID](https://intl.cloud.tencent.com/document/product/647/37714) of the TRTC room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#RoomId) of TRTC, which is the RoomId corresponding to the TRTC room in the recording.
	// Note: the room id type defaults to integer. if the room id type is a string, specify it via RoomIdType.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The [user ID](https://www.tencentcloud.com/document/product/647/37714#userid) of the recording robot in the TRTC room, which cannot be identical to the user IDs of anchors in the room or other recording robots. To distinguish this user ID from others, we recommend you include the room ID in the user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The signature (similar to a login password) required for the recording robot to enter the room. Each user ID corresponds to a signature. For information on how to calculate the signature, see [What is UserSig?](https://intl.cloud.tencent.com/document/product/647/38104).
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// The on-cloud recording parameters.
	RecordParams *RecordParams `json:"RecordParams,omitnil,omitempty" name:"RecordParams"`

	// The storage information of the recording file. Currently, you can save recording files to Tencent Cloud VOD or COS.
	StorageParams *StorageParams `json:"StorageParams,omitnil,omitempty" name:"StorageParams"`

	// The type of the TRTC room ID, which must be the same as the ID type of the room whose streams are recorded.
	// 0: String
	// 1: 32-bit integer (default)
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// The stream mixing parameters, which are valid if the mixed-stream recording mode is used.
	MixTranscodeParams *MixTranscodeParams `json:"MixTranscodeParams,omitnil,omitempty" name:"MixTranscodeParams"`

	// The layout parameters, which are valid if the mixed-stream recording mode is used.
	MixLayoutParams *MixLayoutParams `json:"MixLayoutParams,omitnil,omitempty" name:"MixLayoutParams"`

	// The amount of time (in hours) during which API requests can be made after recording starts. Calculation starts when a recording task is started (when the recording task ID is returned). Once the period elapses, the query, modification, and stop recording APIs can no longer be called, but the recording task will continue. The default value is `72` (three days), and the maximum and minimum values allowed are `720` (30 days) and `6` respectively. If you do not set this parameter, the query, modification, and stop recording APIs can be called within 72 hours after recording starts.
	ResourceExpiredHour *uint64 `json:"ResourceExpiredHour,omitnil,omitempty" name:"ResourceExpiredHour"`

	// The permission ticket for a TRTC room. This parameter is required if advanced permission control is enabled in the console, in which case the TRTC backend will verify users' [PrivateMapKey](https://intl.cloud.tencent.com/document/product/647/32240?from_cn_redirect=1), which include an encrypted room ID and permission bit list. A user providing only `UserSig` and not `PrivateMapKey` will be unable to enter the room.
	PrivateMapKey *string `json:"PrivateMapKey,omitnil,omitempty" name:"PrivateMapKey"`
}

func (r *CreateCloudRecordingRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudRecordingRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "UserId")
	delete(f, "UserSig")
	delete(f, "RecordParams")
	delete(f, "StorageParams")
	delete(f, "RoomIdType")
	delete(f, "MixTranscodeParams")
	delete(f, "MixLayoutParams")
	delete(f, "ResourceExpiredHour")
	delete(f, "PrivateMapKey")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCloudRecordingRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudRecordingResponseParams struct {
	// The task ID assigned by the recording service, which uniquely identifies a recording process and becomes invalid after a recording task ends. After a recording task starts, if you want to perform other actions on the task, you need to specify the task ID when making API requests.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateCloudRecordingResponse struct {
	*tchttp.BaseResponse
	Response *CreateCloudRecordingResponseParams `json:"Response"`
}

func (r *CreateCloudRecordingResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudRecordingResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudSliceTaskRequestParams struct {
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#sdkappid) of TRTC, which is the same as the SdkAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#roomid) of TRTC, which is the RoomId corresponding to the TRTC room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Chatbot's UserId, which is used to enter the room and initiate a slicing task. [*note] This UserId should not be duplicated with the UserIds of the current anchors or audience members in the room. If multiple slicing tasks are initiated in one room, the chatbot's UserId should also be unique; otherwise, the previous slicing task is interrupted. It is recommended to include the room ID as part of the UserId, ensuring that the chatbot's UserId is unique in the room.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Signature verification corresponding to the chatbot's UserId, namely, the UserId and UserSig serve as the login password for the chatbot to enter the room. For specific calculation methods, see TRTC solution for calculating UserSig.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// Control parameters for cloud slicing.
	SliceParams *SliceParams `json:"SliceParams,omitnil,omitempty" name:"SliceParams"`

	// Parameters for uploading cloud slicing files to the cloud storage.
	SliceStorageParams *SliceStorageParams `json:"SliceStorageParams,omitnil,omitempty" name:"SliceStorageParams"`

	// Type of the TRTC room number. [*Note] It should be the same as the type of the RoomId corresponding to the recording room. 0: string type; 1: 32-bit integer type (default value). Example value: 1.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Validity period for calling the API, which starts upon successful initiation of recording and obtaining the task ID. After the timeout, APIs such as querying, updating, or stopping cannot be called, but the recording task is not stopped. The unit of the parameter is hours, with a default value of 72 hours (3 days). The maximum value is 720 hours (30 days), while the minimum value is 6 hours. For example, if this parameter is not specified, the validity period for calling the querying, updating, and stopping recording APIs is 72 hours upon the successful start of recording. Example value: 24.
	ResourceExpiredHour *uint64 `json:"ResourceExpiredHour,omitnil,omitempty" name:"ResourceExpiredHour"`

	// TRTC room permission encryption string, which is required only when advanced permission control is enabled in the TRTC console. After enabling, the TRTC backend service system verifies a "permission ticket" called [PrivateMapKey], which contains an encrypted RoomId and an encrypted "permission bit list". Since the PrivateMapKey includes the RoomId, the specified room cannot be entered if only UserSig is provided and PrivateMapKey is not provided. Example value: eJw1jcEKgkAURX9FZlvY****fL9rfNX4_.
	PrivateMapKey *string `json:"PrivateMapKey,omitnil,omitempty" name:"PrivateMapKey"`
}

type CreateCloudSliceTaskRequest struct {
	*tchttp.BaseRequest
	
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#sdkappid) of TRTC, which is the same as the SdkAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#roomid) of TRTC, which is the RoomId corresponding to the TRTC room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Chatbot's UserId, which is used to enter the room and initiate a slicing task. [*note] This UserId should not be duplicated with the UserIds of the current anchors or audience members in the room. If multiple slicing tasks are initiated in one room, the chatbot's UserId should also be unique; otherwise, the previous slicing task is interrupted. It is recommended to include the room ID as part of the UserId, ensuring that the chatbot's UserId is unique in the room.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Signature verification corresponding to the chatbot's UserId, namely, the UserId and UserSig serve as the login password for the chatbot to enter the room. For specific calculation methods, see TRTC solution for calculating UserSig.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// Control parameters for cloud slicing.
	SliceParams *SliceParams `json:"SliceParams,omitnil,omitempty" name:"SliceParams"`

	// Parameters for uploading cloud slicing files to the cloud storage.
	SliceStorageParams *SliceStorageParams `json:"SliceStorageParams,omitnil,omitempty" name:"SliceStorageParams"`

	// Type of the TRTC room number. [*Note] It should be the same as the type of the RoomId corresponding to the recording room. 0: string type; 1: 32-bit integer type (default value). Example value: 1.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Validity period for calling the API, which starts upon successful initiation of recording and obtaining the task ID. After the timeout, APIs such as querying, updating, or stopping cannot be called, but the recording task is not stopped. The unit of the parameter is hours, with a default value of 72 hours (3 days). The maximum value is 720 hours (30 days), while the minimum value is 6 hours. For example, if this parameter is not specified, the validity period for calling the querying, updating, and stopping recording APIs is 72 hours upon the successful start of recording. Example value: 24.
	ResourceExpiredHour *uint64 `json:"ResourceExpiredHour,omitnil,omitempty" name:"ResourceExpiredHour"`

	// TRTC room permission encryption string, which is required only when advanced permission control is enabled in the TRTC console. After enabling, the TRTC backend service system verifies a "permission ticket" called [PrivateMapKey], which contains an encrypted RoomId and an encrypted "permission bit list". Since the PrivateMapKey includes the RoomId, the specified room cannot be entered if only UserSig is provided and PrivateMapKey is not provided. Example value: eJw1jcEKgkAURX9FZlvY****fL9rfNX4_.
	PrivateMapKey *string `json:"PrivateMapKey,omitnil,omitempty" name:"PrivateMapKey"`
}

func (r *CreateCloudSliceTaskRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudSliceTaskRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "UserId")
	delete(f, "UserSig")
	delete(f, "SliceParams")
	delete(f, "SliceStorageParams")
	delete(f, "RoomIdType")
	delete(f, "ResourceExpiredHour")
	delete(f, "PrivateMapKey")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCloudSliceTaskRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudSliceTaskResponseParams struct {
	// Task ID assigned by the cloud slicing service. It is a unique identifier for the lifecycle of a slicing task, which loses its significance after the task is completed. The task ID needs to be retained by the business system as a parameter for future operations related to this task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateCloudSliceTaskResponse struct {
	*tchttp.BaseResponse
	Response *CreateCloudSliceTaskResponseParams `json:"Response"`
}

func (r *CreateCloudSliceTaskResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudSliceTaskResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudTranscriptionRequestParams struct {
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#sdkappid) of TRTC, which is the same as the SdkAppId corresponding to the transcribed room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#roomid) of TRTC, which is the RoomId corresponding to the transcribed TRTC room. Note: The room ID type defaults to integer. If the room ID type is string, specify it via RoomIdType.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Room information RoomType must be the same as the RoomId type of the corresponding transcribed room. 0 indicates an integer type room ID, and 1 indicates a string Room Number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Parameters for transcribe service to join TRTC room.
	TranscriptionParam *TranscriptionParam `json:"TranscriptionParam,omitnil,omitempty" name:"TranscriptionParam"`

	// Parameters used by the ASR transcribe service.
	AsrParam *AsrParam `json:"AsrParam,omitnil,omitempty" name:"AsrParam"`

	// Translation parameters used for transcription.
	TranslationParam *TranslationParam `json:"TranslationParam,omitnil,omitempty" name:"TranslationParam"`
}

type CreateCloudTranscriptionRequest struct {
	*tchttp.BaseRequest
	
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#sdkappid) of TRTC, which is the same as the SdkAppId corresponding to the transcribed room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#roomid) of TRTC, which is the RoomId corresponding to the transcribed TRTC room. Note: The room ID type defaults to integer. If the room ID type is string, specify it via RoomIdType.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Room information RoomType must be the same as the RoomId type of the corresponding transcribed room. 0 indicates an integer type room ID, and 1 indicates a string Room Number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Parameters for transcribe service to join TRTC room.
	TranscriptionParam *TranscriptionParam `json:"TranscriptionParam,omitnil,omitempty" name:"TranscriptionParam"`

	// Parameters used by the ASR transcribe service.
	AsrParam *AsrParam `json:"AsrParam,omitnil,omitempty" name:"AsrParam"`

	// Translation parameters used for transcription.
	TranslationParam *TranslationParam `json:"TranslationParam,omitnil,omitempty" name:"TranslationParam"`
}

func (r *CreateCloudTranscriptionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudTranscriptionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "RoomIdType")
	delete(f, "TranscriptionParam")
	delete(f, "AsrParam")
	delete(f, "TranslationParam")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCloudTranscriptionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCloudTranscriptionResponseParams struct {
	// A unique identifier for the transcription task, generated by the Tencent Cloud server. The TaskID parameter is required for all subsequent query and stop requests.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type CreateCloudTranscriptionResponse struct {
	*tchttp.BaseResponse
	Response *CreateCloudTranscriptionResponseParams `json:"Response"`
}

func (r *CreateCloudTranscriptionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCloudTranscriptionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudModerationRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DeleteCloudModerationRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DeleteCloudModerationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudModerationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCloudModerationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudModerationResponseParams struct {
	// Unique ID of the moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteCloudModerationResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCloudModerationResponseParams `json:"Response"`
}

func (r *DeleteCloudModerationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudModerationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudRecordingRequestParams struct {
	// The `SDKAppID` of the room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the recording task, which is returned after recording starts successfully.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DeleteCloudRecordingRequest struct {
	*tchttp.BaseRequest
	
	// The `SDKAppID` of the room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the recording task, which is returned after recording starts successfully.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DeleteCloudRecordingRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudRecordingRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCloudRecordingRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudRecordingResponseParams struct {
	// The task ID assigned by the recording service, which uniquely identifies a recording process and becomes invalid after a recording task ends.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteCloudRecordingResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCloudRecordingResponseParams `json:"Response"`
}

func (r *DeleteCloudRecordingResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudRecordingResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudSliceTaskRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DeleteCloudSliceTaskRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DeleteCloudSliceTaskRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudSliceTaskRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCloudSliceTaskRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudSliceTaskResponseParams struct {
	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteCloudSliceTaskResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCloudSliceTaskResponseParams `json:"Response"`
}

func (r *DeleteCloudSliceTaskResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudSliceTaskResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudTranscriptionRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId of the room being transcribed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the task will be returned upon success.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DeleteCloudTranscriptionRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId of the room being transcribed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the task will be returned upon success.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DeleteCloudTranscriptionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudTranscriptionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCloudTranscriptionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCloudTranscriptionResponseParams struct {
	// Task ID of the service allocation for transcribing. The task ID is the unique identifier for a transcription lifecycle process and loses its meaning once the transcription is complete.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DeleteCloudTranscriptionResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCloudTranscriptionResponseParams `json:"Response"`
}

func (r *DeleteCloudTranscriptionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteCloudTranscriptionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAIConversationRequestParams struct {
	// TRTC's [SdkAppId](https://cloud.tencent.com/document/product/647/46351#sdkappid) is the same as the SdkAppId used by the room that starts the transcription task.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The SessionId filled in when starting the task. 
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`
}

type DescribeAIConversationRequest struct {
	*tchttp.BaseRequest
	
	// TRTC's [SdkAppId](https://cloud.tencent.com/document/product/647/46351#sdkappid) is the same as the SdkAppId used by the room that starts the transcription task.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The SessionId filled in when starting the task. 
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`
}

func (r *DescribeAIConversationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeAIConversationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	delete(f, "SessionId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeAIConversationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAIConversationResponseParams struct {
	// The time when the task starts.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Task status. There are 4 values: 1. Idle means the task has not started 2. Preparing means the task is being prepared 3. InProgress means the task is running 4. Stopped means the task has stopped and resources are being cleaned up
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The unique ID of the task, generated when the task is started
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The SessionId filled in when opening the conversation task.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeAIConversationResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAIConversationResponseParams `json:"Response"`
}

func (r *DescribeAIConversationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeAIConversationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAITranscriptionRequestParams struct {
	// Query the task status. If not in use, pass in an empty string. There are two query methods: 1. Fill in only TaskId. This method uses TaskId to query tasks. 2. TaskId is an empty string. Fill in SdkAppId and SessionId. This method does not require TaskId to query tasks.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// TRTC's SdkAppId is used together with SessionId.
	SdkAppId *int64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The SessionId passed in when starting the transcription task is used together with the SdkAppId.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`
}

type DescribeAITranscriptionRequest struct {
	*tchttp.BaseRequest
	
	// Query the task status. If not in use, pass in an empty string. There are two query methods: 1. Fill in only TaskId. This method uses TaskId to query tasks. 2. TaskId is an empty string. Fill in SdkAppId and SessionId. This method does not require TaskId to query tasks.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// TRTC's SdkAppId is used together with SessionId.
	SdkAppId *int64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The SessionId passed in when starting the transcription task is used together with the SdkAppId.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`
}

func (r *DescribeAITranscriptionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeAITranscriptionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "SdkAppId")
	delete(f, "SessionId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeAITranscriptionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAITranscriptionResponseParams struct {
	// The time when the task starts.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Transcription task status. There are 4 values: 1. Idle means the task has not started 2. Preparing means the task is being prepared 3. InProgress means the task is running 4. Stopped means the task has stopped and resources are being cleaned up
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Uniquely identifies a task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The SessionId filled in when starting the transcription task. If not filled in, nothing is returned.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeAITranscriptionResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAITranscriptionResponseParams `json:"Response"`
}

func (r *DescribeAITranscriptionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeAITranscriptionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCallDetailInfoRequestParams struct {
	// The unique ID of a call, whose format is `SdkAppId_CreateTime`, such as `1400xxxxxx_218695_1590065777`. `createTime` is the UNIX timestamp (seconds) when the room was created. Its value can be obtained using the [DescribeRoomInfo](https://intl.cloud.tencent.com/document/product/647/44050?from_cn_redirect=1) API.
	CommId *string `json:"CommId,omitnil,omitempty" name:"CommId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: If `DataType` is not null, the end time and start time cannot be more than one hour apart; if `DataType` is null, the end time and start time cannot be more than four hours apart.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The users to query. If you do not specify this, the data of six users will be returned.
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`

	// The metrics to query. If you do not specify this, only the user list will be returned. If you pass in `all`, all metrics will be returned.
	// `appCpu`: The CPU utilization of the application.
	// `sysCpu`: The CPU utilization of the system.
	// `aBit`: The upstream/downstream audio bitrate (bps).
	// `aBlock`: The audio stutter duration (ms).
	// `bigvBit`: The upstream/downstream video bitrate (bps).
	// `bigvCapFps`: The frame rate for capturing videos.
	// `bigvEncFps`: The frame rate for sending videos.
	// `bigvDecFps`: The rendering frame rate.
	// `bigvBlock`: The video stutter duration (ms).
	// `aLoss`: The upstream/downstream audio packet loss.
	// `bigvLoss`: The upstream/downstream video packet loss.
	// `bigvWidth`: The upstream/downstream resolution (width).
	// `bigvHeight`: The upstream/downstream resolution (height).
	DataType []*string `json:"DataType,omitnil,omitempty" name:"DataType"`

	// The page number. The default is 0.
	// Note: If `PageNumber` or `PageSize` is not specified, six records will be returned.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// The number of records per page. The default is `6`.
	// Value range: 1-100.
	// Note: If `DataType` is not null, the length of the array `UserIds` and the value of `PageSize` cannot exceed `6`.
	// If `DataType` is null, the length of the array `UserIds` and the value of `PageSize` cannot exceed `100`.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

type DescribeCallDetailInfoRequest struct {
	*tchttp.BaseRequest
	
	// The unique ID of a call, whose format is `SdkAppId_CreateTime`, such as `1400xxxxxx_218695_1590065777`. `createTime` is the UNIX timestamp (seconds) when the room was created. Its value can be obtained using the [DescribeRoomInfo](https://intl.cloud.tencent.com/document/product/647/44050?from_cn_redirect=1) API.
	CommId *string `json:"CommId,omitnil,omitempty" name:"CommId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: If `DataType` is not null, the end time and start time cannot be more than one hour apart; if `DataType` is null, the end time and start time cannot be more than four hours apart.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The users to query. If you do not specify this, the data of six users will be returned.
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`

	// The metrics to query. If you do not specify this, only the user list will be returned. If you pass in `all`, all metrics will be returned.
	// `appCpu`: The CPU utilization of the application.
	// `sysCpu`: The CPU utilization of the system.
	// `aBit`: The upstream/downstream audio bitrate (bps).
	// `aBlock`: The audio stutter duration (ms).
	// `bigvBit`: The upstream/downstream video bitrate (bps).
	// `bigvCapFps`: The frame rate for capturing videos.
	// `bigvEncFps`: The frame rate for sending videos.
	// `bigvDecFps`: The rendering frame rate.
	// `bigvBlock`: The video stutter duration (ms).
	// `aLoss`: The upstream/downstream audio packet loss.
	// `bigvLoss`: The upstream/downstream video packet loss.
	// `bigvWidth`: The upstream/downstream resolution (width).
	// `bigvHeight`: The upstream/downstream resolution (height).
	DataType []*string `json:"DataType,omitnil,omitempty" name:"DataType"`

	// The page number. The default is 0.
	// Note: If `PageNumber` or `PageSize` is not specified, six records will be returned.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// The number of records per page. The default is `6`.
	// Value range: 1-100.
	// Note: If `DataType` is not null, the length of the array `UserIds` and the value of `PageSize` cannot exceed `6`.
	// If `DataType` is null, the length of the array `UserIds` and the value of `PageSize` cannot exceed `100`.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

func (r *DescribeCallDetailInfoRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCallDetailInfoRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "SdkAppId")
	delete(f, "UserIds")
	delete(f, "DataType")
	delete(f, "PageNumber")
	delete(f, "PageSize")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCallDetailInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCallDetailInfoResponseParams struct {
	// The number of records returned.
	Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`

	// The user information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserList []*UserInformation `json:"UserList,omitnil,omitempty" name:"UserList"`

	// The call quality data.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Data []*QualityData `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCallDetailInfoResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCallDetailInfoResponseParams `json:"Response"`
}

func (r *DescribeCallDetailInfoResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCallDetailInfoResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudModerationRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the recording room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the cloud moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DescribeCloudModerationRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the recording room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the cloud moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DescribeCloudModerationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudModerationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCloudModerationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudModerationResponseParams struct {
	// Unique ID of the moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Information about the status of the cloud moderation task. Idle: indicates the current task is idle; InProgress: indicates the current task is in progress; Exited: indicates the current task is being exited.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Subscription blocklist and allowlist.
	SubscribeStreamUserIds *SubscribeModerationUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCloudModerationResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCloudModerationResponseParams `json:"Response"`
}

func (r *DescribeCloudModerationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudModerationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudRecordingRequestParams struct {
	// The `SDKAppID` of the room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the recording task, which is returned after recording starts successfully.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DescribeCloudRecordingRequest struct {
	*tchttp.BaseRequest
	
	// The `SDKAppID` of the room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the recording task, which is returned after recording starts successfully.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DescribeCloudRecordingRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudRecordingRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCloudRecordingRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudRecordingResponseParams struct {
	// The unique ID of the recording task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The status of the on-cloud recording task.
	// Idle: The task is idle.
	// InProgress: The task is in progress.
	// Exited: The task is being ended.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The information of the recording files.
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	StorageFileList []*StorageFile `json:"StorageFileList,omitnil,omitempty" name:"StorageFileList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCloudRecordingResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCloudRecordingResponseParams `json:"Response"`
}

func (r *DescribeCloudRecordingResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudRecordingResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudSliceTaskRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the recording room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DescribeCloudSliceTaskRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the recording room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DescribeCloudSliceTaskRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudSliceTaskRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCloudSliceTaskRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudSliceTaskResponseParams struct {
	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Information about the status of the cloud slicing task. Idle: indicates the current task is idle; InProgress: indicates the current task is in progress; Exited: indicates the current task is being exited.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCloudSliceTaskResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCloudSliceTaskResponseParams `json:"Response"`
}

func (r *DescribeCloudSliceTaskResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudSliceTaskResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudTranscriptionRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId of the room being transcribed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the transcription task will be returned upon successful startup.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DescribeCloudTranscriptionRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId of the room being transcribed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the transcription task will be returned upon successful startup.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DescribeCloudTranscriptionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudTranscriptionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCloudTranscriptionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCloudTranscriptionResponseParams struct {
	// Time of starting the transcription task.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Transcription task status. 
	// 
	// - Idle: Indicates the current transcription task is idle. 
	// - InProgress: Indicates the current transcription task is in progress. 
	// - Exited: Indicates the current transcription task is in the process of exiting.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Unique Id of the transcribe task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeCloudTranscriptionResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCloudTranscriptionResponseParams `json:"Response"`
}

func (r *DescribeCloudTranscriptionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCloudTranscriptionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMixTranscodingUsageRequestParams struct {
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

type DescribeMixTranscodingUsageRequest struct {
	*tchttp.BaseRequest
	
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

func (r *DescribeMixTranscodingUsageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMixTranscodingUsageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "SdkAppId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMixTranscodingUsageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMixTranscodingUsageResponseParams struct {
	// The usage type. Each element of this parameter corresponds to an element of `UsageValue` in the order they are listed.
	UsageKey []*string `json:"UsageKey,omitnil,omitempty" name:"UsageKey"`

	// The usage data in each time unit.
	UsageList []*TrtcUsage `json:"UsageList,omitnil,omitempty" name:"UsageList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeMixTranscodingUsageResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMixTranscodingUsageResponseParams `json:"Response"`
}

func (r *DescribeMixTranscodingUsageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMixTranscodingUsageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRecordingUsageRequestParams struct {
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Whether to query single-stream or mixed-stream recording. Valid values: `single`, `multi`.
	MixType *string `json:"MixType,omitnil,omitempty" name:"MixType"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

type DescribeRecordingUsageRequest struct {
	*tchttp.BaseRequest
	
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Whether to query single-stream or mixed-stream recording. Valid values: `single`, `multi`.
	MixType *string `json:"MixType,omitnil,omitempty" name:"MixType"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

func (r *DescribeRecordingUsageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRecordingUsageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "MixType")
	delete(f, "SdkAppId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRecordingUsageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRecordingUsageResponseParams struct {
	// The usage type. Each element of this parameter corresponds to an element of `UsageValue` in the order they are listed.
	UsageKey []*string `json:"UsageKey,omitnil,omitempty" name:"UsageKey"`

	// The usage data in each time unit.
	UsageList []*TrtcUsage `json:"UsageList,omitnil,omitempty" name:"UsageList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRecordingUsageResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRecordingUsageResponseParams `json:"Response"`
}

func (r *DescribeRecordingUsageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRecordingUsageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRelayUsageRequestParams struct {
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

type DescribeRelayUsageRequest struct {
	*tchttp.BaseRequest
	
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

func (r *DescribeRelayUsageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRelayUsageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "SdkAppId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRelayUsageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRelayUsageResponseParams struct {
	// The usage type. Each element of this parameter corresponds to an element of `UsageValue` in the order they are listed.
	UsageKey []*string `json:"UsageKey,omitnil,omitempty" name:"UsageKey"`

	// The usage data in each time unit.
	UsageList []*TrtcUsage `json:"UsageList,omitnil,omitempty" name:"UsageList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRelayUsageResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRelayUsageResponseParams `json:"Response"`
}

func (r *DescribeRelayUsageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRelayUsageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRoomInfoRequestParams struct {
	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: The end and start time cannot be more than 24 hours apart.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The room ID, such as `223`.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The page number. The default is 0.
	// Note: If `PageNumber` or `PageSize` is not specified, 10 records will be returned.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// The number of records per page. The default is `10`.
	// Value range: 1-100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

type DescribeRoomInfoRequest struct {
	*tchttp.BaseRequest
	
	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: The end and start time cannot be more than 24 hours apart.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The room ID, such as `223`.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The page number. The default is 0.
	// Note: If `PageNumber` or `PageSize` is not specified, 10 records will be returned.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// The number of records per page. The default is `10`.
	// Value range: 1-100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

func (r *DescribeRoomInfoRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRoomInfoRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "RoomId")
	delete(f, "PageNumber")
	delete(f, "PageSize")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRoomInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRoomInfoResponseParams struct {
	// The number of records returned.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// The room information.
	RoomList []*RoomState `json:"RoomList,omitnil,omitempty" name:"RoomList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeRoomInfoResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRoomInfoResponseParams `json:"Response"`
}

func (r *DescribeRoomInfoResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRoomInfoResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeScaleInfoRequestParams struct {
	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`. The end time and start time should preferably be more than 24 hours apart.
	// Note: Data is collected on a daily basis. To query the data of a day, make sure the end time is later than 00:00 on that day. Otherwise, no data will be returned. For example, to query the data on the 20th, the end time must be later than 00:00 on the 20th.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

type DescribeScaleInfoRequest struct {
	*tchttp.BaseRequest
	
	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`. The end time and start time should preferably be more than 24 hours apart.
	// Note: Data is collected on a daily basis. To query the data of a day, make sure the end time is later than 00:00 on that day. Otherwise, no data will be returned. For example, to query the data on the 20th, the end time must be later than 00:00 on the 20th.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

func (r *DescribeScaleInfoRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeScaleInfoRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeScaleInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeScaleInfoResponseParams struct {
	// The number of records returned.
	Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`

	// The returned data.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ScaleList []*ScaleInfomation `json:"ScaleList,omitnil,omitempty" name:"ScaleList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeScaleInfoResponse struct {
	*tchttp.BaseResponse
	Response *DescribeScaleInfoResponseParams `json:"Response"`
}

func (r *DescribeScaleInfoResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeScaleInfoResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeStreamIngestRequestParams struct {
	// The SDKAppId of TRTC should be the same as the SDKAppId corresponding to the task room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the task, will return after successfully starting the task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DescribeStreamIngestRequest struct {
	*tchttp.BaseRequest
	
	// The SDKAppId of TRTC should be the same as the SDKAppId corresponding to the task room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the task, will return after successfully starting the task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *DescribeStreamIngestRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeStreamIngestRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeStreamIngestRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeStreamIngestResponseParams struct {
	// Task status information. InProgress: Indicates that the current task is in progress. NotExist: Indicates that the current task does not exist. Example value: InProgress
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeStreamIngestResponse struct {
	*tchttp.BaseResponse
	Response *DescribeStreamIngestResponseParams `json:"Response"`
}

func (r *DescribeStreamIngestResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeStreamIngestResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCMarketQualityDataRequestParams struct {
	// User SDKAppId (e.g., 1400xxxxxx)
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Query start time, format is YYYY-MM-DD. (The query time range depends on the monitoring dashboard function version, the premium edition can query up to 30 days)
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, format is YYYY-MM-DD.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The granularity of the returned data, which can be set to the following values:
	// d: by day. This returns data for the entire UTC day of the query time range. 
	// h: by hour. This returns data for the entire UTC hour of the query time range.
	Period *string `json:"Period,omitnil,omitempty" name:"Period"`
}

type DescribeTRTCMarketQualityDataRequest struct {
	*tchttp.BaseRequest
	
	// User SDKAppId (e.g., 1400xxxxxx)
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Query start time, format is YYYY-MM-DD. (The query time range depends on the monitoring dashboard function version, the premium edition can query up to 30 days)
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, format is YYYY-MM-DD.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The granularity of the returned data, which can be set to the following values:
	// d: by day. This returns data for the entire UTC day of the query time range. 
	// h: by hour. This returns data for the entire UTC hour of the query time range.
	Period *string `json:"Period,omitnil,omitempty" name:"Period"`
}

func (r *DescribeTRTCMarketQualityDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCMarketQualityDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Period")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTRTCMarketQualityDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCMarketQualityDataResponseParams struct {
	// TRTC Data Dashboard output parameters
	Data *TRTCDataResult `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTRTCMarketQualityDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTRTCMarketQualityDataResponseParams `json:"Response"`
}

func (r *DescribeTRTCMarketQualityDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCMarketQualityDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCMarketScaleDataRequestParams struct {
	// User SDKAppId
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Query start time, format is YYYY-MM-DD. (The query time range depends on the monitoring dashboard function version, the premium edition can query up to 60 days)
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, format is YYYY-MM-DD.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The granularity of the returned data, which can be set to the following values:
	//  d: by day. This returns data for the entire UTC day of the query time range.
	//  h: by hour. This returns data for the entire UTC hour of the query time range.
	Period *string `json:"Period,omitnil,omitempty" name:"Period"`
}

type DescribeTRTCMarketScaleDataRequest struct {
	*tchttp.BaseRequest
	
	// User SDKAppId
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Query start time, format is YYYY-MM-DD. (The query time range depends on the monitoring dashboard function version, the premium edition can query up to 60 days)
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, format is YYYY-MM-DD.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The granularity of the returned data, which can be set to the following values:
	//  d: by day. This returns data for the entire UTC day of the query time range.
	//  h: by hour. This returns data for the entire UTC hour of the query time range.
	Period *string `json:"Period,omitnil,omitempty" name:"Period"`
}

func (r *DescribeTRTCMarketScaleDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCMarketScaleDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Period")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTRTCMarketScaleDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCMarketScaleDataResponseParams struct {
	// TRTC Data Dashboard output parameters
	Data *TRTCDataResult `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTRTCMarketScaleDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTRTCMarketScaleDataResponseParams `json:"Response"`
}

func (r *DescribeTRTCMarketScaleDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCMarketScaleDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCRealTimeQualityDataRequestParams struct {
	// User SDKAppId (e.g., 1400xxxxxx)
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Start time, unix timestamp, Unit: seconds (Query time range depends on the monitoring dashboard function version, standard edition can query the last 3 hours, premium edition can query the last 12 hours)
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, unix timestamp, Unit: seconds
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

type DescribeTRTCRealTimeQualityDataRequest struct {
	*tchttp.BaseRequest
	
	// User SDKAppId (e.g., 1400xxxxxx)
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Start time, unix timestamp, Unit: seconds (Query time range depends on the monitoring dashboard function version, standard edition can query the last 3 hours, premium edition can query the last 12 hours)
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, unix timestamp, Unit: seconds
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

func (r *DescribeTRTCRealTimeQualityDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCRealTimeQualityDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "RoomId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTRTCRealTimeQualityDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCRealTimeQualityDataResponseParams struct {
	// TRTC Real- Time Monitoring output parameters
	Data *TRTCDataResult `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTRTCRealTimeQualityDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTRTCRealTimeQualityDataResponseParams `json:"Response"`
}

func (r *DescribeTRTCRealTimeQualityDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCRealTimeQualityDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCRealTimeScaleDataRequestParams struct {
	// User SDKAppId (e.g., 1400xxxxxx)
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Start time, unix timestamp, Unit: seconds (Query time range depends on the function version of the monitoring dashboard, premium edition can query up to 1 hours)
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, unix timestamp, Unit: seconds
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

type DescribeTRTCRealTimeScaleDataRequest struct {
	*tchttp.BaseRequest
	
	// User SDKAppId (e.g., 1400xxxxxx)
	SdkAppId *string `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Start time, unix timestamp, Unit: seconds (Query time range depends on the function version of the monitoring dashboard, premium edition can query up to 1 hours)
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, unix timestamp, Unit: seconds
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

func (r *DescribeTRTCRealTimeScaleDataRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCRealTimeScaleDataRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "RoomId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTRTCRealTimeScaleDataRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTRTCRealTimeScaleDataResponseParams struct {
	// TRTC Real- Time Monitoring
	//  output parameter
	Data *TRTCDataResult `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTRTCRealTimeScaleDataResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTRTCRealTimeScaleDataResponseParams `json:"Response"`
}

func (r *DescribeTRTCRealTimeScaleDataResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTRTCRealTimeScaleDataResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTrtcRoomUsageRequestParams struct {
	// The `SDKAppID` of the room.
	SdkAppid *uint64 `json:"SdkAppid,omitnil,omitempty" name:"SdkAppid"`

	// The start time in the format of `YYYY-MM-DD HH:MM` (accurate to the minute).
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time in the format of `YYYY-MM-DD HH:MM`. The start and end time cannot be more than 24 hours apart.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

type DescribeTrtcRoomUsageRequest struct {
	*tchttp.BaseRequest
	
	// The `SDKAppID` of the room.
	SdkAppid *uint64 `json:"SdkAppid,omitnil,omitempty" name:"SdkAppid"`

	// The start time in the format of `YYYY-MM-DD HH:MM` (accurate to the minute).
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time in the format of `YYYY-MM-DD HH:MM`. The start and end time cannot be more than 24 hours apart.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

func (r *DescribeTrtcRoomUsageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTrtcRoomUsageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppid")
	delete(f, "StartTime")
	delete(f, "EndTime")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTrtcRoomUsageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTrtcRoomUsageResponseParams struct {
	// The usage data grouped by room, in CSV format.
	Data *string `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTrtcRoomUsageResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTrtcRoomUsageResponseParams `json:"Response"`
}

func (r *DescribeTrtcRoomUsageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTrtcRoomUsageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTrtcUsageRequestParams struct {
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

type DescribeTrtcUsageRequest struct {
	*tchttp.BaseRequest
	
	// The start date in the format of YYYY-MM-DD.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end date in the format of YYYY-MM-DD.
	// The period queried per request cannot be longer than 31 days.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The `SDKAppID` of the TRTC application to which the target room belongs. If you do not specify this parameter, the usage statistics of all TRTC applications under the current account will be returned.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

func (r *DescribeTrtcUsageRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTrtcUsageRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "SdkAppId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTrtcUsageRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTrtcUsageResponseParams struct {
	// The usage type. Each element of this parameter corresponds to an element of `UsageValue` in the order they are listed.
	UsageKey []*string `json:"UsageKey,omitnil,omitempty" name:"UsageKey"`

	// The usage data in each time unit.
	UsageList []*TrtcUsage `json:"UsageList,omitnil,omitempty" name:"UsageList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeTrtcUsageResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTrtcUsageResponseParams `json:"Response"`
}

func (r *DescribeTrtcUsageResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeTrtcUsageResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeUnusualEventRequestParams struct {
	// User SdkAppId (for example: 1400xxxxxx).
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Query start time, local unix timestamp, in seconds (for example: 1590065777).
	// Note: support querying data within the last 14 days.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, local unix timestamp, in seconds (for example, 1590065877). note: the time interval from StartTime should be no more than 1 hour.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Room number. query up to 20 abnormal experience events in the room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

type DescribeUnusualEventRequest struct {
	*tchttp.BaseRequest
	
	// User SdkAppId (for example: 1400xxxxxx).
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Query start time, local unix timestamp, in seconds (for example: 1590065777).
	// Note: support querying data within the last 14 days.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, local unix timestamp, in seconds (for example, 1590065877). note: the time interval from StartTime should be no more than 1 hour.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Room number. query up to 20 abnormal experience events in the room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

func (r *DescribeUnusualEventRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeUnusualEventRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "RoomId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeUnusualEventRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeUnusualEventResponseParams struct {
	// Total number of returned data entries.
	// Value range: [0, 20].
	Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`

	// Abnormal experience list.
	AbnormalExperienceList []*AbnormalExperience `json:"AbnormalExperienceList,omitnil,omitempty" name:"AbnormalExperienceList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeUnusualEventResponse struct {
	*tchttp.BaseResponse
	Response *DescribeUnusualEventResponseParams `json:"Response"`
}

func (r *DescribeUnusualEventResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeUnusualEventResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeUserEventRequestParams struct {
	// The unique ID of a call, whose format is `SdkAppId_CreateTime`, such as `1400xxxxxx_218695_1590065777`. `createTime` is the UNIX timestamp (seconds) when the room was created. Its value can be obtained using the [DescribeRoomInfo](https://intl.cloud.tencent.com/document/product/647/44050?from_cn_redirect=1) API.
	CommId *string `json:"CommId,omitnil,omitempty" name:"CommId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: If you pass in an end time later than the room end time, the room end time will be used.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The room ID, such as `223`.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

type DescribeUserEventRequest struct {
	*tchttp.BaseRequest
	
	// The unique ID of a call, whose format is `SdkAppId_CreateTime`, such as `1400xxxxxx_218695_1590065777`. `createTime` is the UNIX timestamp (seconds) when the room was created. Its value can be obtained using the [DescribeRoomInfo](https://intl.cloud.tencent.com/document/product/647/44050?from_cn_redirect=1) API.
	CommId *string `json:"CommId,omitnil,omitempty" name:"CommId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: If you pass in an end time later than the room end time, the room end time will be used.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The room ID, such as `223`.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`
}

func (r *DescribeUserEventRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeUserEventRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "UserId")
	delete(f, "RoomId")
	delete(f, "SdkAppId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeUserEventRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeUserEventResponseParams struct {
	// The event list. An empty array will be returned if no data is obtained.
	Data []*EventList `json:"Data,omitnil,omitempty" name:"Data"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeUserEventResponse struct {
	*tchttp.BaseResponse
	Response *DescribeUserEventResponseParams `json:"Response"`
}

func (r *DescribeUserEventResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeUserEventResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeUserInfoRequestParams struct {
	// The unique ID of a call, whose format is `SdkAppId_CreateTime`, such as `1400xxxxxx_218695_1590065777`. `createTime` is the UNIX timestamp (seconds) when the room was created. Its value can be obtained using the [DescribeRoomInfo](https://intl.cloud.tencent.com/document/product/647/44050?from_cn_redirect=1) API.
	CommId *string `json:"CommId,omitnil,omitempty" name:"CommId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: The end and start time cannot be more than four hours apart.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The users to query. If you do not specify this, the information of six users will be returned.
	// Array length: 1-100.
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`

	// The page number. The default is 0.
	// Note: If `PageNumber` or `PageSize` is not specified, six records will be returned.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// The number of records per page. The default is `6`.
	// Array length: 1-100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

type DescribeUserInfoRequest struct {
	*tchttp.BaseRequest
	
	// The unique ID of a call, whose format is `SdkAppId_CreateTime`, such as `1400xxxxxx_218695_1590065777`. `createTime` is the UNIX timestamp (seconds) when the room was created. Its value can be obtained using the [DescribeRoomInfo](https://intl.cloud.tencent.com/document/product/647/44050?from_cn_redirect=1) API.
	CommId *string `json:"CommId,omitnil,omitempty" name:"CommId"`

	// The start time, which is a Unix timestamp (seconds) in local time, such as `1590065777`.
	// Note: Only data in the last 14 days can be queried.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time, which is a Unix timestamp (seconds) in local time, such as `1590065877`.
	// Note: The end and start time cannot be more than four hours apart.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The application ID, such as `1400xxxxxx`.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The users to query. If you do not specify this, the information of six users will be returned.
	// Array length: 1-100.
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`

	// The page number. The default is 0.
	// Note: If `PageNumber` or `PageSize` is not specified, six records will be returned.
	PageNumber *uint64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// The number of records per page. The default is `6`.
	// Array length: 1-100.
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

func (r *DescribeUserInfoRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeUserInfoRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommId")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "SdkAppId")
	delete(f, "UserIds")
	delete(f, "PageNumber")
	delete(f, "PageSize")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeUserInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeUserInfoResponseParams struct {
	// The number of records returned.
	Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`

	// The user information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserList []*UserInformation `json:"UserList,omitnil,omitempty" name:"UserList"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeUserInfoResponse struct {
	*tchttp.BaseResponse
	Response *DescribeUserInfoResponseParams `json:"Response"`
}

func (r *DescribeUserInfoResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeUserInfoResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeWebRecordRequestParams struct {
	// The task ID returned when starting web-page recording
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// SdkAppId passed when initiating web-page recording
	SdkAppId *int64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// RecordId passed when initiating recording. When passing this value, you need to pass SdkAppId
	RecordId *string `json:"RecordId,omitnil,omitempty" name:"RecordId"`
}

type DescribeWebRecordRequest struct {
	*tchttp.BaseRequest
	
	// The task ID returned when starting web-page recording
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// SdkAppId passed when initiating web-page recording
	SdkAppId *int64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// RecordId passed when initiating recording. When passing this value, you need to pass SdkAppId
	RecordId *string `json:"RecordId,omitnil,omitempty" name:"RecordId"`
}

func (r *DescribeWebRecordRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeWebRecordRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "SdkAppId")
	delete(f, "RecordId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeWebRecordRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeWebRecordResponseParams struct {
	// 1: Recording
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Returns when querying using RecordId
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Returned when querying using TaskId
	RecordId *string `json:"RecordId,omitnil,omitempty" name:"RecordId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DescribeWebRecordResponse struct {
	*tchttp.BaseResponse
	Response *DescribeWebRecordResponseParams `json:"Response"`
}

func (r *DescribeWebRecordResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeWebRecordResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DismissRoomByStrRoomIdRequestParams struct {
	// `SDKAppId` of TRTC
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

type DismissRoomByStrRoomIdRequest struct {
	*tchttp.BaseRequest
	
	// `SDKAppId` of TRTC
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

func (r *DismissRoomByStrRoomIdRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DismissRoomByStrRoomIdRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DismissRoomByStrRoomIdRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DismissRoomByStrRoomIdResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DismissRoomByStrRoomIdResponse struct {
	*tchttp.BaseResponse
	Response *DismissRoomByStrRoomIdResponseParams `json:"Response"`
}

func (r *DismissRoomByStrRoomIdResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DismissRoomByStrRoomIdResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DismissRoomRequestParams struct {
	// `SDKAppId` of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room number.
	RoomId *uint64 `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

type DismissRoomRequest struct {
	*tchttp.BaseRequest
	
	// `SDKAppId` of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room number.
	RoomId *uint64 `json:"RoomId,omitnil,omitempty" name:"RoomId"`
}

func (r *DismissRoomRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DismissRoomRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DismissRoomRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DismissRoomResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type DismissRoomResponse struct {
	*tchttp.BaseResponse
	Response *DismissRoomResponseParams `json:"Response"`
}

func (r *DismissRoomResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DismissRoomResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type EmulateMobileParams struct {
	// Mobile device type.
	// Mobile phone.
	// Tablet.
	MobileDeviceType *uint64 `json:"MobileDeviceType,omitnil,omitempty" name:"MobileDeviceType"`

	// Screen orientation.
	// Portrait mode.
	// Landscape mode.
	ScreenOrientation *uint64 `json:"ScreenOrientation,omitnil,omitempty" name:"ScreenOrientation"`
}

type EventList struct {
	// The event information.
	Content []*EventMessage `json:"Content,omitnil,omitempty" name:"Content"`

	// The user ID of the sender.
	PeerId *string `json:"PeerId,omitnil,omitempty" name:"PeerId"`
}

type EventMessage struct {
	// The video stream type. Valid values:
	// `0`: A non-video event
	// `2`: The big video
	// `3`: The small video
	// `7`: A relayed video
	Type *uint64 `json:"Type,omitnil,omitempty" name:"Type"`

	// The event reporting time in the format of UNIX timestamp (milliseconds), such as `1589891188801`.
	Time *uint64 `json:"Time,omitnil,omitempty" name:"Time"`

	// The event ID. Events are classified into SDK events and WebRTC events. For more information, see https://www.tencentcloud.com/document/product/647/37906?has_map=1
	EventId *uint64 `json:"EventId,omitnil,omitempty" name:"EventId"`

	// The first event parameter, such as the video width.
	ParamOne *int64 `json:"ParamOne,omitnil,omitempty" name:"ParamOne"`

	// The second event parameter, such as the video height.
	ParamTwo *int64 `json:"ParamTwo,omitnil,omitempty" name:"ParamTwo"`
}

type InvokeLLM struct {
	// Request the content of LLM.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// Whether to allow the text to interrupt the robot's speaking.
	Interrupt *bool `json:"Interrupt,omitnil,omitempty" name:"Interrupt"`
}

type MaxVideoUser struct {
	// The stream information.
	UserMediaStream *UserMediaStream `json:"UserMediaStream,omitnil,omitempty" name:"UserMediaStream"`
}

type McuAudioParams struct {
	// The audio encoding parameters.
	AudioEncode *AudioEncode `json:"AudioEncode,omitnil,omitempty" name:"AudioEncode"`

	// The audio user allowlist. for start, being empty or not filled means mixing all anchor audio; filling a specific value means mixing specified anchor audio. for update, not filling means does not update; being empty means update to mixing all anchor audio; filling a specific value means update to mixing specified anchor audio.
	// When using blocklist and allowlist, both must be filled in simultaneously. if left empty, it means the list does not update. if the same user is in both lists, the blocklist takes precedence.
	// Note: if it is cross-room pk, the cross-room mix requires specifying the audio allowlist, otherwise the pk host's audio uplink will be pulled twice, causing accent.
	SubscribeAudioList []*McuUserInfoParams `json:"SubscribeAudioList,omitnil,omitempty" name:"SubscribeAudioList"`

	// The audio mix blocklist. If you do not pass this parameter or leave it empty, there won’t be a blocklist. For the `UpdatePublishCdnStream` API, if you do not pass this parameter, no changes will be made to the current blocklist; if you pass in an empty string, the blocklist will be reset.
	// In cases where `SubscribeAudioList` and `UnSubscribeAudioList` are used at the same time, you need to specify both parameters. If you pass neither `SubscribeAudioList` nor `UnSubscribeAudioList`, no changes will be made. If a user is included in both parameters, the user’s audio will not be mixed.
	UnSubscribeAudioList []*McuUserInfoParams `json:"UnSubscribeAudioList,omitnil,omitempty" name:"UnSubscribeAudioList"`
}

type McuBackgroundCustomRender struct {

	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`


	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`


	Radius *uint64 `json:"Radius,omitnil,omitempty" name:"Radius"`
}

type McuCloudVod struct {
	// Parameters of tencent cloud video on demand (vod).	
	McuTencentVod *McuTencentVod `json:"McuTencentVod,omitnil,omitempty" name:"McuTencentVod"`
}

type McuCustomCrop struct {
	// The horizontal offset (pixels) of the starting point for cropping. This parameter must be greater than 0.
	LocationX *uint64 `json:"LocationX,omitnil,omitempty" name:"LocationX"`

	// The vertical offset (pixels) of the starting point for cropping. This parameter must be greater than 0.
	LocationY *uint64 `json:"LocationY,omitnil,omitempty" name:"LocationY"`

	// The video width (pixels) after cropping. The sum of this parameter and `LocationX` cannot be greater than 10000.
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// The video height (pixels) after cropping. The sum of this parameter and `LocationY` cannot be greater than 10000.
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`
}

type McuFeedBackRoomParams struct {
	// The room ID.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The ID type of the room to which streams are relayed. `0` indicates integer, and `1` indicates string.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// The [user ID](https://www.tencentcloud.com/document/product/647/37714) of the relaying robot in the TRTC room, which cannot be the same as a user ID already in use. We recommend you include the room ID in this user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The signature (similar to login password) required for the relaying robot to enter the room. For information on how to calculate the signature, see [What is UserSig?](https://www.tencentcloud.com/document/product/647/38104).
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`
}

type McuLayout struct {
	// User media stream parameters. if left blank, tencent cloud backend fills them automatically by the room entry sequence of the uplink host.
	UserMediaStream *UserMediaStream `json:"UserMediaStream,omitnil,omitempty" name:"UserMediaStream"`

	// The width of the sub-screen in the output, unit: pixel value. defaults to 0 if left blank.
	ImageWidth *uint64 `json:"ImageWidth,omitnil,omitempty" name:"ImageWidth"`

	// The height of the sub-screen in the output, in pixel values. default is 0.
	ImageHeight *uint64 `json:"ImageHeight,omitnil,omitempty" name:"ImageHeight"`

	// The X-axis offset of the sub-screen in the output, unit: pixel value. the sum of LocationX and ImageWidth must not exceed the total width of the mixed stream output. default is 0.
	LocationX *uint64 `json:"LocationX,omitnil,omitempty" name:"LocationX"`

	// The Y-axis offset of the sub-screen in the output, unit: pixel value. the sum of LocationY and ImageHeight must not exceed the total height of the mixed stream output. default is 0 if left blank.
	LocationY *uint64 `json:"LocationY,omitnil,omitempty" name:"LocationY"`

	// The hierarchy of the sub-screen in the output. default is 0.
	ZOrder *uint64 `json:"ZOrder,omitnil,omitempty" name:"ZOrder"`

	// The display mode of the sub-screen in the output: 0 for crop, 1 for scale and display background, 2 for scale and display black background. defaults to 0 if left blank.
	RenderMode *uint64 `json:"RenderMode,omitnil,omitempty" name:"RenderMode"`

	// [This parameter configuration is invalid and not currently supported] the background color of the sub-picture. commonly used colors are:.
	// Red: 0xcc0033.
	// Yellow: 0xcc9900.
	// Green: 0xcccc33.
	// Blue: 0x99CCFF.
	// Black: 0x000000.
	// White: 0xFFFFFF.
	// Gray: 0x999999.
	BackGroundColor *string `json:"BackGroundColor,omitnil,omitempty" name:"BackGroundColor"`

	// The url of the placeholder image for the sub-window. fill in this parameter to specify the image displayed in the layout position when the user turns the camera off or has not joined the TRTC room. if the specified image has a different size ratio from the layout position, it will be stretched. this parameter has a higher priority than BackGroundColor. supported formats include png, jpg, jpeg, bmp, gif, and webm. the image size limit is no more than 5MB.
	// Note:.
	// 1. make sure the image link is accessible. the backend single download timeout period is 10 seconds with a maximum of 3 retries. if the image download fails eventually, the placeholder image will not take effect.
	// 2. supported character sets for urls: ['0-9', 'a-z', 'a-z', '-', '.', '_', '~', ':', '/', '?', '#', '[', ']', '@', '!', '&', '(', ')', '*', '+', ',', '%', '=', ';', '|']. make sure url characters are within the supported character sets. if characters outside the supported character sets exist, the placeholder image will not take effect.
	BackgroundImageUrl *string `json:"BackgroundImageUrl,omitnil,omitempty" name:"BackgroundImageUrl"`

	// Customer custom crop, targeting the input stream.
	CustomCrop *McuCustomCrop `json:"CustomCrop,omitnil,omitempty" name:"CustomCrop"`

	// The display mode of the sub-background image in the output: 0 for crop, 1 for scale and display background, 2 for scale and display black background, 3 for variable-scale scaling, 4 for custom rendering. defaults to 3 if left blank.
	BackgroundRenderMode *uint64 `json:"BackgroundRenderMode,omitnil,omitempty" name:"BackgroundRenderMode"`

	// The sub-screen template url points to a template image with an alpha channel. fill in this parameter, and the backend will extract the alpha channel of the template image during compositing, scale it as the alpha channel of the target frame, and mix it with other frames. you can use the transparent template to achieve a semi-transparent effect and arbitrary shape cropping (such as rounded corners, stars, hearts) for the target frame. png format is supported. the image size limit is no more than 5MB.
	// Note:.
	// 1. the image aspect ratio of the template should be close to the target frame aspect ratio to avoid deformation of the template effect when scaling to fit the target frame. 2. the transparent template only takes effect when RenderMode is 0 (crop). 3. make sure the image link is accessible. the backend single download timeout period is 10 seconds with a maximum of 3 retries. if the image download fails eventually, the transparent template will not take effect.
	// 2. url supported character sets: ['0-9','a-z','a-z','-', '.', '_', '~', ':', '/', '?', '#', '[', ']','@', '!', '&', '(', ')', '*', '+', ',', '%', '=', ';', '|']. make sure url characters are within the supported character sets. if characters outside the supported character sets exist, the transparent template will not take effect.
	TransparentUrl *string `json:"TransparentUrl,omitnil,omitempty" name:"TransparentUrl"`


	BackgroundCustomRender *McuBackgroundCustomRender `json:"BackgroundCustomRender,omitnil,omitempty" name:"BackgroundCustomRender"`

	// Sub-Background color effective mode. default value 0 means disabled.
	// bit0 specifies whether placeholder image scaling takes effect.
	// bit1 specifies whether upstream flow scaling takes effect.
	// You can set the corresponding bit position to 1 to start up and take effect, such as:.
	// 0(00) means the sub background color is disabled.
	// 1(01) indicates the sub-background color is valid only when placeholder image scaling is enabled.
	// 2(10) means the sub background color is valid only when upstream flow scaling.
	// 3(11) indicates the sub-background color takes effect in both placeholder image scaling and upstream flow scaling.
	BackGroundColorMode *uint64 `json:"BackGroundColorMode,omitnil,omitempty" name:"BackGroundColorMode"`
}

type McuLayoutParams struct {
	// Layout mode: dynamic layout (1: floating layout (default), 2: screen sharing layout, 3: nine-grid layout), static layout (4: custom layout). supports up to 16 mixed media streams. if the user only sends upstream audio, it will be counted as one stream. in custom layout, if the sub-screen only uses placeholder images, it will also be counted as one stream.
	MixLayoutMode *uint64 `json:"MixLayoutMode,omitnil,omitempty" name:"MixLayoutMode"`

	// Whether to display users who publish only audio. 0: No; 1: Yes. This parameter is valid only if a dynamic layout is used. If you do not pass this parameter, 0 will be used.
	PureAudioHoldPlaceMode *uint64 `json:"PureAudioHoldPlaceMode,omitnil,omitempty" name:"PureAudioHoldPlaceMode"`

	// Valid in custom template. specifies the position of designated user video in mixed display. supports setting up to 16 input streams.
	MixLayoutList []*McuLayout `json:"MixLayoutList,omitnil,omitempty" name:"MixLayoutList"`

	// The information of the large video in screen sharing or floating layout mode.
	MaxVideoUser *MaxVideoUser `json:"MaxVideoUser,omitnil,omitempty" name:"MaxVideoUser"`

	// The image fill mode. This parameter is valid if the layout mode is screen sharing, floating, or grid. `0`: The image will be cropped. `1`: The image will be scaled. `2`: The image will be scaled and there may be black bars.
	RenderMode *uint64 `json:"RenderMode,omitnil,omitempty" name:"RenderMode"`
}

type McuLayoutVolume struct {
	// The application data, which will be embedded in the `app_data` field of the custom SEI. It must be shorter than 4,096 characters.
	AppData *string `json:"AppData,omitnil,omitempty" name:"AppData"`

	// The payload type of the SEI message. The default is 100. Value range: 100-254 (244 is used internally by Tencent Cloud for timestamps).
	PayloadType *uint64 `json:"PayloadType,omitnil,omitempty" name:"PayloadType"`

	// The SEI sending interval (milliseconds). The default value is 1000.
	Interval *uint64 `json:"Interval,omitnil,omitempty" name:"Interval"`

	// Valid values: `1`: SEI is guaranteed when keyframes are sent; `0` (default): SEI is not guaranteed when keyframes are sent.
	FollowIdr *uint64 `json:"FollowIdr,omitnil,omitempty" name:"FollowIdr"`
}

type McuPassThrough struct {
	// The payload of the pass-through SEI.
	PayloadContent *string `json:"PayloadContent,omitnil,omitempty" name:"PayloadContent"`

	// PayloadType of SEI message. valid values: 5, 100-254 (exclusion: 244, which is internal custom timestamp SEI).
	// Note: some players may not support the standard type with PayloadType 5 and PayloadUuid. recommend using another PayloadType.
	PayloadType *uint64 `json:"PayloadType,omitnil,omitempty" name:"PayloadType"`

	// This parameter is required only if `PayloadType` is 5. It must be a 32-character hexadecimal string. If `PayloadType` is not 5, this parameter will be ignored.
	PayloadUuid *string `json:"PayloadUuid,omitnil,omitempty" name:"PayloadUuid"`

	// The SEI sending interval (milliseconds). The default value is 1000.
	Interval *uint64 `json:"Interval,omitnil,omitempty" name:"Interval"`

	// Valid values: `1`: SEI is guaranteed when keyframes are sent; `0` (default): SEI is not guaranteed when keyframes are sent.
	FollowIdr *uint64 `json:"FollowIdr,omitnil,omitempty" name:"FollowIdr"`
}

type McuPublishCdnParam struct {
	// The URLs of the CDNs to relay to.
	PublishCdnUrl *string `json:"PublishCdnUrl,omitnil,omitempty" name:"PublishCdnUrl"`

	// Whether to relay to Tencent Cloud’s CDN. `0`: Third-party CDN; `1` (default): Tencent Cloud’s CDN. Relaying to a third-party CDN will incur fees. To avoid unexpected charges, we recommend you pass in a specific value. For details, see the API document.
	IsTencentCdn *uint64 `json:"IsTencentCdn,omitnil,omitempty" name:"IsTencentCdn"`
}

type McuRecordParams struct {
	// Retweet recording mode. 
	// 0/Leave blank: not currently supported; behavior is undefined.
	// 1: disable recording.
	// 2: enable recording (via console automatic recording template parameters.
	// 3: enable recording (use API to specify parameter).
	UniRecord *uint64 `json:"UniRecord,omitnil,omitempty" name:"UniRecord"`

	// Recording task key, identifies a recording task. you can record multiple relay tasks into a file by specifying this parameter. if this parameter is not specified, only the current relay task is recorded.
	// Limit length to 128 bytes, only allow a combination of uppercase and lowercase letters (a-zA-Z), digits (0-9), underscores (_), and hyphens (-).
	RecordKey *string `json:"RecordKey,omitnil,omitempty" name:"RecordKey"`

	// [Valid only when UniRecord=3.].
	// Resume recording waiting time, corresponding to the "wait time for resumption" in the recording template, unit: seconds. the value must be greater than or equal to 5 and less than or equal to 86400 (24 hours), with a default value of 30. when resumption is enabled, the recording task ends automatically if idle for a duration exceeding RecordWaitTime.
	RecordWaitTime *uint64 `json:"RecordWaitTime,omitnil,omitempty" name:"RecordWaitTime"`

	// [Valid only when UniRecord=3.].
	// The list of output file formats for recording corresponds to the "file format" in the recording template. it supports three formats: "hls", "mp4", and "aac". the default value is "mp4". among them, "mp4" and "aac" formats cannot be specified simultaneously.
	// Record only the mp4 format, example value: ["mp4"]. record both mp4 and HLS formats simultaneously, example value: ["mp4","HLS"].
	RecordFormat []*string `json:"RecordFormat,omitnil,omitempty" name:"RecordFormat"`

	// [Valid only when UniRecord=3.].
	// Single file recording duration, corresponding to the "max recording time per file" in the recording template, unit: minutes. the value must be greater than or equal to 1 and less than or equal to 1440 (24 hours), with a default value of 1440. it only takes effect for "mp4" or "aac" format. the actual single file recording duration is also limited by the file size not exceeding 2G. if it exceeds 2G, the file will be forcibly split.
	MaxMediaFileDuration *uint64 `json:"MaxMediaFileDuration,omitnil,omitempty" name:"MaxMediaFileDuration"`

	// [Valid only when UniRecord=3.].
	// The audio and video type of the recording corresponds to the "recording format" in the recording template. valid values: 0 (audio and video), 1 (pure audio), 2 (video only). the final recording file content is the intersection of the specified type and the relayed content.
	StreamType *uint64 `json:"StreamType,omitnil,omitempty" name:"StreamType"`

	// Recording file name prefix, no more than 64 characters. this parameter is valid only when store is vod.
	// Limit length to 64 bytes, only allow a combination of uppercase and lowercase letters (a-zA-Z), digits (0-9), underscores (_), and hyphens (-).
	UserDefineRecordPrefix *string `json:"UserDefineRecordPrefix,omitnil,omitempty" name:"UserDefineRecordPrefix"`

	// [Valid only when UniRecord=3.].
	// Recording files storage parameters, corresponding console "storage location" and related parameters. currently supports VOD and COS storage methods. only one can be filled.
	McuStorageParams *McuStorageParams `json:"McuStorageParams,omitnil,omitempty" name:"McuStorageParams"`
}

type McuSeiParams struct {
	// The audio volume layout SEI.
	LayoutVolume *McuLayoutVolume `json:"LayoutVolume,omitnil,omitempty" name:"LayoutVolume"`

	// The pass-through SEI.
	PassThrough *McuPassThrough `json:"PassThrough,omitnil,omitempty" name:"PassThrough"`
}

type McuStorageParams struct {
	// Account information for third-party cloud storage (special note: if you select storage to cloud object storage (COS), there will be a charge for shipping recorded files to COS. for details, see cloud recording pricing information. storing to VOD will incur no charge for this item.).
	CloudStorage *CloudStorage `json:"CloudStorage,omitnil,omitempty" name:"CloudStorage"`

	// Account information of tencent cloud vod.
	McuCloudVod *McuCloudVod `json:"McuCloudVod,omitnil,omitempty" name:"McuCloudVod"`
}

type McuTencentVod struct {
	// Subsequent media task processing operations allow automatic task initiation after media upload is completed. the parameter value is the task flow template name. VOD (video on demand) supports creating task flow templates and template naming.
	Procedure *string `json:"Procedure,omitnil,omitempty" name:"Procedure"`

	// Media file expiry time is the absolute expiration time from the current system time. to save for one day, enter "86400". to retain permanently, enter "0". the default is permanent preservation.
	ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Specify the upload park, applicable only to the user with special requirement for upload region.
	StorageRegion *string `json:"StorageRegion,omitnil,omitempty" name:"StorageRegion"`

	// Category ID is used to categorize and manage media. you can create a category and obtain the category ID through the create category api.
	// The default value is 0, indicating other categories.
	ClassId *uint64 `json:"ClassId,omitnil,omitempty" name:"ClassId"`

	// Subapplication ID for video-on-demand (vod). if you need to access resources belonging to a subapplication, fill in this field with the subapplication ID. otherwise, this field is not required.
	SubAppId *uint64 `json:"SubAppId,omitnil,omitempty" name:"SubAppId"`

	// Task flow context, passed through when task complete.
	SessionContext *string `json:"SessionContext,omitnil,omitempty" name:"SessionContext"`

	// Upload context, passed through on upload completion callback.
	SourceContext *string `json:"SourceContext,omitnil,omitempty" name:"SourceContext"`
}

type McuUserInfoParams struct {
	// The user information.
	UserInfo *MixUserInfo `json:"UserInfo,omitnil,omitempty" name:"UserInfo"`

	// Audio mix volume adjustment. value ranges from 0 to 100. 100 indicates the original uplink volume. the default value is 100 if left blank. a lower value results in a lower volume.
	// Note: this parameter takes effect only when configured in the volume allowlist and is unavailable in other scenarios.
	SoundLevel *uint64 `json:"SoundLevel,omitnil,omitempty" name:"SoundLevel"`
}

type McuVideoParams struct {
	// Video encoding parameter for the output stream.
	VideoEncode *VideoEncode `json:"VideoEncode,omitnil,omitempty" name:"VideoEncode"`

	// Stream mixing layout parameter.
	LayoutParams *McuLayoutParams `json:"LayoutParams,omitnil,omitempty" name:"LayoutParams"`

	// The entire canvas background color. commonly used colors:.
	// Red: 0xcc0033.
	// Yellow: 0xcc9900.
	// Green: 0xcccc33.
	// Blue: 0x99CCFF.
	// Black: 0x000000.
	// White: 0xFFFFFF.
	// Gray: 0x999999.
	BackGroundColor *string `json:"BackGroundColor,omitnil,omitempty" name:"BackGroundColor"`

	// The url of the background image for the entire canvas. priority is higher than BackGroundColor. supports png, jpg, and jpeg formats. image size limit is not more than 5MB.
	// Note:.
	// 1. make sure the image link is accessible. the backend download timeout is 10 seconds with a maximum of 3 retries. if the image download fails eventually, the background image will not take effect.
	// 2. url supported character sets: ['0-9','a-z','a-z','-', '.', '_', '~', ':', '/', '?', '#', '[', ']','@', '!', '&', '(', ')', '*', '+', ',', '%', '=', ';', '|']. make sure url characters are within the supported character sets. if any character outside the supported character sets exists, the background image will not take effect.
	BackgroundImageUrl *string `json:"BackgroundImageUrl,omitnil,omitempty" name:"BackgroundImageUrl"`

	// Watermark parameters for the stream mixing layout.
	WaterMarkList []*McuWaterMarkParams `json:"WaterMarkList,omitnil,omitempty" name:"WaterMarkList"`

	// The display mode of the background image in the output: 0 for crop, 1 for scale and display black background, 2 for variable-scale scaling. the backend defaults to variable-scale scaling.
	BackgroundRenderMode *uint64 `json:"BackgroundRenderMode,omitnil,omitempty" name:"BackgroundRenderMode"`
}

type McuWaterMarkImage struct {
	// Watermark image URL address. supports png, jpg, and jpeg formats. image size limit not more than 5MB.
	// Note:.
	// Make sure the image link has data accessibility. the backend download timeout is 10 seconds with a maximum of 3 retries. if the image download fails eventually, the watermark image will not take effect.
	// 2. supported character sets for urls: ['0-9', 'a-z', 'a-z', '-', '.', '_', '~', ':', '/', '?', '#', '[', ']', '@', '!', '&', '(', ')', '*', '+', ',', '%', '=', ';', '|']. make sure url characters are within the supported character sets. if any characters exist outside the supported character sets, the watermark image will not take effect.
	WaterMarkUrl *string `json:"WaterMarkUrl,omitnil,omitempty" name:"WaterMarkUrl"`

	// The watermark width (pixels).
	WaterMarkWidth *uint64 `json:"WaterMarkWidth,omitnil,omitempty" name:"WaterMarkWidth"`

	// The watermark height (pixels).
	WaterMarkHeight *uint64 `json:"WaterMarkHeight,omitnil,omitempty" name:"WaterMarkHeight"`

	// The horizontal offset (pixels) of the watermark.
	LocationX *uint64 `json:"LocationX,omitnil,omitempty" name:"LocationX"`

	// The vertical offset (pixels) of the watermark.
	LocationY *uint64 `json:"LocationY,omitnil,omitempty" name:"LocationY"`

	// The image layer of the watermark. If you do not pass this parameter, 0 will be used.
	ZOrder *uint64 `json:"ZOrder,omitnil,omitempty" name:"ZOrder"`


	DynamicPosType *uint64 `json:"DynamicPosType,omitnil,omitempty" name:"DynamicPosType"`
}

type McuWaterMarkParams struct {
	// The watermark type. Valid values: `0` (default): Image; `1`: Text.
	WaterMarkType *uint64 `json:"WaterMarkType,omitnil,omitempty" name:"WaterMarkType"`

	// The watermark image information. This parameter is required if `WaterMarkType` is 0.
	WaterMarkImage *McuWaterMarkImage `json:"WaterMarkImage,omitnil,omitempty" name:"WaterMarkImage"`

	// The text watermark configuration. This parameter is required if `WaterMarkType` is `1`.
	WaterMarkText *McuWaterMarkText `json:"WaterMarkText,omitnil,omitempty" name:"WaterMarkText"`
}

type McuWaterMarkText struct {
	// The text.
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// The watermark width (pixels).
	WaterMarkWidth *uint64 `json:"WaterMarkWidth,omitnil,omitempty" name:"WaterMarkWidth"`

	// The watermark height (pixels).
	WaterMarkHeight *uint64 `json:"WaterMarkHeight,omitnil,omitempty" name:"WaterMarkHeight"`

	// The horizontal offset (pixels) of the watermark.
	LocationX *uint64 `json:"LocationX,omitnil,omitempty" name:"LocationX"`

	// The vertical offset (pixels) of the watermark.
	LocationY *uint64 `json:"LocationY,omitnil,omitempty" name:"LocationY"`

	// The font size.
	FontSize *uint64 `json:"FontSize,omitnil,omitempty" name:"FontSize"`

	// The text color. The default color is white. Values for some commonly used colors: Red: `0xcc0033`; yellow: `0xcc9900`; green: `0xcccc33`; blue: `0x99CCFF`; black: `0x000000`; white: `0xFFFFFF`; gray: `0x999999`.	
	FontColor *string `json:"FontColor,omitnil,omitempty" name:"FontColor"`

	// The text fill color. If you do not specify this parameter, the fill color will be transparent. Values for some commonly used colors: Red: `0xcc0033`; yellow: `0xcc9900`; green: `0xcccc33`; blue: `0x99CCFF`; black: `0x000000`; white: `0xFFFFFF`; gray: `0x999999`.	
	BackGroundColor *string `json:"BackGroundColor,omitnil,omitempty" name:"BackGroundColor"`


	DynamicPosType *uint64 `json:"DynamicPosType,omitnil,omitempty" name:"DynamicPosType"`


	ZOrder *uint64 `json:"ZOrder,omitnil,omitempty" name:"ZOrder"`

	// Watermark font, by default if left blank is Tencent. valid values: Tencent (default), SourceHanSans.
	Font *string `json:"Font,omitnil,omitempty" name:"Font"`
}

type MixLayout struct {
	// The Y axis of the window’s top-left corner. Value range: [0, 1920]. The value cannot be larger than the canvas height.
	Top *uint64 `json:"Top,omitnil,omitempty" name:"Top"`

	// The X axis of the window’s top-left corner. Value range: [0, 1920]. The value cannot be larger than the canvas width.
	Left *uint64 `json:"Left,omitnil,omitempty" name:"Left"`

	// The relative width of the window. Value range: [0, 1920]. The sum of the values of this parameter and `Left` cannot exceed the canvas width.
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// The relative height of the window. Value range: [0, 1920]. The sum of the values of this parameter and `Top` cannot exceed the canvas height.
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`

	// The user ID (string) of the anchor whose video is shown in the window. If you do not set this parameter, anchors’ videos will be shown in their room entry sequence.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The degree of transparency of the canvas. Value range: [0, 255]. 0 means fully opaque, and 255 means fully transparent.
	Alpha *uint64 `json:"Alpha,omitnil,omitempty" name:"Alpha"`

	// 0: Stretch. In this mode, the image is stretched to fill the space available. The whole image is visible after scaling. However, if the original aspect ratio is different from the target, the image may be distorted.
	// 
	// 1: Crop (default). In this mode, if the original aspect ratio is different from the target, the image will be cropped according to the target before being stretched to fill the space available. The image will not be distorted.
	// 
	// 2: Blank. This mode stretches the image while keeping its original aspect ratio. If the original aspect ratio is different from the target, there may be blank spaces to the top and bottom or to the left and right of the window.
	// 
	// 3: Smart stretch. This mode is similar to the crop mode, except that it restricts cropping to 20% of the image’s width or height at most.
	RenderMode *uint64 `json:"RenderMode,omitnil,omitempty" name:"RenderMode"`

	// The type of the stream subscribed to.
	// 0: Primary stream (default)
	// 1: Substream
	MediaId *uint64 `json:"MediaId,omitnil,omitempty" name:"MediaId"`

	// The image layer. 0 is the default value and means the bottommost layer.
	ImageLayer *uint64 `json:"ImageLayer,omitnil,omitempty" name:"ImageLayer"`

	// The image url supports only jpg, png, and jpeg formats. the resolution limitation is no more than 2K, and the image size limit is no more than 5MB. note that the url must carry the format extension. the url supports only specific strings within the range of a-z, a-z, 0-9, '-', '.', '_', '~', ':', '/', '?', '#', '[', ']', '@', '!', '&', '(', ')', '*', '+', ',', '%', and '='.
	SubBackgroundImage *string `json:"SubBackgroundImage,omitnil,omitempty" name:"SubBackgroundImage"`
}

type MixLayoutParams struct {
	// Layout mode.
	// 1: floating layout.
	// 2: screen sharing layout.
	// 3: nine-grid layout.
	// 4: custom layout.
	// 
	// Floating layout: by default, the video footage of the first host who enters the room (or a specified host) fills the entire screen. other hosts' video images are arranged horizontally from the bottom-left corner in the room entry sequence, displayed as small pictures floating above the large screen. when the number of screens is less than or equal to 17, each line has 4 (4 x 4 arrangement). when the number of screens exceeds 17, the small pictures are rearranged with 5 per line (5 x 5 arrangement). a maximum of 25 screens are supported. if the user only sends audio, it still occupies a screen position.
	// 
	// Screen sharing layout: specifies a large screen position on the left side for one host (if not specified, the large screen position uses the background color). other hosts are arranged vertically on the right side from top to bottom. when the number of screens is less than 17, each column on the right supports up to 8 hosts, occupying a maximum of two columns. when the number of screens exceeds 17, hosts beyond the 17th are arranged horizontally starting from the bottom-left corner. a maximum of 25 screens is supported. if a host only sends audio, it still occupies a screen position.
	// 
	// Nine-Grid layout: automatically adjust the size of each frame based on the number of hosts. each host's frame size is the same, supporting up to 25 frames.
	// 
	// Custom layout: customize the layout of each host's video as needed in MixLayoutList.
	MixLayoutMode *uint64 `json:"MixLayoutMode,omitnil,omitempty" name:"MixLayoutMode"`

	// The custom layout details. This parameter is valid if `MixLayoutMode` is set to `4`. Up to 25 videos can be displayed.
	MixLayoutList []*MixLayout `json:"MixLayoutList,omitnil,omitempty" name:"MixLayoutList"`

	// The background color, which is a hexadecimal value (starting with "#", followed by the color value) converted from an 8-bit RGB value. For example, the RGB value of orange is `R:255 G:165 B:0`, and its hexadecimal value is `#FFA500`. The default color is black.
	BackGroundColor *string `json:"BackGroundColor,omitnil,omitempty" name:"BackGroundColor"`

	// The user whose video is displayed in the big window. This parameter is valid if `MixLayoutMode` is set to `1` (floating) or `2` (screen sharing). If it is left empty, the first anchor entering the room is displayed in the big window in the floating mode and the canvas background is displayed in the screen sharing mode.
	MaxResolutionUserId *string `json:"MaxResolutionUserId,omitnil,omitempty" name:"MaxResolutionUserId"`

	// The stream type.
	// 0: Primary stream (default)
	// 1: Substream (screen sharing stream)
	// This parameter specifies the type of the stream displayed in the big window. If it appears in `MixLayoutList`, it indicates the type of the stream of a specified user.
	MediaId *uint64 `json:"MediaId,omitnil,omitempty" name:"MediaId"`

	// The image url supports only jpg, png, and jpeg. the image resolution is limited to no more than 2K, and the image size limit is no more than 5MB. note that the url must carry the format extension, and only specific strings are supported in the url, including a-z, a-z, 0-9, '-', '.', '_', '~', ':', '/', '?', '#', '[', ']', '@', '!', '&', '(', ')', '*', '+', ',', '%', and '='.
	BackgroundImageUrl *string `json:"BackgroundImageUrl,omitnil,omitempty" name:"BackgroundImageUrl"`

	// Set to 1 to enable the placeholder image function, and 0 to disable it. default is 0. when enabled, the corresponding placeholder image can be displayed in the preset position if the user has no upload audio and video.
	PlaceHolderMode *uint64 `json:"PlaceHolderMode,omitnil,omitempty" name:"PlaceHolderMode"`

	// Handling solution when the background image aspect ratio is not the same, consistent with the RenderMode defined in MixLayoutList.
	BackgroundImageRenderMode *uint64 `json:"BackgroundImageRenderMode,omitnil,omitempty" name:"BackgroundImageRenderMode"`

	// Sub-Picture placeholder image url supports only jpg, png, jpeg. resolution limitation is no more than 2K. image size limit is no more than 5MB. note that the url must carry format extension and supports only specific string literals within the range of a-z a-z 0-9 '-', '.', '_', '~', ':', '/', '?', '#', '[', ']' '@', '!', '&', '(', ')', '*', '+', ',', '%', '='.
	DefaultSubBackgroundImage *string `json:"DefaultSubBackgroundImage,omitnil,omitempty" name:"DefaultSubBackgroundImage"`

	// The watermark layout. Up to 25 watermarks are supported.
	WaterMarkList []*WaterMark `json:"WaterMarkList,omitnil,omitempty" name:"WaterMarkList"`

	// When the aspect ratio of the background image does not match in the template layout, the handling solution is applied. the custom layout is disabled and aligns with the RenderMode defined in MixLayoutList.
	RenderMode *uint64 `json:"RenderMode,omitnil,omitempty" name:"RenderMode"`

	// This parameter is valid only if the screen sharing layout is used. If you set it to `1`, the large video window will appear on the right and the small window on the left. The default value is `0`.
	MaxResolutionUserAlign *uint64 `json:"MaxResolutionUserAlign,omitnil,omitempty" name:"MaxResolutionUserAlign"`

	// Controls whether audio users inside the room occupy the stream mixing layout. this takes effect only in mixed stream recording and template layout. true: represents that audio users do not occupy placeholders. false: represents that audio users occupy placeholders (false by default).
	PureAudioDisableLayout *bool `json:"PureAudioDisableLayout,omitnil,omitempty" name:"PureAudioDisableLayout"`
}

type MixTranscodeParams struct {
	// The video transcoding parameters for recording. If you set this parameter, you must specify all its fields. If you do not set it, the default will be used.
	VideoParams *VideoParams `json:"VideoParams,omitnil,omitempty" name:"VideoParams"`

	// The audio transcoding parameters for recording. If you set this parameter, you must specify all its fields. If you do not set it, the default will be used.
	AudioParams *AudioParams `json:"AudioParams,omitnil,omitempty" name:"AudioParams"`
}

type MixUserInfo struct {
	// User ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// If a dynamic layout is used, the value of this parameter should be the ID of the main room. If a custom layout is used, the value of this parameter should be the same as the room ID in `MixLayoutList`.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Room id type. 0 indicates integer room number. 1 indicates string room number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`
}

type ModerationParams struct {
	// Moderation task type. 1: audio slicing moderation; 2: video frame extraction moderation; 3: audio slicing moderation + video frame extraction moderation; 4: audio stream moderation; 5: audio stream moderation + video frame extraction moderation. The default value is 1. (Support from suppliers is required for stream moderation to take effect.)
	ModerationType *uint64 `json:"ModerationType,omitnil,omitempty" name:"ModerationType"`

	// Slicing is stopped automatically when there is no user (anchor) performing upstream push in the room for more than MaxIdleTime. Unit: seconds. Default value: 30 seconds. This value needs to be greater than or equal to 5 seconds and less than or equal to 1800 seconds (0.5 hours). Example value: 30.
	MaxIdleTime *uint64 `json:"MaxIdleTime,omitnil,omitempty" name:"MaxIdleTime"`

	// Audio slicing duration. Default value: 15s. Example value: 15.
	SliceAudio *uint64 `json:"SliceAudio,omitnil,omitempty" name:"SliceAudio"`

	// Interval for video frame extraction. Default value: 5s.
	SliceVideo *uint64 `json:"SliceVideo,omitnil,omitempty" name:"SliceVideo"`

	// Enumeration values for suppliers.
	// tianyu: Tencent Tianyu content security. (Valid values: 1: audio slicing moderation; 2: video frame extraction moderation; 3: audio-visual slicing moderation + video frame extraction moderation.)
	// ace: ACE content security. (Valid values: 1: audio slicing moderation; 2: video frame extraction moderation; 3: audio-visual slicing moderation + video frame extraction moderation.)
	// shumei: shumei moderation. (Valid values: 1: audio slicing moderation; 2: video frame extraction moderation; 3: audio-visual slicing moderation + video frame extraction moderation.)
	// Yidun: NetEase Yidun moderation. (Valid values: 1: audio slicing moderation; 2: video frame extraction moderation; 3: audio-visual slicing moderation + video frame extraction moderation.)
	ModerationSupplier *string `json:"ModerationSupplier,omitnil,omitempty" name:"ModerationSupplier"`

	// Configuration information required for submitting content to the third-party moderation supplier.
	ModerationSupplierParam *ModerationSupplierParam `json:"ModerationSupplierParam,omitnil,omitempty" name:"ModerationSupplierParam"`

	// Whether to save file. 0: not save by default; 1: save; 2 save the hit file.
	SaveModerationFile *uint64 `json:"SaveModerationFile,omitnil,omitempty" name:"SaveModerationFile"`

	// Whether to call back all moderation results: 
	// 0: call back all results by default; 
	// 1: only call back hit results.
	CallbackAllResults *uint64 `json:"CallbackAllResults,omitnil,omitempty" name:"CallbackAllResults"`

	// Specifies the allowlist or blocklist for the subscription stream.
	SubscribeStreamUserIds *SubscribeModerationUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`
}

type ModerationStorageParams struct {
	// Information about Tencent COS and third-party cloud storage accounts.
	CloudModerationStorage *CloudModerationStorage `json:"CloudModerationStorage,omitnil,omitempty" name:"CloudModerationStorage"`
}

type ModerationSupplierParam struct {
	// Moderation supplier account ID. For Tencent Tianyu, the value is not null; for NETEASE Yidun, the value is null.
	AppID *string `json:"AppID,omitnil,omitempty" name:"AppID"`

	// Moderation supplier key ID.
	SecretId *string `json:"SecretId,omitnil,omitempty" name:"SecretId"`

	// Moderation supplier key.
	SecretKey *string `json:"SecretKey,omitnil,omitempty" name:"SecretKey"`

	// Audio scenario. Policy ID or businessId.
	AudioBizType *string `json:"AudioBizType,omitnil,omitempty" name:"AudioBizType"`

	// Image scenario. Policy ID or businessId.
	ImageBizType *string `json:"ImageBizType,omitnil,omitempty" name:"ImageBizType"`
}

// Predefined struct for user
type ModifyCloudModerationRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Specifies the allowlist or blocklist for the subscription stream.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`
}

type ModifyCloudModerationRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Specifies the allowlist or blocklist for the subscription stream.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`
}

func (r *ModifyCloudModerationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCloudModerationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	delete(f, "SubscribeStreamUserIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCloudModerationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCloudModerationResponseParams struct {
	// Unique ID of the moderation task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyCloudModerationResponse struct {
	*tchttp.BaseResponse
	Response *ModifyCloudModerationResponseParams `json:"Response"`
}

func (r *ModifyCloudModerationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCloudModerationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCloudRecordingRequestParams struct {
	// The `SDKAppID` of the room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the recording task, which is returned after recording starts successfully.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The new stream mixing layout to use.
	MixLayoutParams *MixLayoutParams `json:"MixLayoutParams,omitnil,omitempty" name:"MixLayoutParams"`

	// The allowlist/blocklist for stream subscription.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`
}

type ModifyCloudRecordingRequest struct {
	*tchttp.BaseRequest
	
	// The `SDKAppID` of the room whose streams are recorded.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique ID of the recording task, which is returned after recording starts successfully.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The new stream mixing layout to use.
	MixLayoutParams *MixLayoutParams `json:"MixLayoutParams,omitnil,omitempty" name:"MixLayoutParams"`

	// The allowlist/blocklist for stream subscription.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`
}

func (r *ModifyCloudRecordingRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCloudRecordingRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	delete(f, "MixLayoutParams")
	delete(f, "SubscribeStreamUserIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCloudRecordingRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCloudRecordingResponseParams struct {
	// The task ID assigned by the recording service, which uniquely identifies a recording process and becomes invalid after a recording task ends.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyCloudRecordingResponse struct {
	*tchttp.BaseResponse
	Response *ModifyCloudRecordingResponseParams `json:"Response"`
}

func (r *ModifyCloudRecordingResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCloudRecordingResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCloudSliceTaskRequestParams struct {
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Specifies the allowlist or blocklist for the subscription stream.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`
}

type ModifyCloudSliceTaskRequest struct {
	*tchttp.BaseRequest
	
	// SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the TRTC room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Specifies the allowlist or blocklist for the subscription stream.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`
}

func (r *ModifyCloudSliceTaskRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCloudSliceTaskRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	delete(f, "SubscribeStreamUserIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCloudSliceTaskRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCloudSliceTaskResponseParams struct {
	// Unique ID of the slicing task, which is returned after the task is started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type ModifyCloudSliceTaskResponse struct {
	*tchttp.BaseResponse
	Response *ModifyCloudSliceTaskResponseParams `json:"Response"`
}

func (r *ModifyCloudSliceTaskResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifyCloudSliceTaskResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type PronunciationDict struct {

	Word *string `json:"Word,omitnil,omitempty" name:"Word"`


	Pronunciation *string `json:"Pronunciation,omitnil,omitempty" name:"Pronunciation"`
}

type QualityData struct {
	// The quality data.
	Content []*TimeValue `json:"Content,omitnil,omitempty" name:"Content"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The remote user ID. An empty string indicates that the data is upstream data.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PeerId *string `json:"PeerId,omitnil,omitempty" name:"PeerId"`

	// The data type.
	DataType *string `json:"DataType,omitnil,omitempty" name:"DataType"`
}

type RecognizeConfig struct {
	// Convert speech to text supported languages, "zh" chinese is selected by default.
	// 
	// You can unlock different languages by purchasing the "AI intelligent recognition duration package" or claiming the trial version of the monthly subscription package. 
	// 
	// Supported languages for different speech to text package versions are as follows:.
	// 
	// Basic language engine:.
	// -"zh": chinese (simplified).
	// 
	// **Standard language engine:**.
	// -"8k_zh_large": engine (large model version) for telecommunication. the current model supports chinese and other language recognition, has a large number of parameters, and features language model performance enhancement. it greatly improves recognition accuracy for telephone audio in various scenarios and chinese dialects.
	// -"16k_zh_large": large model engine for mandarin, chinese dialects, and english. the current model supports language recognition for chinese, english, and multiple chinese dialects. it has a large number of parameters and enhanced language model performance, targeting low-quality audio such as loud noise, strong echo, low voice volume, and voice from far away with greatly improved recognition accuracy.
	// -"16k_zh_en": chinese-english large model engine. the current model simultaneously supports chinese and english recognition, has a large number of parameters, and features language model performance enhancement. it greatly improves recognition accuracy for low-quality audio such as loud noise, strong echo, low voice volume, and voice from far away.
	// 
	// **Advanced language engine:**.
	// -"zh-dialect": chinese dialect.
	// -"zh-yue": cantonese in china.
	// -"Vi": "vietnamese.".
	// -"Ja": "japanese.".
	// -"Ko": "korean.".
	// -"id": "indonesian".
	// -"Th": thai.
	// -"pt": portuguese.
	// -"tr": "turkish.".
	// -"Ar": "arabic".
	// -"es": "spanish".
	// -"Hi": "hindi".
	// -"Fr": "french.".
	// -"ms": malay.
	// -"Fil": filipino.
	// -"de": german.
	// -`It`: italian.
	// -"Ru": russian.
	// -"sv": "swedish.".
	// -"Da": "danish.".
	// -"No": norwegian.
	// 
	// **Note**:.
	// If the language you need is not available, contact our technical staff.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`

	// **Fuzzy recognition is an advanced edition capacity, charged as advanced edition by default, and only supports filling in basic version and advanced edition language.**.
	// Note: does not support entering "zh-dialect".
	AlternativeLanguage []*string `json:"AlternativeLanguage,omitnil,omitempty" name:"AlternativeLanguage"`

	// Hot word list: this parameter is used for improving recognition accuracy. each hot word is limited to "term|weight", with no more than 30 characters (a maximum of 10 chinese characters) per term. weight ranges from 1 to 11 or 100, for example: "tencent cloud|5" or "ASR|11". hot word list limitation: multiple terms separated by commas, supports up to 300 hot words, for example: "tencent cloud|10, speech recognition|5, ASR|11".
	HotWordList *string `json:"HotWordList,omitnil,omitempty" name:"HotWordList"`

	// Specifies the time when automatic speech recognition (asr) vad is active. value range: 240-2000. default: 1000. unit: ms. a smaller value enables faster speech recognition sentence segmentation.
	VadSilenceTime *uint64 `json:"VadSilenceTime,omitnil,omitempty" name:"VadSilenceTime"`

	// The vad far-field voice suppression capacity (does not impact asr recognition performance) ranges from 0 to 3, with a default value of 0. recommended setting is 2 for better far-field voice suppression.
	VadLevel *uint64 `json:"VadLevel,omitnil,omitempty" name:"VadLevel"`
}

type RecordParams struct {
	// Recording mode:.
	// 1: single stream recording, record the audio and video of the subscribed UserId in the room separately, and upload the recording files to cloud storage.
	// 2: mixed-stream recording. mix the audio and video of the subscribed UserId in the room into an audio-video file and upload the recording file to cloud storage.
	RecordMode *uint64 `json:"RecordMode,omitnil,omitempty" name:"RecordMode"`

	// Recording stops automatically when there is no host inside the room for a duration exceeding MaxIdleTime. measurement unit: second. default value: 30 seconds. the value must be greater than or equal to 5 seconds and less than or equal to 86400 seconds (24 hours).
	MaxIdleTime *uint64 `json:"MaxIdleTime,omitnil,omitempty" name:"MaxIdleTime"`

	// Media stream type for recording.
	// 0: recording audio and video streams (default).
	// 1: record audio streams only.
	// 2: record video stream only.
	StreamType *uint64 `json:"StreamType,omitnil,omitempty" name:"StreamType"`

	// Specifies the allowlist or blocklist for the subscription stream.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`

	// Output file format (valid when stored in third-party storage such as COS). 0: (default) output file is in hls format. 1: output file format is hls+mp4. 2: output file format is hls+aac. 3: output file format is mp4. 4: output file format is aac.
	// 
	// This parameter is invalid when storing in VOD. when storing in VOD, set MediaType in TencentVod (https://www.tencentcloud.com/document/api/647/44055?from_cn_redirect=1#TencentVod).
	OutputFormat *uint64 `json:"OutputFormat,omitnil,omitempty" name:"OutputFormat"`

	// In single-stream recording mode, determine whether to merge the user's audio and video. 0: do not merge the audio and video of a stream (default). 1: merge the audio and video of a stream into one ts. in mixed-stream recording, this parameter is not required, and the audio and video are merged by default.
	AvMerge *uint64 `json:"AvMerge,omitnil,omitempty" name:"AvMerge"`

	// If the file format is aac or mp4, the system will automatically split the video file when the length limit is exceeded. measurement unit: minute. defaults to 1440 min (24h). value range: 1-1440. [single file limit is 2G. if file size exceeds 2G or recording duration exceeds 24h, the file will be automatically split.].
	// Hls format recording. this parameter is not effective.
	MaxMediaFileDuration *uint64 `json:"MaxMediaFileDuration,omitnil,omitempty" name:"MaxMediaFileDuration"`

	// Specify recording streams. 0: mainstream + auxiliary stream (default); 1: mainstream; 2: auxiliary stream.
	MediaId *uint64 `json:"MediaId,omitnil,omitempty" name:"MediaId"`

	// Specifies the type of frame to fill when the upstream video stream stops:
	// - 0: Fill with the last frame (freeze the last video frame)
	// - 1: Fill with black frames
	FillType *uint64 `json:"FillType,omitnil,omitempty" name:"FillType"`

	// Specifies whether the recording task subscribes to the stream published by the Mixed Stream Robot. 
	// 
	// - 1: Subscribe. 
	// - 0: Do not subscribe (default).
	// > Note: 
	// When this option is enabled, it is recommended to use the "Subscription Allowlist." Avoid subscribing to both the stream published by the Mixed Stream Robot and the streams published by the hosts simultaneously; otherwise, it will result in audio echoing (duplicate audio) in the recorded file.
	SubscribeAbility *uint64 `json:"SubscribeAbility,omitnil,omitempty" name:"SubscribeAbility"`
}

// Predefined struct for user
type RemoveUserByStrRoomIdRequestParams struct {
	// `SDKAppId` of TRTC
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// List of up to 10 users to be removed
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

type RemoveUserByStrRoomIdRequest struct {
	*tchttp.BaseRequest
	
	// `SDKAppId` of TRTC
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room ID
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// List of up to 10 users to be removed
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

func (r *RemoveUserByStrRoomIdRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RemoveUserByStrRoomIdRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "UserIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RemoveUserByStrRoomIdRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RemoveUserByStrRoomIdResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type RemoveUserByStrRoomIdResponse struct {
	*tchttp.BaseResponse
	Response *RemoveUserByStrRoomIdResponseParams `json:"Response"`
}

func (r *RemoveUserByStrRoomIdResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RemoveUserByStrRoomIdResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RemoveUserRequestParams struct {
	// `SDKAppId` of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room number.
	RoomId *uint64 `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// List of up to 10 users to be removed.
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

type RemoveUserRequest struct {
	*tchttp.BaseRequest
	
	// `SDKAppId` of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Room number.
	RoomId *uint64 `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// List of up to 10 users to be removed.
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

func (r *RemoveUserRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RemoveUserRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "UserIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RemoveUserRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RemoveUserResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type RemoveUserResponse struct {
	*tchttp.BaseResponse
	Response *RemoveUserResponseParams `json:"Response"`
}

func (r *RemoveUserResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *RemoveUserResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type RoomState struct {
	// The call ID, which uniquely identifies a call.
	CommId *string `json:"CommId,omitnil,omitempty" name:"CommId"`

	// The room ID.
	RoomString *string `json:"RoomString,omitnil,omitempty" name:"RoomString"`

	// The room creation time.
	CreateTime *uint64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// The room termination time.
	DestroyTime *uint64 `json:"DestroyTime,omitnil,omitempty" name:"DestroyTime"`

	// Whether the room is terminated.
	IsFinished *bool `json:"IsFinished,omitnil,omitempty" name:"IsFinished"`

	// The user ID of the room creator.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`
}

type RowValues struct {
	// Data value
	RowValue []*int64 `json:"RowValue,omitnil,omitempty" name:"RowValue"`
}

type STTConfig struct {
	// Convert speech to text supported languages, "zh" chinese is selected by default.
	// 
	// You can unlock different languages by purchasing the "AI intelligent recognition duration package" or claiming the trial version of the monthly subscription package. 
	// 
	// Supported languages for different speech to text package versions are as follows:.
	// 
	// Basic language engine:.
	// -"zh": chinese (simplified).
	// -`zh-TW`: chinese (traditional).
	// -"En": english.
	// -"16k_zh_edu": chinese education.
	// -"16k_zh_medical": medical chinese.
	// -"16k_zh_court": chinese court.
	// 
	// **Standard language engine:**.
	// -"8k_zh_large": engine (large model version) for telecommunication. the current model supports chinese and other language recognition, has a large number of parameters, and features language model performance enhancement. it greatly improves recognition accuracy for telephone audio in various scenarios and chinese dialects.
	// -"16k_zh_large": large model engine for mandarin, chinese dialects, and english. the current model supports language recognition for chinese, english, and multiple chinese dialects. it has a large number of parameters and enhanced language model performance, targeting low-quality audio such as loud noise, strong echo, low voice volume, and voice from far away with greatly improved recognition accuracy.
	// -"16k_multi_lang": multilingual large model engine. the current model simultaneously supports english, japanese, korean, arabic, filipino, french, hindi, indonesian, malay, portuguese, spanish, thai, turkish, vietnamese, and german. it achieves auto-identification of 15 languages at the sentence or paragraph level.
	// -"16k_zh_en": chinese-english large model engine. the current model supports chinese and english recognition at the same time, has a large number of parameters, and features language model performance enhancement. it greatly improves recognition accuracy against low-quality audio such as loud noise, echo, low voice volume, and voice from far away.
	// 
	// **Advanced language engine:**.
	// -"zh-dialect": chinese dialect.
	// -"zh-yue": cantonese in china.
	// -"Vi": "vietnamese.".
	// -"Ja": "japanese.".
	// -"Ko": "korean.".
	// -"id": "indonesian".
	// -"Th": thai.
	// -"pt": portuguese.
	// -"tr": "turkish.".
	// -"Ar": "arabic".
	// -"es": "spanish".
	// -"Hi": "hindi".
	// -"Fr": "french.".
	// -"ms": malay.
	// -"Fil": filipino.
	// -"de": german.
	// -`It`: italian.
	// -"Ru": russian.
	// -"sv": "swedish.".
	// -"Da": "danish.".
	// -"No": norwegian.
	// 
	// **Note**:.
	// If the language you need is not available, contact our technical staff.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`

	// **Fuzzy recognition is an advanced edition capacity, charged by default as the advanced edition.**.
	// Note: does not support entering "zh-dialect", "16k_zh_edu", "16k_zh_medical", "16k_zh_court", "8k_zh_large", "16k_zh_large", "16k_multi_lang", "16k_zh_en".
	AlternativeLanguage []*string `json:"AlternativeLanguage,omitnil,omitempty" name:"AlternativeLanguage"`

	// Custom parameter. contact for background usage.
	CustomParam *string `json:"CustomParam,omitnil,omitempty" name:"CustomParam"`

	// Specifies the time when automatic speech recognition (asr) vad is active. value range: 240-2000. default: 1000. unit: ms. a smaller value enables faster speech recognition sentence segmentation.
	VadSilenceTime *uint64 `json:"VadSilenceTime,omitnil,omitempty" name:"VadSilenceTime"`

	// The vad far-field voice suppression capacity (without impacting asr recognition performance) ranges from 0 to 5, with a default value of 0, indicating disabled far-field voice suppression. the recommended setting is 2 for better far-field voice suppression. in a noisy office environment, it can be set to 3, and in more noisy environments, 4 and 5 are available for use. note that a higher VadLevel may suppress single words as noise.
	VadLevel *uint64 `json:"VadLevel,omitnil,omitempty" name:"VadLevel"`
}

type ScaleInfomation struct {
	// Start time for each day
	Time *uint64 `json:"Time,omitnil,omitempty" name:"Time"`

	// The number of users. If a user enters a room multiple times, it will be counted as one user.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserNumber *uint64 `json:"UserNumber,omitnil,omitempty" name:"UserNumber"`

	// The number of room entries. Every time a user enters a room, it will be counted as one room entry.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserCount *uint64 `json:"UserCount,omitnil,omitempty" name:"UserCount"`

	// The total number of rooms of the application on a day.
	// Note: This field may return null, indicating that no valid values can be obtained.
	RoomNumbers *uint64 `json:"RoomNumbers,omitnil,omitempty" name:"RoomNumbers"`
}

type SeriesInfos struct {
	// Data columns
	Columns []*string `json:"Columns,omitnil,omitempty" name:"Columns"`

	// Data values
	Values []*RowValues `json:"Values,omitnil,omitempty" name:"Values"`
}

type ServerPushText struct {
	// Server push broadcast text.
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// Whether to allow the text to interrupt the robot's speaking.
	Interrupt *bool `json:"Interrupt,omitnil,omitempty" name:"Interrupt"`

	// Broadcast the text and automatically close the dialogue task.
	StopAfterPlay *bool `json:"StopAfterPlay,omitnil,omitempty" name:"StopAfterPlay"`

	// Server push broadcast audio.
	// Format description: audio must be mono, sampling rate must be consistent with the corresponding TTS sampling rate, and coded as a Base64 string.
	// Input rule: when the Audio field is provided, the system will not accept user-submitted input in the Text field. the system will play the Audio content in the Audio field directly.
	Audio *string `json:"Audio,omitnil,omitempty" name:"Audio"`

	// Defaults to 0. valid at that time only when Interrupt is false.
	// -0 means drop messages with Interrupt set to false during the occurrence of interaction.
	// -1 indicates that during the occurrence of an interaction, messages with Interrupt as false will not be dropped but cached, waiting to be processed when finished.
	// 
	// Note: if DropMode is 1, multiple messages can be cached. if an interruption occurs subsequently, the cache of messages will be cleared.
	DropMode *uint64 `json:"DropMode,omitnil,omitempty" name:"DropMode"`

	// The message priority of ServerPushText. 0 means interruptible, 1 means not interruptible. currently only support 0. if you need to input 1, submit a ticket to contact us to grant permission.
	// Note: after receiving a message with Priority=1, any other messages will be ignored (including messages with Priority=1) until the message processing of Priority=1 is complete. this field can be used together with the Interrupt and DropMode fields.
	// Example:.
	// -Priority=1, Interrupt=true, interrupts existing interaction and broadcasts immediately. the broadcast will not be interrupted during the process.
	// -Priority=1, Interrupt=false, DropMode=1. wait for the current interaction to complete before broadcasting. the broadcast will not be interrupted during the process.
	Priority *uint64 `json:"Priority,omitnil,omitempty" name:"Priority"`

	// Whether to add the text to the llm history context.
	AddHistory *bool `json:"AddHistory,omitnil,omitempty" name:"AddHistory"`

	// If filled, it will be bound to the subtitle and sent to the terminal. note that the content must be a json string.
	MetaInfo *string `json:"MetaInfo,omitnil,omitempty" name:"MetaInfo"`
}

// Predefined struct for user
type SetUserBlockedByStrRoomIdRequestParams struct {
	// The application ID.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The room ID (string).
	StrRoomId *string `json:"StrRoomId,omitnil,omitempty" name:"StrRoomId"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Controls the activation state of audio and video.
	// 0: Enable audio and video,
	// 1: Disable audio and video,
	// 2: Disable audio only,
	// 3: Disable video only.
	IsMute *uint64 `json:"IsMute,omitnil,omitempty" name:"IsMute"`
}

type SetUserBlockedByStrRoomIdRequest struct {
	*tchttp.BaseRequest
	
	// The application ID.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The room ID (string).
	StrRoomId *string `json:"StrRoomId,omitnil,omitempty" name:"StrRoomId"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Controls the activation state of audio and video.
	// 0: Enable audio and video,
	// 1: Disable audio and video,
	// 2: Disable audio only,
	// 3: Disable video only.
	IsMute *uint64 `json:"IsMute,omitnil,omitempty" name:"IsMute"`
}

func (r *SetUserBlockedByStrRoomIdRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SetUserBlockedByStrRoomIdRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "StrRoomId")
	delete(f, "UserId")
	delete(f, "IsMute")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SetUserBlockedByStrRoomIdRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SetUserBlockedByStrRoomIdResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SetUserBlockedByStrRoomIdResponse struct {
	*tchttp.BaseResponse
	Response *SetUserBlockedByStrRoomIdResponseParams `json:"Response"`
}

func (r *SetUserBlockedByStrRoomIdResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SetUserBlockedByStrRoomIdResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SetUserBlockedRequestParams struct {
	// The application ID.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The room ID (number).
	RoomId *uint64 `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Controls the activation state of audio and video.
	// 0: Enable audio and video,
	// 1: Disable audio and video,
	// 2: Disable audio only,
	// 3: Disable video only.
	IsMute *uint64 `json:"IsMute,omitnil,omitempty" name:"IsMute"`
}

type SetUserBlockedRequest struct {
	*tchttp.BaseRequest
	
	// The application ID.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The room ID (number).
	RoomId *uint64 `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Controls the activation state of audio and video.
	// 0: Enable audio and video,
	// 1: Disable audio and video,
	// 2: Disable audio only,
	// 3: Disable video only.
	IsMute *uint64 `json:"IsMute,omitnil,omitempty" name:"IsMute"`
}

func (r *SetUserBlockedRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SetUserBlockedRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "UserId")
	delete(f, "IsMute")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SetUserBlockedRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type SetUserBlockedResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type SetUserBlockedResponse struct {
	*tchttp.BaseResponse
	Response *SetUserBlockedResponseParams `json:"Response"`
}

func (r *SetUserBlockedResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *SetUserBlockedResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type SingleSubscribeParams struct {
	// The stream information.
	UserMediaStream *UserMediaStream `json:"UserMediaStream,omitnil,omitempty" name:"UserMediaStream"`
}

type SliceParams struct {
	// Slicing task type.
	// 1: audio slicing;
	// 2: video frame extraction;
	// 3: audio/video slicing + video frame extraction.
	// Example value: 1.
	SliceType *uint64 `json:"SliceType,omitnil,omitempty" name:"SliceType"`

	// Recording is stopped automatically when there is no anchor in the room for more than MaxIdleTime. Unit: seconds. Default value: 30 seconds. This value needs to be greater than or equal to 5 seconds and less than or equal to 86,400 seconds (24 hours).
	// Example value: 30.
	MaxIdleTime *uint64 `json:"MaxIdleTime,omitnil,omitempty" name:"MaxIdleTime"`

	// Audio slicing duration. Default value: 15s. Example value: 15.
	SliceAudio *uint64 `json:"SliceAudio,omitnil,omitempty" name:"SliceAudio"`

	// Interval for video frame extraction. Default value: 5s. Example value: 5.
	SliceVideo *uint64 `json:"SliceVideo,omitnil,omitempty" name:"SliceVideo"`

	// Specifies the allowlist or blocklist for the subscription stream.
	SubscribeStreamUserIds *SubscribeStreamUserIds `json:"SubscribeStreamUserIds,omitnil,omitempty" name:"SubscribeStreamUserIds"`

	// Depreciated. The callback URL is configured in the console.
	SliceCallbackUrl *string `json:"SliceCallbackUrl,omitnil,omitempty" name:"SliceCallbackUrl"`
}

type SliceStorageParams struct {
	// Information about Tencent COS and third-party cloud storage accounts.
	CloudSliceStorage *CloudSliceStorage `json:"CloudSliceStorage,omitnil,omitempty" name:"CloudSliceStorage"`
}

// Predefined struct for user
type StartAIConversationRequestParams struct {
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#SdkAppId) of TRTC, which is the same as the SdkAppId used by the room with transcription task enabled.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#RoomId) of TRTC refers to the room number that enables the conversation task.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Bot parameters.
	AgentConfig *AgentConfig `json:"AgentConfig,omitnil,omitempty" name:"AgentConfig"`

	// The unique Id passed by the caller can be used to prevent duplication of task initiation on the client side as well as query task status through this field.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Type of the TRTC room number. 0 indicates digit room number, 1 indicates string room number. by default if left blank, it is digit room number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Speech recognition configuration.
	STTConfig *STTConfig `json:"STTConfig,omitnil,omitempty" name:"STTConfig"`

	// Required parameter, LLM configuration. it must comply with the openai standard and be a JSON String. example: <pre> { <br> &emsp;  "LLMType": "Model type",  // String required, for example: "openai" <br> &emsp;  "Model": "your Model name", // String required, specifies the Model to be used<br>    "APIKey": "your LLM API key", // String required <br> &emsp;  "APIUrl": "https://API.xxx.com/chat/completions", // String required, the URL for LLM API access<br> &emsp;  "History": 10, // Integer optional, sets the context rounds for LLM, default value is 0, maximum value is 50<br> &emsp;  "HistoryMode": 1, // Integer optional, 1 means the content in the LLM context will synchronize with playback audio, and text corresponding to unplayed audio will not appear in the context. 0 means no synchronization, default value is 0<br> &emsp;  "Streaming": true // Boolean optional, whether to use Streaming<br> &emsp;} </pre>.
	LLMConfig *string `json:"LLMConfig,omitnil,omitempty" name:"LLMConfig"`

	// Required parameter, TTS configuration. it is a JSON string: TRTC TTS configuration as follows:.  
	// <pre> { <br> &emsp;  "TTSType": "flow",  // [required] fixed to this value.  <br> &emsp;  "VoiceId": "v-female-R2s4N9qJ", // [required] premium timbre ID/clone voice ID. selectable different timbres. refer to the following timbre list for ID library.   <br> &emsp;  "Model": "flow_01_turbo", // (required) current default TTS Model version (corresponds to Flash version).  <br> &emsp;  "Speed": 1.0,    // [option] adjust the speaking rate. value range [0.5-2.0]. default 1.0. the larger the value, the faster the speech speed. <br> &emsp;  "Volume": 1.0,   // [optional] adjust volume [0,10]. default: 1.0. a larger value indicates higher volume.   <br> &emsp;  "Pitch": 0,   // [optional] adjusts the tone [-12,12]. default value is 0. among them, 0 outputs the original voice type. <br> &emsp;  "Language": "zh" // [optional] recommend filling in. currently supports filling in chinese: zh, english: en, cantonese dialect: yue. parameter reference: (ISO 639-1). <br> &emsp;} </pre>
	TTSConfig *string `json:"TTSConfig,omitnil,omitempty" name:"TTSConfig"`

	// Experimental parameter, contact for background usage.
	ExperimentalParams *string `json:"ExperimentalParams,omitnil,omitempty" name:"ExperimentalParams"`
}

type StartAIConversationRequest struct {
	*tchttp.BaseRequest
	
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#SdkAppId) of TRTC, which is the same as the SdkAppId used by the room with transcription task enabled.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#RoomId) of TRTC refers to the room number that enables the conversation task.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Bot parameters.
	AgentConfig *AgentConfig `json:"AgentConfig,omitnil,omitempty" name:"AgentConfig"`

	// The unique Id passed by the caller can be used to prevent duplication of task initiation on the client side as well as query task status through this field.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Type of the TRTC room number. 0 indicates digit room number, 1 indicates string room number. by default if left blank, it is digit room number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Speech recognition configuration.
	STTConfig *STTConfig `json:"STTConfig,omitnil,omitempty" name:"STTConfig"`

	// Required parameter, LLM configuration. it must comply with the openai standard and be a JSON String. example: <pre> { <br> &emsp;  "LLMType": "Model type",  // String required, for example: "openai" <br> &emsp;  "Model": "your Model name", // String required, specifies the Model to be used<br>    "APIKey": "your LLM API key", // String required <br> &emsp;  "APIUrl": "https://API.xxx.com/chat/completions", // String required, the URL for LLM API access<br> &emsp;  "History": 10, // Integer optional, sets the context rounds for LLM, default value is 0, maximum value is 50<br> &emsp;  "HistoryMode": 1, // Integer optional, 1 means the content in the LLM context will synchronize with playback audio, and text corresponding to unplayed audio will not appear in the context. 0 means no synchronization, default value is 0<br> &emsp;  "Streaming": true // Boolean optional, whether to use Streaming<br> &emsp;} </pre>.
	LLMConfig *string `json:"LLMConfig,omitnil,omitempty" name:"LLMConfig"`

	// Required parameter, TTS configuration. it is a JSON string: TRTC TTS configuration as follows:.  
	// <pre> { <br> &emsp;  "TTSType": "flow",  // [required] fixed to this value.  <br> &emsp;  "VoiceId": "v-female-R2s4N9qJ", // [required] premium timbre ID/clone voice ID. selectable different timbres. refer to the following timbre list for ID library.   <br> &emsp;  "Model": "flow_01_turbo", // (required) current default TTS Model version (corresponds to Flash version).  <br> &emsp;  "Speed": 1.0,    // [option] adjust the speaking rate. value range [0.5-2.0]. default 1.0. the larger the value, the faster the speech speed. <br> &emsp;  "Volume": 1.0,   // [optional] adjust volume [0,10]. default: 1.0. a larger value indicates higher volume.   <br> &emsp;  "Pitch": 0,   // [optional] adjusts the tone [-12,12]. default value is 0. among them, 0 outputs the original voice type. <br> &emsp;  "Language": "zh" // [optional] recommend filling in. currently supports filling in chinese: zh, english: en, cantonese dialect: yue. parameter reference: (ISO 639-1). <br> &emsp;} </pre>
	TTSConfig *string `json:"TTSConfig,omitnil,omitempty" name:"TTSConfig"`

	// Experimental parameter, contact for background usage.
	ExperimentalParams *string `json:"ExperimentalParams,omitnil,omitempty" name:"ExperimentalParams"`
}

func (r *StartAIConversationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartAIConversationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "AgentConfig")
	delete(f, "SessionId")
	delete(f, "RoomIdType")
	delete(f, "STTConfig")
	delete(f, "LLMConfig")
	delete(f, "TTSConfig")
	delete(f, "ExperimentalParams")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StartAIConversationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartAIConversationResponseParams struct {
	// For uniquely identifying a conversation task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StartAIConversationResponse struct {
	*tchttp.BaseResponse
	Response *StartAIConversationResponseParams `json:"Response"`
}

func (r *StartAIConversationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartAIConversationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartAITranscriptionRequestParams struct {
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#SdkAppId) of TRTC, which is the same as the SdkAppId used by the room with transcription task enabled.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#RoomId) of TRTC refers to the room number that enables the transcription task.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Transcription robot parameters.
	TranscriptionParams *TranscriptionParams `json:"TranscriptionParams,omitnil,omitempty" name:"TranscriptionParams"`

	// Unique Id passed by the caller, used by the server for task deduplication. duplicate tasks will fail to initiate. the server uses SdkAppId+RoomId+RoomIdType+RobotUserId for deduplication by default. if SessionId is provided, it will also be used for deduplication.
	// Note:.
	// When TranscriptionMode is 0, ensure only one task is initiated in a room. if multiple tasks are initiated, robots will subscribe to each other. unless the task is stopped proactively, it will timeout exit after 10 hours. in such cases, it is advisable to fill in SessionId to ensure subsequent repeated tasks fail.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Type of the TRTC room number. 0 indicates digit room number, 1 indicates string room number. by default if left blank, it is digit room number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Speech recognition configuration.
	RecognizeConfig *RecognizeConfig `json:"RecognizeConfig,omitnil,omitempty" name:"RecognizeConfig"`

	// Translate configuration details.
	TranslationConfig *TranslationConfig `json:"TranslationConfig,omitnil,omitempty" name:"TranslationConfig"`
}

type StartAITranscriptionRequest struct {
	*tchttp.BaseRequest
	
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#SdkAppId) of TRTC, which is the same as the SdkAppId used by the room with transcription task enabled.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// [RoomId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#RoomId) of TRTC refers to the room number that enables the transcription task.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Transcription robot parameters.
	TranscriptionParams *TranscriptionParams `json:"TranscriptionParams,omitnil,omitempty" name:"TranscriptionParams"`

	// Unique Id passed by the caller, used by the server for task deduplication. duplicate tasks will fail to initiate. the server uses SdkAppId+RoomId+RoomIdType+RobotUserId for deduplication by default. if SessionId is provided, it will also be used for deduplication.
	// Note:.
	// When TranscriptionMode is 0, ensure only one task is initiated in a room. if multiple tasks are initiated, robots will subscribe to each other. unless the task is stopped proactively, it will timeout exit after 10 hours. in such cases, it is advisable to fill in SessionId to ensure subsequent repeated tasks fail.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Type of the TRTC room number. 0 indicates digit room number, 1 indicates string room number. by default if left blank, it is digit room number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Speech recognition configuration.
	RecognizeConfig *RecognizeConfig `json:"RecognizeConfig,omitnil,omitempty" name:"RecognizeConfig"`

	// Translate configuration details.
	TranslationConfig *TranslationConfig `json:"TranslationConfig,omitnil,omitempty" name:"TranslationConfig"`
}

func (r *StartAITranscriptionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartAITranscriptionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "TranscriptionParams")
	delete(f, "SessionId")
	delete(f, "RoomIdType")
	delete(f, "RecognizeConfig")
	delete(f, "TranslationConfig")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StartAITranscriptionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartAITranscriptionResponseParams struct {
	// For unique identification of transcription task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StartAITranscriptionResponse struct {
	*tchttp.BaseResponse
	Response *StartAITranscriptionResponseParams `json:"Response"`
}

func (r *StartAITranscriptionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartAITranscriptionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartPublishCdnStreamRequestParams struct {
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#SdkAppId) of TRTC, which is the same as the SdkAppId corresponding to the relayed room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Main room information RoomId, the RoomId corresponding to the TRTC room for relay.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Main room information RoomType must be the same as the RoomId type of the relayed room. 0 indicates integer type room id, and 1 indicates string room number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Relay service bot parameters for joining TRTC room.
	AgentParams *AgentParams `json:"AgentParams,omitnil,omitempty" name:"AgentParams"`

	// Whether to transcode. 0 indicates no need to transcode, 1 indicates requirement to transcode. whether to charge transcoding fee is determined by the WithTranscoding parameter. WithTranscoding set to 0 means bypass forwarding and no transcoding costs will be incurred. WithTranscoding set to 1 means mixed-stream relay and transcoding costs will be charged.
	// Note: transcoding is required for stream mixing, and this parameter must be set to 1.
	WithTranscoding *uint64 `json:"WithTranscoding,omitnil,omitempty" name:"WithTranscoding"`

	// Audio encoding parameters for stream retransmission. since audio must be transcoded (no transcoding costs will be incurred), this field is required when starting a task.
	AudioParams *McuAudioParams `json:"AudioParams,omitnil,omitempty" name:"AudioParams"`

	// Video encoding parameters for the relay stream. leave blank for audio-only relay.
	VideoParams *McuVideoParams `json:"VideoParams,omitnil,omitempty" name:"VideoParams"`

	// The user uplink parameters require single stream bypass forwarding. WithTranscoding needs to be set to 0 for single stream bypass forwarding.
	SingleSubscribeParams *SingleSubscribeParams `json:"SingleSubscribeParams,omitnil,omitempty" name:"SingleSubscribeParams"`

	// The CDN parameters for relay push support up to 10 push urls for a task. there must be one pushback room parameter.
	PublishCdnParams []*McuPublishCdnParam `json:"PublishCdnParams,omitnil,omitempty" name:"PublishCdnParams"`

	// Stream mixing SEI parameter.
	SeiParams *McuSeiParams `json:"SeiParams,omitnil,omitempty" name:"SeiParams"`

	// Push back room information. a task supports up to 10 push rooms, and there must be one forward CDN parameter. note: use SDK version 10.4 or higher to push room. if you need assistance, contact tencent cloud technical support.
	FeedBackRoomParams []*McuFeedBackRoomParams `json:"FeedBackRoomParams,omitnil,omitempty" name:"FeedBackRoomParams"`

	// Relay recording parameters. refer to the reference document (https://www.tencentcloud.com/document/product/647/111748?from_cn_redirect=1).
	RecordParams *McuRecordParams `json:"RecordParams,omitnil,omitempty" name:"RecordParams"`
}

type StartPublishCdnStreamRequest struct {
	*tchttp.BaseRequest
	
	// [SdkAppId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#SdkAppId) of TRTC, which is the same as the SdkAppId corresponding to the relayed room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Main room information RoomId, the RoomId corresponding to the TRTC room for relay.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Main room information RoomType must be the same as the RoomId type of the relayed room. 0 indicates integer type room id, and 1 indicates string room number.
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// Relay service bot parameters for joining TRTC room.
	AgentParams *AgentParams `json:"AgentParams,omitnil,omitempty" name:"AgentParams"`

	// Whether to transcode. 0 indicates no need to transcode, 1 indicates requirement to transcode. whether to charge transcoding fee is determined by the WithTranscoding parameter. WithTranscoding set to 0 means bypass forwarding and no transcoding costs will be incurred. WithTranscoding set to 1 means mixed-stream relay and transcoding costs will be charged.
	// Note: transcoding is required for stream mixing, and this parameter must be set to 1.
	WithTranscoding *uint64 `json:"WithTranscoding,omitnil,omitempty" name:"WithTranscoding"`

	// Audio encoding parameters for stream retransmission. since audio must be transcoded (no transcoding costs will be incurred), this field is required when starting a task.
	AudioParams *McuAudioParams `json:"AudioParams,omitnil,omitempty" name:"AudioParams"`

	// Video encoding parameters for the relay stream. leave blank for audio-only relay.
	VideoParams *McuVideoParams `json:"VideoParams,omitnil,omitempty" name:"VideoParams"`

	// The user uplink parameters require single stream bypass forwarding. WithTranscoding needs to be set to 0 for single stream bypass forwarding.
	SingleSubscribeParams *SingleSubscribeParams `json:"SingleSubscribeParams,omitnil,omitempty" name:"SingleSubscribeParams"`

	// The CDN parameters for relay push support up to 10 push urls for a task. there must be one pushback room parameter.
	PublishCdnParams []*McuPublishCdnParam `json:"PublishCdnParams,omitnil,omitempty" name:"PublishCdnParams"`

	// Stream mixing SEI parameter.
	SeiParams *McuSeiParams `json:"SeiParams,omitnil,omitempty" name:"SeiParams"`

	// Push back room information. a task supports up to 10 push rooms, and there must be one forward CDN parameter. note: use SDK version 10.4 or higher to push room. if you need assistance, contact tencent cloud technical support.
	FeedBackRoomParams []*McuFeedBackRoomParams `json:"FeedBackRoomParams,omitnil,omitempty" name:"FeedBackRoomParams"`

	// Relay recording parameters. refer to the reference document (https://www.tencentcloud.com/document/product/647/111748?from_cn_redirect=1).
	RecordParams *McuRecordParams `json:"RecordParams,omitnil,omitempty" name:"RecordParams"`
}

func (r *StartPublishCdnStreamRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartPublishCdnStreamRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "RoomIdType")
	delete(f, "AgentParams")
	delete(f, "WithTranscoding")
	delete(f, "AudioParams")
	delete(f, "VideoParams")
	delete(f, "SingleSubscribeParams")
	delete(f, "PublishCdnParams")
	delete(f, "SeiParams")
	delete(f, "FeedBackRoomParams")
	delete(f, "RecordParams")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StartPublishCdnStreamRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartPublishCdnStreamResponseParams struct {
	// Used to uniquely identify the forwarding task, generated by the tencent cloud server. you need to carry the TaskID parameter for follow-up updates and to stop the request.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StartPublishCdnStreamResponse struct {
	*tchttp.BaseResponse
	Response *StartPublishCdnStreamResponseParams `json:"Response"`
}

func (r *StartPublishCdnStreamResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartPublishCdnStreamResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartStreamIngestRequestParams struct {
	// TRTC's [SdkAppId](https://intl.cloud.tencent.com/document/product/647/46351?from_cn_redirect=1#sdkappid), the same as the SdkAppId corresponding to the Record room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// TRTC's [RoomId](https://intl.cloud.tencent.com/document/product/647/46351?from_cn_redirect=1#roomid), the RoomId corresponding to the Record TRTC room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Type of TRTC RoomId. [*Note] Must be the same as the RoomId type corresponding to the Record room: 0: String type RoomId 1: 32-bit Integer type RoomId (default)
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// UserId of the Pull stream Relay Robot, used to enter the room and initiate the Pull stream Relay Task.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// UserSig corresponding to the Pull stream Relay Robot UserId, i.e., UserId and UserSig are equivalent to the Robot's Login password for entering the room. For the specific Calculation method, please refer to the TRTC [UserSig](https://www.tencentcloud.com/zh/document/product/647/39074) Scheme.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// The Url of the media resource.
	StreamUrl *string `json:"StreamUrl,omitnil,omitempty" name:"StreamUrl"`

	// TRTC room permission Encryption ticket, only needed when advanced permission control is enabled in the Console. After enabling advanced permission control in the TRTC Console, TRTC's backend service system will verify a so-called [PrivateMapKey] 'Permission ticket', which contains an encrypted RoomId and an encrypted 'Permission bit list'. Since PrivateMapKey contains RoomId, providing only UserSig without PrivateMapKey does not allow entry into the specified room.
	PrivateMapKey *string `json:"PrivateMapKey,omitnil,omitempty" name:"PrivateMapKey"`

	// Video Codec Parameters. Optional, if not filled, Keep original stream Parameters.
	//
	// Deprecated: VideoEncodeParams is deprecated.
	VideoEncodeParams *VideoEncodeParams `json:"VideoEncodeParams,omitnil,omitempty" name:"VideoEncodeParams"`

	// Audio Codec Parameters. Optional, if not filled, Keep original stream Parameters.
	//
	// Deprecated: AudioEncodeParams is deprecated.
	AudioEncodeParams *AudioEncodeParams `json:"AudioEncodeParams,omitnil,omitempty" name:"AudioEncodeParams"`

	// 	
	// Source URL. Example value: https://a.b/test.mp4
	//
	// Deprecated: SourceUrl is deprecated.
	SourceUrl []*string `json:"SourceUrl,omitnil,omitempty" name:"SourceUrl"`

	// Specify that the video plays from a specific second timestamp.
	SeekSecond *int64 `json:"SeekSecond,omitnil,omitempty" name:"SeekSecond"`

	// Enable auto relay to cdn, please make sure that this feature has been enabled in the console.
	AutoPush *bool `json:"AutoPush,omitnil,omitempty" name:"AutoPush"`

	// Loop playback count, value range: [-1, 1000], default is 1 time. - 0 is an invalid value - -1 is for loop playback, task termination requires actively calling the stop interface or setting MaxDuration.
	RepeatNum *int64 `json:"RepeatNum,omitnil,omitempty" name:"RepeatNum"`

	// Loop playback maximum duration, only effective when RepeatNum is set to -1, valid value range: [1, 10080], unit: minutes
	MaxDuration *int64 `json:"MaxDuration,omitnil,omitempty" name:"MaxDuration"`

	// Volume. Valid value range: [0, 100], default value is 100, indicating the original volume.
	Volume *uint64 `json:"Volume,omitnil,omitempty" name:"Volume"`
}

type StartStreamIngestRequest struct {
	*tchttp.BaseRequest
	
	// TRTC's [SdkAppId](https://intl.cloud.tencent.com/document/product/647/46351?from_cn_redirect=1#sdkappid), the same as the SdkAppId corresponding to the Record room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// TRTC's [RoomId](https://intl.cloud.tencent.com/document/product/647/46351?from_cn_redirect=1#roomid), the RoomId corresponding to the Record TRTC room.
	RoomId *string `json:"RoomId,omitnil,omitempty" name:"RoomId"`

	// Type of TRTC RoomId. [*Note] Must be the same as the RoomId type corresponding to the Record room: 0: String type RoomId 1: 32-bit Integer type RoomId (default)
	RoomIdType *uint64 `json:"RoomIdType,omitnil,omitempty" name:"RoomIdType"`

	// UserId of the Pull stream Relay Robot, used to enter the room and initiate the Pull stream Relay Task.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// UserSig corresponding to the Pull stream Relay Robot UserId, i.e., UserId and UserSig are equivalent to the Robot's Login password for entering the room. For the specific Calculation method, please refer to the TRTC [UserSig](https://www.tencentcloud.com/zh/document/product/647/39074) Scheme.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// The Url of the media resource.
	StreamUrl *string `json:"StreamUrl,omitnil,omitempty" name:"StreamUrl"`

	// TRTC room permission Encryption ticket, only needed when advanced permission control is enabled in the Console. After enabling advanced permission control in the TRTC Console, TRTC's backend service system will verify a so-called [PrivateMapKey] 'Permission ticket', which contains an encrypted RoomId and an encrypted 'Permission bit list'. Since PrivateMapKey contains RoomId, providing only UserSig without PrivateMapKey does not allow entry into the specified room.
	PrivateMapKey *string `json:"PrivateMapKey,omitnil,omitempty" name:"PrivateMapKey"`

	// Video Codec Parameters. Optional, if not filled, Keep original stream Parameters.
	VideoEncodeParams *VideoEncodeParams `json:"VideoEncodeParams,omitnil,omitempty" name:"VideoEncodeParams"`

	// Audio Codec Parameters. Optional, if not filled, Keep original stream Parameters.
	AudioEncodeParams *AudioEncodeParams `json:"AudioEncodeParams,omitnil,omitempty" name:"AudioEncodeParams"`

	// 	
	// Source URL. Example value: https://a.b/test.mp4
	SourceUrl []*string `json:"SourceUrl,omitnil,omitempty" name:"SourceUrl"`

	// Specify that the video plays from a specific second timestamp.
	SeekSecond *int64 `json:"SeekSecond,omitnil,omitempty" name:"SeekSecond"`

	// Enable auto relay to cdn, please make sure that this feature has been enabled in the console.
	AutoPush *bool `json:"AutoPush,omitnil,omitempty" name:"AutoPush"`

	// Loop playback count, value range: [-1, 1000], default is 1 time. - 0 is an invalid value - -1 is for loop playback, task termination requires actively calling the stop interface or setting MaxDuration.
	RepeatNum *int64 `json:"RepeatNum,omitnil,omitempty" name:"RepeatNum"`

	// Loop playback maximum duration, only effective when RepeatNum is set to -1, valid value range: [1, 10080], unit: minutes
	MaxDuration *int64 `json:"MaxDuration,omitnil,omitempty" name:"MaxDuration"`

	// Volume. Valid value range: [0, 100], default value is 100, indicating the original volume.
	Volume *uint64 `json:"Volume,omitnil,omitempty" name:"Volume"`
}

func (r *StartStreamIngestRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartStreamIngestRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "RoomId")
	delete(f, "RoomIdType")
	delete(f, "UserId")
	delete(f, "UserSig")
	delete(f, "StreamUrl")
	delete(f, "PrivateMapKey")
	delete(f, "VideoEncodeParams")
	delete(f, "AudioEncodeParams")
	delete(f, "SourceUrl")
	delete(f, "SeekSecond")
	delete(f, "AutoPush")
	delete(f, "RepeatNum")
	delete(f, "MaxDuration")
	delete(f, "Volume")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StartStreamIngestRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartStreamIngestResponseParams struct {
	// The Task ID of the Pull stream Relay. The Task ID is a unique identifier for a Pull stream Relay lifecycle process, and it loses its meaning when the task ends. The Task ID needs to be saved by the business as a parameter for the next operation on this task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StartStreamIngestResponse struct {
	*tchttp.BaseResponse
	Response *StartStreamIngestResponseParams `json:"Response"`
}

func (r *StartStreamIngestResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartStreamIngestResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartWebRecordRequestParams struct {
	// [Required] webpage URL that needs to be recorded.
	RecordUrl *string `json:"RecordUrl,omitnil,omitempty" name:"RecordUrl"`

	// [Required] cloud storage related parameters. currently supports tencent cloud object storage as well as VOD. no support for third-party cloud storage. the storage format of the output file is only supported for hls or mp4.
	StorageParams *StorageParams `json:"StorageParams,omitnil,omitempty" name:"StorageParams"`

	// [Required] the SdkAppId of TRTC.
	SdkAppId *int64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Maximum recording duration limit in seconds. valid values [1800, 86400]. default 86400s (24 hr).
	MaxDurationLimit *uint64 `json:"MaxDurationLimit,omitnil,omitempty" name:"MaxDurationLimit"`

	// Page recording video parameter.
	WebRecordVideoParams *WebRecordVideoParams `json:"WebRecordVideoParams,omitnil,omitempty" name:"WebRecordVideoParams"`

	// When sensitive to repetition tasks, pay attention to this value: to avoid triggering tasks repeatedly in a short time frame, which may lead to task duplication.
	// Import the recording RecordId to identify the task, less than 32 bytes. if carrying RecordId initiates start recording requests more than twice, only one task will start up, and the second will report error FailedOperation.TaskExist. note that when StartWebRecord call fails instead of FailedOperation.TaskExist error, change RecordId and re-initiate the request.
	RecordId *string `json:"RecordId,omitnil,omitempty" name:"RecordId"`

	// If you want to push stream to CDN, you can configure parameters in PublishCdnParams.N. it supports streaming simultaneously to up to 10 CDN addresses. if the relay address is tencent cloud CDN, set IsTencentCdn to 1.
	PublishCdnParams []*McuPublishCdnParam `json:"PublishCdnParams,omitnil,omitempty" name:"PublishCdnParams"`

	// Timeout period for recording page resource loading, unit: second. default value is 0, which must be greater than or equal to 0 and less than or equal to 60. do not set this parameter when page loading timeout detection is disabled for the recording page.
	ReadyTimeout *uint64 `json:"ReadyTimeout,omitnil,omitempty" name:"ReadyTimeout"`

	// Render the mobile mode parameter. do not set this parameter when not preparing to render the mobile mode webpage.
	EmulateMobileParams *EmulateMobileParams `json:"EmulateMobileParams,omitnil,omitempty" name:"EmulateMobileParams"`
}

type StartWebRecordRequest struct {
	*tchttp.BaseRequest
	
	// [Required] webpage URL that needs to be recorded.
	RecordUrl *string `json:"RecordUrl,omitnil,omitempty" name:"RecordUrl"`

	// [Required] cloud storage related parameters. currently supports tencent cloud object storage as well as VOD. no support for third-party cloud storage. the storage format of the output file is only supported for hls or mp4.
	StorageParams *StorageParams `json:"StorageParams,omitnil,omitempty" name:"StorageParams"`

	// [Required] the SdkAppId of TRTC.
	SdkAppId *int64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Maximum recording duration limit in seconds. valid values [1800, 86400]. default 86400s (24 hr).
	MaxDurationLimit *uint64 `json:"MaxDurationLimit,omitnil,omitempty" name:"MaxDurationLimit"`

	// Page recording video parameter.
	WebRecordVideoParams *WebRecordVideoParams `json:"WebRecordVideoParams,omitnil,omitempty" name:"WebRecordVideoParams"`

	// When sensitive to repetition tasks, pay attention to this value: to avoid triggering tasks repeatedly in a short time frame, which may lead to task duplication.
	// Import the recording RecordId to identify the task, less than 32 bytes. if carrying RecordId initiates start recording requests more than twice, only one task will start up, and the second will report error FailedOperation.TaskExist. note that when StartWebRecord call fails instead of FailedOperation.TaskExist error, change RecordId and re-initiate the request.
	RecordId *string `json:"RecordId,omitnil,omitempty" name:"RecordId"`

	// If you want to push stream to CDN, you can configure parameters in PublishCdnParams.N. it supports streaming simultaneously to up to 10 CDN addresses. if the relay address is tencent cloud CDN, set IsTencentCdn to 1.
	PublishCdnParams []*McuPublishCdnParam `json:"PublishCdnParams,omitnil,omitempty" name:"PublishCdnParams"`

	// Timeout period for recording page resource loading, unit: second. default value is 0, which must be greater than or equal to 0 and less than or equal to 60. do not set this parameter when page loading timeout detection is disabled for the recording page.
	ReadyTimeout *uint64 `json:"ReadyTimeout,omitnil,omitempty" name:"ReadyTimeout"`

	// Render the mobile mode parameter. do not set this parameter when not preparing to render the mobile mode webpage.
	EmulateMobileParams *EmulateMobileParams `json:"EmulateMobileParams,omitnil,omitempty" name:"EmulateMobileParams"`
}

func (r *StartWebRecordRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartWebRecordRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RecordUrl")
	delete(f, "StorageParams")
	delete(f, "SdkAppId")
	delete(f, "MaxDurationLimit")
	delete(f, "WebRecordVideoParams")
	delete(f, "RecordId")
	delete(f, "PublishCdnParams")
	delete(f, "ReadyTimeout")
	delete(f, "EmulateMobileParams")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StartWebRecordRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StartWebRecordResponseParams struct {
	// Unique Id of the recording task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StartWebRecordResponse struct {
	*tchttp.BaseResponse
	Response *StartWebRecordResponseParams `json:"Response"`
}

func (r *StartWebRecordResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StartWebRecordResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopAIConversationRequestParams struct {
	// Task Unique ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type StopAIConversationRequest struct {
	*tchttp.BaseRequest
	
	// Task Unique ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *StopAIConversationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopAIConversationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StopAIConversationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopAIConversationResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StopAIConversationResponse struct {
	*tchttp.BaseResponse
	Response *StopAIConversationResponseParams `json:"Response"`
}

func (r *StopAIConversationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopAIConversationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopAITranscriptionRequestParams struct {
	// Uniquely identifies a transcription task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type StopAITranscriptionRequest struct {
	*tchttp.BaseRequest
	
	// Uniquely identifies a transcription task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *StopAITranscriptionRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopAITranscriptionRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StopAITranscriptionRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopAITranscriptionResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StopAITranscriptionResponse struct {
	*tchttp.BaseResponse
	Response *StopAITranscriptionResponseParams `json:"Response"`
}

func (r *StopAITranscriptionResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopAITranscriptionResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopPublishCdnStreamRequestParams struct {
	// The [SDKAppID](https://intl.cloud.tencent.com/document/product/647/37714) of the TRTC room whose streams are relayed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type StopPublishCdnStreamRequest struct {
	*tchttp.BaseRequest
	
	// The [SDKAppID](https://intl.cloud.tencent.com/document/product/647/37714) of the TRTC room whose streams are relayed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *StopPublishCdnStreamRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopPublishCdnStreamRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StopPublishCdnStreamRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopPublishCdnStreamResponseParams struct {
	// The task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StopPublishCdnStreamResponse struct {
	*tchttp.BaseResponse
	Response *StopPublishCdnStreamResponseParams `json:"Response"`
}

func (r *StopPublishCdnStreamResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopPublishCdnStreamResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopStreamIngestRequestParams struct {
	// The SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the task's room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Task ID, which will be returned after the task is successfully started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type StopStreamIngestRequest struct {
	*tchttp.BaseRequest
	
	// The SDKAppId of TRTC, which is the same as the SDKAppId corresponding to the task's room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Task ID, which will be returned after the task is successfully started.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *StopStreamIngestRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopStreamIngestRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StopStreamIngestRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopStreamIngestResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StopStreamIngestResponse struct {
	*tchttp.BaseResponse
	Response *StopStreamIngestResponseParams `json:"Response"`
}

func (r *StopStreamIngestResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopStreamIngestResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopWebRecordRequestParams struct {
	// The ID of the task that needs to be stopped
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type StopWebRecordRequest struct {
	*tchttp.BaseRequest
	
	// The ID of the task that needs to be stopped
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

func (r *StopWebRecordRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopWebRecordRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StopWebRecordRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type StopWebRecordResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type StopWebRecordResponse struct {
	*tchttp.BaseResponse
	Response *StopWebRecordResponseParams `json:"Response"`
}

func (r *StopWebRecordResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *StopWebRecordResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type StorageFile struct {
	// The user whose stream is recorded into the file. In the mixed-stream recording mode, this parameter will be empty.
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The filename.
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`

	// The type of the media recorded.
	// video
	// audio
	// audio_video
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	TrackType *string `json:"TrackType,omitnil,omitempty" name:"TrackType"`

	// The start time (Unix timestamp) of the recording file.
	BeginTimeStamp *uint64 `json:"BeginTimeStamp,omitnil,omitempty" name:"BeginTimeStamp"`
}

type StorageParams struct {
	// The account information for third-party storage. Please note that if you save files to COS, a recording-to-COS fee will be incurred. For details, see the document "Billing of On-Cloud Recording". If you save files to VOD, there won't be such a fee.
	CloudStorage *CloudStorage `json:"CloudStorage,omitnil,omitempty" name:"CloudStorage"`

	// The account information for VOD storage.
	CloudVod *CloudVod `json:"CloudVod,omitnil,omitempty" name:"CloudVod"`
}

type SubscribeModerationUserIds struct {
	// Subscription audio stream allowlist. It specifies which UserIds' audio streams to subscribe to, for example, ["1", "2", "3"] indicates subscriptions to the audio streams of UserId 1, 2, and 3; ["1.*$"] indicates subscription to audio streams with UserId prefixes starting with 1. If this parameter is left unspecified, all audio streams in the room are subscribed to by default. The number of users in the subscription list should not exceed 32.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubscribeAudioUserIds []*string `json:"SubscribeAudioUserIds,omitnil,omitempty" name:"SubscribeAudioUserIds"`

	// Subscription audio stream blocklist. It specifies which UserIds' audio streams not to subscribe to, for example, ["1", "2", "3"] indicates that the audio streams of UserId 1, 2, and 3 are not subscribed to; ["1.*$"] indicates that audio streams with UserId prefixes starting with 1 are not subscribed to. If this parameter is left unspecified, all audio streams in the room are subscribed to by default. The number of users in the subscription list should not exceed 32.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UnSubscribeAudioUserIds []*string `json:"UnSubscribeAudioUserIds,omitnil,omitempty" name:"UnSubscribeAudioUserIds"`

	// Subscription video stream allowlist. It specifies which UserIds' video streams to subscribe to, for example, ["1", "2", "3"] indicates subscriptions to the video streams of UserId 1, 2, and 3; ["1.*$"] indicates subscription to video streams with UserId prefixes starting with 1. If this parameter is left unspecified, all video streams in the room are subscribed to by default. The number of users in the subscription list should not exceed 32.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubscribeVideoUserIds []*string `json:"SubscribeVideoUserIds,omitnil,omitempty" name:"SubscribeVideoUserIds"`

	// Subscription video stream blocklist. It specifies which UserIds' video streams not to subscribe to, for example, ["1", "2", "3"] indicates that the video streams of UserId 1, 2, and 3 are not subscribed to; ["1.*$"] indicates that video streams with UserId prefixes starting with 1 are not subscribed to. If this parameter is left unspecified, all video streams in the room are subscribed to by default. The number of users in the subscription list should not exceed 32.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UnSubscribeVideoUserIds []*string `json:"UnSubscribeVideoUserIds,omitnil,omitempty" name:"UnSubscribeVideoUserIds"`
}

type SubscribeStreamUserIds struct {
	// The allowlist for audio subscription. For example, `["1", "2", "3"]` means to only subscribe to the audios of users 1, 2, and 3, and ["1.*$"] means to only subscribe to the audios of users whose ID prefix is `1`. If this parameter is left empty, the audios of all anchors in the room will be received. The array can contain at most 32 elements.
	SubscribeAudioUserIds []*string `json:"SubscribeAudioUserIds,omitnil,omitempty" name:"SubscribeAudioUserIds"`

	// The blocklist for audio subscription. For example, `["1", "2", "3"]` means to not subscribe to the audios of users 1, 2, and 3, and `["1.*$"]` means to not subscribe to users whose ID prefix is `1`. If this parameter is left empty, the audios of all anchors in the room will be received. The array can contain at most 32 elements.
	UnSubscribeAudioUserIds []*string `json:"UnSubscribeAudioUserIds,omitnil,omitempty" name:"UnSubscribeAudioUserIds"`

	// The allowlist for video subscription. For example, `["1", "2", "3"]` means to only subscribe to the videos of users 1, 2, and 3, and `["1.*$"]` means to only subscribe to the videos of users whose ID prefix is `1`. If this parameter is left empty, the videos of all anchors in the room will be received. The array can contain at most 32 elements.
	SubscribeVideoUserIds []*string `json:"SubscribeVideoUserIds,omitnil,omitempty" name:"SubscribeVideoUserIds"`

	// The blocklist for video subscription. For example, `["1", "2", "3"]` means to not subscribe to the videos of users 1, 2, and 3, and `["1.*$"]` means to not subscribe to the videos of users whose ID prefix is `1`. If this parameter is left empty, the videos of all anchors in the room will be received. The array can contain at most 32 elements.
	UnSubscribeVideoUserIds []*string `json:"UnSubscribeVideoUserIds,omitnil,omitempty" name:"UnSubscribeVideoUserIds"`
}

type TRTCDataResult struct {
	// StatementID value, fixed at 0 for Monitoring Dashboard.
	StatementID *int64 `json:"StatementID,omitnil,omitempty" name:"StatementID"`

	// Query result data, returned in Columns-Values format.
	Series []*SeriesInfos `json:"Series,omitnil,omitempty" name:"Series"`

	// Total value, fixed at 1 for Monitoring Dashboard.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`
}

type TTSConfig struct {
	// Voice type ID.
	VoiceId *string `json:"VoiceId,omitnil,omitempty" name:"VoiceId"`

	// TTS model: flow_01_turbo is selected by default. options: [flow_01_turbo, flow_01_ex].
	Model *string `json:"Model,omitnil,omitempty" name:"Model"`

	// Speaking rate. value range: 0.5-2.0. default: 1.0.
	Speed *float64 `json:"Speed,omitnil,omitempty" name:"Speed"`

	// Value range: (0, 10]. default value: 1.0.
	Volume *float64 `json:"Volume,omitnil,omitempty" name:"Volume"`
}

type TencentVod struct {
	// Subsequent media task processing operations allow automatic task initiation after media upload is completed. the parameter value is the task flow template name. VOD (video on demand) supports creating task flow templates and template naming.
	Procedure *string `json:"Procedure,omitnil,omitempty" name:"Procedure"`

	// Media file expiry time is the absolute expiration time from the current system time. to save for one day, enter "86400". to retain permanently, enter "0". the default is permanent preservation.
	ExpireTime *uint64 `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Specify the upload park, applicable only to the user with special requirement for upload region.
	StorageRegion *string `json:"StorageRegion,omitnil,omitempty" name:"StorageRegion"`

	// Category ID is used to categorize and manage media. you can create a category and obtain the category ID through the create category api.
	// The default value is 0, indicating other categories.
	ClassId *uint64 `json:"ClassId,omitnil,omitempty" name:"ClassId"`

	// Subapplication ID for video-on-demand (vod). if you need to access resources belonging to a subapplication, fill in this field with the subapplication ID. otherwise, this field is not required.
	SubAppId *uint64 `json:"SubAppId,omitnil,omitempty" name:"SubAppId"`

	// Task flow context, passed through when task complete.
	SessionContext *string `json:"SessionContext,omitnil,omitempty" name:"SessionContext"`

	// Upload context, passed through on upload completion callback.
	SourceContext *string `json:"SourceContext,omitnil,omitempty" name:"SourceContext"`

	// The recording file format type uploaded to the vod platform. valid values: 0: mp4 (default), 1: hls, 2: aac (valid at that time when StreamType=1 for audio-only recording).
	// 3: hls+mp4, 4: hls+aac (valid at that time when StreamType=1 is audio-only recording).
	MediaType *uint64 `json:"MediaType,omitnil,omitempty" name:"MediaType"`

	// Only supports API recording upload to vod. this parameter indicates you can customize the recording file name prefix. [length limit: 64 bytes, only allows a combination of uppercase and lowercase letters (a-zA-Z), numbers (0-9), underline, and hyphen]. the prefix is separated from the automatically generated recording file name by `__UserDefine_u_`.
	UserDefineRecordId *string `json:"UserDefineRecordId,omitnil,omitempty" name:"UserDefineRecordId"`
}

type Terminology struct {
	// Source terminology.
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// Terminology translation result.
	Target *string `json:"Target,omitnil,omitempty" name:"Target"`
}

// Predefined struct for user
type TextToSpeechRequestParams struct {
	// Text to be converted to speech. length range: [1, 255].
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// Audio configuration for text-to-speech.
	Voice *Voice `json:"Voice,omitnil,omitempty" name:"Voice"`

	// Specifies the SdkAppId of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Specifies the output audio format for text-to-speech.
	AudioFormat *AudioFormat `json:"AudioFormat,omitnil,omitempty" name:"AudioFormat"`

	// API key for TTS.
	//
	// Deprecated: APIKey is deprecated.
	APIKey *string `json:"APIKey,omitnil,omitempty" name:"APIKey"`

	// TTS model, current fixed value: flow_01_turbo.
	Model *string `json:"Model,omitnil,omitempty" name:"Model"`

	// Language to be synthesised (ISO 639-1). supports zh (chinese), en (english), yue (cantonese), ja (japanese), and ko (korean). defaults to auto-identification.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`


	PronunciationDict []*PronunciationDict `json:"PronunciationDict,omitnil,omitempty" name:"PronunciationDict"`


	AlignmentMode *uint64 `json:"AlignmentMode,omitnil,omitempty" name:"AlignmentMode"`
}

type TextToSpeechRequest struct {
	*tchttp.BaseRequest
	
	// Text to be converted to speech. length range: [1, 255].
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// Audio configuration for text-to-speech.
	Voice *Voice `json:"Voice,omitnil,omitempty" name:"Voice"`

	// Specifies the SdkAppId of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Specifies the output audio format for text-to-speech.
	AudioFormat *AudioFormat `json:"AudioFormat,omitnil,omitempty" name:"AudioFormat"`

	// API key for TTS.
	APIKey *string `json:"APIKey,omitnil,omitempty" name:"APIKey"`

	// TTS model, current fixed value: flow_01_turbo.
	Model *string `json:"Model,omitnil,omitempty" name:"Model"`

	// Language to be synthesised (ISO 639-1). supports zh (chinese), en (english), yue (cantonese), ja (japanese), and ko (korean). defaults to auto-identification.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`

	PronunciationDict []*PronunciationDict `json:"PronunciationDict,omitnil,omitempty" name:"PronunciationDict"`

	AlignmentMode *uint64 `json:"AlignmentMode,omitnil,omitempty" name:"AlignmentMode"`
}

func (r *TextToSpeechRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *TextToSpeechRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Text")
	delete(f, "Voice")
	delete(f, "SdkAppId")
	delete(f, "AudioFormat")
	delete(f, "APIKey")
	delete(f, "Model")
	delete(f, "Language")
	delete(f, "PronunciationDict")
	delete(f, "AlignmentMode")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "TextToSpeechRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type TextToSpeechResponseParams struct {
	// Base64-Encoded audio data.
	Audio *string `json:"Audio,omitnil,omitempty" name:"Audio"`


	Alignments []*AlignmentItem `json:"Alignments,omitnil,omitempty" name:"Alignments"`


	TotalDurationMs *uint64 `json:"TotalDurationMs,omitnil,omitempty" name:"TotalDurationMs"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type TextToSpeechResponse struct {
	*tchttp.BaseResponse
	Response *TextToSpeechResponseParams `json:"Response"`
}

func (r *TextToSpeechResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *TextToSpeechResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type TextToSpeechSSERequestParams struct {
	// Text to be converted to speech. length range: [1, 255].
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// Audio configuration for text-to-speech.
	Voice *Voice `json:"Voice,omitnil,omitempty" name:"Voice"`

	// Specifies the SdkAppId of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Specifies the output audio format for text-to-speech.
	AudioFormat *AudioFormat `json:"AudioFormat,omitnil,omitempty" name:"AudioFormat"`

	// API key for TTS.
	//
	// Deprecated: APIKey is deprecated.
	APIKey *string `json:"APIKey,omitnil,omitempty" name:"APIKey"`

	// TTS model, current fixed value: flow_01_turbo.
	Model *string `json:"Model,omitnil,omitempty" name:"Model"`

	// Language to be synthesised (ISO 639-1). supports zh (chinese), en (english), yue (cantonese), ja (japanese), and ko (korean). defaults to auto-identification.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`


	PronunciationDict []*PronunciationDict `json:"PronunciationDict,omitnil,omitempty" name:"PronunciationDict"`


	AlignmentMode *uint64 `json:"AlignmentMode,omitnil,omitempty" name:"AlignmentMode"`
}

type TextToSpeechSSERequest struct {
	*tchttp.BaseRequest
	
	// Text to be converted to speech. length range: [1, 255].
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// Audio configuration for text-to-speech.
	Voice *Voice `json:"Voice,omitnil,omitempty" name:"Voice"`

	// Specifies the SdkAppId of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Specifies the output audio format for text-to-speech.
	AudioFormat *AudioFormat `json:"AudioFormat,omitnil,omitempty" name:"AudioFormat"`

	// API key for TTS.
	APIKey *string `json:"APIKey,omitnil,omitempty" name:"APIKey"`

	// TTS model, current fixed value: flow_01_turbo.
	Model *string `json:"Model,omitnil,omitempty" name:"Model"`

	// Language to be synthesised (ISO 639-1). supports zh (chinese), en (english), yue (cantonese), ja (japanese), and ko (korean). defaults to auto-identification.
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`

	PronunciationDict []*PronunciationDict `json:"PronunciationDict,omitnil,omitempty" name:"PronunciationDict"`

	AlignmentMode *uint64 `json:"AlignmentMode,omitnil,omitempty" name:"AlignmentMode"`
}

func (r *TextToSpeechSSERequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *TextToSpeechSSERequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Text")
	delete(f, "Voice")
	delete(f, "SdkAppId")
	delete(f, "AudioFormat")
	delete(f, "APIKey")
	delete(f, "Model")
	delete(f, "Language")
	delete(f, "PronunciationDict")
	delete(f, "AlignmentMode")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "TextToSpeechSSERequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type TextToSpeechSSEResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. As a streaming response API, when the request is successfully completed, the RequestId will be placed in the Header "X-TC-RequestId" of the HTTP response.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type TextToSpeechSSEResponse struct {
	tchttp.BaseSSEResponse `json:"-"`
	Response *TextToSpeechSSEResponseParams `json:"Response"`
}

func (r *TextToSpeechSSEResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *TextToSpeechSSEResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type TimeValue struct {
	// The UNIX timestamp (seconds), such as `1590065877`.
	Time *uint64 `json:"Time,omitnil,omitempty" name:"Time"`

	// The metric value. For example, if the video capturing frame rate (`bigvCapFps`) at the time `1590065877` is `0`, the value of this parameter will be `0`.
	Value *float64 `json:"Value,omitnil,omitempty" name:"Value"`
}

type TranscriptionParam struct {
	// [UserId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#userid) used by the transcription service in the TRTC room. Note that this userId cannot duplicate those already used by other TRTC or transcription services etc. You may use the room ID as part of the user identification.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// User signature for the transcription service to join a TRTC room. The signature verification corresponding to the current UserId serves as the login password. For specific details, see TRTC solution for calculating [UserSig](https://intl.cloud.tencent.com/zh/document/product/647/38104).
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// Allowlist of user IDs whose audio will be transcribed.
	// Specifies which anchor audio streams to transcribe when the service starts. If left empty or omitted, audio from all anchors will be transcribed. If one or more values are provided, only audio from the specified anchors will be transcribed.
	// 
	// > Note: If a user ID appears in both the `SubscribeList` and `UnSubscribeList`, the `UnSubscribeList` takes precedence.
	SubscribeList []*TranscriptionUserInfoParams `json:"SubscribeList,omitnil,omitempty" name:"SubscribeList"`

	// Blocklist of user IDs whose audio will be excluded from transcription. 
	// Leave empty or omit to disable the blocklist. Provide specific values to exclude the specified anchors' audio from transcription.
	UnSubscribeList []*TranscriptionUserInfoParams `json:"UnSubscribeList,omitnil,omitempty" name:"UnSubscribeList"`

	// Maximum idle duration before the transcription task is automatically stopped, in seconds.
	// If all anchors being transcribed continuously leave the TRTC room or switch to the audience role for longer than this value, the transcription task stops automatically.
	// - Default: 30
	// - Range: 5 - 86400 (24 hours)
	MaxIdleTime *uint64 `json:"MaxIdleTime,omitnil,omitempty" name:"MaxIdleTime"`

	// Controls whether the custom data channel is enabled. Accepted values: 0 (disabled) or 1 (enabled). Defaults to 0 if omitted.
	SendCustomMode *uint64 `json:"SendCustomMode,omitnil,omitempty" name:"SendCustomMode"`
}

type TranscriptionParams struct {
	// The transcription robot's UserId is used to enter the room and trigger a transcription task. note that this UserId cannot be the same as the host or audience [UserId](https://www.tencentcloud.com/document/product/647/46351?from_cn_redirect=1#UserId) in the current room. if multiple transcription tasks are initiated in a room, the robot's UserId must also be unique to avoid interrupting the previous task. ensure the transcription robot's UserId is unique in the room.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Verification signature corresponding to the transcription bot's UserId, namely, the UserId and UserSig serve as the login password for the transcription bot to enter the room. for specific calculation methods, see TRTC solution for calculating.
	UserSig *string `json:"UserSig,omitnil,omitempty" name:"UserSig"`

	// After all push users exit the room and exceed MaxIdleTime seconds, the backend automation shuts down the transcription task. default value is 60s.
	MaxIdleTime *uint64 `json:"MaxIdleTime,omitnil,omitempty" name:"MaxIdleTime"`

	// 1 means the robot subscribes to the stream of an individual, and 0 means the robot subscribes to the stream of the entire room. if left empty, it defaults to subscribing to the stream of the entire room.
	TranscriptionMode *uint64 `json:"TranscriptionMode,omitnil,omitempty" name:"TranscriptionMode"`

	// Required when TranscriptionMode is 1, the robot only pulls streams from this userid and ignores other users in the room.
	TargetUserId *string `json:"TargetUserId,omitnil,omitempty" name:"TargetUserId"`

	// Voiceprint configuration.
	VoicePrint *VoicePrint `json:"VoicePrint,omitnil,omitempty" name:"VoicePrint"`

	// Semantic sentence segmentation detection.
	TurnDetection *TurnDetection `json:"TurnDetection,omitnil,omitempty" name:"TurnDetection"`
}

type TranscriptionUserInfoParams struct {
	// User ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`
}

type TranslationConfig struct {
	// Target language for translation, target language list (ISO 639-1).
	TargetLanguages []*string `json:"TargetLanguages,omitnil,omitempty" name:"TargetLanguages"`

	// 1: text translation only 2: speech simultaneous interpretation.
	Mode *uint64 `json:"Mode,omitnil,omitempty" name:"Mode"`

	// Speech simultaneous interpretation configuration. when enabling simultaneous interpretation, transmission is required.
	TTSConfig *TTSConfig `json:"TTSConfig,omitnil,omitempty" name:"TTSConfig"`

	// Translation terminology collection.
	Terminology []*Terminology `json:"Terminology,omitnil,omitempty" name:"Terminology"`
}

type TranslationParam struct {
	// Target language for translation. Example: ["en", "ja"].
	// 
	// Supported target languages:
	// 
	// - <code>"zh"</code>: Chinese
	// - <code>"en"</code>: English
	// - <code>"vi"</code>: Vietnamese
	// - <code>"ja"</code>: Japanese
	// - <code>"ko"</code>: Korean
	// - <code>"id"</code>: Indonesian
	// - <code>"th"</code>: Thai
	// - <code>"pt"</code>: Portuguese
	// - <code>"ar"</code>: Arabic
	// - <code>"es"</code>: Spanish
	// - <code>"fr"</code>: French
	// - <code>"ms"</code>: Malay
	// - <code>"de"</code>: German
	// - <code>"it"</code>: Italian
	// - <code>"ru"</code>: Russian
	TargetLang []*string `json:"TargetLang,omitnil,omitempty" name:"TargetLang"`
}

type TrtcUsage struct {
	// The time point in the format of `YYYY-MM-DD HH:mm:ss`. If more than one day is queried, `HH:mm:ss` is `00:00:00`.
	TimeKey *string `json:"TimeKey,omitnil,omitempty" name:"TimeKey"`

	// The usage (minutes). Each element of this parameter corresponds to an element of `UsageKey` in the order they are listed.
	UsageValue []*float64 `json:"UsageValue,omitnil,omitempty" name:"UsageValue"`
}

type TurnDetection struct {
	// This parameter is valid only when TurnDetectionMode is 3, indicating the sensitivity of sentence segmentation.
	// 
	// 
	// Feature description: determines whether the user has finished speaking to separate the audio.
	// 
	// 
	// Optional: "low" | "medium" | "high" | "auto".
	// 
	// 
	// auto is the default value, same as medium.
	// low will give users sufficient time to speak.
	// high will perform audio chunking as soon as possible.
	// 
	// 
	// If you wish the model to respond more frequently in conversation mode, you can set SemanticEagerness to high.
	// If you wish the AI to wait a moment when the user pauses, set SemanticEagerness to low.
	// Regardless of the mode, it will eventually split and send to a large model for reply.
	SemanticEagerness *string `json:"SemanticEagerness,omitnil,omitempty" name:"SemanticEagerness"`
}

// Predefined struct for user
type UpdateAIConversationRequestParams struct {
	// Task Unique ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// If you do not fill in the form, no update will be performed. Welcome message from the robot
	WelcomeMessage *string `json:"WelcomeMessage,omitnil,omitempty" name:"WelcomeMessage"`

	// If not filled in, no update will be performed. Intelligent interruption mode, 0 means the server automatically interrupts, 1 means the server does not interrupt, and the client sends an interrupt signal to interrupt
	InterruptMode *uint64 `json:"InterruptMode,omitnil,omitempty" name:"InterruptMode"`

	// If not filled in, no update will be performed. Used when InterruptMode is 0, the unit is milliseconds, and the default is 500ms. It means that the server will interrupt when it detects a voice that lasts for InterruptSpeechDuration milliseconds.
	InterruptSpeechDuration *uint64 `json:"InterruptSpeechDuration,omitnil,omitempty" name:"InterruptSpeechDuration"`

	// If not filled in, no update will be performed. For LLM configuration, see the StartAIConversation API for details.
	LLMConfig *string `json:"LLMConfig,omitnil,omitempty" name:"LLMConfig"`

	// If not filled in, no update will be performed. For TTS configuration, see the StartAIConversation API for details.
	TTSConfig *string `json:"TTSConfig,omitnil,omitempty" name:"TTSConfig"`
}

type UpdateAIConversationRequest struct {
	*tchttp.BaseRequest
	
	// Task Unique ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// If you do not fill in the form, no update will be performed. Welcome message from the robot
	WelcomeMessage *string `json:"WelcomeMessage,omitnil,omitempty" name:"WelcomeMessage"`

	// If not filled in, no update will be performed. Intelligent interruption mode, 0 means the server automatically interrupts, 1 means the server does not interrupt, and the client sends an interrupt signal to interrupt
	InterruptMode *uint64 `json:"InterruptMode,omitnil,omitempty" name:"InterruptMode"`

	// If not filled in, no update will be performed. Used when InterruptMode is 0, the unit is milliseconds, and the default is 500ms. It means that the server will interrupt when it detects a voice that lasts for InterruptSpeechDuration milliseconds.
	InterruptSpeechDuration *uint64 `json:"InterruptSpeechDuration,omitnil,omitempty" name:"InterruptSpeechDuration"`

	// If not filled in, no update will be performed. For LLM configuration, see the StartAIConversation API for details.
	LLMConfig *string `json:"LLMConfig,omitnil,omitempty" name:"LLMConfig"`

	// If not filled in, no update will be performed. For TTS configuration, see the StartAIConversation API for details.
	TTSConfig *string `json:"TTSConfig,omitnil,omitempty" name:"TTSConfig"`
}

func (r *UpdateAIConversationRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateAIConversationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TaskId")
	delete(f, "WelcomeMessage")
	delete(f, "InterruptMode")
	delete(f, "InterruptSpeechDuration")
	delete(f, "LLMConfig")
	delete(f, "TTSConfig")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdateAIConversationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type UpdateAIConversationResponseParams struct {
	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type UpdateAIConversationResponse struct {
	*tchttp.BaseResponse
	Response *UpdateAIConversationResponseParams `json:"Response"`
}

func (r *UpdateAIConversationResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateAIConversationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type UpdatePublishCdnStreamRequestParams struct {
	// The [SDKAppID](https://intl.cloud.tencent.com/document/product/647/37714) of the TRTC room whose streams are relayed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The sequence of a request. This parameter ensures the requests to change the parameters of the same relaying task are in the correct order. It increases each time a new request is made.
	SequenceNumber *uint64 `json:"SequenceNumber,omitnil,omitempty" name:"SequenceNumber"`

	// Whether to transcode the streams. 0: No; 1: Yes.
	WithTranscoding *uint64 `json:"WithTranscoding,omitnil,omitempty" name:"WithTranscoding"`

	// Pass this parameter to change the users whose audios are mixed. If you do not pass this parameter, no changes will be made.
	AudioParams *McuAudioParams `json:"AudioParams,omitnil,omitempty" name:"AudioParams"`

	// Pass this parameter to change video parameters other than the codec, including the video layout, background image, background color, and watermark information. This parameter is valid only if streams are transcoded. If you do not pass it, no changes will be made.
	VideoParams *McuVideoParams `json:"VideoParams,omitnil,omitempty" name:"VideoParams"`

	// Pass this parameter to change the single stream that is relayed. This parameter is valid only if streams are not transcoded. If you do not pass this parameter, no changes will be made.
	SingleSubscribeParams *SingleSubscribeParams `json:"SingleSubscribeParams,omitnil,omitempty" name:"SingleSubscribeParams"`

	// Pass this parameter to change the CDNs to relay to. If you do not pass this parameter, no changes will be made.
	PublishCdnParams []*McuPublishCdnParam `json:"PublishCdnParams,omitnil,omitempty" name:"PublishCdnParams"`

	// The stream mixing SEI parameters.
	SeiParams *McuSeiParams `json:"SeiParams,omitnil,omitempty" name:"SeiParams"`

	// The information of the room to which streams are relayed.
	FeedBackRoomParams []*McuFeedBackRoomParams `json:"FeedBackRoomParams,omitnil,omitempty" name:"FeedBackRoomParams"`
}

type UpdatePublishCdnStreamRequest struct {
	*tchttp.BaseRequest
	
	// The [SDKAppID](https://intl.cloud.tencent.com/document/product/647/37714) of the TRTC room whose streams are relayed.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The sequence of a request. This parameter ensures the requests to change the parameters of the same relaying task are in the correct order. It increases each time a new request is made.
	SequenceNumber *uint64 `json:"SequenceNumber,omitnil,omitempty" name:"SequenceNumber"`

	// Whether to transcode the streams. 0: No; 1: Yes.
	WithTranscoding *uint64 `json:"WithTranscoding,omitnil,omitempty" name:"WithTranscoding"`

	// Pass this parameter to change the users whose audios are mixed. If you do not pass this parameter, no changes will be made.
	AudioParams *McuAudioParams `json:"AudioParams,omitnil,omitempty" name:"AudioParams"`

	// Pass this parameter to change video parameters other than the codec, including the video layout, background image, background color, and watermark information. This parameter is valid only if streams are transcoded. If you do not pass it, no changes will be made.
	VideoParams *McuVideoParams `json:"VideoParams,omitnil,omitempty" name:"VideoParams"`

	// Pass this parameter to change the single stream that is relayed. This parameter is valid only if streams are not transcoded. If you do not pass this parameter, no changes will be made.
	SingleSubscribeParams *SingleSubscribeParams `json:"SingleSubscribeParams,omitnil,omitempty" name:"SingleSubscribeParams"`

	// Pass this parameter to change the CDNs to relay to. If you do not pass this parameter, no changes will be made.
	PublishCdnParams []*McuPublishCdnParam `json:"PublishCdnParams,omitnil,omitempty" name:"PublishCdnParams"`

	// The stream mixing SEI parameters.
	SeiParams *McuSeiParams `json:"SeiParams,omitnil,omitempty" name:"SeiParams"`

	// The information of the room to which streams are relayed.
	FeedBackRoomParams []*McuFeedBackRoomParams `json:"FeedBackRoomParams,omitnil,omitempty" name:"FeedBackRoomParams"`
}

func (r *UpdatePublishCdnStreamRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdatePublishCdnStreamRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	delete(f, "SequenceNumber")
	delete(f, "WithTranscoding")
	delete(f, "AudioParams")
	delete(f, "VideoParams")
	delete(f, "SingleSubscribeParams")
	delete(f, "PublishCdnParams")
	delete(f, "SeiParams")
	delete(f, "FeedBackRoomParams")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdatePublishCdnStreamRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type UpdatePublishCdnStreamResponseParams struct {
	// The task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type UpdatePublishCdnStreamResponse struct {
	*tchttp.BaseResponse
	Response *UpdatePublishCdnStreamResponseParams `json:"Response"`
}

func (r *UpdatePublishCdnStreamResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdatePublishCdnStreamResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type UpdateStreamIngestRequestParams struct {
	// The SDKAppId of TRTC should be the same as the SDKAppId corresponding to the task room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the task, will return after successfully starting the task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The new url of the media resource.
	StreamUrl *string `json:"StreamUrl,omitnil,omitempty" name:"StreamUrl"`

	// Volume. Valid value range: [0, 100], default value is 100, indicating the original volume.
	Volume *uint64 `json:"Volume,omitnil,omitempty" name:"Volume"`

	// Whether to pause, the default value of false indicates no pause. During the pause, the task is still in progress and is billed. If you want to terminate the task, please call the stop interface.
	IsPause *bool `json:"IsPause,omitnil,omitempty" name:"IsPause"`
}

type UpdateStreamIngestRequest struct {
	*tchttp.BaseRequest
	
	// The SDKAppId of TRTC should be the same as the SDKAppId corresponding to the task room.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// The unique Id of the task, will return after successfully starting the task.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The new url of the media resource.
	StreamUrl *string `json:"StreamUrl,omitnil,omitempty" name:"StreamUrl"`

	// Volume. Valid value range: [0, 100], default value is 100, indicating the original volume.
	Volume *uint64 `json:"Volume,omitnil,omitempty" name:"Volume"`

	// Whether to pause, the default value of false indicates no pause. During the pause, the task is still in progress and is billed. If you want to terminate the task, please call the stop interface.
	IsPause *bool `json:"IsPause,omitnil,omitempty" name:"IsPause"`
}

func (r *UpdateStreamIngestRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateStreamIngestRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "TaskId")
	delete(f, "StreamUrl")
	delete(f, "Volume")
	delete(f, "IsPause")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdateStreamIngestRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type UpdateStreamIngestResponseParams struct {
	// Task status information. InProgress: Indicates that the current task is in progress. NotExist: Indicates that the current task does not exist. Example value: InProgress
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type UpdateStreamIngestResponse struct {
	*tchttp.BaseResponse
	Response *UpdateStreamIngestResponseParams `json:"Response"`
}

func (r *UpdateStreamIngestResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateStreamIngestResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type UserInformation struct {
	// The room ID.
	RoomStr *string `json:"RoomStr,omitnil,omitempty" name:"RoomStr"`

	// The user ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// The time when the user entered the room.
	JoinTs *uint64 `json:"JoinTs,omitnil,omitempty" name:"JoinTs"`

	// The time when the user left the room. If the user is still in the room, the current time will be returned.
	LeaveTs *uint64 `json:"LeaveTs,omitnil,omitempty" name:"LeaveTs"`

	// The device type.
	DeviceType *string `json:"DeviceType,omitnil,omitempty" name:"DeviceType"`

	// The SDK version number.
	SdkVersion *string `json:"SdkVersion,omitnil,omitempty" name:"SdkVersion"`

	// The client IP address.
	ClientIp *string `json:"ClientIp,omitnil,omitempty" name:"ClientIp"`

	// Whether a user has left the room.
	Finished *bool `json:"Finished,omitnil,omitempty" name:"Finished"`
}

type UserMediaStream struct {
	// The user information.
	UserInfo *MixUserInfo `json:"UserInfo,omitnil,omitempty" name:"UserInfo"`

	// The stream type. 0: Camera; 1: Screen sharing. If you do not pass this parameter, 0 will be used.
	StreamType *uint64 `json:"StreamType,omitnil,omitempty" name:"StreamType"`
}

type VideoEncode struct {
	// The width of the output stream (pixels). This parameter is required if audio and video are relayed. Value range: [0, 1920].
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// Output stream is high and required for audio and video output. value ranges from 0 to 1920. unit: pixel value.
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`

	// The frame rate (fps) of the output stream. This parameter is required if audio and video are relayed. Value range: [0, 60].
	Fps *uint64 `json:"Fps,omitnil,omitempty" name:"Fps"`

	// The bitrate (Kbps) of the output stream. This parameter is required if audio and video are relayed. Value range: [0, 10000].
	BitRate *uint64 `json:"BitRate,omitnil,omitempty" name:"BitRate"`

	// The GOP (seconds) of the output stream. This parameter is required if audio and video are relayed. Value range: [1, 5].
	Gop *uint64 `json:"Gop,omitnil,omitempty" name:"Gop"`
}

type VideoEncodeParams struct {
	// Width. Value range [0,1920], unit is pixel value.
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// Height. Value range [0,1080], unit is pixel value.
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`

	// Frame Rate. Value range [1,60], indicating that the frame rate can be selected from 1 to 60fps.
	Fps *uint64 `json:"Fps,omitnil,omitempty" name:"Fps"`

	// Bitrate. Value range [1,10000], unit is kbps.
	BitRate *uint64 `json:"BitRate,omitnil,omitempty" name:"BitRate"`

	// Gop. Value range [1,2], unit is second.
	Gop *uint64 `json:"Gop,omitnil,omitempty" name:"Gop"`
}

type VideoParams struct {
	// The video width in pixels. The value of this parameter cannot be larger than 1920, and the result of multiplying `Width` and `Height` cannot exceed 1920 x 1080. The default value is `360`.
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// The video height in pixels. The value of this parameter cannot be larger than 1920, and the result of multiplying `Width` and `Height` cannot exceed 1920 x 1080. The default value is `640`.
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`

	// The video frame rate. Value range: [1, 60]. Default: 15.
	Fps *uint64 `json:"Fps,omitnil,omitempty" name:"Fps"`

	// The video bitrate (bps). Value range: [64000, 8192000]. Default: 550000.
	BitRate *uint64 `json:"BitRate,omitnil,omitempty" name:"BitRate"`

	// The keyframe interval (seconds). Default value: 10.
	Gop *uint64 `json:"Gop,omitnil,omitempty" name:"Gop"`
}

type Voice struct {
	// Voice ID, can be obtained from the timbre list or use a custom voice ID generated by sound clone.
	VoiceId *string `json:"VoiceId,omitnil,omitempty" name:"VoiceId"`

	// Speech speed adjustment. 0.5 for half speed, 2.0 for 2x speed, and 1.0 for normal speed. value range: [0.5, 2.0]. default: 1.0.
	Speed *float64 `json:"Speed,omitnil,omitempty" name:"Speed"`

	// Audio volume adjustment, where 0 indicates mute and 10 indicates maximum volume. recommended to keep the default value of 1.0. value range: [0,10]. default: 1.0.
	Volume *float64 `json:"Volume,omitnil,omitempty" name:"Volume"`

	// Pitch adjustment. negative value makes the sound deeper, positive value makes the sound sharper. 0 indicates the original pitch. value range: [-12, 12]. default: 0.
	Pitch *int64 `json:"Pitch,omitnil,omitempty" name:"Pitch"`
}

// Predefined struct for user
type VoiceCloneRequestParams struct {
	// Specifies the SdkAppId of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Sound clone name. only digits, letters, and underscores are allowed with a maximum of 36 characters.
	VoiceName *string `json:"VoiceName,omitnil,omitempty" name:"VoiceName"`

	// The reference audio for voice cloning must be a base64 string of a 16k mono wav file with length between 10–180 seconds.
	PromptAudio *string `json:"PromptAudio,omitnil,omitempty" name:"PromptAudio"`

	// API key for TTS.
	//
	// Deprecated: APIKey is deprecated.
	APIKey *string `json:"APIKey,omitnil,omitempty" name:"APIKey"`

	// Reference text for voice cloning. specifies the text corresponding to the reference audio.
	PromptText *string `json:"PromptText,omitnil,omitempty" name:"PromptText"`

	// TTS model: flow_01_turbo, flow_01_ex.
	Model *string `json:"Model,omitnil,omitempty" name:"Model"`

	// Language parameter, empty by default. see: (ISO 639-1).
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`
}

type VoiceCloneRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the SdkAppId of TRTC.
	SdkAppId *uint64 `json:"SdkAppId,omitnil,omitempty" name:"SdkAppId"`

	// Sound clone name. only digits, letters, and underscores are allowed with a maximum of 36 characters.
	VoiceName *string `json:"VoiceName,omitnil,omitempty" name:"VoiceName"`

	// The reference audio for voice cloning must be a base64 string of a 16k mono wav file with length between 10–180 seconds.
	PromptAudio *string `json:"PromptAudio,omitnil,omitempty" name:"PromptAudio"`

	// API key for TTS.
	APIKey *string `json:"APIKey,omitnil,omitempty" name:"APIKey"`

	// Reference text for voice cloning. specifies the text corresponding to the reference audio.
	PromptText *string `json:"PromptText,omitnil,omitempty" name:"PromptText"`

	// TTS model: flow_01_turbo, flow_01_ex.
	Model *string `json:"Model,omitnil,omitempty" name:"Model"`

	// Language parameter, empty by default. see: (ISO 639-1).
	Language *string `json:"Language,omitnil,omitempty" name:"Language"`
}

func (r *VoiceCloneRequest) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *VoiceCloneRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SdkAppId")
	delete(f, "VoiceName")
	delete(f, "PromptAudio")
	delete(f, "APIKey")
	delete(f, "PromptText")
	delete(f, "Model")
	delete(f, "Language")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "VoiceCloneRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type VoiceCloneResponseParams struct {
	// Cloned voice type ID. specifies the ID for performing text to speech.
	VoiceId *string `json:"VoiceId,omitnil,omitempty" name:"VoiceId"`

	// The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
	RequestId *string `json:"RequestId,omitnil,omitempty" name:"RequestId"`
}

type VoiceCloneResponse struct {
	*tchttp.BaseResponse
	Response *VoiceCloneResponseParams `json:"Response"`
}

func (r *VoiceCloneResponse) ToJsonString() string {
    b, _ := json.Marshal(r)
    return string(b)
}

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *VoiceCloneResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type VoicePrint struct {
	// The default is 0, which means voiceprint is not enabled. 1 means voiceprint is enabled, at which point you need to fill in the voiceprint id.
	Mode *uint64 `json:"Mode,omitnil,omitempty" name:"Mode"`

	// VoicePrint Mode requires filling in when set to 1. currently only support a VoicePrint id.
	IdList []*string `json:"IdList,omitnil,omitempty" name:"IdList"`
}

type WaterMark struct {
	// The watermark type. 0 (default): image; 1: text; 2: timestamp.
	WaterMarkType *uint64 `json:"WaterMarkType,omitnil,omitempty" name:"WaterMarkType"`

	// The information of watermark images. This parameter is required if the watermark type is image.
	WaterMarkImage *WaterMarkImage `json:"WaterMarkImage,omitnil,omitempty" name:"WaterMarkImage"`

	// The information of the text watermark. This parameter is required if `WaterMarkType` is `1`.
	WaterMarkChar *WaterMarkChar `json:"WaterMarkChar,omitnil,omitempty" name:"WaterMarkChar"`

	// The information of the timestamp watermark. This parameter is required if `WaterMarkType` is `2`.
	WaterMarkTimestamp *WaterMarkTimestamp `json:"WaterMarkTimestamp,omitnil,omitempty" name:"WaterMarkTimestamp"`
}

type WaterMarkChar struct {
	// The Y coordinate of the text watermark from the top left.
	Top *uint64 `json:"Top,omitnil,omitempty" name:"Top"`

	// The X coordinate of the text watermark from the top left.
	Left *uint64 `json:"Left,omitnil,omitempty" name:"Left"`

	// The watermark width (pixels).
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// The watermark height (pixels).
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`

	// The text.
	Chars *string `json:"Chars,omitnil,omitempty" name:"Chars"`

	// The font size (pixels). The default value is `14`.
	FontSize *uint64 `json:"FontSize,omitnil,omitempty" name:"FontSize"`

	// The text color. The default color is white.
	FontColor *string `json:"FontColor,omitnil,omitempty" name:"FontColor"`

	// The background color. If this parameter is empty, the background will be transparent (default).
	BackGroundColor *string `json:"BackGroundColor,omitnil,omitempty" name:"BackGroundColor"`
}

type WaterMarkImage struct {
	// The download url address supports only jpg, png, and jpeg with a size limit of no more than 5M. note that the url must carry the format extension and supports only specific strings within the range of a-z, a-z, 0-9, '-', '.', '_', '~', ':', '/', '?', '#', '[', ']', '@', '!', '&', '(', ')', '*', '+', ',', '%', '='.
	WaterMarkUrl *string `json:"WaterMarkUrl,omitnil,omitempty" name:"WaterMarkUrl"`

	// The Y axis of the image's top-left corner. Value range: [0, 2560]. The value cannot be larger than the canvas height.
	Top *uint64 `json:"Top,omitnil,omitempty" name:"Top"`

	// The X axis of the image’s top-left corner. Value range: [0, 2560]. The value cannot be larger than the canvas width.
	Left *uint64 `json:"Left,omitnil,omitempty" name:"Left"`

	// The relative width of the image. Value range: [0, 2560]. The sum of the values of this parameter and `Left` cannot exceed the canvas width.
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// The relative height of the image. Value range: [0, 2560]. The sum of the values of this parameter and `Top` cannot exceed the canvas height.
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`
}

type WaterMarkTimestamp struct {
	// The position of the timestamp watermark. Valid values: `0` (top left), `1` (top right), `2` (bottom left), `3` (bottom right), `4` (top center), `5` (bottom center), `6` (center).
	Pos *uint64 `json:"Pos,omitnil,omitempty" name:"Pos"`

	// The time zone. The default is UTC+8.
	TimeZone *uint64 `json:"TimeZone,omitnil,omitempty" name:"TimeZone"`
}

type WebRecordVideoParams struct {
	// Recording image width defaults to 1280, with a value range of [0, 1920].
	Width *uint64 `json:"Width,omitnil,omitempty" name:"Width"`

	// Recording image height, defaults to 720, in the range of [0, 1080].
	Height *uint64 `json:"Height,omitnil,omitempty" name:"Height"`

	// Specify output format. valid values: hls, mp4. this parameter is invalid when storing in VOD. to store in VOD, set MediaType in TencentVod (https://www.tencentcloud.comom/document/api/647/44055?from_cn_redirect=1#TencentVod).
	Format *string `json:"Format,omitnil,omitempty" name:"Format"`

	// If the file format is aac or mp4, the system will automatically split the video file when the length limit is exceeded. measurement unit: minute. defaults to 1440 min (24h). value range: 1-1440. [single file limit is 2G. if file size exceeds 2G or recording duration exceeds 24h, the file will be automatically split.].
	// Hls format recording. this parameter is not effective.
	// Example value: 1440.
	MaxMediaFileDuration *int64 `json:"MaxMediaFileDuration,omitnil,omitempty" name:"MaxMediaFileDuration"`
}