// 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 v20201028

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 AutomationAgentInfo struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Agent version.
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// Last heartbeat time
	LastHeartbeatTime *string `json:"LastHeartbeatTime,omitnil,omitempty" name:"LastHeartbeatTime"`

	// Agent status. valid values:.
	// Online: Online, Offline: Offline.
	AgentStatus *string `json:"AgentStatus,omitnil,omitempty" name:"AgentStatus"`

	// Agent execution environment. valid values: Linux: Linux instance. Windows: Windows instance.
	Environment *string `json:"Environment,omitnil,omitempty" name:"Environment"`

	// Features supported by the TAT agent.
	SupportFeatures []*string `json:"SupportFeatures,omitnil,omitempty" name:"SupportFeatures"`
}

// Predefined struct for user
type CancelInvocationRequestParams struct {
	// Execution activity ID.
	// 
	// Call the [DescribeInvocations](https://www.tencentcloud.com/document/api/1340/52679?from_cn_redirect=1) api to query execution.
	InvocationId *string `json:"InvocationId,omitnil,omitempty" name:"InvocationId"`

	// Instance ID list. upper limit: 100.
	// 
	// Instance ID can be obtained through the query instance interface of corresponding cloud services. currently supported instance types:.
	// - CVM
	// - Lighthouse
	// - TAT Register instance.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`
}

type CancelInvocationRequest struct {
	*tchttp.BaseRequest
	
	// Execution activity ID.
	// 
	// Call the [DescribeInvocations](https://www.tencentcloud.com/document/api/1340/52679?from_cn_redirect=1) api to query execution.
	InvocationId *string `json:"InvocationId,omitnil,omitempty" name:"InvocationId"`

	// Instance ID list. upper limit: 100.
	// 
	// Instance ID can be obtained through the query instance interface of corresponding cloud services. currently supported instance types:.
	// - CVM
	// - Lighthouse
	// - TAT Register instance.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`
}

func (r *CancelInvocationRequest) 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 *CancelInvocationRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvocationId")
	delete(f, "InstanceIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CancelInvocationRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CancelInvocationResponseParams 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 CancelInvocationResponse struct {
	*tchttp.BaseResponse
	Response *CancelInvocationResponseParams `json:"Response"`
}

func (r *CancelInvocationResponse) 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 *CancelInvocationResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Command struct {
	// <p>Command ID.</p>.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// <P>Command name.</p>.
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// <P>Command description.</p>.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// <p>The Base64-encoded command content.</p>.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// <p>Command type. value is one of SHELL, POWERSHELL, BAT.</p>.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// <P>Command execution path.</p>.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// <p>Command timeout time.</p><p>unit: seconds.</p><p>when specifying the OutputCOSBucketUrl parameter, the timeout period includes the time taken to upload command output to COS.</p>.
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// <p>Command creation time. the format is YYYY-MM-DDThh:MM:ssZ.</p>.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// <p>Command last update time. format: YYYY-MM-DDThh:MM:ssZ.</p>.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`

	// <P>Whether to enable the custom parameter feature.</p>.
	EnableParameter *bool `json:"EnableParameter,omitnil,omitempty" name:"EnableParameter"`

	// <P>Default value of custom parameter.</p>.
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// <P>Default value of custom parameters.</p>.
	DefaultParameterConfs []*DefaultParameterConf `json:"DefaultParameterConfs,omitnil,omitempty" name:"DefaultParameterConfs"`

	// <P>Command association scenarios</p>.
	Scenes []*string `json:"Scenes,omitnil,omitempty" name:"Scenes"`

	// <P>Structured description of the command. public commands have values, and user commands are empty strings.</p>.
	FormattedDescription *string `json:"FormattedDescription,omitnil,omitempty" name:"FormattedDescription"`

	// <p>Command creator.</p><p>enumeration value:</p><ul><li>TAT: public command</li><li>USER: personal creation command</li></ul>.
	CreatedBy *string `json:"CreatedBy,omitnil,omitempty" name:"CreatedBy"`

	// <P>Tag list associated with the command.</p>.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// <P>Username to run command on the instance.</p>.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// <P>The cos bucket address for log upload.</p>.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// <P>Directory of logs in the cos bucket.</p>.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

type CommandDocument struct {
	// Base64-encoded command.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// Command type. value is one of SHELL, POWERSHELL, BAT.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// Timeout period. unit: seconds.
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// Execution path.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// The user who executes the command.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// URL of the COS bucket to store the output
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// Prefix of the output file name 
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

// Predefined struct for user
type CreateCommandRequestParams struct {
	// Command name. The name can be up to 60 bytes, and contain [a-z], [A-Z], [0-9] and [_-.].
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// Base64-encoded command. The maximum length is 64 KB.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// Command description. The maximum length is 120 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Command type. currently supports SHELL, POWERSHELL, BAT. default: SHELL.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// Command execution path. The default value is /root for `SHELL` commands and C:\Program Files\qcloud\tat_agent\workdir for `POWERSHELL` commands.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// Command timeout period. Default value: 60 seconds. Value range: [1, 86400].
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// Whether to enable the custom parameter feature.
	// This cannot be modified once created.
	// Default value: `false`.
	EnableParameter *bool `json:"EnableParameter,omitnil,omitempty" name:"EnableParameter"`

	// Enable the custom parameter feature. default value of the custom parameter. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// If no parameter value is provided when invoking the command, the default value here will be used to replace it.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	// Allow settings only when the EnableParameter parameter is true.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// Custom parameter array.
	// If no parameter value is provided when invoking the command, the default value here will be used to replace it.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	// Allow settings only when the EnableParameter parameter is true.
	// Custom parameters can be up to 20.
	DefaultParameterConfs []*DefaultParameterConf `json:"DefaultParameterConfs,omitnil,omitempty" name:"DefaultParameterConfs"`

	// Tags bound to the command. At most 10 tags are allowed.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The username used to execute the command on the CVM or Lighthouse instance.
	// The principle of least privilege is the best practice for permission management. We recommend you execute TAT commands as a general user. By default, the root user is used to execute commands on Linux and the System user is used on Windows.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// The COS bucket URL for uploading logs. The URL must start with `https`, such as `https://BucketName-123454321.cos.ap-beijing.myqcloud.com`.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// The COS bucket directory where the logs are saved. Check below for the rules of the directory name. 
	// 1. It must be a combination of number, letters, and visible characters. Up to 60 characters are allowed.
	// 2. Use a slash (/) to create a subdirectory.
	// 3. Consecutive dots (.) and slashes (/) are not allowed. It can not start with a slash (/). 
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

type CreateCommandRequest struct {
	*tchttp.BaseRequest
	
	// Command name. The name can be up to 60 bytes, and contain [a-z], [A-Z], [0-9] and [_-.].
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// Base64-encoded command. The maximum length is 64 KB.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// Command description. The maximum length is 120 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Command type. currently supports SHELL, POWERSHELL, BAT. default: SHELL.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// Command execution path. The default value is /root for `SHELL` commands and C:\Program Files\qcloud\tat_agent\workdir for `POWERSHELL` commands.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// Command timeout period. Default value: 60 seconds. Value range: [1, 86400].
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// Whether to enable the custom parameter feature.
	// This cannot be modified once created.
	// Default value: `false`.
	EnableParameter *bool `json:"EnableParameter,omitnil,omitempty" name:"EnableParameter"`

	// Enable the custom parameter feature. default value of the custom parameter. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// If no parameter value is provided when invoking the command, the default value here will be used to replace it.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	// Allow settings only when the EnableParameter parameter is true.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// Custom parameter array.
	// If no parameter value is provided when invoking the command, the default value here will be used to replace it.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	// Allow settings only when the EnableParameter parameter is true.
	// Custom parameters can be up to 20.
	DefaultParameterConfs []*DefaultParameterConf `json:"DefaultParameterConfs,omitnil,omitempty" name:"DefaultParameterConfs"`

	// Tags bound to the command. At most 10 tags are allowed.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The username used to execute the command on the CVM or Lighthouse instance.
	// The principle of least privilege is the best practice for permission management. We recommend you execute TAT commands as a general user. By default, the root user is used to execute commands on Linux and the System user is used on Windows.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// The COS bucket URL for uploading logs. The URL must start with `https`, such as `https://BucketName-123454321.cos.ap-beijing.myqcloud.com`.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// The COS bucket directory where the logs are saved. Check below for the rules of the directory name. 
	// 1. It must be a combination of number, letters, and visible characters. Up to 60 characters are allowed.
	// 2. Use a slash (/) to create a subdirectory.
	// 3. Consecutive dots (.) and slashes (/) are not allowed. It can not start with a slash (/). 
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

func (r *CreateCommandRequest) 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 *CreateCommandRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommandName")
	delete(f, "Content")
	delete(f, "Description")
	delete(f, "CommandType")
	delete(f, "WorkingDirectory")
	delete(f, "Timeout")
	delete(f, "EnableParameter")
	delete(f, "DefaultParameters")
	delete(f, "DefaultParameterConfs")
	delete(f, "Tags")
	delete(f, "Username")
	delete(f, "OutputCOSBucketUrl")
	delete(f, "OutputCOSKeyPrefix")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCommandRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCommandResponseParams struct {
	// Command ID.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// 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 CreateCommandResponse struct {
	*tchttp.BaseResponse
	Response *CreateCommandResponseParams `json:"Response"`
}

func (r *CreateCommandResponse) 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 *CreateCommandResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateInvokerRequestParams struct {
	// Executor name. length not exceeding 120 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Executor type.
	// 
	// Selectable values (currently only support one):.
	// 
	// -`SCHEDULE`: period type executor.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Remote command ID.
	// 
	// Call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Trigger associated instance ID. list cap 100.
	// 
	// You can get the instance ID through the query instance interface of corresponding cloud services. currently supports instance types: CVM, Lighthouse, and TAT managed instances.
	// 
	// The instance needs to have the TAT client installed, and the client must be in Online status. you can query client status via the [DescribeAutomationAgentStatus](https://www.tencentcloud.com/document/api/1340/52682?from_cn_redirect=1) api.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Command execution user. length not exceeding 256 characters.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Command custom parameter. field type is JSON encode string.
	// 
	// This parameter can be set only when EnableParameter of the command specified by CommandId is true. obtain the EnableParameter settings through the [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// Recurring invoker settings.
	// 
	// When the executor type is `SCHEDULE`, specify this parameter.
	ScheduleSettings *ScheduleSettings `json:"ScheduleSettings,omitnil,omitempty" name:"ScheduleSettings"`

	// Tag associated with the command. list length not exceeding 10.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type CreateInvokerRequest struct {
	*tchttp.BaseRequest
	
	// Executor name. length not exceeding 120 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Executor type.
	// 
	// Selectable values (currently only support one):.
	// 
	// -`SCHEDULE`: period type executor.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Remote command ID.
	// 
	// Call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Trigger associated instance ID. list cap 100.
	// 
	// You can get the instance ID through the query instance interface of corresponding cloud services. currently supports instance types: CVM, Lighthouse, and TAT managed instances.
	// 
	// The instance needs to have the TAT client installed, and the client must be in Online status. you can query client status via the [DescribeAutomationAgentStatus](https://www.tencentcloud.com/document/api/1340/52682?from_cn_redirect=1) api.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Command execution user. length not exceeding 256 characters.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Command custom parameter. field type is JSON encode string.
	// 
	// This parameter can be set only when EnableParameter of the command specified by CommandId is true. obtain the EnableParameter settings through the [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// Recurring invoker settings.
	// 
	// When the executor type is `SCHEDULE`, specify this parameter.
	ScheduleSettings *ScheduleSettings `json:"ScheduleSettings,omitnil,omitempty" name:"ScheduleSettings"`

	// Tag associated with the command. list length not exceeding 10.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

func (r *CreateInvokerRequest) 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 *CreateInvokerRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Name")
	delete(f, "Type")
	delete(f, "CommandId")
	delete(f, "InstanceIds")
	delete(f, "Username")
	delete(f, "Parameters")
	delete(f, "ScheduleSettings")
	delete(f, "Tags")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateInvokerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateInvokerResponseParams struct {
	// Invoker ID.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`

	// 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 CreateInvokerResponse struct {
	*tchttp.BaseResponse
	Response *CreateInvokerResponseParams `json:"Response"`
}

func (r *CreateInvokerResponse) 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 *CreateInvokerResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRegisterCodeRequestParams struct {
	// Describes the registration code. maximum length is 128 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Prefix of the registered instance name. maximum length is 32 characters.
	InstanceNamePrefix *string `json:"InstanceNamePrefix,omitnil,omitempty" name:"InstanceNamePrefix"`

	// Number of instances allowed by the registration code. default value is 10, minimum value is 1, maximum value is 10000.
	RegisterLimit *int64 `json:"RegisterLimit,omitnil,omitempty" name:"RegisterLimit"`

	// The validity time of the registration code is measured in hours. default value is 4.
	// 
	// -If the input value is less than or equal to 99999, the time is deemed valid in hours.
	// -If the input value is more than 99999, it is set to permanently valid.
	EffectiveTime *int64 `json:"EffectiveTime,omitnil,omitempty" name:"EffectiveTime"`

	// Restrict the registration code to register only from the public outbound ip described by IpAddressRange.
	// 
	// Empty by default, meaning no restrictions.
	// 
	// The value should be in standard IPv4 or CIDRv4 format, such as 192.168.1.1 or 192.168.0.0/16.
	IpAddressRange *string `json:"IpAddressRange,omitnil,omitempty" name:"IpAddressRange"`
}

type CreateRegisterCodeRequest struct {
	*tchttp.BaseRequest
	
	// Describes the registration code. maximum length is 128 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Prefix of the registered instance name. maximum length is 32 characters.
	InstanceNamePrefix *string `json:"InstanceNamePrefix,omitnil,omitempty" name:"InstanceNamePrefix"`

	// Number of instances allowed by the registration code. default value is 10, minimum value is 1, maximum value is 10000.
	RegisterLimit *int64 `json:"RegisterLimit,omitnil,omitempty" name:"RegisterLimit"`

	// The validity time of the registration code is measured in hours. default value is 4.
	// 
	// -If the input value is less than or equal to 99999, the time is deemed valid in hours.
	// -If the input value is more than 99999, it is set to permanently valid.
	EffectiveTime *int64 `json:"EffectiveTime,omitnil,omitempty" name:"EffectiveTime"`

	// Restrict the registration code to register only from the public outbound ip described by IpAddressRange.
	// 
	// Empty by default, meaning no restrictions.
	// 
	// The value should be in standard IPv4 or CIDRv4 format, such as 192.168.1.1 or 192.168.0.0/16.
	IpAddressRange *string `json:"IpAddressRange,omitnil,omitempty" name:"IpAddressRange"`
}

func (r *CreateRegisterCodeRequest) 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 *CreateRegisterCodeRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Description")
	delete(f, "InstanceNamePrefix")
	delete(f, "RegisterLimit")
	delete(f, "EffectiveTime")
	delete(f, "IpAddressRange")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateRegisterCodeRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateRegisterCodeResponseParams struct {
	// Registration code ID.
	RegisterCodeId *string `json:"RegisterCodeId,omitnil,omitempty" name:"RegisterCodeId"`

	// Registration code value.
	RegisterCodeValue *string `json:"RegisterCodeValue,omitnil,omitempty" name:"RegisterCodeValue"`

	// 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 CreateRegisterCodeResponse struct {
	*tchttp.BaseResponse
	Response *CreateRegisterCodeResponseParams `json:"Response"`
}

func (r *CreateRegisterCodeResponse) 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 *CreateRegisterCodeResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type DefaultParameterConf struct {
	// Parameter name.
	ParameterName *string `json:"ParameterName,omitnil,omitempty" name:"ParameterName"`

	// Default parameter value.
	ParameterValue *string `json:"ParameterValue,omitnil,omitempty" name:"ParameterValue"`

	// Parameter description.
	ParameterDescription *string `json:"ParameterDescription,omitnil,omitempty" name:"ParameterDescription"`
}

// Predefined struct for user
type DeleteCommandRequestParams struct {
	// Command ID to be deleted. call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`
}

type DeleteCommandRequest struct {
	*tchttp.BaseRequest
	
	// Command ID to be deleted. call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`
}

func (r *DeleteCommandRequest) 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 *DeleteCommandRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommandId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCommandRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCommandResponseParams 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 DeleteCommandResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCommandResponseParams `json:"Response"`
}

func (r *DeleteCommandResponse) 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 *DeleteCommandResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCommandsRequestParams struct {
	// Command ID to be deleted. call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandIds []*string `json:"CommandIds,omitnil,omitempty" name:"CommandIds"`
}

type DeleteCommandsRequest struct {
	*tchttp.BaseRequest
	
	// Command ID to be deleted. call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandIds []*string `json:"CommandIds,omitnil,omitempty" name:"CommandIds"`
}

func (r *DeleteCommandsRequest) 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 *DeleteCommandsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommandIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteCommandsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteCommandsResponseParams 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 DeleteCommandsResponse struct {
	*tchttp.BaseResponse
	Response *DeleteCommandsResponseParams `json:"Response"`
}

func (r *DeleteCommandsResponse) 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 *DeleteCommandsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteInvokerRequestParams struct {
	// Pending deletion executor ID.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`
}

type DeleteInvokerRequest struct {
	*tchttp.BaseRequest
	
	// Pending deletion executor ID.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`
}

func (r *DeleteInvokerRequest) 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 *DeleteInvokerRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvokerId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteInvokerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteInvokerResponseParams 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 DeleteInvokerResponse struct {
	*tchttp.BaseResponse
	Response *DeleteInvokerResponseParams `json:"Response"`
}

func (r *DeleteInvokerResponse) 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 *DeleteInvokerResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRegisterCodesRequestParams struct {
	// Registration code ID list. limits the input registration code ID quantity to more than 0 and less than 100.
	// 
	// Call the [DescribeRegisterCodes](https://www.tencentcloud.com/document/api/1340/96925?from_cn_redirect=1) api to query registration codes.
	RegisterCodeIds []*string `json:"RegisterCodeIds,omitnil,omitempty" name:"RegisterCodeIds"`
}

type DeleteRegisterCodesRequest struct {
	*tchttp.BaseRequest
	
	// Registration code ID list. limits the input registration code ID quantity to more than 0 and less than 100.
	// 
	// Call the [DescribeRegisterCodes](https://www.tencentcloud.com/document/api/1340/96925?from_cn_redirect=1) api to query registration codes.
	RegisterCodeIds []*string `json:"RegisterCodeIds,omitnil,omitempty" name:"RegisterCodeIds"`
}

func (r *DeleteRegisterCodesRequest) 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 *DeleteRegisterCodesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RegisterCodeIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRegisterCodesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRegisterCodesResponseParams 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 DeleteRegisterCodesResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRegisterCodesResponseParams `json:"Response"`
}

func (r *DeleteRegisterCodesResponse) 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 *DeleteRegisterCodesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRegisterInstanceRequestParams struct {
	// Managed instance ID.
	// 
	// Call the [DescribeRegisterInstances](https://www.tencentcloud.com/document/api/1340/96924?from_cn_redirect=1) api to query managed instances.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DeleteRegisterInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Managed instance ID.
	// 
	// Call the [DescribeRegisterInstances](https://www.tencentcloud.com/document/api/1340/96924?from_cn_redirect=1) api to query managed instances.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DeleteRegisterInstanceRequest) 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 *DeleteRegisterInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteRegisterInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteRegisterInstanceResponseParams 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 DeleteRegisterInstanceResponse struct {
	*tchttp.BaseResponse
	Response *DeleteRegisterInstanceResponseParams `json:"Response"`
}

func (r *DeleteRegisterInstanceResponse) 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 *DeleteRegisterInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAutomationAgentStatusRequestParams struct {
	// List of instance ids to be queried.
	// 
	// You can get the instance ID through the query instance interface of corresponding cloud services. currently supports instance types: CVM, Lighthouse, and TAT managed instances.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `InstanceIds` and `Filters`.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// -agent-status - String - required: no - (filter condition) filters by agent status. valid values: Online, Offline. 
	// -environment - String - required: no - (filter condition) query by agent runtime environment. valid values: Linux, Windows.
	// -instance-id - String - required: no - (filter condition) filter by instance id. you can get the instance id through the query instance API of the corresponding cloud services. currently supports instance types: CVM, Lighthouse, and managed instances.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InstanceIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeAutomationAgentStatusRequest struct {
	*tchttp.BaseRequest
	
	// List of instance ids to be queried.
	// 
	// You can get the instance ID through the query instance interface of corresponding cloud services. currently supports instance types: CVM, Lighthouse, and TAT managed instances.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `InstanceIds` and `Filters`.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// -agent-status - String - required: no - (filter condition) filters by agent status. valid values: Online, Offline. 
	// -environment - String - required: no - (filter condition) query by agent runtime environment. valid values: Linux, Windows.
	// -instance-id - String - required: no - (filter condition) filter by instance id. you can get the instance id through the query instance API of the corresponding cloud services. currently supports instance types: CVM, Lighthouse, and managed instances.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InstanceIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeAutomationAgentStatusRequest) 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 *DescribeAutomationAgentStatusRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceIds")
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeAutomationAgentStatusRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAutomationAgentStatusResponseParams struct {
	// Agent information list.
	AutomationAgentSet []*AutomationAgentInfo `json:"AutomationAgentSet,omitnil,omitempty" name:"AutomationAgentSet"`

	// Total number of matching agents.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// 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 DescribeAutomationAgentStatusResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAutomationAgentStatusResponseParams `json:"Response"`
}

func (r *DescribeAutomationAgentStatusResponse) 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 *DescribeAutomationAgentStatusResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCommandsRequestParams struct {
	// List of command IDs. Up to 100 IDs are allowed for each request. `CommandIds` and `Filters` cannot be specified at the same time.
	CommandIds []*string `json:"CommandIds,omitnil,omitempty" name:"CommandIds"`

	// Filter criteria
	// 
	// - command-id - String - required: no - (filter condition) filter by the command id.
	// - command-name - String - required: no - (filter condition) filter by the command name.
	// -command-type - String - required: no - (filtering conditions) filters by command type. valid values: SHELL, POWERSHELL, BAT.
	// -scene-id - String - required: no - (filter condition) filter by scenario id. obtain scenario id through the [DescribeScenes (query scenario)](https://www.tencentcloud.com/document/api/1340/109968?from_cn_redirect=1) api.
	// -created-by - String - required: no - (filter condition) filter by command creator, value is TAT or USER. TAT represents public command, USER represents USER created command.
	// - tag-key - String - required: no - (filter condition) filter by the tag key.
	// - tag-value - String - required: no - (filter condition) filter by the tag value.
	// - tag:tag-key - String - required: no - (filter condition) filter by the tag-key - value pair. replace tag-key with a specific tag key. for usage, see example 4.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `CommandIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeCommandsRequest struct {
	*tchttp.BaseRequest
	
	// List of command IDs. Up to 100 IDs are allowed for each request. `CommandIds` and `Filters` cannot be specified at the same time.
	CommandIds []*string `json:"CommandIds,omitnil,omitempty" name:"CommandIds"`

	// Filter criteria
	// 
	// - command-id - String - required: no - (filter condition) filter by the command id.
	// - command-name - String - required: no - (filter condition) filter by the command name.
	// -command-type - String - required: no - (filtering conditions) filters by command type. valid values: SHELL, POWERSHELL, BAT.
	// -scene-id - String - required: no - (filter condition) filter by scenario id. obtain scenario id through the [DescribeScenes (query scenario)](https://www.tencentcloud.com/document/api/1340/109968?from_cn_redirect=1) api.
	// -created-by - String - required: no - (filter condition) filter by command creator, value is TAT or USER. TAT represents public command, USER represents USER created command.
	// - tag-key - String - required: no - (filter condition) filter by the tag key.
	// - tag-value - String - required: no - (filter condition) filter by the tag value.
	// - tag:tag-key - String - required: no - (filter condition) filter by the tag-key - value pair. replace tag-key with a specific tag key. for usage, see example 4.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `CommandIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeCommandsRequest) 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 *DescribeCommandsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommandIds")
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCommandsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCommandsResponseParams struct {
	// Total number of matching commands.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of command details.
	CommandSet []*Command `json:"CommandSet,omitnil,omitempty" name:"CommandSet"`

	// 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 DescribeCommandsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCommandsResponseParams `json:"Response"`
}

func (r *DescribeCommandsResponse) 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 *DescribeCommandsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvocationTasksRequestParams struct {
	// List of execution task IDs. Up to 100 IDs are allowed for each request. `InvocationTaskIds` and `Filters` cannot be specified at the same time.
	InvocationTaskIds []*string `json:"InvocationTaskIds,omitnil,omitempty" name:"InvocationTaskIds"`

	// Filter conditions.<br>.
	// 
	// -invocation-task-id - String - required: no - (filter condition) filter by executing task id.
	// - invocation-id - String - required: no - (filter condition) filter by the execution activity id. you can obtain it through the [DescribeInvocations](https://www.tencentcloud.com/document/api/1340/52679?from_cn_redirect=1) api.
	// -instance-id - String - required: no - (filtering conditions) filter by instance id. you can get the instance id through the query instance interface of corresponding cloud services. currently supported instance types: CVM, Lighthouse, and managed instances of TAT.
	// -command-id - String - required: no - (filter criteria) filter by command id. obtain through the api [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1).
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InvocationTaskIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Whether to hide the command output result. valid values:.
	// 
	// -true: hide output.
	// - false: do not hide.
	//  
	// The default value is true.
	HideOutput *bool `json:"HideOutput,omitnil,omitempty" name:"HideOutput"`
}

type DescribeInvocationTasksRequest struct {
	*tchttp.BaseRequest
	
	// List of execution task IDs. Up to 100 IDs are allowed for each request. `InvocationTaskIds` and `Filters` cannot be specified at the same time.
	InvocationTaskIds []*string `json:"InvocationTaskIds,omitnil,omitempty" name:"InvocationTaskIds"`

	// Filter conditions.<br>.
	// 
	// -invocation-task-id - String - required: no - (filter condition) filter by executing task id.
	// - invocation-id - String - required: no - (filter condition) filter by the execution activity id. you can obtain it through the [DescribeInvocations](https://www.tencentcloud.com/document/api/1340/52679?from_cn_redirect=1) api.
	// -instance-id - String - required: no - (filtering conditions) filter by instance id. you can get the instance id through the query instance interface of corresponding cloud services. currently supported instance types: CVM, Lighthouse, and managed instances of TAT.
	// -command-id - String - required: no - (filter criteria) filter by command id. obtain through the api [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1).
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InvocationTaskIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Whether to hide the command output result. valid values:.
	// 
	// -true: hide output.
	// - false: do not hide.
	//  
	// The default value is true.
	HideOutput *bool `json:"HideOutput,omitnil,omitempty" name:"HideOutput"`
}

func (r *DescribeInvocationTasksRequest) 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 *DescribeInvocationTasksRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvocationTaskIds")
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	delete(f, "HideOutput")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInvocationTasksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvocationTasksResponseParams struct {
	// Total number of matching execution tasks.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of execution tasks.
	InvocationTaskSet []*InvocationTask `json:"InvocationTaskSet,omitnil,omitempty" name:"InvocationTaskSet"`

	// 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 DescribeInvocationTasksResponse struct {
	*tchttp.BaseResponse
	Response *DescribeInvocationTasksResponseParams `json:"Response"`
}

func (r *DescribeInvocationTasksResponse) 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 *DescribeInvocationTasksResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvocationsRequestParams struct {
	// List of execution activity IDs. Up to 100 IDs are allowed for each request. `InvocationIds` and `Filters` cannot be specified at the same time.
	InvocationIds []*string `json:"InvocationIds,omitnil,omitempty" name:"InvocationIds"`

	// Filter conditions.<br>.
	// 
	// <li> invocation-id - String - required: no - (filter condition) filter by execution activity id.</li>.
	// <li>command-id - String - required: no - (filter condition) filter by command id.</li>. 
	// <li> command-created-by - String - required: no - (filter criteria) filter by executed command type. valid values: TAT or USER. TAT represents public command, USER represents USER created command.</li>.
	// <li> instance-kind - String - required: no - (filtering conditions) filter by running instance type. valid values: CVM or LIGHTHOUSE. CVM represents cloud virtual machine, LIGHTHOUSE represents tencent cloud LIGHTHOUSE.</li>.
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InvocationIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeInvocationsRequest struct {
	*tchttp.BaseRequest
	
	// List of execution activity IDs. Up to 100 IDs are allowed for each request. `InvocationIds` and `Filters` cannot be specified at the same time.
	InvocationIds []*string `json:"InvocationIds,omitnil,omitempty" name:"InvocationIds"`

	// Filter conditions.<br>.
	// 
	// <li> invocation-id - String - required: no - (filter condition) filter by execution activity id.</li>.
	// <li>command-id - String - required: no - (filter condition) filter by command id.</li>. 
	// <li> command-created-by - String - required: no - (filter criteria) filter by executed command type. valid values: TAT or USER. TAT represents public command, USER represents USER created command.</li>.
	// <li> instance-kind - String - required: no - (filtering conditions) filter by running instance type. valid values: CVM or LIGHTHOUSE. CVM represents cloud virtual machine, LIGHTHOUSE represents tencent cloud LIGHTHOUSE.</li>.
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InvocationIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. It defaults to `20`. The maximum is 100. For more information on `Limit`, see the relevant section in the API [Overview](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeInvocationsRequest) 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 *DescribeInvocationsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvocationIds")
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInvocationsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvocationsResponseParams struct {
	// Total number of matching execution activities.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of execution activities.
	InvocationSet []*Invocation `json:"InvocationSet,omitnil,omitempty" name:"InvocationSet"`

	// 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 DescribeInvocationsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeInvocationsResponseParams `json:"Response"`
}

func (r *DescribeInvocationsResponse) 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 *DescribeInvocationsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvokerRecordsRequestParams struct {
	// Executor ID list. the list has a cap of 100.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerIds []*string `json:"InvokerIds,omitnil,omitempty" name:"InvokerIds"`

	// Number of returned results. Default value: 20. Maximum value: 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeInvokerRecordsRequest struct {
	*tchttp.BaseRequest
	
	// Executor ID list. the list has a cap of 100.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerIds []*string `json:"InvokerIds,omitnil,omitempty" name:"InvokerIds"`

	// Number of returned results. Default value: 20. Maximum value: 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeInvokerRecordsRequest) 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 *DescribeInvokerRecordsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvokerIds")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInvokerRecordsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvokerRecordsResponseParams struct {
	// Number of matching records.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Execution history of an invoker.
	InvokerRecordSet []*InvokerRecord `json:"InvokerRecordSet,omitnil,omitempty" name:"InvokerRecordSet"`

	// 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 DescribeInvokerRecordsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeInvokerRecordsResponseParams `json:"Response"`
}

func (r *DescribeInvokerRecordsResponse) 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 *DescribeInvokerRecordsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvokersRequestParams struct {
	// Executor ID list.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `InvokerIds` and `Filters`.
	InvokerIds []*string `json:"InvokerIds,omitnil,omitempty" name:"InvokerIds"`

	// Filter criteria:.
	// 
	// - invoker-id - String - required: no - (filter condition) filter by executor id.
	// -command-id - String - required: no - (filter condition) filters commands by id. you can obtain the id through the [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	// - invoker-type - String - required: no - (filter condition) filter by the executor type. currently only support SCHEDULE.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InvokerIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. Default value: 20. Maximum value: 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeInvokersRequest struct {
	*tchttp.BaseRequest
	
	// Executor ID list.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `InvokerIds` and `Filters`.
	InvokerIds []*string `json:"InvokerIds,omitnil,omitempty" name:"InvokerIds"`

	// Filter criteria:.
	// 
	// - invoker-id - String - required: no - (filter condition) filter by executor id.
	// -command-id - String - required: no - (filter condition) filters commands by id. you can obtain the id through the [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	// - invoker-type - String - required: no - (filter condition) filter by the executor type. currently only support SCHEDULE.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `InvokerIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results. Default value: 20. Maximum value: 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. Default value: 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeInvokersRequest) 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 *DescribeInvokersRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvokerIds")
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInvokersRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInvokersResponseParams struct {
	// Number of matching invokers.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Invoker information.
	InvokerSet []*Invoker `json:"InvokerSet,omitnil,omitempty" name:"InvokerSet"`

	// 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 DescribeInvokersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeInvokersResponseParams `json:"Response"`
}

func (r *DescribeInvokersResponse) 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 *DescribeInvokersResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeQuotasRequestParams struct {
	// Resource name
	// 
	// Value is:.
	// 
	// - COMMAND: COMMAND.
	// -REGISTER_CODE: managed instance registration code.
	ResourceNames []*string `json:"ResourceNames,omitnil,omitempty" name:"ResourceNames"`
}

type DescribeQuotasRequest struct {
	*tchttp.BaseRequest
	
	// Resource name
	// 
	// Value is:.
	// 
	// - COMMAND: COMMAND.
	// -REGISTER_CODE: managed instance registration code.
	ResourceNames []*string `json:"ResourceNames,omitnil,omitempty" name:"ResourceNames"`
}

func (r *DescribeQuotasRequest) 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 *DescribeQuotasRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ResourceNames")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeQuotasRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeQuotasResponseParams struct {
	// Resource quota list.
	GeneralResourceQuotaSet []*GeneralResourceQuotaSet `json:"GeneralResourceQuotaSet,omitnil,omitempty" name:"GeneralResourceQuotaSet"`

	// 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 DescribeQuotasResponse struct {
	*tchttp.BaseResponse
	Response *DescribeQuotasResponseParams `json:"Response"`
}

func (r *DescribeQuotasResponse) 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 *DescribeQuotasResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRegionsRequestParams struct {

}

type DescribeRegionsRequest struct {
	*tchttp.BaseRequest
	
}

func (r *DescribeRegionsRequest) 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 *DescribeRegionsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRegionsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRegionsResponseParams struct {
	// Number of regions
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Region information list
	RegionSet []*RegionInfo `json:"RegionSet,omitnil,omitempty" name:"RegionSet"`

	// 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 DescribeRegionsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRegionsResponseParams `json:"Response"`
}

func (r *DescribeRegionsResponse) 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 *DescribeRegionsResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRegisterCodesRequestParams struct {
	// Registration code ID.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `RegisterCodeIds` and `Filters`.
	RegisterCodeIds []*string `json:"RegisterCodeIds,omitnil,omitempty" name:"RegisterCodeIds"`

	// Offset. default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned results, defaults to 20, maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeRegisterCodesRequest struct {
	*tchttp.BaseRequest
	
	// Registration code ID.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `RegisterCodeIds` and `Filters`.
	RegisterCodeIds []*string `json:"RegisterCodeIds,omitnil,omitempty" name:"RegisterCodeIds"`

	// Offset. default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned results, defaults to 20, maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeRegisterCodesRequest) 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 *DescribeRegisterCodesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RegisterCodeIds")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRegisterCodesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRegisterCodesResponseParams struct {
	// Total number of queried registration codes.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Registration code information list.
	RegisterCodeSet []*RegisterCodeInfo `json:"RegisterCodeSet,omitnil,omitempty" name:"RegisterCodeSet"`

	// 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 DescribeRegisterCodesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRegisterCodesResponseParams `json:"Response"`
}

func (r *DescribeRegisterCodesResponse) 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 *DescribeRegisterCodesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRegisterInstancesRequestParams struct {
	// Managed instance id.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `InstanceIds` and `Filters`.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Filter list. the maximum number of `Filters` is 10 per request, and the maximum number of `Filter.Values` is 5. parameters must not be specified simultaneously for `InstanceIds` and `Filters`.
	// 
	// 
	// - instance-name
	// 
	// Filter by [managed instance name].
	// Type: String.
	// Required: No
	// 
	// - instance-id
	// 
	// Filter by [managed instance ID].
	// Type: String.
	// Required: No
	// 
	// - register-status
	// 
	// Filter by [managed instance status]. valid values: Online | Offline.
	// Type: String.
	// Required: No
	// 
	// - local-ip
	// 
	// Filter by [managed instance nic IP].
	// Type: String.
	// Required: No
	// 
	// - register-code-id
	// 
	// Filter by [managed instance registration code ID]. call the [DescribeRegisterCodes](https://www.tencentcloud.com/document/api/1340/96925?from_cn_redirect=1) api to query registration codes.
	// Type: String.
	// Required: No
	// 
	// - sys-name
	// 
	// Filter by [operating system type]. valid values: Linux | Windows.
	// Type: String.
	// Required: No
	// 
	// - tag-key
	// 
	// Filter by [tag key].
	// Type: String.
	// Required: No
	// 
	// - tag-value
	// 
	// Filter by [tag value].
	// Type: String.
	// Required: No
	// 
	// - tag:tag-key
	// 
	// Filter by [tag key-value pair]. replace tag-key with a specific Tag key.
	// Type: String.
	// Required: No
	// 
	// For example, the Filter is {"Name": "tag:key1", "Values": ["v1", "v2"] }, which queries all resources belonging to tag key1:v1 or key1:v2.
	// 
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Offset. default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned results, defaults to 20, maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeRegisterInstancesRequest struct {
	*tchttp.BaseRequest
	
	// Managed instance id.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not be specified simultaneously `InstanceIds` and `Filters`.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Filter list. the maximum number of `Filters` is 10 per request, and the maximum number of `Filter.Values` is 5. parameters must not be specified simultaneously for `InstanceIds` and `Filters`.
	// 
	// 
	// - instance-name
	// 
	// Filter by [managed instance name].
	// Type: String.
	// Required: No
	// 
	// - instance-id
	// 
	// Filter by [managed instance ID].
	// Type: String.
	// Required: No
	// 
	// - register-status
	// 
	// Filter by [managed instance status]. valid values: Online | Offline.
	// Type: String.
	// Required: No
	// 
	// - local-ip
	// 
	// Filter by [managed instance nic IP].
	// Type: String.
	// Required: No
	// 
	// - register-code-id
	// 
	// Filter by [managed instance registration code ID]. call the [DescribeRegisterCodes](https://www.tencentcloud.com/document/api/1340/96925?from_cn_redirect=1) api to query registration codes.
	// Type: String.
	// Required: No
	// 
	// - sys-name
	// 
	// Filter by [operating system type]. valid values: Linux | Windows.
	// Type: String.
	// Required: No
	// 
	// - tag-key
	// 
	// Filter by [tag key].
	// Type: String.
	// Required: No
	// 
	// - tag-value
	// 
	// Filter by [tag value].
	// Type: String.
	// Required: No
	// 
	// - tag:tag-key
	// 
	// Filter by [tag key-value pair]. replace tag-key with a specific Tag key.
	// Type: String.
	// Required: No
	// 
	// For example, the Filter is {"Name": "tag:key1", "Values": ["v1", "v2"] }, which queries all resources belonging to tag key1:v1 or key1:v2.
	// 
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Offset. default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned results, defaults to 20, maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeRegisterInstancesRequest) 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 *DescribeRegisterInstancesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceIds")
	delete(f, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRegisterInstancesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRegisterInstancesResponseParams struct {
	// The total number of registration codes registered by the instance.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of managed instance information.
	RegisterInstanceSet []*RegisterInstanceInfo `json:"RegisterInstanceSet,omitnil,omitempty" name:"RegisterInstanceSet"`

	// 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 DescribeRegisterInstancesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRegisterInstancesResponseParams `json:"Response"`
}

func (r *DescribeRegisterInstancesResponse) 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 *DescribeRegisterInstancesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeScenesRequestParams struct {
	// Scene ID array.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not specify both `SceneIds` and `Filters` simultaneously.
	SceneIds []*string `json:"SceneIds,omitnil,omitempty" name:"SceneIds"`

	// Filter criteria
	// 
	// - scene-id - String - required: no - (filter condition) filter by the scene id.
	// -scene-name - String - required: no - (filtering conditions) filter by scenario name.
	// -created-by - String - required: no - (filter criteria) filter by scene creator, currently only support TAT, representing public scenarios.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `SceneIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results, defaults to 20 with a maximum value of 100. for further introduction about `Limit`, see relevant sections in the API [overview](https://www.tencentcloud.com/document/API/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeScenesRequest struct {
	*tchttp.BaseRequest
	
	// Scene ID array.
	// 
	// The maximum per request is 100.
	// 
	// Parameters must not specify both `SceneIds` and `Filters` simultaneously.
	SceneIds []*string `json:"SceneIds,omitnil,omitempty" name:"SceneIds"`

	// Filter criteria
	// 
	// - scene-id - String - required: no - (filter condition) filter by the scene id.
	// -scene-name - String - required: no - (filtering conditions) filter by scenario name.
	// -created-by - String - required: no - (filter criteria) filter by scene creator, currently only support TAT, representing public scenarios.
	// 
	// The maximum number of `Filters` per request is 10, and that of `Filter.Values` is 5. the `SceneIds` and `Filters` parameters cannot be specified at the same time.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of returned results, defaults to 20 with a maximum value of 100. for further introduction about `Limit`, see relevant sections in the API [overview](https://www.tencentcloud.com/document/API/213/15688?from_cn_redirect=1).
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset. The default value is `0`. For more information on `Offset`, see the relevant section in API [Introduction](https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeScenesRequest) 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 *DescribeScenesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SceneIds")
	delete(f, "Filters")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeScenesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeScenesResponseParams struct {
	// Total number of eligible scenarios.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of scenario details.
	SceneSet []*Scene `json:"SceneSet,omitnil,omitempty" name:"SceneSet"`

	// 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 DescribeScenesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeScenesResponseParams `json:"Response"`
}

func (r *DescribeScenesResponse) 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 *DescribeScenesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DisableInvokerRequestParams struct {
	// ID of the executor to terminate.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`
}

type DisableInvokerRequest struct {
	*tchttp.BaseRequest
	
	// ID of the executor to terminate.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`
}

func (r *DisableInvokerRequest) 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 *DisableInvokerRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvokerId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DisableInvokerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DisableInvokerResponseParams 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 DisableInvokerResponse struct {
	*tchttp.BaseResponse
	Response *DisableInvokerResponseParams `json:"Response"`
}

func (r *DisableInvokerResponse) 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 *DisableInvokerResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DisableRegisterCodesRequestParams struct {
	// Registration code ID.
	// 
	// Call the [DescribeRegisterCodes](https://www.tencentcloud.com/document/api/1340/96925?from_cn_redirect=1) api to query registration codes.
	RegisterCodeIds []*string `json:"RegisterCodeIds,omitnil,omitempty" name:"RegisterCodeIds"`
}

type DisableRegisterCodesRequest struct {
	*tchttp.BaseRequest
	
	// Registration code ID.
	// 
	// Call the [DescribeRegisterCodes](https://www.tencentcloud.com/document/api/1340/96925?from_cn_redirect=1) api to query registration codes.
	RegisterCodeIds []*string `json:"RegisterCodeIds,omitnil,omitempty" name:"RegisterCodeIds"`
}

func (r *DisableRegisterCodesRequest) 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 *DisableRegisterCodesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "RegisterCodeIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DisableRegisterCodesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DisableRegisterCodesResponseParams 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 DisableRegisterCodesResponse struct {
	*tchttp.BaseResponse
	Response *DisableRegisterCodesResponseParams `json:"Response"`
}

func (r *DisableRegisterCodesResponse) 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 *DisableRegisterCodesResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type EnableInvokerRequestParams struct {
	// Executor ID to be enabled.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`
}

type EnableInvokerRequest struct {
	*tchttp.BaseRequest
	
	// Executor ID to be enabled.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`
}

func (r *EnableInvokerRequest) 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 *EnableInvokerRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvokerId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "EnableInvokerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type EnableInvokerResponseParams 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 EnableInvokerResponse struct {
	*tchttp.BaseResponse
	Response *EnableInvokerResponseParams `json:"Response"`
}

func (r *EnableInvokerResponse) 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 *EnableInvokerResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Filter struct {
	// Field to be filtered.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Filter values of the field.
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

type GeneralResourceQuotaSet struct {
	// Resource name
	// 
	// Value is:.
	// 
	// - COMMAND: COMMAND.
	// -REGISTER_CODE: managed instance registration code.
	ResourceName *string `json:"ResourceName,omitnil,omitempty" name:"ResourceName"`

	// Used credit limit.
	ResourceQuotaUsed *int64 `json:"ResourceQuotaUsed,omitnil,omitempty" name:"ResourceQuotaUsed"`

	// Total quota.
	ResourceQuotaTotal *int64 `json:"ResourceQuotaTotal,omitnil,omitempty" name:"ResourceQuotaTotal"`
}

type Invocation struct {
	// Execution activity ID.
	InvocationId *string `json:"InvocationId,omitnil,omitempty" name:"InvocationId"`

	// Command ID.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Name of the executed command.
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// Execution task status. valid values:.
	// 
	// -PENDING: waiting for distribution.
	// - RUNNING: command RUNNING.
	// -Canceling.
	// -SUCCESS: command success.
	// -TIMEOUT: command timeout.
	// - FAILED: command FAILED.
	// -CANCELLED: all commands canceled.
	// -PARTIAL_FAILED: the command partially failed.
	// -PARTIAL_CANCELLED: the command is partially canceled.
	InvocationStatus *string `json:"InvocationStatus,omitnil,omitempty" name:"InvocationStatus"`

	// Execution task information list.
	InvocationTaskBasicInfoSet []*InvocationTaskBasicInfo `json:"InvocationTaskBasicInfoSet,omitnil,omitempty" name:"InvocationTaskBasicInfoSet"`

	// Execution activity description.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Execute the activity start time. the format is YYYY-MM-DDThh:MM:ssZ.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Execute activity end time. format: YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Execution activity createtime. format: YYYY-MM-DDThh:MM:ssZ.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Update time of the execution activity. the format is YYYY-MM-DDThh:MM:ssZ.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`

	// Values of custom parameters.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// Default custom parameter value.
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// Type of the instance executing the command. Valid values: `CVM`, `LIGHTHOUSE`.
	InstanceKind *string `json:"InstanceKind,omitnil,omitempty" name:"InstanceKind"`

	// The user who executes the command on the instance.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Invocation source.
	// 
	// -USER: originate from user invocation.
	// -INVOKER: originate from scheduled execution.
	InvocationSource *string `json:"InvocationSource,omitnil,omitempty" name:"InvocationSource"`

	// Base64-encoded command
	CommandContent *string `json:"CommandContent,omitnil,omitempty" name:"CommandContent"`

	// Command type
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// Command timeout period, in seconds.
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// Working directory for executing the command.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// The COS bucket URL for uploading logs.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// The COS bucket directory where the logs are saved.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

type InvocationTask struct {
	// Execution activity ID.
	InvocationId *string `json:"InvocationId,omitnil,omitempty" name:"InvocationId"`

	// Execution task ID.
	InvocationTaskId *string `json:"InvocationTaskId,omitnil,omitempty" name:"InvocationTaskId"`

	// Command ID.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Execution task status. valid values:.
	// 
	// -PENDING: waiting for distribution.
	// -DELIVERING: distributing.
	// -DELIVER_DELAYED: delivery delay.
	// -DELIVER_FAILED: delivery fail.
	// -START_FAILED: command start failed.
	// - RUNNING: command RUNNING.
	// -SUCCESS: command success.
	// -FAILED: command execution failed, exit code not 0.
	// -TIMEOUT: command timeout.
	// -TASK_TIMEOUT: client no response.
	// -Canceling.
	// - CANCELLED: canceled (command canceled before startup).
	// -TERMINATED: suspended (canceled during command execution).
	TaskStatus *string `json:"TaskStatus,omitnil,omitempty" name:"TaskStatus"`

	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Execution result.
	TaskResult *TaskResult `json:"TaskResult,omitnil,omitempty" name:"TaskResult"`

	// Task start time. format: YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Task end time. format: YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Creation time. the format is YYYY-MM-DDThh:MM:ssZ.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Update time. the format is YYYY-MM-DDThh:MM:ssZ.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`

	// Command details of the execution task.
	CommandDocument *CommandDocument `json:"CommandDocument,omitnil,omitempty" name:"CommandDocument"`

	// Error message displayed when the execution task fails.
	ErrorInfo *string `json:"ErrorInfo,omitnil,omitempty" name:"ErrorInfo"`

	// Invocation source.
	// 
	// -USER: originate from user invocation.
	// -INVOKER: originate from scheduled execution.
	InvocationSource *string `json:"InvocationSource,omitnil,omitempty" name:"InvocationSource"`

	// Name of the executed command.
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`
}

type InvocationTaskBasicInfo struct {
	// Execution task ID.
	InvocationTaskId *string `json:"InvocationTaskId,omitnil,omitempty" name:"InvocationTaskId"`

	// Execution task status. valid values:.
	// 
	// -PENDING: waiting for distribution.
	// -DELIVERING: distributing.
	// -DELIVER_DELAYED: delivery delay.
	// -DELIVER_FAILED: delivery fail.
	// -START_FAILED: command start failed.
	// - RUNNING: command RUNNING.
	// -SUCCESS: command success.
	// -FAILED: command execution failed, exit code not 0.
	// -TIMEOUT: command timeout.
	// -TASK_TIMEOUT: client no response.
	// -Canceling.
	// - CANCELLED: canceled (command canceled before startup).
	// -TERMINATED: suspended (canceled during command execution).
	TaskStatus *string `json:"TaskStatus,omitnil,omitempty" name:"TaskStatus"`

	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

// Predefined struct for user
type InvokeCommandRequestParams struct {
	// Pending trigger command ID. call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Instance ID list for the command to be executed, with a cap of 200.
	// 
	// Instance ID can be obtained through the query instance interface of corresponding cloud services. currently supported instance types:.
	// - CVM
	// - Lighthouse
	// -TAT register instance.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Custom parameter of Command. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// This parameter can be set only when the EnableParameter of the command is true. you can obtain the EnableParameter settings through the [DescribeCommands (detailed command information)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	// If the parameter value is not provided, the DefaultParameters or DefaultParameterConfs of Command will be used to replace it.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// The username used to execute the command on the CVM or Lighthouse instance.
	// The principle of the least privilege is the best practice for permission management. We recommend you execute TAT commands as a general user. If this is not specified, the Username of the command is used by default.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Execution path of the command. The WorkingDirectory of the command is used by default.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// Command timeout period. Value range: [1, 86400]. The Timeout of the command is used by default.
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// The COS bucket URL for uploading logs. The URL must start with `https`, such as `https://BucketName-123454321.cos.ap-beijing.myqcloud.com`.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// The COS bucket directory where the logs are saved. Check below for the rules of the directory name. 
	// 1. It must be a combination of number, letters, and visible characters. Up to 60 characters are allowed.
	// 2. Use a slash (/) to create a subdirectory.
	// 3. ".." can not be used as the folder name. It cannot start with a slash (/), and cannot contain consecutive slashes.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

type InvokeCommandRequest struct {
	*tchttp.BaseRequest
	
	// Pending trigger command ID. call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Instance ID list for the command to be executed, with a cap of 200.
	// 
	// Instance ID can be obtained through the query instance interface of corresponding cloud services. currently supported instance types:.
	// - CVM
	// - Lighthouse
	// -TAT register instance.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Custom parameter of Command. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// This parameter can be set only when the EnableParameter of the command is true. you can obtain the EnableParameter settings through the [DescribeCommands (detailed command information)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	// If the parameter value is not provided, the DefaultParameters or DefaultParameterConfs of Command will be used to replace it.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// The username used to execute the command on the CVM or Lighthouse instance.
	// The principle of the least privilege is the best practice for permission management. We recommend you execute TAT commands as a general user. If this is not specified, the Username of the command is used by default.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Execution path of the command. The WorkingDirectory of the command is used by default.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// Command timeout period. Value range: [1, 86400]. The Timeout of the command is used by default.
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// The COS bucket URL for uploading logs. The URL must start with `https`, such as `https://BucketName-123454321.cos.ap-beijing.myqcloud.com`.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// The COS bucket directory where the logs are saved. Check below for the rules of the directory name. 
	// 1. It must be a combination of number, letters, and visible characters. Up to 60 characters are allowed.
	// 2. Use a slash (/) to create a subdirectory.
	// 3. ".." can not be used as the folder name. It cannot start with a slash (/), and cannot contain consecutive slashes.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

func (r *InvokeCommandRequest) 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 *InvokeCommandRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommandId")
	delete(f, "InstanceIds")
	delete(f, "Parameters")
	delete(f, "Username")
	delete(f, "WorkingDirectory")
	delete(f, "Timeout")
	delete(f, "OutputCOSBucketUrl")
	delete(f, "OutputCOSKeyPrefix")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "InvokeCommandRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type InvokeCommandResponseParams struct {
	// Execution activity ID.
	InvocationId *string `json:"InvocationId,omitnil,omitempty" name:"InvocationId"`

	// 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 InvokeCommandResponse struct {
	*tchttp.BaseResponse
	Response *InvokeCommandResponseParams `json:"Response"`
}

func (r *InvokeCommandResponse) 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 *InvokeCommandResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Invoker struct {
	// Invoker ID.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`

	// Invoker name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Executor type. currently only support SCHEDULE.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Command ID.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Username.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Custom parameters.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// Instance ID list.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Whether to enable the invoker.
	Enable *bool `json:"Enable,omitnil,omitempty" name:"Enable"`

	// Executor periodic schedule. recurring invoker will return this field.
	ScheduleSettings *ScheduleSettings `json:"ScheduleSettings,omitnil,omitempty" name:"ScheduleSettings"`

	// Creation time. the format is YYYY-MM-DDThh:MM:ssZ.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Last modified. the format is YYYY-MM-DDThh:MM:ssZ.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`
}

type InvokerRecord struct {
	// Invoker ID.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`

	// Execution time. format: YYYY-MM-DDThh:MM:ssZ.
	InvokeTime *string `json:"InvokeTime,omitnil,omitempty" name:"InvokeTime"`

	// Execution reason.
	Reason *string `json:"Reason,omitnil,omitempty" name:"Reason"`

	// Command execution ID.
	InvocationId *string `json:"InvocationId,omitnil,omitempty" name:"InvocationId"`

	// Trigger result.
	// 
	// -PENDING: waiting for distribution.
	// - RUNNING: command RUNNING.
	// -Canceling.
	// -SUCCESS: command success.
	// -TIMEOUT: command timeout.
	// - FAILED: command FAILED.
	// -CANCELLED: all commands canceled.
	// -PARTIAL_FAILED: the command partially failed.
	// -PARTIAL_CANCELLED: the command is partially canceled.
	Result *string `json:"Result,omitnil,omitempty" name:"Result"`
}

// Predefined struct for user
type ModifyCommandRequestParams struct {
	// <p>Command ID. call the <a href="https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1">DescribeCommands</a> api to query command details.</p>.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// <p>Command name. name only supports chinese, english, digits, underscore, separator "-", and decimal point. the maximum length cannot exceed 60 bytes.</p>.
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// <P>Command description. no more than 120 characters.</p>.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// <p>The Base64-encoded command content, length cannot exceed 64KB.</p>.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// <p>Command type. currently supports SHELL, POWERSHELL, BAT.</p>.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// <P>Command execution path.</p>.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// <p>Command timeout time.</p><p>value range: [1, 86400].</p><p>unit: seconds.</p><p>default value: 60.</p><p>when specifying the OutputCOSBucketUrl parameter, the timeout period includes the time taken to upload command output to COS.</p>.
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// <p>The default value of custom parameters when the custom parameter feature is enabled. the field type is a json-encoded string, for example: {"varA": "222"}.<br>parameters must not be specified simultaneously for <code>DefaultParameters</code> and <code>DefaultParameterConfs</code>.<br>a comprehensive modification is applied, meaning all new default values must be provided when modifying.<br>this parameter can be modified only when EnableParameter of the command is true. obtain the EnableParameter settings of the command through the <a href="https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1">DescribeCommands (query command details)</a> api.<br>the key is the custom parameter name, and the value is the default value of this parameter. both key and value are string-type.<br>there is an upper limit of 20 custom parameters.<br>custom parameter names must meet the following requirements: the upper limit of character quantity is 64, and the optional range is [a-zA-Z0-9-_].</p>.
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// <p>Custom parameter array. if no parameter value is provided when invoking the command, the default value here will be used to replace it.<br>parameters do not support specifying both <code>DefaultParameters</code> and <code>DefaultParameterConfs</code>.<br>this parameter can be modified only when EnableParameter of the command is true. obtain the EnableParameter settings through the <a href="https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1">DescribeCommands (query command details)</a> api.<br>up to 20 custom parameters are allowed.</p>.
	DefaultParameterConfs []*DefaultParameterConf `json:"DefaultParameterConfs,omitnil,omitempty" name:"DefaultParameterConfs"`

	// <p>The username to run commands in a CVM or Lighthouse instance.<br>using minimum permission to execute commands is the best practice for permission management. we recommend running cloud assistant commands as a regular user identity.</p>.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// <p>Specifies the cos bucket address for the uploaded log, which must start with https, such as https://BucketName-123454321.cos.ap-beijing.myqcloud.com.</p>.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// <P>Specify the directory for logs in the cos bucket. the directory naming has the following rules:</p><ol><li>use a combination of numbers, chinese and english, and visible characters, with a maximum length of 60.</li><li>use / to split the path and quickly create subdirectories.</li><li>consecutive / are not allowed; cannot start with /; cannot use .. as the folder name.</li></ol>.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

type ModifyCommandRequest struct {
	*tchttp.BaseRequest
	
	// <p>Command ID. call the <a href="https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1">DescribeCommands</a> api to query command details.</p>.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// <p>Command name. name only supports chinese, english, digits, underscore, separator "-", and decimal point. the maximum length cannot exceed 60 bytes.</p>.
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// <P>Command description. no more than 120 characters.</p>.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// <p>The Base64-encoded command content, length cannot exceed 64KB.</p>.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// <p>Command type. currently supports SHELL, POWERSHELL, BAT.</p>.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// <P>Command execution path.</p>.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// <p>Command timeout time.</p><p>value range: [1, 86400].</p><p>unit: seconds.</p><p>default value: 60.</p><p>when specifying the OutputCOSBucketUrl parameter, the timeout period includes the time taken to upload command output to COS.</p>.
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// <p>The default value of custom parameters when the custom parameter feature is enabled. the field type is a json-encoded string, for example: {"varA": "222"}.<br>parameters must not be specified simultaneously for <code>DefaultParameters</code> and <code>DefaultParameterConfs</code>.<br>a comprehensive modification is applied, meaning all new default values must be provided when modifying.<br>this parameter can be modified only when EnableParameter of the command is true. obtain the EnableParameter settings of the command through the <a href="https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1">DescribeCommands (query command details)</a> api.<br>the key is the custom parameter name, and the value is the default value of this parameter. both key and value are string-type.<br>there is an upper limit of 20 custom parameters.<br>custom parameter names must meet the following requirements: the upper limit of character quantity is 64, and the optional range is [a-zA-Z0-9-_].</p>.
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// <p>Custom parameter array. if no parameter value is provided when invoking the command, the default value here will be used to replace it.<br>parameters do not support specifying both <code>DefaultParameters</code> and <code>DefaultParameterConfs</code>.<br>this parameter can be modified only when EnableParameter of the command is true. obtain the EnableParameter settings through the <a href="https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1">DescribeCommands (query command details)</a> api.<br>up to 20 custom parameters are allowed.</p>.
	DefaultParameterConfs []*DefaultParameterConf `json:"DefaultParameterConfs,omitnil,omitempty" name:"DefaultParameterConfs"`

	// <p>The username to run commands in a CVM or Lighthouse instance.<br>using minimum permission to execute commands is the best practice for permission management. we recommend running cloud assistant commands as a regular user identity.</p>.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// <p>Specifies the cos bucket address for the uploaded log, which must start with https, such as https://BucketName-123454321.cos.ap-beijing.myqcloud.com.</p>.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// <P>Specify the directory for logs in the cos bucket. the directory naming has the following rules:</p><ol><li>use a combination of numbers, chinese and english, and visible characters, with a maximum length of 60.</li><li>use / to split the path and quickly create subdirectories.</li><li>consecutive / are not allowed; cannot start with /; cannot use .. as the folder name.</li></ol>.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

func (r *ModifyCommandRequest) 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 *ModifyCommandRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "CommandId")
	delete(f, "CommandName")
	delete(f, "Description")
	delete(f, "Content")
	delete(f, "CommandType")
	delete(f, "WorkingDirectory")
	delete(f, "Timeout")
	delete(f, "DefaultParameters")
	delete(f, "DefaultParameterConfs")
	delete(f, "Username")
	delete(f, "OutputCOSBucketUrl")
	delete(f, "OutputCOSKeyPrefix")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyCommandRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyCommandResponseParams 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 ModifyCommandResponse struct {
	*tchttp.BaseResponse
	Response *ModifyCommandResponseParams `json:"Response"`
}

func (r *ModifyCommandResponse) 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 *ModifyCommandResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyInvokerRequestParams struct {
	// Executor ID to be modified.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`

	// Executor name to be modified. length not exceeding 120 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Executor type to be modified.
	// 
	// Selectable values (currently only support one):.
	// 
	// -`SCHEDULE`: period type executor.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Command ID to be modified.
	// 
	// Call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Username to be modified. length not exceeding 256 characters.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Custom parameters to be modified. field type is JSON encode string.
	// 
	// This parameter can be set only when EnableParameter of the command specified by CommandId is true. obtain the EnableParameter settings through the [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// List of instance ids to be modified. list length limit 100.
	// 
	// You can get the instance ID through the query instance interface of corresponding cloud services. currently supports instance types: CVM, Lighthouse, and TAT managed instances.
	// 
	// The instance needs to have the TAT client installed, and the client must be in Online status. you can query client status via the [DescribeAutomationAgentStatus](https://www.tencentcloud.com/document/api/1340/52682?from_cn_redirect=1) api.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Recurring invoker settings to be modified.
	// 
	// Change the executor type to `SCHEDULE` and specify this parameter.
	ScheduleSettings *ScheduleSettings `json:"ScheduleSettings,omitnil,omitempty" name:"ScheduleSettings"`
}

type ModifyInvokerRequest struct {
	*tchttp.BaseRequest
	
	// Executor ID to be modified.
	// 
	// Call the [DescribeInvokers](https://www.tencentcloud.com/document/api/1340/61759?from_cn_redirect=1) api to query execution.
	InvokerId *string `json:"InvokerId,omitnil,omitempty" name:"InvokerId"`

	// Executor name to be modified. length not exceeding 120 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Executor type to be modified.
	// 
	// Selectable values (currently only support one):.
	// 
	// -`SCHEDULE`: period type executor.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Command ID to be modified.
	// 
	// Call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Username to be modified. length not exceeding 256 characters.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// Custom parameters to be modified. field type is JSON encode string.
	// 
	// This parameter can be set only when EnableParameter of the command specified by CommandId is true. obtain the EnableParameter settings through the [DescribeCommands (query command details)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// List of instance ids to be modified. list length limit 100.
	// 
	// You can get the instance ID through the query instance interface of corresponding cloud services. currently supports instance types: CVM, Lighthouse, and TAT managed instances.
	// 
	// The instance needs to have the TAT client installed, and the client must be in Online status. you can query client status via the [DescribeAutomationAgentStatus](https://www.tencentcloud.com/document/api/1340/52682?from_cn_redirect=1) api.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Recurring invoker settings to be modified.
	// 
	// Change the executor type to `SCHEDULE` and specify this parameter.
	ScheduleSettings *ScheduleSettings `json:"ScheduleSettings,omitnil,omitempty" name:"ScheduleSettings"`
}

func (r *ModifyInvokerRequest) 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 *ModifyInvokerRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InvokerId")
	delete(f, "Name")
	delete(f, "Type")
	delete(f, "CommandId")
	delete(f, "Username")
	delete(f, "Parameters")
	delete(f, "InstanceIds")
	delete(f, "ScheduleSettings")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyInvokerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyInvokerResponseParams 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 ModifyInvokerResponse struct {
	*tchttp.BaseResponse
	Response *ModifyInvokerResponseParams `json:"Response"`
}

func (r *ModifyInvokerResponse) 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 *ModifyInvokerResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRegisterInstanceRequestParams struct {
	// Managed instance ID.
	// 
	// Call the [DescribeRegisterInstances](https://www.tencentcloud.com/document/api/1340/96924?from_cn_redirect=1) api to query managed instances.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name. valid length is 1–60 characters.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`
}

type ModifyRegisterInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Managed instance ID.
	// 
	// Call the [DescribeRegisterInstances](https://www.tencentcloud.com/document/api/1340/96924?from_cn_redirect=1) api to query managed instances.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Instance name. valid length is 1–60 characters.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`
}

func (r *ModifyRegisterInstanceRequest) 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 *ModifyRegisterInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceId")
	delete(f, "InstanceName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyRegisterInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyRegisterInstanceResponseParams 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 ModifyRegisterInstanceResponse struct {
	*tchttp.BaseResponse
	Response *ModifyRegisterInstanceResponseParams `json:"Response"`
}

func (r *ModifyRegisterInstanceResponse) 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 *ModifyRegisterInstanceResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type PreviewReplacedCommandContentRequestParams struct {
	// The preview uses custom parameters. field type is json encoded string, for example: {"varA": "222"}.
	// This parameter can be set only when the EnableParameter of the command is true. you can obtain the EnableParameter settings through the [DescribeCommands (detailed command information)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	// If DefaultParameters or DefaultParameterConfs has set, it will overlay with Parameters and prioritize the value of Parameters.
	// 
	// key specifies the custom parameter name, and value specifies the parameter. both kv are string-type.
	// Custom parameters are limited to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	// If the previewed CommandId has DefaultParameters set, this parameter can be empty.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// Perform the replace preview command.
	// Call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	// CommandId and Content, you must provide one and can only provide one.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Base64-encoded command to be previewed. The maximum length is 64 KB.
	// CommandId or Content must be specified.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`
}

type PreviewReplacedCommandContentRequest struct {
	*tchttp.BaseRequest
	
	// The preview uses custom parameters. field type is json encoded string, for example: {"varA": "222"}.
	// This parameter can be set only when the EnableParameter of the command is true. you can obtain the EnableParameter settings through the [DescribeCommands (detailed command information)](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api.
	// If DefaultParameters or DefaultParameterConfs has set, it will overlay with Parameters and prioritize the value of Parameters.
	// 
	// key specifies the custom parameter name, and value specifies the parameter. both kv are string-type.
	// Custom parameters are limited to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	// If the previewed CommandId has DefaultParameters set, this parameter can be empty.
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// Perform the replace preview command.
	// Call the [DescribeCommands](https://www.tencentcloud.com/document/api/1340/52681?from_cn_redirect=1) api to query command details.
	// CommandId and Content, you must provide one and can only provide one.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Base64-encoded command to be previewed. The maximum length is 64 KB.
	// CommandId or Content must be specified.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`
}

func (r *PreviewReplacedCommandContentRequest) 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 *PreviewReplacedCommandContentRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Parameters")
	delete(f, "CommandId")
	delete(f, "Content")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "PreviewReplacedCommandContentRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type PreviewReplacedCommandContentResponseParams struct {
	// Base64-encoded command with custom parameters.
	ReplacedContent *string `json:"ReplacedContent,omitnil,omitempty" name:"ReplacedContent"`

	// 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 PreviewReplacedCommandContentResponse struct {
	*tchttp.BaseResponse
	Response *PreviewReplacedCommandContentResponseParams `json:"Response"`
}

func (r *PreviewReplacedCommandContentResponse) 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 *PreviewReplacedCommandContentResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type RegionInfo struct {
	// Region name, such as `ap-guangzhou`
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// Region description, such as `Guangzhou`
	RegionName *string `json:"RegionName,omitnil,omitempty" name:"RegionName"`

	// Region availability status. AVAILABLE indicates the region is AVAILABLE. UNAVAILABLE indicates the region is UNAVAILABLE.
	RegionState *string `json:"RegionState,omitnil,omitempty" name:"RegionState"`
}

type RegisterCodeInfo struct {
	// Registration code ID.
	RegisterCodeId *string `json:"RegisterCodeId,omitnil,omitempty" name:"RegisterCodeId"`

	// Describes the registration code.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Prefix of the registered instance name.
	InstanceNamePrefix *string `json:"InstanceNamePrefix,omitnil,omitempty" name:"InstanceNamePrefix"`

	// The number of instances the registration code allows.
	RegisterLimit *int64 `json:"RegisterLimit,omitnil,omitempty" name:"RegisterLimit"`

	// The expiry date of the registration code is in ISO8601 standard representation and uses UTC time. 
	// The format is YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpiredTime *string `json:"ExpiredTime,omitnil,omitempty" name:"ExpiredTime"`

	// The registration code limits tat_agent to register only from the public outbound ip described by IpAddressRange.
	IpAddressRange *string `json:"IpAddressRange,omitnil,omitempty" name:"IpAddressRange"`

	// Is the registration code available.
	Enabled *bool `json:"Enabled,omitnil,omitempty" name:"Enabled"`

	// The number of registered registration codes.
	RegisteredCount *int64 `json:"RegisteredCount,omitnil,omitempty" name:"RegisteredCount"`

	// Registration code creation time, represented as ISO8601 standard and using UTC time. 
	// The format is YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Last update time of the registration code, as ISO8601 standard representation and using UTC time. 
	// The format is YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`
}

type RegisterInstanceInfo struct {
	// Registration code ID.
	RegisterCodeId *string `json:"RegisterCodeId,omitnil,omitempty" name:"RegisterCodeId"`

	// Managed instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Managed instance name.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Machine ID.
	MachineId *string `json:"MachineId,omitnil,omitempty" name:"MachineId"`

	// System name. valid values: Linux | Windows.
	SystemName *string `json:"SystemName,omitnil,omitempty" name:"SystemName"`

	// Host name.
	HostName *string `json:"HostName,omitnil,omitempty" name:"HostName"`

	// Private network IP
	LocalIp *string `json:"LocalIp,omitnil,omitempty" name:"LocalIp"`

	// Public key.
	PublicKey *string `json:"PublicKey,omitnil,omitempty" name:"PublicKey"`

	// Hosting status.
	// Return Online means the instance is managed, return Offline means the instance is unhosted.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Creation time. the format is YYYY-MM-DDThh:MM:ssZ.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Last update time. the format is YYYY-MM-DDThh:MM:ssZ.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`

	// Tag.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`
}

// Predefined struct for user
type RunCommandRequestParams struct {
	// Base64-encoded command. The maximum length is 64 KB.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// Instance ID list for the command to be executed, with a cap of 200.
	// 
	// Instance ID can be obtained through the query instance interface of corresponding cloud services. currently supported instance types:.
	// - CVM
	// - Lighthouse
	// -TAT register instance.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Command name. The name can be up to 60 bytes, and contain [a-z], [A-Z], [0-9] and [_-.].
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// Command description. The maximum length is 120 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Command type. currently supports SHELL, POWERSHELL, BAT. default: SHELL.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// Command execution path. The default value is /root for `SHELL` commands and C:\Program Files\qcloud\tat_agent\workdir for `POWERSHELL` commands.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// Command timeout period. Default value: 60 seconds. Value range: [1, 86400].
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// Whether to save the command. value range:.
	// <li>true: save</li>.
	// <li>false: not saved.</li>.
	// The default value is false.
	SaveCommand *bool `json:"SaveCommand,omitnil,omitempty" name:"SaveCommand"`

	// Whether to enable the custom parameter feature.
	// Once created, this value does not offer modification.
	// Valid values:.
	// <li>true: enable</li>.
	// <li>false: disabled.</li>.
	// The default value is false.
	EnableParameter *bool `json:"EnableParameter,omitnil,omitempty" name:"EnableParameter"`

	// Enable the custom parameter feature. default value of the custom parameter. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// This parameter can be set only when the EnableParameter of the command is true.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	// If Parameters is not provided, the default value here will be used to replace.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// Custom parameter array. if Parameters is not provided, the default value here will be used to replace. up to 20 custom Parameters are allowed.
	// If Parameters is not provided, the default value here will be used to replace.
	// This parameter can be set only when the EnableParameter of the command is true.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	DefaultParameterConfs []*DefaultParameterConf `json:"DefaultParameterConfs,omitnil,omitempty" name:"DefaultParameterConfs"`

	// Custom parameter of Command. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// This parameter can be set only when the EnableParameter of the command is true.
	// If the parameter value is not provided, DefaultParameters or DefaultParameterConfs will be used.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// The tags of the command. It is available when `SaveCommand` is `True`. A maximum of 10 tags are allowed.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The username used to execute the command on the CVM or Lighthouse instance.
	// The principle of least privilege is the best practice for permission management. We recommend you execute TAT commands as a general user. By default, the user `root` is used to execute commands on Linux and the user `System` is used on Windows.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// The COS bucket URL for uploading logs. The URL must start with `https`, such as `https://BucketName-123454321.cos.ap-beijing.myqcloud.com`.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// The COS bucket directory where the logs are saved. Check below for the rules of the directory name. 
	// 1. It must be a combination of number, letters, and visible characters. Up to 60 characters are allowed.
	// 2. Use a slash (/) to create a subdirectory.
	// 3. ".." can not be used as the folder name. It cannot start with a slash (/), and cannot contain consecutive slashes.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

type RunCommandRequest struct {
	*tchttp.BaseRequest
	
	// Base64-encoded command. The maximum length is 64 KB.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`

	// Instance ID list for the command to be executed, with a cap of 200.
	// 
	// Instance ID can be obtained through the query instance interface of corresponding cloud services. currently supported instance types:.
	// - CVM
	// - Lighthouse
	// -TAT register instance.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Command name. The name can be up to 60 bytes, and contain [a-z], [A-Z], [0-9] and [_-.].
	CommandName *string `json:"CommandName,omitnil,omitempty" name:"CommandName"`

	// Command description. The maximum length is 120 characters.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Command type. currently supports SHELL, POWERSHELL, BAT. default: SHELL.
	CommandType *string `json:"CommandType,omitnil,omitempty" name:"CommandType"`

	// Command execution path. The default value is /root for `SHELL` commands and C:\Program Files\qcloud\tat_agent\workdir for `POWERSHELL` commands.
	WorkingDirectory *string `json:"WorkingDirectory,omitnil,omitempty" name:"WorkingDirectory"`

	// Command timeout period. Default value: 60 seconds. Value range: [1, 86400].
	Timeout *uint64 `json:"Timeout,omitnil,omitempty" name:"Timeout"`

	// Whether to save the command. value range:.
	// <li>true: save</li>.
	// <li>false: not saved.</li>.
	// The default value is false.
	SaveCommand *bool `json:"SaveCommand,omitnil,omitempty" name:"SaveCommand"`

	// Whether to enable the custom parameter feature.
	// Once created, this value does not offer modification.
	// Valid values:.
	// <li>true: enable</li>.
	// <li>false: disabled.</li>.
	// The default value is false.
	EnableParameter *bool `json:"EnableParameter,omitnil,omitempty" name:"EnableParameter"`

	// Enable the custom parameter feature. default value of the custom parameter. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// This parameter can be set only when the EnableParameter of the command is true.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	// If Parameters is not provided, the default value here will be used to replace.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	DefaultParameters *string `json:"DefaultParameters,omitnil,omitempty" name:"DefaultParameters"`

	// Custom parameter array. if Parameters is not provided, the default value here will be used to replace. up to 20 custom Parameters are allowed.
	// If Parameters is not provided, the default value here will be used to replace.
	// This parameter can be set only when the EnableParameter of the command is true.
	// Parameters must not be specified simultaneously `DefaultParameters` and `DefaultParameterConfs`.
	DefaultParameterConfs []*DefaultParameterConf `json:"DefaultParameterConfs,omitnil,omitempty" name:"DefaultParameterConfs"`

	// Custom parameter of Command. field type is json encoded string. for example: {"varA": "222"}.
	// The key is the custom parameter name, and the value is the default. both kv are string-type.
	// This parameter can be set only when the EnableParameter of the command is true.
	// If the parameter value is not provided, DefaultParameters or DefaultParameterConfs will be used.
	// Custom parameters can be up to 20.
	// The custom parameter name must meet the following standard: the number of characters has a cap of 64, and the optional range is [a-zA-Z0-9-_].
	Parameters *string `json:"Parameters,omitnil,omitempty" name:"Parameters"`

	// The tags of the command. It is available when `SaveCommand` is `True`. A maximum of 10 tags are allowed.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The username used to execute the command on the CVM or Lighthouse instance.
	// The principle of least privilege is the best practice for permission management. We recommend you execute TAT commands as a general user. By default, the user `root` is used to execute commands on Linux and the user `System` is used on Windows.
	Username *string `json:"Username,omitnil,omitempty" name:"Username"`

	// The COS bucket URL for uploading logs. The URL must start with `https`, such as `https://BucketName-123454321.cos.ap-beijing.myqcloud.com`.
	OutputCOSBucketUrl *string `json:"OutputCOSBucketUrl,omitnil,omitempty" name:"OutputCOSBucketUrl"`

	// The COS bucket directory where the logs are saved. Check below for the rules of the directory name. 
	// 1. It must be a combination of number, letters, and visible characters. Up to 60 characters are allowed.
	// 2. Use a slash (/) to create a subdirectory.
	// 3. ".." can not be used as the folder name. It cannot start with a slash (/), and cannot contain consecutive slashes.
	OutputCOSKeyPrefix *string `json:"OutputCOSKeyPrefix,omitnil,omitempty" name:"OutputCOSKeyPrefix"`
}

func (r *RunCommandRequest) 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 *RunCommandRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Content")
	delete(f, "InstanceIds")
	delete(f, "CommandName")
	delete(f, "Description")
	delete(f, "CommandType")
	delete(f, "WorkingDirectory")
	delete(f, "Timeout")
	delete(f, "SaveCommand")
	delete(f, "EnableParameter")
	delete(f, "DefaultParameters")
	delete(f, "DefaultParameterConfs")
	delete(f, "Parameters")
	delete(f, "Tags")
	delete(f, "Username")
	delete(f, "OutputCOSBucketUrl")
	delete(f, "OutputCOSKeyPrefix")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "RunCommandRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type RunCommandResponseParams struct {
	// Command ID.
	CommandId *string `json:"CommandId,omitnil,omitempty" name:"CommandId"`

	// Execution activity ID.
	InvocationId *string `json:"InvocationId,omitnil,omitempty" name:"InvocationId"`

	// 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 RunCommandResponse struct {
	*tchttp.BaseResponse
	Response *RunCommandResponseParams `json:"Response"`
}

func (r *RunCommandResponse) 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 *RunCommandResponse) FromJsonString(s string) error {
	return json.Unmarshal([]byte(s), &r)
}

type Scene struct {
	// Scene ID.
	SceneId *string `json:"SceneId,omitnil,omitempty" name:"SceneId"`

	// Scenario name.
	SceneName *string `json:"SceneName,omitnil,omitempty" name:"SceneName"`

	// Scene creator.
	// 
	// - TAT: public scenario.
	CreatedBy *string `json:"CreatedBy,omitnil,omitempty" name:"CreatedBy"`

	// Creation time. the format is YYYY-MM-DDThh:MM:ssZ.
	CreatedTime *string `json:"CreatedTime,omitnil,omitempty" name:"CreatedTime"`

	// Update time. the format is YYYY-MM-DDThh:MM:ssZ.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`
}

type ScheduleSettings struct {
	// Execution policy.
	// 
	// -ONCE: one-time execution.
	// -RECURRENCE: execute periodically.
	Policy *string `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Trigger the crontab expression. This field is required if `Policy` is `RECURRENCE`. The crontab expression is parsed in UTC+8.
	Recurrence *string `json:"Recurrence,omitnil,omitempty" name:"Recurrence"`

	// Next execution time of the executor. this field requires specifying when Policy is ONCE.
	// 
	// The time format is YYYY-MM-DDThh:MM:ssZ.
	InvokeTime *string `json:"InvokeTime,omitnil,omitempty" name:"InvokeTime"`
}

type Tag struct {
	// Tag key.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

	// Tag value.
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`
}

type TaskResult struct {
	// ExitCode of the execution.
	ExitCode *int64 `json:"ExitCode,omitnil,omitempty" name:"ExitCode"`

	// Base64-encoded command output. The maximum length is 24 KB.
	Output *string `json:"Output,omitnil,omitempty" name:"Output"`

	// Command execution start time. the format is YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecStartTime *string `json:"ExecStartTime,omitnil,omitempty" name:"ExecStartTime"`

	// Execution end time of the command. format: YYYY-MM-DDThh:MM:ssZ.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecEndTime *string `json:"ExecEndTime,omitnil,omitempty" name:"ExecEndTime"`

	// Dropped bytes of the command output.
	Dropped *uint64 `json:"Dropped,omitnil,omitempty" name:"Dropped"`

	// COS URL of the logs.
	OutputUrl *string `json:"OutputUrl,omitnil,omitempty" name:"OutputUrl"`

	// Error message for uploading logs to COS.
	OutputUploadCOSErrorInfo *string `json:"OutputUploadCOSErrorInfo,omitnil,omitempty" name:"OutputUploadCOSErrorInfo"`
}