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

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"
)

// Predefined struct for user
type AddMetricScaleStrategyRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// 1 indicates scaling by load rules. 2 indicates scaling by time rules. This parameter is required and should match the following rule policy.
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Load-based scale-out rules.
	LoadAutoScaleStrategy *LoadAutoScaleStrategy `json:"LoadAutoScaleStrategy,omitnil,omitempty" name:"LoadAutoScaleStrategy"`

	// Rule for time-based scaling
	TimeAutoScaleStrategy *TimeAutoScaleStrategy `json:"TimeAutoScaleStrategy,omitnil,omitempty" name:"TimeAutoScaleStrategy"`
}

type AddMetricScaleStrategyRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// 1 indicates scaling by load rules. 2 indicates scaling by time rules. This parameter is required and should match the following rule policy.
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Load-based scale-out rules.
	LoadAutoScaleStrategy *LoadAutoScaleStrategy `json:"LoadAutoScaleStrategy,omitnil,omitempty" name:"LoadAutoScaleStrategy"`

	// Rule for time-based scaling
	TimeAutoScaleStrategy *TimeAutoScaleStrategy `json:"TimeAutoScaleStrategy,omitnil,omitempty" name:"TimeAutoScaleStrategy"`
}

func (r *AddMetricScaleStrategyRequest) 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 *AddMetricScaleStrategyRequest) 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, "StrategyType")
	delete(f, "LoadAutoScaleStrategy")
	delete(f, "TimeAutoScaleStrategy")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AddMetricScaleStrategyRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type AddNodeResourceConfigRequestParams struct {
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node type: Core, Task, and Router.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Resource details.
	ResourceConfig *Resource `json:"ResourceConfig,omitnil,omitempty" name:"ResourceConfig"`

	// Payment mode.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether default configuration applies, DEFAULT or BACKUP. If it is not specified, the default configuration does not apply.
	IsDefault *string `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`

	// Region ID.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// When multiple specifications are added, details of the first specifications are in the ResourceConfig parameter, and those of the second to n-th are in the MultipleResourceConfig parameter.
	MultipleResourceConfig []*Resource `json:"MultipleResourceConfig,omitnil,omitempty" name:"MultipleResourceConfig"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Hardware type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

type AddNodeResourceConfigRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node type: Core, Task, and Router.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Resource details.
	ResourceConfig *Resource `json:"ResourceConfig,omitnil,omitempty" name:"ResourceConfig"`

	// Payment mode.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether default configuration applies, DEFAULT or BACKUP. If it is not specified, the default configuration does not apply.
	IsDefault *string `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`

	// Region ID.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// When multiple specifications are added, details of the first specifications are in the ResourceConfig parameter, and those of the second to n-th are in the MultipleResourceConfig parameter.
	MultipleResourceConfig []*Resource `json:"MultipleResourceConfig,omitnil,omitempty" name:"MultipleResourceConfig"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Hardware type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

func (r *AddNodeResourceConfigRequest) 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 *AddNodeResourceConfigRequest) 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, "ResourceType")
	delete(f, "ResourceConfig")
	delete(f, "PayMode")
	delete(f, "IsDefault")
	delete(f, "ZoneId")
	delete(f, "MultipleResourceConfig")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	delete(f, "HardwareResourceType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AddNodeResourceConfigRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type AddUsersForUserManagerRequestParams struct {
	// Cluster string ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// User information list
	UserManagerUserList []*UserInfoForUserManager `json:"UserManagerUserList,omitnil,omitempty" name:"UserManagerUserList"`
}

type AddUsersForUserManagerRequest struct {
	*tchttp.BaseRequest
	
	// Cluster string ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// User information list
	UserManagerUserList []*UserInfoForUserManager `json:"UserManagerUserList,omitnil,omitempty" name:"UserManagerUserList"`
}

func (r *AddUsersForUserManagerRequest) 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 *AddUsersForUserManagerRequest) 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, "UserManagerUserList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AddUsersForUserManagerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type AddUsersForUserManagerResponseParams struct {
	// The user list that is successfully added
	// Note: This field may return `null`, indicating that no valid value can be obtained.
	SuccessUserList []*string `json:"SuccessUserList,omitnil,omitempty" name:"SuccessUserList"`

	// The user list that is not successfully added
	// Note: This field may return `null`, indicating that no valid value can be obtained.
	FailedUserList []*string `json:"FailedUserList,omitnil,omitempty" name:"FailedUserList"`

	// Flow ID. If the flow ID is larger than 0, it means that the flow is launched; if the flow ID is equal to 0, it means that no flow is launched.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type AllNodeResourceSpec struct {
	// The description of master nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MasterResourceSpec *NodeResourceSpec `json:"MasterResourceSpec,omitnil,omitempty" name:"MasterResourceSpec"`

	// The description of core nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CoreResourceSpec *NodeResourceSpec `json:"CoreResourceSpec,omitnil,omitempty" name:"CoreResourceSpec"`

	// The description of task nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskResourceSpec *NodeResourceSpec `json:"TaskResourceSpec,omitnil,omitempty" name:"TaskResourceSpec"`

	// The description of common nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CommonResourceSpec *NodeResourceSpec `json:"CommonResourceSpec,omitnil,omitempty" name:"CommonResourceSpec"`

	// Number of Master nodes.
	MasterCount *int64 `json:"MasterCount,omitnil,omitempty" name:"MasterCount"`

	// Number of core nodes.
	CoreCount *int64 `json:"CoreCount,omitnil,omitempty" name:"CoreCount"`

	// Number of task nodes.
	TaskCount *int64 `json:"TaskCount,omitnil,omitempty" name:"TaskCount"`

	// Number of common nodes.
	CommonCount *int64 `json:"CommonCount,omitnil,omitempty" name:"CommonCount"`
}

type ApplicationStatics struct {
	// Queue name
	Queue *string `json:"Queue,omitnil,omitempty" name:"Queue"`

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

	// Application type
	ApplicationType *string `json:"ApplicationType,omitnil,omitempty" name:"ApplicationType"`

	// `SumMemorySeconds` meaning
	SumMemorySeconds *int64 `json:"SumMemorySeconds,omitnil,omitempty" name:"SumMemorySeconds"`

	// Total VCore Seconds
	SumVCoreSeconds *int64 `json:"SumVCoreSeconds,omitnil,omitempty" name:"SumVCoreSeconds"`

	// SumHDFSBytesWritten (with unit)
	SumHDFSBytesWritten *string `json:"SumHDFSBytesWritten,omitnil,omitempty" name:"SumHDFSBytesWritten"`

	// SumHDFSBytesRead (with unit)
	SumHDFSBytesRead *string `json:"SumHDFSBytesRead,omitnil,omitempty" name:"SumHDFSBytesRead"`

	// Application count
	CountApps *int64 `json:"CountApps,omitnil,omitempty" name:"CountApps"`
}

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

	// Value List
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

// Predefined struct for user
type AttachDisksRequestParams struct {
	// ID of the EMR cluster instance.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Cloud disk ID required for mounting.
	DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"`

	// Mount mode. Valid values.
	// AUTO_RENEW: auto-renewal.
	// ALIGN_DEADLINE: automatic alignment with the deadline.
	AlignType *string `json:"AlignType,omitnil,omitempty" name:"AlignType"`

	// List of CVM node IDs requiring mounting.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// Whether to mount newly purchased cloud disks.
	CreateDisk *bool `json:"CreateDisk,omitnil,omitempty" name:"CreateDisk"`

	// Specifications of newly purchased cloud disks.
	DiskSpec *NodeSpecDiskV2 `json:"DiskSpec,omitnil,omitempty" name:"DiskSpec"`

	// Optional parameter. Only mount operation is performed if this parameter is not passed. When True is passed, the CBS will be set to termination with the cloud host upon successful mounting. This is only applicable to pay-as-you-go cloud disk.
	DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"`

	// Name list of services that can be configured when a new disk is mounted.
	SelectiveConfServices []*string `json:"SelectiveConfServices,omitnil,omitempty" name:"SelectiveConfServices"`

	// Disk billing type (1: monthly subscription, 3: committed use).
	ChargeType *int64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// Disk committed use and purchase duration (only supports 12, 24, 36, 48, and 60).
	UnderWriteDuration *int64 `json:"UnderWriteDuration,omitnil,omitempty" name:"UnderWriteDuration"`
}

type AttachDisksRequest struct {
	*tchttp.BaseRequest
	
	// ID of the EMR cluster instance.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Cloud disk ID required for mounting.
	DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"`

	// Mount mode. Valid values.
	// AUTO_RENEW: auto-renewal.
	// ALIGN_DEADLINE: automatic alignment with the deadline.
	AlignType *string `json:"AlignType,omitnil,omitempty" name:"AlignType"`

	// List of CVM node IDs requiring mounting.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// Whether to mount newly purchased cloud disks.
	CreateDisk *bool `json:"CreateDisk,omitnil,omitempty" name:"CreateDisk"`

	// Specifications of newly purchased cloud disks.
	DiskSpec *NodeSpecDiskV2 `json:"DiskSpec,omitnil,omitempty" name:"DiskSpec"`

	// Optional parameter. Only mount operation is performed if this parameter is not passed. When True is passed, the CBS will be set to termination with the cloud host upon successful mounting. This is only applicable to pay-as-you-go cloud disk.
	DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"`

	// Name list of services that can be configured when a new disk is mounted.
	SelectiveConfServices []*string `json:"SelectiveConfServices,omitnil,omitempty" name:"SelectiveConfServices"`

	// Disk billing type (1: monthly subscription, 3: committed use).
	ChargeType *int64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// Disk committed use and purchase duration (only supports 12, 24, 36, 48, and 60).
	UnderWriteDuration *int64 `json:"UnderWriteDuration,omitnil,omitempty" name:"UnderWriteDuration"`
}

func (r *AttachDisksRequest) 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 *AttachDisksRequest) 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, "DiskIds")
	delete(f, "AlignType")
	delete(f, "CvmInstanceIds")
	delete(f, "CreateDisk")
	delete(f, "DiskSpec")
	delete(f, "DeleteWithInstance")
	delete(f, "SelectiveConfServices")
	delete(f, "ChargeType")
	delete(f, "UnderWriteDuration")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AttachDisksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type AttachDisksResponseParams struct {
	// Flow ID.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type AutoScaleGroupAdvanceAttrs struct {
	// Advanced settings of computing resources.
	ComputeResourceAdvanceParams *ComputeResourceAdvanceParams `json:"ComputeResourceAdvanceParams,omitnil,omitempty" name:"ComputeResourceAdvanceParams"`
}

type AutoScaleRecord struct {
	// Name of the scale-in or scale-out rule.
	StrategyName *string `json:"StrategyName,omitnil,omitempty" name:"StrategyName"`

	// "SCALE_OUT" and "SCALE_IN", representing expansion and reduction respectively.
	ScaleAction *string `json:"ScaleAction,omitnil,omitempty" name:"ScaleAction"`

	// The values are "SUCCESS", "FAILED", "PART_SUCCESS", "IN_PROCESS", which indicate success, failure, partial success, and in-progress, respectively.
	ActionStatus *string `json:"ActionStatus,omitnil,omitempty" name:"ActionStatus"`

	// Process initiation time.
	ActionTime *string `json:"ActionTime,omitnil,omitempty" name:"ActionTime"`

	// Description related to auto-scaling.
	ScaleInfo *string `json:"ScaleInfo,omitnil,omitempty" name:"ScaleInfo"`

	// Valid only when ScaleAction is SCALE_OUT.
	ExpectScaleNum *int64 `json:"ExpectScaleNum,omitnil,omitempty" name:"ExpectScaleNum"`

	// Process termination time.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Policy type. Valid values: 1 (load-based scaling), 2 (time-based scaling).
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Specification information used during scale-out.
	SpecInfo *string `json:"SpecInfo,omitnil,omitempty" name:"SpecInfo"`

	// Compensatory scale-out. 0: disable, 1: enable.
	CompensateFlag *int64 `json:"CompensateFlag,omitnil,omitempty" name:"CompensateFlag"`

	// Number of compensations.
	CompensateCount *int64 `json:"CompensateCount,omitnil,omitempty" name:"CompensateCount"`

	// Number of retries.
	RetryCount *uint64 `json:"RetryCount,omitnil,omitempty" name:"RetryCount"`

	// Retry information.
	RetryInfo *string `json:"RetryInfo,omitnil,omitempty" name:"RetryInfo"`

	// Retry description in English.
	RetryEnReason *string `json:"RetryEnReason,omitnil,omitempty" name:"RetryEnReason"`

	// Retry description.
	RetryReason *string `json:"RetryReason,omitnil,omitempty" name:"RetryReason"`
}

type AutoScaleResourceConf struct {
	// Configuration ID.
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// Cluster instance ID.
	ClusterId *int64 `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Minimum number of instances retained for automatic scaling
	ScaleLowerBound *int64 `json:"ScaleLowerBound,omitnil,omitempty" name:"ScaleLowerBound"`

	// Maximum number of instances for auto scaling
	ScaleUpperBound *int64 `json:"ScaleUpperBound,omitnil,omitempty" name:"ScaleUpperBound"`

	// Scale-out rule type. 1: load-based scale-out rule, 2: time-based scale-out rule
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Next scale-out time.
	NextTimeCanScale *uint64 `json:"NextTimeCanScale,omitnil,omitempty" name:"NextTimeCanScale"`

	// Graceful scale-in switch.
	GraceDownFlag *bool `json:"GraceDownFlag,omitnil,omitempty" name:"GraceDownFlag"`

	// "CVM" indicates that the CVM type is used for all specifications, and "Pod" indicates that the container type is used for specifications. The default value is "CVM".
	HardwareType *string `json:"HardwareType,omitnil,omitempty" name:"HardwareType"`

	// "POSTPAY" indicates the sole adoption of pay-as-you-go, and "SPOT_FIRST" indicates spot instance first, which is only supported when HardwareType is "HOST". "Pod" only supports pay-as-you-go.
	PayMode *string `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// The minimum percentage of pay-as-you-go resources in scenarios with spot instance first. It is an integer.
	PostPayPercentMin *int64 `json:"PostPayPercentMin,omitnil,omitempty" name:"PostPayPercentMin"`

	// When resource type is preset to HOST: Supports enabling/disabling "Fallback to pod when resources are insufficient"; Default state: 0 (disabled), Toggle state: 1 (enabled).
	ChangeToPod *int64 `json:"ChangeToPod,omitnil,omitempty" name:"ChangeToPod"`

	// Scaling group name.
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

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

	// Scaling group status.
	GroupStatus *int64 `json:"GroupStatus,omitnil,omitempty" name:"GroupStatus"`

	// Parallel scaling. 0: disabled; 1: enabled.
	Parallel *int64 `json:"Parallel,omitnil,omitempty" name:"Parallel"`

	// Whether MNode is supported.
	EnableMNode *int64 `json:"EnableMNode,omitnil,omitempty" name:"EnableMNode"`

	// More scaling group settings.
	ExtraAdvanceAttrs *AutoScaleGroupAdvanceAttrs `json:"ExtraAdvanceAttrs,omitnil,omitempty" name:"ExtraAdvanceAttrs"`
}

type CBSInstance struct {
	// Cloud disk ID.
	DiskId *string `json:"DiskId,omitnil,omitempty" name:"DiskId"`

	// Cloud disk type.
	DiskUsage *string `json:"DiskUsage,omitnil,omitempty" name:"DiskUsage"`

	// Cloud disk name.
	DiskName *string `json:"DiskName,omitnil,omitempty" name:"DiskName"`

	// Cloud disk size.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Cloud disk media type.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Whether to delete it with the instance.
	DeleteWithInstance *bool `json:"DeleteWithInstance,omitnil,omitempty" name:"DeleteWithInstance"`

	// Cloud disk billing type.
	DiskChargeType *string `json:"DiskChargeType,omitnil,omitempty" name:"DiskChargeType"`

	// Cloud disk running status.
	DiskState *string `json:"DiskState,omitnil,omitempty" name:"DiskState"`

	// Whether to perform auto-renewal.
	RenewFlag *string `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Expiration time.
	DeadlineTime *string `json:"DeadlineTime,omitnil,omitempty" name:"DeadlineTime"`

	// Whether the cloud disk is mounted on the cloud host.
	Attached *bool `json:"Attached,omitnil,omitempty" name:"Attached"`

	// Days remaining until disk expiration.
	DifferDaysOfDeadline *int64 `json:"DifferDaysOfDeadline,omitnil,omitempty" name:"DifferDaysOfDeadline"`

	// InstanceId of the CVM instance to which this cloud disk is currently mounted.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceIdList []*string `json:"InstanceIdList,omitnil,omitempty" name:"InstanceIdList"`

	// ID of the cloud host to which the Cloud disk is mounted.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Whether the cloud disk is a shared cloud disk.
	Shareable *bool `json:"Shareable,omitnil,omitempty" name:"Shareable"`

	// EMR node ID.
	EmrResourceId *string `json:"EmrResourceId,omitnil,omitempty" name:"EmrResourceId"`

	// Committed use expiration time.
	UnderwriteExpiredTime *string `json:"UnderwriteExpiredTime,omitnil,omitempty" name:"UnderwriteExpiredTime"`
}

type COSSettings struct {
	// COS `SecretId`
	CosSecretId *string `json:"CosSecretId,omitnil,omitempty" name:"CosSecretId"`

	// COS `SecrectKey`
	CosSecretKey *string `json:"CosSecretKey,omitnil,omitempty" name:"CosSecretKey"`

	// COS path to log
	LogOnCosPath *string `json:"LogOnCosPath,omitnil,omitempty" name:"LogOnCosPath"`
}

type CapacityGlobalConfig struct {
	// Whether label-based scheduling is enabled.
	EnableLabel *bool `json:"EnableLabel,omitnil,omitempty" name:"EnableLabel"`

	// Path for tag information storage if label-based scheduling is enabled.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LabelDir *string `json:"LabelDir,omitnil,omitempty" name:"LabelDir"`

	// Whether to overwrite the user-specified queue, wherein true indicates overwrite.
	// Note: This field may return null, indicating that no valid values can be obtained.
	QueueMappingOverride *bool `json:"QueueMappingOverride,omitnil,omitempty" name:"QueueMappingOverride"`

	// Advanced settings.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DefaultSettings []*DefaultSetting `json:"DefaultSettings,omitnil,omitempty" name:"DefaultSettings"`
}

type CdbInfo struct {
	// Database instance.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Database IP address.
	Ip *string `json:"Ip,omitnil,omitempty" name:"Ip"`

	// Database port.
	Port *int64 `json:"Port,omitnil,omitempty" name:"Port"`

	// Database memory specifications.
	MemSize *int64 `json:"MemSize,omitnil,omitempty" name:"MemSize"`

	// Database disk specifications.
	Volume *int64 `json:"Volume,omitnil,omitempty" name:"Volume"`

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

	// Expiration time.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Application time.
	ApplyTime *string `json:"ApplyTime,omitnil,omitempty" name:"ApplyTime"`

	// Billing type.
	PayType *int64 `json:"PayType,omitnil,omitempty" name:"PayType"`

	// Expiration flag.
	ExpireFlag *bool `json:"ExpireFlag,omitnil,omitempty" name:"ExpireFlag"`

	// Database status.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Renewal flag.
	IsAutoRenew *int64 `json:"IsAutoRenew,omitnil,omitempty" name:"IsAutoRenew"`

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

	// ZoneId
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// RegionId
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`
}

type ClusterExternalServiceInfo struct {
	// Dependency relationship. 0: being depended on by other clusters, 1: depending on other clusters.
	DependType *int64 `json:"DependType,omitnil,omitempty" name:"DependType"`

	// Shared component.
	Service *string `json:"Service,omitnil,omitempty" name:"Service"`

	// Shared cluster.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Shared cluster status.
	ClusterStatus *int64 `json:"ClusterStatus,omitnil,omitempty" name:"ClusterStatus"`
}

type ClusterIDToFlowID struct {
	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Flow ID.
	FlowId *uint64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`
}

type ClusterInstancesInfo struct {
	// ID.
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// Cluster ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Title
	// Note: this field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: Ftitle is deprecated.
	Ftitle *string `json:"Ftitle,omitnil,omitempty" name:"Ftitle"`

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

	// Region ID.
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

	// Region ID.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// User AppID.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// User UIN.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Project ID.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Cluster VPCID.
	VpcId *int64 `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID.
	SubnetId *int64 `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Instance status code. Valid range:
	// <li>2: the cluster is running.</li>
	// <li>3: the cluster is being created.</li>
	// <li>4: the cluster is being scaled out.</li>
	// <li>5: Router nodes are being added to the cluster.</li>
	// <li>6: components are being installed in the cluster.</li>
	// <li>7: commands are being executed in the cluster.</li>
	// <li>8: the service is being restarted.</li>
	// <li>9: maintenance is in progress.</li>
	// <li>10: the service is being suspended.</li>
	// <li>11: the cluster is exiting maintenance.</li>
	// <li>12: the cluster is exiting suspension.</li>
	// <li>13: the configuration is being distributed.</li>
	// <li>14: the cluster is being terminated.</li>
	// <li>15: the Core node is being destroyed.</li>
	// <li>16: the Task node is being destroyed.</li>
	// <li>17: the Router node is being destroyed.</li>
	// <li>18: the web proxy password is being changed.</li>
	// <li>19: the cluster is being isolated.</li>
	// <li>20: the cluster is undergoing a reversal transaction.</li>
	// <li>21: the cluster is being recycled.</li>
	// <li>22: the instance is waiting for resizing.</li>
	// <li>23: the cluster has been isolated.</li>
	// <li>24: the number of nodes is being reduced.</li>
	// <li>33: the cluster is waiting for a refund.</li>
	// <li>34: the cluster has received a refund.</li>
	// <li>301: creation failed.</li>
	// <li>302: scale-out failed.</li>
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Adding time.
	AddTime *string `json:"AddTime,omitnil,omitempty" name:"AddTime"`

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

	// Cluster product configuration information
	// Note: this field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: Config is deprecated.
	Config *EmrProductConfigOutter `json:"Config,omitnil,omitempty" name:"Config"`

	// Public network IP address of the primary node.
	MasterIp *string `json:"MasterIp,omitnil,omitempty" name:"MasterIp"`

	// EMR version.
	EmrVersion *string `json:"EmrVersion,omitnil,omitempty" name:"EmrVersion"`

	// Charge type.
	ChargeType *int64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// Transaction version.
	TradeVersion *int64 `json:"TradeVersion,omitnil,omitempty" name:"TradeVersion"`

	// Resource order ID.
	ResourceOrderId *int64 `json:"ResourceOrderId,omitnil,omitempty" name:"ResourceOrderId"`

	// Whether it is a billing cluster.
	IsTradeCluster *int64 `json:"IsTradeCluster,omitnil,omitempty" name:"IsTradeCluster"`

	// Alarm information of cluster error status.
	AlarmInfo *string `json:"AlarmInfo,omitnil,omitempty" name:"AlarmInfo"`

	// Whether to adopt new architecture.
	IsWoodpeckerCluster *int64 `json:"IsWoodpeckerCluster,omitnil,omitempty" name:"IsWoodpeckerCluster"`

	// Metadatabase information.
	MetaDb *string `json:"MetaDb,omitnil,omitempty" name:"MetaDb"`

	// Tag information
	// Note: this field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Hive metadata information.
	HiveMetaDb *string `json:"HiveMetaDb,omitnil,omitempty" name:"HiveMetaDb"`

	// Cluster type: EMR,CLICKHOUSE,DRUID.
	ServiceClass *string `json:"ServiceClass,omitnil,omitempty" name:"ServiceClass"`

	// Alias serialization of all nodes in the cluster.
	AliasInfo *string `json:"AliasInfo,omitnil,omitempty" name:"AliasInfo"`

	// Cluster version ID.
	ProductId *int64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

	// Region ID.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

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

	// Scenario-based cluster type.
	SceneServiceClass *string `json:"SceneServiceClass,omitnil,omitempty" name:"SceneServiceClass"`

	// Scenario-based EMR version.
	SceneEmrVersion *string `json:"SceneEmrVersion,omitnil,omitempty" name:"SceneEmrVersion"`

	// Scenario-based cluster type.
	DisplayName *string `json:"DisplayName,omitnil,omitempty" name:"DisplayName"`

	// vpc name
	VpcName *string `json:"VpcName,omitnil,omitempty" name:"VpcName"`

	// subnet name
	SubnetName *string `json:"SubnetName,omitnil,omitempty" name:"SubnetName"`

	// Cluster dependency
	// Note: This field may return `null`, indicating that no valid value was found.
	ClusterExternalServiceInfo []*ClusterExternalServiceInfo `json:"ClusterExternalServiceInfo,omitnil,omitempty" name:"ClusterExternalServiceInfo"`

	// Cluster vpcid string type.
	UniqVpcId *string `json:"UniqVpcId,omitnil,omitempty" name:"UniqVpcId"`

	// Subnet ID string type.
	UniqSubnetId *string `json:"UniqSubnetId,omitnil,omitempty" name:"UniqSubnetId"`

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

	// Whether it is a cross-AZ cluster.
	IsMultiZoneCluster *bool `json:"IsMultiZoneCluster,omitnil,omitempty" name:"IsMultiZoneCluster"`

	// Whether to enable automatic compensation for abnormal nodes.
	IsCvmReplace *bool `json:"IsCvmReplace,omitnil,omitempty" name:"IsCvmReplace"`

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

	// Cluster product configuration information
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConfigDetail *EmrProductConfigDetail `json:"ConfigDetail,omitnil,omitempty" name:"ConfigDetail"`

	// Number of file systems bound to a cluster.
	BindFileSystemNum *int64 `json:"BindFileSystemNum,omitnil,omitempty" name:"BindFileSystemNum"`

	// Bound list of the RSS cluster.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterRelationInfoList []*ClusterRelationMeta `json:"ClusterRelationInfoList,omitnil,omitempty" name:"ClusterRelationInfoList"`

	// Redis information.
	RedisId *string `json:"RedisId,omitnil,omitempty" name:"RedisId"`
}

type ClusterRelationMeta struct {
	// Cluster type.
	ClusterType *string `json:"ClusterType,omitnil,omitempty" name:"ClusterType"`

	// Cluster ID list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterIdList []*string `json:"ClusterIdList,omitnil,omitempty" name:"ClusterIdList"`
}

type ComponentBasicRestartInfo struct {
	// Process name which is required, such as NameNode.
	ComponentName *string `json:"ComponentName,omitnil,omitempty" name:"ComponentName"`

	// The target IP list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	IpList []*string `json:"IpList,omitnil,omitempty" name:"IpList"`
}

type ComputeResourceAdvanceParams struct {
	// Node label array.
	Labels []*TkeLabel `json:"Labels,omitnil,omitempty" name:"Labels"`

	// Node taint.
	Taints []*Taint `json:"Taints,omitnil,omitempty" name:"Taints"`

	// Base64-encoded user script: executed before node initializing.
	PreStartUserScript *string `json:"PreStartUserScript,omitnil,omitempty" name:"PreStartUserScript"`

	// Base64-encoded user script. This script executes after Kubernetes components initialize. Users should ensure script reentrancy and implement retry logic. Both the script and its generated log files are accessible at the node path: /data/ccs_userscript/.
	UserScript *string `json:"UserScript,omitnil,omitempty" name:"UserScript"`
}

type ConfigModifyInfoV2 struct {
	// Operation type. Valid values:
	// 
	// - 0: create a queue.
	// - 1: edit - full overwrite.
	// - 2: create a sub-queue.
	// - 3: delete.
	// - 4: clone. It is the same as sub-queue creation. Especially, for `fair`, a sub-queue can be copied to a new queue.
	// - 6: edit - incremental update.
	OpType *uint64 `json:"OpType,omitnil,omitempty" name:"OpType"`

	// Queue name. It cannot be modified.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Create root queue: Pass "myId of root"; Create sub-queue: Pass "myId of the selected queue"; Clone queue: Pass "parentId of the selected queue".
	ParentId *string `json:"ParentId,omitnil,omitempty" name:"ParentId"`

	// Edit or delete operations: Require passing "myId of the selected queue". Passing is required for cloning only when the scheduler is `fair` in order to copy a sub-queue to a new queue.
	MyId *string `json:"MyId,omitnil,omitempty" name:"MyId"`

	// Basic configuration. The value of key is consistent with the field returned by **DescribeYarnQueue**.###### Fair scheduler
	// Values of key are as follows:
	// 
	// - type: parent queue. Value: **parent** or **null**.
	// - aclSubmitApps: submission ACL. Value: **JSON string of the AclForYarnQueue type** or **null**.
	// - aclAdministerApps: administration ACL. Value: **JSON string of the AclForYarnQueue type** or **null**.
	// - minSharePreemptionTimeout: timeout of minimum share before preemption. Value: **numeric string** or **null**.
	// - fairSharePreemptionTimeout: timeout of fair share before preemption. Value: **numeric string** or **null**.
	// - fairSharePreemptionThreshold: fair share preemption threshold. Value: **numeric string** or **null**. Numeric string range: (0,1].
	// - allowPreemptionFrom: preemption mode. Value: **Boolean string** or **null**.
	// - schedulingPolicy: scheduling policy. Value: **drf**, **fair**, **fifo**, or **null**.
	// 
	// ```
	// type AclForYarnQueue struct {
	// 	User  *string `json:"user"` // Username
	// 	Group *string `json:"group"`// Group name
	// }
	// ```
	// ###### Capacity scheduler
	// Values of key are as follows:
	// 
	// - state: queue status. Value: **STOPPED** or **RUNNING**.
	// - default-node-label-expression: default tag expression. Value: **tag** or **null**.
	// - acl_submit_applications: submission ACL. Value: **JSON string of the AclForYarnQueue type** or **null**.
	// - acl_administer_queue: administration ACL. Value: **JSON string of the AclForYarnQueue type** or **null**.
	// - maximum-allocation-mb: maximum memory allocated to each container. Value: **numeric string** or **null**.
	// - maximum-allocation-vcores: maximum number of virtual cores allocated to each container. Value: **numeric string** or **null**.
	// ```
	// type AclForYarnQueue struct {
	// 	User  *string `json:"user"` // Username
	// 	Group *string `json:"group"`// Group name
	// }
	// ```
	// Note: This field may return null, indicating that no valid values can be obtained.
	BasicParams *ItemSeq `json:"BasicParams,omitnil,omitempty" name:"BasicParams"`

	// Configuration set information. For the values, see the parameter description of ConfigSetInfo. Configuration set is the representation of the plan mode in the queue, containing different configuration item values for different time periods. The configuration set names of all queues are the same. For a single queue, the tags and parameters in each configuration set are the same, but the parameter values are different.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConfigSetParams []*ConfigSetInfo `json:"ConfigSetParams,omitnil,omitempty" name:"ConfigSetParams"`

	// This parameter is specific for capacity scheduling and is valid only when `OpType` is set to `6`. It indicates tags to be deleted from the queue. This parameter has a higher priority than LabelParams in ConfigSetParams.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DeleteLables []*string `json:"DeleteLables,omitnil,omitempty" name:"DeleteLables"`
}

type ConfigSetInfo struct {
	// Configuration set name.
	ConfigSet *string `json:"ConfigSet,omitnil,omitempty" name:"ConfigSet"`

	// The capacity scheduler will use it, where tag-related configuration is set. The key values are consistent with the fields returned by **DescribeYarnQueue**.
	// The key values are as follows:
	// - labelName: Tag name, that is, tags in tag management.
	// - capacity: Capacity. The value is a **numeric string**.
	// - maximum-capacity: Maximum capacity. The value is a **numeric string**.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LabelParams []*ItemSeq `json:"LabelParams,omitnil,omitempty" name:"LabelParams"`

	// Set parameters related to the configuration set. The key values are consistent with the fields returned by **DescribeYarnQueue**.
	// ###### Fair scheduler.
	// The key values are as follows:
	// - minResources: Minimum resource amount. The value is a **JSON string of the YarnResource type** or **null**.
	// - maxResources: Maximum resource amount. The value is a **JSON string of the YarnResource type** or **null**.
	// - maxChildResources: Maximum resource amount for undeclared subqueues. The value is a **numeric string** or **null**.
	// - maxRunningApps: Maximum number of apps that can run concurrently. The value is a **numeric string** or **null**.
	// - weight: weight. The value is a **numeric string** or **null**.
	// - maxAMShare: Maximum App Master share. The value is a **numeric string** or **null**, where the number range is [0,1] or -1.
	// 
	// ```
	// type YarnResource struct {
	// 	Vcores *int `json:"vcores"`
	// 	Memory *int `json:"memory"`
	// 	Type *string `json:"type"` // The value can be percent or null. When the value is percent, it indicates the percentage used; otherwise, the absolute value used is indicated. The value can be percent only for maxResources and maxChildResources.
	// }
	// ```
	// 
	// ###### Capacity scheduler.
	// The key values are as follows:
	// - minimum-user-limit-percent: Minimum user capacity. The value is a **JSON string of the YarnResource type** or **null**, where the number range is [0,100].
	// - user-limit-factor: User resource factor. The value is a **JSON string of the YarnResource type** or **null**.
	// - maximum-applications: Maximum number of applications, that is, Max-Applications. The value is a **numeric string** or **null**, where the numbers must be positive integers.
	// - maximum-am-resource-percent: maximum AM percent. The value is a **numeric string** or **null**, where the number range is [0,1] or -1.
	// - default-application-priority: Resource pool priority. The value is a **numeric string** or **null**, where the numbers must be positive integers.
	// Note: This field may return null, indicating that no valid values can be obtained.
	BasicParams []*Item `json:"BasicParams,omitnil,omitempty" name:"BasicParams"`
}

type ConfigurationItem struct {
	// Configuration item name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Configuration item value.
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`

	// Name of the configuration file where the configuration item is located.
	InFile *string `json:"InFile,omitnil,omitempty" name:"InFile"`
}

// Predefined struct for user
type ConvertPreToPostClusterRequestParams struct {
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Non-reentrant identifier (5-minute window). Order identifier.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`
}

type ConvertPreToPostClusterRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Non-reentrant identifier (5-minute window). Order identifier.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`
}

func (r *ConvertPreToPostClusterRequest) 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 *ConvertPreToPostClusterRequest) 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, "ClientToken")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ConvertPreToPostClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type CreateClusterRequestParams struct {
	// The EMR version, such as `EMR-V2.3.0` that indicates the version 2.3.0 of EMR. You can query the EMR version [here](https://intl.cloud.tencent.com/document/product/589/66338?from_cn_redirect=1).
	ProductVersion *string `json:"ProductVersion,omitnil,omitempty" name:"ProductVersion"`

	// Whether to enable high availability for nodes. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false`: Disable</li>
	EnableSupportHAFlag *bool `json:"EnableSupportHAFlag,omitnil,omitempty" name:"EnableSupportHAFlag"`

	// The instance name.
	// <li>Length limit: 6-36 characters.</li>
	// <li>Can contain only Chinese characters, letters, digits, hyphens (-), and underscores (_).</li>
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// The instance billing mode. Valid values:
	// <li>`POSTPAID_BY_HOUR`: The postpaid mode by hour.</li>
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// The instance login setting. This parameter allows you to set a login password or key for your purchased node.
	// <li>If a key is set, the password will be used for login to the native component WebUI only.</li>
	// <li>If no key is set, the password will be used for login to all purchased nodes and the native component WebUI.</li>
	LoginSettings *LoginSettings `json:"LoginSettings,omitnil,omitempty" name:"LoginSettings"`

	// The configuration of cluster application scenario and supported components.
	SceneSoftwareConfig *SceneSoftwareConfig `json:"SceneSoftwareConfig,omitnil,omitempty" name:"SceneSoftwareConfig"`

	// The details of the monthly subscription, including the instance period and auto-renewal. It is required if `InstanceChargeType` is `PREPAID`.
	InstanceChargePrepaid *InstanceChargePrepaid `json:"InstanceChargePrepaid,omitnil,omitempty" name:"InstanceChargePrepaid"`

	// The ID of the security group to which the instance belongs, in the format of `sg-xxxxxxxx`. You can call the [DescribeSecurityGroups](https://intl.cloud.tencent.com/document/api/215/15808?from_cn_redirect=1) API and obtain this parameter from the `SecurityGroupId` field in the response.
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// The [Bootstrap action](https://intl.cloud.tencent.com/document/product/589/35656?from_cn_redirect=1) script settings.
	ScriptBootstrapActionConfig []*ScriptBootstrapActionConfig `json:"ScriptBootstrapActionConfig,omitnil,omitempty" name:"ScriptBootstrapActionConfig"`

	// Unique random identifier with the time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from repeatedly creating resources, for example, a9a90aa6-****-****-****-fae360632808.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Whether to enable public IP access for master nodes. Valid values:
	// <li>`NEED_MASTER_WAN`: Enable public IP for master nodes.</li>
	// <li>`NOT_NEED_MASTER_WAN`: Disable.</li>The public IP is enabled for master nodes by default.
	NeedMasterWan *string `json:"NeedMasterWan,omitnil,omitempty" name:"NeedMasterWan"`

	// Whether to enable remote login over the public network. It is invalid if `SecurityGroupId` is passed in. It is disabled by default. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false`: Disable</li>
	EnableRemoteLoginFlag *bool `json:"EnableRemoteLoginFlag,omitnil,omitempty" name:"EnableRemoteLoginFlag"`

	// Whether to enable Kerberos authentication. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false` (default): Disable</li>
	EnableKerberosFlag *bool `json:"EnableKerberosFlag,omitnil,omitempty" name:"EnableKerberosFlag"`

	// [Custom software configuration](https://intl.cloud.tencent.com/document/product/589/35655?from_cn_redirect=1?from_cn_redirect=1)
	CustomConf *string `json:"CustomConf,omitnil,omitempty" name:"CustomConf"`

	// The tag description list. This parameter is used to bind a tag to a resource instance.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The list of spread placement group IDs. Only one can be specified.
	// You can call the [DescribeDisasterRecoverGroups](https://intl.cloud.tencent.com/document/product/213/17810?from_cn_redirect=1) API and obtain this parameter from the `DisasterRecoverGroupId` field in the response.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// Whether to enable the cluster-level CBS encryption. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false` (default): Disable</li>
	EnableCbsEncryptFlag *bool `json:"EnableCbsEncryptFlag,omitnil,omitempty" name:"EnableCbsEncryptFlag"`

	// The metadatabase information. If `MetaType` is `EMR_NEW_META`, `MetaDataJdbcUrl`, `MetaDataUser`, `MetaDataPass`, and `UnifyMetaInstanceId` are not required.
	// If `MetaType` is `EMR_EXIT_META`, `UnifyMetaInstanceId` is required.
	// If `MetaType` is `USER_CUSTOM_META`, `MetaDataJdbcUrl`, `MetaDataUser`, and `MetaDataPass` are required.
	MetaDBInfo *CustomMetaDBInfo `json:"MetaDBInfo,omitnil,omitempty" name:"MetaDBInfo"`

	// The shared component information.
	DependService []*DependService `json:"DependService,omitnil,omitempty" name:"DependService"`

	// The node resource specs. A spec is specified for each AZ, with the first spec for the primary AZ, the second for the backup AZ, and the third for the arbitrator AZ. If the multi-AZ mode is not enabled, only one spec is required.
	ZoneResourceConfiguration []*ZoneResourceConfiguration `json:"ZoneResourceConfiguration,omitnil,omitempty" name:"ZoneResourceConfiguration"`

	// COS bucket path, which is used when you create StarRocks compute-storage separation clusters.
	CosBucket *string `json:"CosBucket,omitnil,omitempty" name:"CosBucket"`

	// Node identifier information: currently used only in Terraform.
	NodeMarks []*NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`

	// clb id
	LoadBalancerId *string `json:"LoadBalancerId,omitnil,omitempty" name:"LoadBalancerId"`
}

type CreateClusterRequest struct {
	*tchttp.BaseRequest
	
	// The EMR version, such as `EMR-V2.3.0` that indicates the version 2.3.0 of EMR. You can query the EMR version [here](https://intl.cloud.tencent.com/document/product/589/66338?from_cn_redirect=1).
	ProductVersion *string `json:"ProductVersion,omitnil,omitempty" name:"ProductVersion"`

	// Whether to enable high availability for nodes. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false`: Disable</li>
	EnableSupportHAFlag *bool `json:"EnableSupportHAFlag,omitnil,omitempty" name:"EnableSupportHAFlag"`

	// The instance name.
	// <li>Length limit: 6-36 characters.</li>
	// <li>Can contain only Chinese characters, letters, digits, hyphens (-), and underscores (_).</li>
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// The instance billing mode. Valid values:
	// <li>`POSTPAID_BY_HOUR`: The postpaid mode by hour.</li>
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// The instance login setting. This parameter allows you to set a login password or key for your purchased node.
	// <li>If a key is set, the password will be used for login to the native component WebUI only.</li>
	// <li>If no key is set, the password will be used for login to all purchased nodes and the native component WebUI.</li>
	LoginSettings *LoginSettings `json:"LoginSettings,omitnil,omitempty" name:"LoginSettings"`

	// The configuration of cluster application scenario and supported components.
	SceneSoftwareConfig *SceneSoftwareConfig `json:"SceneSoftwareConfig,omitnil,omitempty" name:"SceneSoftwareConfig"`

	// The details of the monthly subscription, including the instance period and auto-renewal. It is required if `InstanceChargeType` is `PREPAID`.
	InstanceChargePrepaid *InstanceChargePrepaid `json:"InstanceChargePrepaid,omitnil,omitempty" name:"InstanceChargePrepaid"`

	// The ID of the security group to which the instance belongs, in the format of `sg-xxxxxxxx`. You can call the [DescribeSecurityGroups](https://intl.cloud.tencent.com/document/api/215/15808?from_cn_redirect=1) API and obtain this parameter from the `SecurityGroupId` field in the response.
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// The [Bootstrap action](https://intl.cloud.tencent.com/document/product/589/35656?from_cn_redirect=1) script settings.
	ScriptBootstrapActionConfig []*ScriptBootstrapActionConfig `json:"ScriptBootstrapActionConfig,omitnil,omitempty" name:"ScriptBootstrapActionConfig"`

	// Unique random identifier with the time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from repeatedly creating resources, for example, a9a90aa6-****-****-****-fae360632808.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Whether to enable public IP access for master nodes. Valid values:
	// <li>`NEED_MASTER_WAN`: Enable public IP for master nodes.</li>
	// <li>`NOT_NEED_MASTER_WAN`: Disable.</li>The public IP is enabled for master nodes by default.
	NeedMasterWan *string `json:"NeedMasterWan,omitnil,omitempty" name:"NeedMasterWan"`

	// Whether to enable remote login over the public network. It is invalid if `SecurityGroupId` is passed in. It is disabled by default. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false`: Disable</li>
	EnableRemoteLoginFlag *bool `json:"EnableRemoteLoginFlag,omitnil,omitempty" name:"EnableRemoteLoginFlag"`

	// Whether to enable Kerberos authentication. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false` (default): Disable</li>
	EnableKerberosFlag *bool `json:"EnableKerberosFlag,omitnil,omitempty" name:"EnableKerberosFlag"`

	// [Custom software configuration](https://intl.cloud.tencent.com/document/product/589/35655?from_cn_redirect=1?from_cn_redirect=1)
	CustomConf *string `json:"CustomConf,omitnil,omitempty" name:"CustomConf"`

	// The tag description list. This parameter is used to bind a tag to a resource instance.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The list of spread placement group IDs. Only one can be specified.
	// You can call the [DescribeDisasterRecoverGroups](https://intl.cloud.tencent.com/document/product/213/17810?from_cn_redirect=1) API and obtain this parameter from the `DisasterRecoverGroupId` field in the response.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// Whether to enable the cluster-level CBS encryption. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false` (default): Disable</li>
	EnableCbsEncryptFlag *bool `json:"EnableCbsEncryptFlag,omitnil,omitempty" name:"EnableCbsEncryptFlag"`

	// The metadatabase information. If `MetaType` is `EMR_NEW_META`, `MetaDataJdbcUrl`, `MetaDataUser`, `MetaDataPass`, and `UnifyMetaInstanceId` are not required.
	// If `MetaType` is `EMR_EXIT_META`, `UnifyMetaInstanceId` is required.
	// If `MetaType` is `USER_CUSTOM_META`, `MetaDataJdbcUrl`, `MetaDataUser`, and `MetaDataPass` are required.
	MetaDBInfo *CustomMetaDBInfo `json:"MetaDBInfo,omitnil,omitempty" name:"MetaDBInfo"`

	// The shared component information.
	DependService []*DependService `json:"DependService,omitnil,omitempty" name:"DependService"`

	// The node resource specs. A spec is specified for each AZ, with the first spec for the primary AZ, the second for the backup AZ, and the third for the arbitrator AZ. If the multi-AZ mode is not enabled, only one spec is required.
	ZoneResourceConfiguration []*ZoneResourceConfiguration `json:"ZoneResourceConfiguration,omitnil,omitempty" name:"ZoneResourceConfiguration"`

	// COS bucket path, which is used when you create StarRocks compute-storage separation clusters.
	CosBucket *string `json:"CosBucket,omitnil,omitempty" name:"CosBucket"`

	// Node identifier information: currently used only in Terraform.
	NodeMarks []*NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`

	// clb id
	LoadBalancerId *string `json:"LoadBalancerId,omitnil,omitempty" name:"LoadBalancerId"`
}

func (r *CreateClusterRequest) 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 *CreateClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ProductVersion")
	delete(f, "EnableSupportHAFlag")
	delete(f, "InstanceName")
	delete(f, "InstanceChargeType")
	delete(f, "LoginSettings")
	delete(f, "SceneSoftwareConfig")
	delete(f, "InstanceChargePrepaid")
	delete(f, "SecurityGroupIds")
	delete(f, "ScriptBootstrapActionConfig")
	delete(f, "ClientToken")
	delete(f, "NeedMasterWan")
	delete(f, "EnableRemoteLoginFlag")
	delete(f, "EnableKerberosFlag")
	delete(f, "CustomConf")
	delete(f, "Tags")
	delete(f, "DisasterRecoverGroupIds")
	delete(f, "EnableCbsEncryptFlag")
	delete(f, "MetaDBInfo")
	delete(f, "DependService")
	delete(f, "ZoneResourceConfiguration")
	delete(f, "CosBucket")
	delete(f, "NodeMarks")
	delete(f, "LoadBalancerId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateClusterResponseParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

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

// Predefined struct for user
type CreateGroupsSTDRequestParams struct {
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Batch user group information.
	Groups []*GroupInfo `json:"Groups,omitnil,omitempty" name:"Groups"`
}

type CreateGroupsSTDRequest struct {
	*tchttp.BaseRequest
	
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Batch user group information.
	Groups []*GroupInfo `json:"Groups,omitnil,omitempty" name:"Groups"`
}

func (r *CreateGroupsSTDRequest) 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 *CreateGroupsSTDRequest) 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, "Groups")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateGroupsSTDRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateGroupsSTDResponseParams struct {
	// Output result of each user group.
	Data []*ResultItem `json:"Data,omitnil,omitempty" name:"Data"`

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

type CreateGroupsSTDResponse struct {
	*tchttp.BaseResponse
	Response *CreateGroupsSTDResponseParams `json:"Response"`
}

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

// Predefined struct for user
type CreateInstanceRequestParams struct {
	// Product ID. Different product IDs stand for different EMR product versions. Valid range:
	// 51: STARROCKS-V1.4.0
	// 54: STARROCKS-V2.0.0
	// 27: KAFKA-V1.0.0
	// 50: KAFKA-V2.0.0
	// 16: EMR-V2.3.0
	// 20: EMR-V2.5.0
	// 30: EMR-V2.6.0
	// 38: EMR-V2.7.0
	// 25: EMR-V3.1.0
	// 33: EMR-V3.2.1
	// 34: EMR-V3.3.0
	// 37: EMR-V3.4.0
	// 44: EMR-V3.5.0
	// 53: EMR-V3.6.0
	ProductId *uint64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

	// List of deployed components. The list of component options varies by EMR product ID (i.e., `ProductId`; for specific meanings, please see the `ProductId` input parameter). For more information, please see [Component Version](https://intl.cloud.tencent.com/document/product/589/20279?from_cn_redirect=1).
	// Enter an instance value: `hive` or `flink`.
	Software []*string `json:"Software,omitnil,omitempty" name:"Software"`

	// Whether to enable high node availability. Valid values:
	// <li>0: does not enable high availability of node.</li>
	// <li>1: enables high availability of node.</li>
	SupportHA *uint64 `json:"SupportHA,omitnil,omitempty" name:"SupportHA"`

	// Instance name.
	// <li>Length limit: 6-36 characters.</li>
	// <li>Only letters, numbers, dashes (-), and underscores (_) are supported.</li>
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance billing mode. Valid values:
	// <li>0: pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Purchase duration of instance, which needs to be used together with `TimeUnit`.
	// <li>When `TimeUnit` is `s`, this parameter can only be filled with 3600, indicating a pay-as-you-go instance.</li>
	// <li>When `TimeUnit` is `m`, the number entered in this parameter indicates the purchase duration of the monthly-subscription instance; for example, 1 means one month</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Time unit of instance purchase duration. Valid values:
	// <li>s: seconds. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	// <li>m: month. When `PayMode` is 1, `TimeUnit` can only be `m`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Instance login settings. This parameter allows you to set the login password or key for your purchased node.
	// <li>If the key is set, the password will be only used for login to the native component WebUI.</li>
	// <li>If the key is not set, the password will be used for login to all purchased nodes and the native component WebUI.</li>
	LoginSettings *LoginSettings `json:"LoginSettings,omitnil,omitempty" name:"LoginSettings"`

	// Configuration information of VPC. This parameter is used to specify the VPC ID, subnet ID, etc.
	VPCSettings *VPCSettings `json:"VPCSettings,omitnil,omitempty" name:"VPCSettings"`

	// Node resource specification.
	ResourceSpec *NewResourceSpec `json:"ResourceSpec,omitnil,omitempty" name:"ResourceSpec"`

	// Parameter required for enabling COS access.
	COSSettings *COSSettings `json:"COSSettings,omitnil,omitempty" name:"COSSettings"`

	// Instance location. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// Security group to which an instance belongs in the format of `sg-xxxxxxxx`. This parameter can be obtained from the `SecurityGroupId` field in the return value of the [DescribeSecurityGroups](https://intl.cloud.tencent.com/document/api/215/15808) API.
	SgId *string `json:"SgId,omitnil,omitempty" name:"SgId"`

	// [Bootstrap action](https://intl.cloud.tencent.com/document/product/589/35656?from_cn_redirect=1) script settings
	PreExecutedFileSettings []*PreExecuteFileSettings `json:"PreExecutedFileSettings,omitnil,omitempty" name:"PreExecutedFileSettings"`

	// Whether auto-renewal is enabled. Valid values:
	// <li>0: auto-renewal not enabled.</li>
	// <li>1: auto-renewal enabled.</li>
	AutoRenew *uint64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// Unique random identifier with the time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources again, for example, a9a90aa6-****-****-****-fae36063280.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Whether to enable public IP access for master node. Valid values:
	// <li>NEED_MASTER_WAN: enables public IP for master node.</li>
	// <li>NOT_NEED_MASTER_WAN: does not enable.</li>Public IP is enabled for master node by default.
	NeedMasterWan *string `json:"NeedMasterWan,omitnil,omitempty" name:"NeedMasterWan"`

	// Whether to enable remote public network login, i.e., port 22. When `SgId` is not empty, this parameter does not take effect.
	RemoteLoginAtCreate *int64 `json:"RemoteLoginAtCreate,omitnil,omitempty" name:"RemoteLoginAtCreate"`

	// Whether to enable secure cluster. 0: no; other values: yes.
	CheckSecurity *int64 `json:"CheckSecurity,omitnil,omitempty" name:"CheckSecurity"`

	// Accesses to external file system.
	ExtendFsField *string `json:"ExtendFsField,omitnil,omitempty" name:"ExtendFsField"`

	// Tag description list. This parameter is used to bind a tag to a resource instance.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// List of spread placement group IDs. Only one can be specified currently.
	// This parameter can be obtained in the `SecurityGroupId` field in the return value of the [DescribeSecurityGroups](https://intl.cloud.tencent.com/document/product/213/15486?from_cn_redirect=1) API.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// CBS disk encryption at the cluster level. 0: not encrypted, 1: encrypted
	CbsEncrypt *uint64 `json:"CbsEncrypt,omitnil,omitempty" name:"CbsEncrypt"`

	// Hive-shared metadatabase type. Valid values:
	// <li>EMR_DEFAULT_META: the cluster creates one by default.</li>
	// <li>EMR_EXIST_META: the cluster uses the specified EMR-MetaDB instance.</li>
	// <li>USER_CUSTOM_META: the cluster uses a custom MetaDB instance.</li>
	MetaType *string `json:"MetaType,omitnil,omitempty" name:"MetaType"`

	// EMR-MetaDB instance
	UnifyMetaInstanceId *string `json:"UnifyMetaInstanceId,omitnil,omitempty" name:"UnifyMetaInstanceId"`

	// Custom MetaDB instance information
	MetaDBInfo *CustomMetaInfo `json:"MetaDBInfo,omitnil,omitempty" name:"MetaDBInfo"`

	// Custom application role.
	ApplicationRole *string `json:"ApplicationRole,omitnil,omitempty" name:"ApplicationRole"`

	// Scenario-based values:
	// Hadoop-Kudu
	// Hadoop-Zookeeper
	// Hadoop-Presto
	// Hadoop-Hbase
	SceneName *string `json:"SceneName,omitnil,omitempty" name:"SceneName"`

	// Shared component information
	ExternalService []*ExternalService `json:"ExternalService,omitnil,omitempty" name:"ExternalService"`

	// If the value is 0, MultiZone, MultiDeployStrategy, and MultiZoneSettings are disabled. If the value is 1, ResourceSpec is deprecated and MultiZoneSettings is used instead.
	VersionID *int64 `json:"VersionID,omitnil,omitempty" name:"VersionID"`

	// `true` indicates that the multi-AZ deployment mode is enabled. This parameter is available only in cluster creation and cannot be changed after setting.
	MultiZone *bool `json:"MultiZone,omitnil,omitempty" name:"MultiZone"`

	// Node resource specs. The actual number of AZs is set, with the first AZ as the primary AZ, the second as the backup AZ, and the third as the arbitrator AZ. If the multi-AZ mode is not enabled, set the value to `1`.
	MultiZoneSettings []*MultiZoneSetting `json:"MultiZoneSettings,omitnil,omitempty" name:"MultiZoneSettings"`

	// COS bucket path, which is used when you create StarRocks compute-storage separation clusters.
	CosBucket *string `json:"CosBucket,omitnil,omitempty" name:"CosBucket"`

	// Node identifier information: currently used only in Terraform.
	NodeMarks []*NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`

	// CLB id
	LoadBalancerId *string `json:"LoadBalancerId,omitnil,omitempty" name:"LoadBalancerId"`
}

type CreateInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Product ID. Different product IDs stand for different EMR product versions. Valid range:
	// 51: STARROCKS-V1.4.0
	// 54: STARROCKS-V2.0.0
	// 27: KAFKA-V1.0.0
	// 50: KAFKA-V2.0.0
	// 16: EMR-V2.3.0
	// 20: EMR-V2.5.0
	// 30: EMR-V2.6.0
	// 38: EMR-V2.7.0
	// 25: EMR-V3.1.0
	// 33: EMR-V3.2.1
	// 34: EMR-V3.3.0
	// 37: EMR-V3.4.0
	// 44: EMR-V3.5.0
	// 53: EMR-V3.6.0
	ProductId *uint64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

	// List of deployed components. The list of component options varies by EMR product ID (i.e., `ProductId`; for specific meanings, please see the `ProductId` input parameter). For more information, please see [Component Version](https://intl.cloud.tencent.com/document/product/589/20279?from_cn_redirect=1).
	// Enter an instance value: `hive` or `flink`.
	Software []*string `json:"Software,omitnil,omitempty" name:"Software"`

	// Whether to enable high node availability. Valid values:
	// <li>0: does not enable high availability of node.</li>
	// <li>1: enables high availability of node.</li>
	SupportHA *uint64 `json:"SupportHA,omitnil,omitempty" name:"SupportHA"`

	// Instance name.
	// <li>Length limit: 6-36 characters.</li>
	// <li>Only letters, numbers, dashes (-), and underscores (_) are supported.</li>
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance billing mode. Valid values:
	// <li>0: pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Purchase duration of instance, which needs to be used together with `TimeUnit`.
	// <li>When `TimeUnit` is `s`, this parameter can only be filled with 3600, indicating a pay-as-you-go instance.</li>
	// <li>When `TimeUnit` is `m`, the number entered in this parameter indicates the purchase duration of the monthly-subscription instance; for example, 1 means one month</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Time unit of instance purchase duration. Valid values:
	// <li>s: seconds. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	// <li>m: month. When `PayMode` is 1, `TimeUnit` can only be `m`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Instance login settings. This parameter allows you to set the login password or key for your purchased node.
	// <li>If the key is set, the password will be only used for login to the native component WebUI.</li>
	// <li>If the key is not set, the password will be used for login to all purchased nodes and the native component WebUI.</li>
	LoginSettings *LoginSettings `json:"LoginSettings,omitnil,omitempty" name:"LoginSettings"`

	// Configuration information of VPC. This parameter is used to specify the VPC ID, subnet ID, etc.
	VPCSettings *VPCSettings `json:"VPCSettings,omitnil,omitempty" name:"VPCSettings"`

	// Node resource specification.
	ResourceSpec *NewResourceSpec `json:"ResourceSpec,omitnil,omitempty" name:"ResourceSpec"`

	// Parameter required for enabling COS access.
	COSSettings *COSSettings `json:"COSSettings,omitnil,omitempty" name:"COSSettings"`

	// Instance location. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// Security group to which an instance belongs in the format of `sg-xxxxxxxx`. This parameter can be obtained from the `SecurityGroupId` field in the return value of the [DescribeSecurityGroups](https://intl.cloud.tencent.com/document/api/215/15808) API.
	SgId *string `json:"SgId,omitnil,omitempty" name:"SgId"`

	// [Bootstrap action](https://intl.cloud.tencent.com/document/product/589/35656?from_cn_redirect=1) script settings
	PreExecutedFileSettings []*PreExecuteFileSettings `json:"PreExecutedFileSettings,omitnil,omitempty" name:"PreExecutedFileSettings"`

	// Whether auto-renewal is enabled. Valid values:
	// <li>0: auto-renewal not enabled.</li>
	// <li>1: auto-renewal enabled.</li>
	AutoRenew *uint64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// Unique random identifier with the time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources again, for example, a9a90aa6-****-****-****-fae36063280.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Whether to enable public IP access for master node. Valid values:
	// <li>NEED_MASTER_WAN: enables public IP for master node.</li>
	// <li>NOT_NEED_MASTER_WAN: does not enable.</li>Public IP is enabled for master node by default.
	NeedMasterWan *string `json:"NeedMasterWan,omitnil,omitempty" name:"NeedMasterWan"`

	// Whether to enable remote public network login, i.e., port 22. When `SgId` is not empty, this parameter does not take effect.
	RemoteLoginAtCreate *int64 `json:"RemoteLoginAtCreate,omitnil,omitempty" name:"RemoteLoginAtCreate"`

	// Whether to enable secure cluster. 0: no; other values: yes.
	CheckSecurity *int64 `json:"CheckSecurity,omitnil,omitempty" name:"CheckSecurity"`

	// Accesses to external file system.
	ExtendFsField *string `json:"ExtendFsField,omitnil,omitempty" name:"ExtendFsField"`

	// Tag description list. This parameter is used to bind a tag to a resource instance.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// List of spread placement group IDs. Only one can be specified currently.
	// This parameter can be obtained in the `SecurityGroupId` field in the return value of the [DescribeSecurityGroups](https://intl.cloud.tencent.com/document/product/213/15486?from_cn_redirect=1) API.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// CBS disk encryption at the cluster level. 0: not encrypted, 1: encrypted
	CbsEncrypt *uint64 `json:"CbsEncrypt,omitnil,omitempty" name:"CbsEncrypt"`

	// Hive-shared metadatabase type. Valid values:
	// <li>EMR_DEFAULT_META: the cluster creates one by default.</li>
	// <li>EMR_EXIST_META: the cluster uses the specified EMR-MetaDB instance.</li>
	// <li>USER_CUSTOM_META: the cluster uses a custom MetaDB instance.</li>
	MetaType *string `json:"MetaType,omitnil,omitempty" name:"MetaType"`

	// EMR-MetaDB instance
	UnifyMetaInstanceId *string `json:"UnifyMetaInstanceId,omitnil,omitempty" name:"UnifyMetaInstanceId"`

	// Custom MetaDB instance information
	MetaDBInfo *CustomMetaInfo `json:"MetaDBInfo,omitnil,omitempty" name:"MetaDBInfo"`

	// Custom application role.
	ApplicationRole *string `json:"ApplicationRole,omitnil,omitempty" name:"ApplicationRole"`

	// Scenario-based values:
	// Hadoop-Kudu
	// Hadoop-Zookeeper
	// Hadoop-Presto
	// Hadoop-Hbase
	SceneName *string `json:"SceneName,omitnil,omitempty" name:"SceneName"`

	// Shared component information
	ExternalService []*ExternalService `json:"ExternalService,omitnil,omitempty" name:"ExternalService"`

	// If the value is 0, MultiZone, MultiDeployStrategy, and MultiZoneSettings are disabled. If the value is 1, ResourceSpec is deprecated and MultiZoneSettings is used instead.
	VersionID *int64 `json:"VersionID,omitnil,omitempty" name:"VersionID"`

	// `true` indicates that the multi-AZ deployment mode is enabled. This parameter is available only in cluster creation and cannot be changed after setting.
	MultiZone *bool `json:"MultiZone,omitnil,omitempty" name:"MultiZone"`

	// Node resource specs. The actual number of AZs is set, with the first AZ as the primary AZ, the second as the backup AZ, and the third as the arbitrator AZ. If the multi-AZ mode is not enabled, set the value to `1`.
	MultiZoneSettings []*MultiZoneSetting `json:"MultiZoneSettings,omitnil,omitempty" name:"MultiZoneSettings"`

	// COS bucket path, which is used when you create StarRocks compute-storage separation clusters.
	CosBucket *string `json:"CosBucket,omitnil,omitempty" name:"CosBucket"`

	// Node identifier information: currently used only in Terraform.
	NodeMarks []*NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`

	// CLB id
	LoadBalancerId *string `json:"LoadBalancerId,omitnil,omitempty" name:"LoadBalancerId"`
}

func (r *CreateInstanceRequest) 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 *CreateInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ProductId")
	delete(f, "Software")
	delete(f, "SupportHA")
	delete(f, "InstanceName")
	delete(f, "PayMode")
	delete(f, "TimeSpan")
	delete(f, "TimeUnit")
	delete(f, "LoginSettings")
	delete(f, "VPCSettings")
	delete(f, "ResourceSpec")
	delete(f, "COSSettings")
	delete(f, "Placement")
	delete(f, "SgId")
	delete(f, "PreExecutedFileSettings")
	delete(f, "AutoRenew")
	delete(f, "ClientToken")
	delete(f, "NeedMasterWan")
	delete(f, "RemoteLoginAtCreate")
	delete(f, "CheckSecurity")
	delete(f, "ExtendFsField")
	delete(f, "Tags")
	delete(f, "DisasterRecoverGroupIds")
	delete(f, "CbsEncrypt")
	delete(f, "MetaType")
	delete(f, "UnifyMetaInstanceId")
	delete(f, "MetaDBInfo")
	delete(f, "ApplicationRole")
	delete(f, "SceneName")
	delete(f, "ExternalService")
	delete(f, "VersionID")
	delete(f, "MultiZone")
	delete(f, "MultiZoneSettings")
	delete(f, "CosBucket")
	delete(f, "NodeMarks")
	delete(f, "LoadBalancerId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateInstanceResponseParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

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

// Predefined struct for user
type CreateSLInstanceRequestParams struct {
	// Instance name.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance billing mode. 0 indicates postpaid, i.e., pay-as-you-go.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Instance storage type. Fill in CLOUD_HSSD to represent high-performance cloud storage.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// The disk capacity of a single node of the instance, in GB. The disk capacity of a single node should be greater than or equal to 100 and less than or equal to 250 x the number of CPU cores. The capacity adjustment step is 100.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Instance node specification. You can fill in 4C16G, 8C32G, 16C64G, or 32C128G, which is case-insensitive.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Detailed configuration of the instance AZ. Currently, multiple availability zones are supported. The number of AZs must be 1 or 3, including the region names, VPC information, and number of nodes. The total number of nodes across all zones must be greater than or equal to 3 and less than or equal to 50.
	ZoneSettings []*ZoneSetting `json:"ZoneSettings,omitnil,omitempty" name:"ZoneSettings"`

	// List of tags to be bound to the instance.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Prepaid parameter.
	PrePaySetting *PrePaySetting `json:"PrePaySetting,omitnil,omitempty" name:"PrePaySetting"`

	// The unique random identifier with a time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources repeatedly. For example: a9a90aa6-****-****-****-fae360632808.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Deployment Mode
	DeploymentMode *string `json:"DeploymentMode,omitnil,omitempty" name:"DeploymentMode"`
}

type CreateSLInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance name.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Instance billing mode. 0 indicates postpaid, i.e., pay-as-you-go.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Instance storage type. Fill in CLOUD_HSSD to represent high-performance cloud storage.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// The disk capacity of a single node of the instance, in GB. The disk capacity of a single node should be greater than or equal to 100 and less than or equal to 250 x the number of CPU cores. The capacity adjustment step is 100.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Instance node specification. You can fill in 4C16G, 8C32G, 16C64G, or 32C128G, which is case-insensitive.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Detailed configuration of the instance AZ. Currently, multiple availability zones are supported. The number of AZs must be 1 or 3, including the region names, VPC information, and number of nodes. The total number of nodes across all zones must be greater than or equal to 3 and less than or equal to 50.
	ZoneSettings []*ZoneSetting `json:"ZoneSettings,omitnil,omitempty" name:"ZoneSettings"`

	// List of tags to be bound to the instance.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Prepaid parameter.
	PrePaySetting *PrePaySetting `json:"PrePaySetting,omitnil,omitempty" name:"PrePaySetting"`

	// The unique random identifier with a time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources repeatedly. For example: a9a90aa6-****-****-****-fae360632808.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Deployment Mode
	DeploymentMode *string `json:"DeploymentMode,omitnil,omitempty" name:"DeploymentMode"`
}

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

// Predefined struct for user
type CreateSLInstanceResponseParams struct {
	// Instance unique identifier (string).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

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

type CustomMetaDBInfo struct {
	// The JDBC URL of the custom metadatabase instance. Example: jdbc:mysql://10.10.10.10:3306/dbname
	MetaDataJdbcUrl *string `json:"MetaDataJdbcUrl,omitnil,omitempty" name:"MetaDataJdbcUrl"`

	// The custom metadatabase instance username.
	MetaDataUser *string `json:"MetaDataUser,omitnil,omitempty" name:"MetaDataUser"`

	// The custom metadatabase instance password.
	MetaDataPass *string `json:"MetaDataPass,omitnil,omitempty" name:"MetaDataPass"`

	// The Hive-shared metadatabase type. Valid values:
	// <li>`EMR_DEFAULT_META`: The cluster creates one by default.</li>
	// <li>`EMR_EXIST_META`: The cluster uses the specified EMR metadatabase instance.</li>
	// <li>`USER_CUSTOM_META`: The cluster uses a custom metadatabase instance.</li>
	MetaType *string `json:"MetaType,omitnil,omitempty" name:"MetaType"`

	// The EMR-MetaDB instance.
	UnifyMetaInstanceId *string `json:"UnifyMetaInstanceId,omitnil,omitempty" name:"UnifyMetaInstanceId"`
}

type CustomMetaInfo struct {
	// JDBC connection to custom MetaDB instance beginning with `jdbc:mysql://`
	MetaDataJdbcUrl *string `json:"MetaDataJdbcUrl,omitnil,omitempty" name:"MetaDataJdbcUrl"`

	// Custom MetaDB instance username
	MetaDataUser *string `json:"MetaDataUser,omitnil,omitempty" name:"MetaDataUser"`

	// Custom MetaDB instance password
	MetaDataPass *string `json:"MetaDataPass,omitnil,omitempty" name:"MetaDataPass"`
}

type CustomServiceDefine struct {
	// Custom parameter key
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Custom parameter value
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`
}

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

	// DAG type. Only StarRocks is supported currently.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Returned JSON string of the DAG.
	Content *string `json:"Content,omitnil,omitempty" name:"Content"`
}

type DayRepeatStrategy struct {
	// Specific time for repetition task execution, such as 01:02:00.
	ExecuteAtTimeOfDay *string `json:"ExecuteAtTimeOfDay,omitnil,omitempty" name:"ExecuteAtTimeOfDay"`

	// Executing every Step days.
	Step *uint64 `json:"Step,omitnil,omitempty" name:"Step"`
}

type DefaultSetting struct {
	// Name: the key for input parameters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

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

	// Key: display the configuration item in the configuration file.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

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

// Predefined struct for user
type DeleteAutoScaleStrategyRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Automatic scaling rule type. 1: Scaling by load metrics; 2: Scaling by time rules.
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Rule ID.
	StrategyId *int64 `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

type DeleteAutoScaleStrategyRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Automatic scaling rule type. 1: Scaling by load metrics; 2: Scaling by time rules.
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Rule ID.
	StrategyId *int64 `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

func (r *DeleteAutoScaleStrategyRequest) 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 *DeleteAutoScaleStrategyRequest) 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, "StrategyType")
	delete(f, "StrategyId")
	delete(f, "GroupId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteAutoScaleStrategyRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type DeleteGroupsSTDRequestParams struct {
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// User group name array.
	GroupNames []*string `json:"GroupNames,omitnil,omitempty" name:"GroupNames"`
}

type DeleteGroupsSTDRequest struct {
	*tchttp.BaseRequest
	
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// User group name array.
	GroupNames []*string `json:"GroupNames,omitnil,omitempty" name:"GroupNames"`
}

func (r *DeleteGroupsSTDRequest) 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 *DeleteGroupsSTDRequest) 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, "GroupNames")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteGroupsSTDRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeleteGroupsSTDResponseParams struct {
	// Deleting returned results.
	Data []*ResultItem `json:"Data,omitnil,omitempty" name:"Data"`

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

type DeleteGroupsSTDResponse struct {
	*tchttp.BaseResponse
	Response *DeleteGroupsSTDResponseParams `json:"Response"`
}

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

// Predefined struct for user
type DeleteNodeResourceConfigRequestParams struct {
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node configuration ID.
	ResourceConfigId *uint64 `json:"ResourceConfigId,omitnil,omitempty" name:"ResourceConfigId"`

	// Node type: CORE, TASK, and ROUTER.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

type DeleteNodeResourceConfigRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node configuration ID.
	ResourceConfigId *uint64 `json:"ResourceConfigId,omitnil,omitempty" name:"ResourceConfigId"`

	// Node type: CORE, TASK, and ROUTER.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

func (r *DeleteNodeResourceConfigRequest) 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 *DeleteNodeResourceConfigRequest) 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, "ResourceConfigId")
	delete(f, "ResourceType")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DeleteNodeResourceConfigRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

type DependService struct {
	// The shared component name.
	ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"`

	// The cluster to which the shared component belongs.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

// Predefined struct for user
type DeployYarnConfRequestParams struct {
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DeployYarnConfRequest struct {
	*tchttp.BaseRequest
	
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DeployYarnConfRequest) 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 *DeployYarnConfRequest) 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", "DeployYarnConfRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DeployYarnConfResponseParams struct {
	// Process ID after the process is started. You can use the [DescribeClusterFlowStatusDetail](https://www.tencentcloud.com/document/api/1026/73259) API to obtain the process status.
	FlowId *uint64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

// Predefined struct for user
type DescribeAutoScaleGroupGlobalConfRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DescribeAutoScaleGroupGlobalConfRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DescribeAutoScaleGroupGlobalConfRequest) 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 *DescribeAutoScaleGroupGlobalConfRequest) 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", "DescribeAutoScaleGroupGlobalConfRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAutoScaleGroupGlobalConfResponseParams struct {
	// Global information of all scaling groups in the cluster.
	// Note: This field may return null, indicating that no valid values can be obtained.
	GroupGlobalConfs []*GroupGlobalConfs `json:"GroupGlobalConfs,omitnil,omitempty" name:"GroupGlobalConfs"`

	// Total number.
	TotalCount *int64 `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 DescribeAutoScaleGroupGlobalConfResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAutoScaleGroupGlobalConfResponseParams `json:"Response"`
}

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

// Predefined struct for user
type DescribeAutoScaleRecordsRequestParams struct {
	// The instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Record filter parameter, which can only be "StartTime", "EndTime", "StrategyName", "ActionStatus", or "ScaleAction".
	// Time format. Either 2006-01-02 15:04:05 or 2006/01/02 15:04:05 for StartTime and EndTime.
	// ActionStatus: 0 (INITED), 1 (SUCCESS), 2 (FAILED), 3 (LIMITED_SUCCESSED), 4 (IN_PROCESS), 5 (IN_RETRY).
	// ScaleAction: 1 (scale out), 2 (scale in).
	Filters []*KeyValue `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Pagination parameters.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination parameters. Maximum value: 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Whether it is automatic scaling (0) or managed scaling (1)
	RecordSource *int64 `json:"RecordSource,omitnil,omitempty" name:"RecordSource"`

	// Ascending or not. 1: ascending, 0: descending.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`
}

type DescribeAutoScaleRecordsRequest struct {
	*tchttp.BaseRequest
	
	// The instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Record filter parameter, which can only be "StartTime", "EndTime", "StrategyName", "ActionStatus", or "ScaleAction".
	// Time format. Either 2006-01-02 15:04:05 or 2006/01/02 15:04:05 for StartTime and EndTime.
	// ActionStatus: 0 (INITED), 1 (SUCCESS), 2 (FAILED), 3 (LIMITED_SUCCESSED), 4 (IN_PROCESS), 5 (IN_RETRY).
	// ScaleAction: 1 (scale out), 2 (scale in).
	Filters []*KeyValue `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Pagination parameters.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination parameters. Maximum value: 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Whether it is automatic scaling (0) or managed scaling (1)
	RecordSource *int64 `json:"RecordSource,omitnil,omitempty" name:"RecordSource"`

	// Ascending or not. 1: ascending, 0: descending.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`
}

func (r *DescribeAutoScaleRecordsRequest) 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 *DescribeAutoScaleRecordsRequest) 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, "Filters")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "RecordSource")
	delete(f, "Asc")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeAutoScaleRecordsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAutoScaleRecordsResponseParams struct {
	// Total scale-in and scale-out records.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Record list.
	RecordList []*AutoScaleRecord `json:"RecordList,omitnil,omitempty" name:"RecordList"`

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

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

// Predefined struct for user
type DescribeAutoScaleStrategiesRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

type DescribeAutoScaleStrategiesRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

func (r *DescribeAutoScaleStrategiesRequest) 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 *DescribeAutoScaleStrategiesRequest) 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, "GroupId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeAutoScaleStrategiesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAutoScaleStrategiesResponseParams struct {
	// Load-based scaling rules
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	LoadAutoScaleStrategies []*LoadAutoScaleStrategy `json:"LoadAutoScaleStrategies,omitnil,omitempty" name:"LoadAutoScaleStrategies"`

	// Scaling rules by time
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TimeBasedAutoScaleStrategies []*TimeAutoScaleStrategy `json:"TimeBasedAutoScaleStrategies,omitnil,omitempty" name:"TimeBasedAutoScaleStrategies"`

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

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

// Predefined struct for user
type DescribeClusterFlowStatusDetailRequestParams struct {
	// EMR instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Process-related parameters.
	FlowParam *FlowParam `json:"FlowParam,omitnil,omitempty" name:"FlowParam"`

	// Whether to return additional task information.
	// The default value is false.
	NeedExtraDetail *bool `json:"NeedExtraDetail,omitnil,omitempty" name:"NeedExtraDetail"`
}

type DescribeClusterFlowStatusDetailRequest struct {
	*tchttp.BaseRequest
	
	// EMR instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Process-related parameters.
	FlowParam *FlowParam `json:"FlowParam,omitnil,omitempty" name:"FlowParam"`

	// Whether to return additional task information.
	// The default value is false.
	NeedExtraDetail *bool `json:"NeedExtraDetail,omitnil,omitempty" name:"NeedExtraDetail"`
}

func (r *DescribeClusterFlowStatusDetailRequest) 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 *DescribeClusterFlowStatusDetailRequest) 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, "FlowParam")
	delete(f, "NeedExtraDetail")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeClusterFlowStatusDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeClusterFlowStatusDetailResponseParams struct {
	// Task step details
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	StageDetails []*StageInfoDetail `json:"StageDetails,omitnil,omitempty" name:"StageDetails"`

	// Task parameters.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FlowDesc []*FlowParamsDesc `json:"FlowDesc,omitnil,omitempty" name:"FlowDesc"`

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

	// Overall task flow progress.
	// Example: 0.8.
	FlowTotalProgress *float64 `json:"FlowTotalProgress,omitnil,omitempty" name:"FlowTotalProgress"`

	// Overall process status definition.
	// 0: initializing.
	// 1: running.
	// 2: completed.
	// 3: completed (with skipped steps).
	// -1: failed.
	// -3: blocked.
	FlowTotalStatus *int64 `json:"FlowTotalStatus,omitnil,omitempty" name:"FlowTotalStatus"`

	// Additional process information.
	// This parameter is returned when NeedExtraDetail is true.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FlowExtraDetail []*FlowExtraDetail `json:"FlowExtraDetail,omitnil,omitempty" name:"FlowExtraDetail"`

	// Flow description.
	FlowInfo *string `json:"FlowInfo,omitnil,omitempty" name:"FlowInfo"`

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

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

// Predefined struct for user
type DescribeClusterNodesRequestParams struct {
	// Cluster instance ID in the format of emr-xxxxxxxx
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node flag. Valid values:
	// <li>all: gets the information of nodes in all types except TencentDB information.</li>
	// <li>master: gets master node information.</li>
	// <li>core: gets core node information.</li>
	// <li>task: gets task node information.</li>
	// <li>common: gets common node information.</li>
	// <li>router: gets router node information.</li>
	// <li>db: gets TencentDB information in normal status.</li>
	// Note: only the above values are supported for the time being. Entering other values will cause errors.
	NodeFlag *string `json:"NodeFlag,omitnil,omitempty" name:"NodeFlag"`

	// Whether to carry CDB information when all node information is exported in CSV format.
	ExportDb *bool `json:"ExportDb,omitnil,omitempty" name:"ExportDb"`

	// Page number. Default value: 0, indicating the first page.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of records to be returned per page. The default value is 100, and the maximum value is 100.
	// If both offset and limit are not set, or both are set to 0, all data will be returned.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Resource type. Valid values: all, host, pod. Default value: all
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`

	// Searchable field
	SearchFields []*SearchItem `json:"SearchFields,omitnil,omitempty" name:"SearchFields"`

	// Order field.
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Ascending or not. 1: ascending; 0: descending.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`
}

type DescribeClusterNodesRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID in the format of emr-xxxxxxxx
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node flag. Valid values:
	// <li>all: gets the information of nodes in all types except TencentDB information.</li>
	// <li>master: gets master node information.</li>
	// <li>core: gets core node information.</li>
	// <li>task: gets task node information.</li>
	// <li>common: gets common node information.</li>
	// <li>router: gets router node information.</li>
	// <li>db: gets TencentDB information in normal status.</li>
	// Note: only the above values are supported for the time being. Entering other values will cause errors.
	NodeFlag *string `json:"NodeFlag,omitnil,omitempty" name:"NodeFlag"`

	// Whether to carry CDB information when all node information is exported in CSV format.
	ExportDb *bool `json:"ExportDb,omitnil,omitempty" name:"ExportDb"`

	// Page number. Default value: 0, indicating the first page.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of records to be returned per page. The default value is 100, and the maximum value is 100.
	// If both offset and limit are not set, or both are set to 0, all data will be returned.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Resource type. Valid values: all, host, pod. Default value: all
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`

	// Searchable field
	SearchFields []*SearchItem `json:"SearchFields,omitnil,omitempty" name:"SearchFields"`

	// Order field.
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Ascending or not. 1: ascending; 0: descending.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`
}

func (r *DescribeClusterNodesRequest) 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 *DescribeClusterNodesRequest) 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, "NodeFlag")
	delete(f, "ExportDb")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "HardwareResourceType")
	delete(f, "SearchFields")
	delete(f, "OrderField")
	delete(f, "Asc")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeClusterNodesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeClusterNodesResponseParams struct {
	// Total number of queried nodes
	TotalCnt *int64 `json:"TotalCnt,omitnil,omitempty" name:"TotalCnt"`

	// List of node details
	// Note: this field may return null, indicating that no valid values can be obtained.
	NodeList []*NodeHardwareInfo `json:"NodeList,omitnil,omitempty" name:"NodeList"`

	// List of tag keys owned by user
	// Note: this field may return null, indicating that no valid values can be obtained.
	TagKeys []*string `json:"TagKeys,omitnil,omitempty" name:"TagKeys"`

	// Resource type list
	// Note: this field may return null, indicating that no valid values can be obtained.
	HardwareResourceTypeList []*string `json:"HardwareResourceTypeList,omitnil,omitempty" name:"HardwareResourceTypeList"`

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

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

// Predefined struct for user
type DescribeDAGInfoRequestParams struct {
	// Cluster ID.
	InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`

	// DAG type. Only STARROCKS is supported currently.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Query ID list. The maximum length is 1.
	IDList []*string `json:"IDList,omitnil,omitempty" name:"IDList"`
}

type DescribeDAGInfoRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceID *string `json:"InstanceID,omitnil,omitempty" name:"InstanceID"`

	// DAG type. Only STARROCKS is supported currently.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Query ID list. The maximum length is 1.
	IDList []*string `json:"IDList,omitnil,omitempty" name:"IDList"`
}

func (r *DescribeDAGInfoRequest) 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 *DescribeDAGInfoRequest) 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, "Type")
	delete(f, "IDList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeDAGInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeDAGInfoResponseParams struct {
	// Total number, which is used for pagination query.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// StarRocks information list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DAGInfoList []*DAGInfo `json:"DAGInfoList,omitnil,omitempty" name:"DAGInfoList"`

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

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

// Predefined struct for user
type DescribeEmrApplicationStaticsRequestParams struct {
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time in the format of timestamp. Unit: seconds.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time in the format of timestamp. Unit: seconds.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Queue name used for filtering
	Queues []*string `json:"Queues,omitnil,omitempty" name:"Queues"`

	// Username used for filtering
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

	// Application type used for filtering
	ApplicationTypes []*string `json:"ApplicationTypes,omitnil,omitempty" name:"ApplicationTypes"`

	// Group field. Valid values: `queue`, `user`, and `applicationType`.
	GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"`

	// Sorting field. Valid values: `sumMemorySeconds`, `sumVCoreSeconds`, `sumHDFSBytesWritten`, and `sumHDFSBytesRead`.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Order type. Valid values: `0` (descending) and `1`(ascending).
	IsAsc *int64 `json:"IsAsc,omitnil,omitempty" name:"IsAsc"`

	// Page number
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page capacity in the range of [10,100].
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeEmrApplicationStaticsRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time in the format of timestamp. Unit: seconds.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time in the format of timestamp. Unit: seconds.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Queue name used for filtering
	Queues []*string `json:"Queues,omitnil,omitempty" name:"Queues"`

	// Username used for filtering
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

	// Application type used for filtering
	ApplicationTypes []*string `json:"ApplicationTypes,omitnil,omitempty" name:"ApplicationTypes"`

	// Group field. Valid values: `queue`, `user`, and `applicationType`.
	GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"`

	// Sorting field. Valid values: `sumMemorySeconds`, `sumVCoreSeconds`, `sumHDFSBytesWritten`, and `sumHDFSBytesRead`.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Order type. Valid values: `0` (descending) and `1`(ascending).
	IsAsc *int64 `json:"IsAsc,omitnil,omitempty" name:"IsAsc"`

	// Page number
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page capacity in the range of [10,100].
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

func (r *DescribeEmrApplicationStaticsRequest) 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 *DescribeEmrApplicationStaticsRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "Queues")
	delete(f, "Users")
	delete(f, "ApplicationTypes")
	delete(f, "GroupBy")
	delete(f, "OrderBy")
	delete(f, "IsAsc")
	delete(f, "Offset")
	delete(f, "Limit")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeEmrApplicationStaticsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeEmrApplicationStaticsResponseParams struct {
	// Application statistics
	Statics []*ApplicationStatics `json:"Statics,omitnil,omitempty" name:"Statics"`

	// Total count
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Available queue name
	Queues []*string `json:"Queues,omitnil,omitempty" name:"Queues"`

	// Available usernames
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

	// Available application type
	ApplicationTypes []*string `json:"ApplicationTypes,omitnil,omitempty" name:"ApplicationTypes"`

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

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

// Predefined struct for user
type DescribeEmrOverviewMetricsRequestParams struct {
	// End time
	End *int64 `json:"End,omitnil,omitempty" name:"End"`

	// Metric name. NODE.CPU: average CPU utilization and core count of the node; NODE.CPU.SLHBASE: average CPU utilization and core count of the Serverless instance; HDFS.NN.CAPACITY: storage utilization and total amount.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

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

	// Granularity, for example, 30s-max, 1m-max, and 1h-max.
	Downsample *string `json:"Downsample,omitnil,omitempty" name:"Downsample"`

	// Start time, not required for pie charts
	Start *int64 `json:"Start,omitnil,omitempty" name:"Start"`

	// Aggregation method, for future use
	Aggregator *string `json:"Aggregator,omitnil,omitempty" name:"Aggregator"`

	// Specific type of metrics to be queried, for example, "{"type":"CapacityTotal|CapacityRemaining"}".
	Tags *string `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type DescribeEmrOverviewMetricsRequest struct {
	*tchttp.BaseRequest
	
	// End time
	End *int64 `json:"End,omitnil,omitempty" name:"End"`

	// Metric name. NODE.CPU: average CPU utilization and core count of the node; NODE.CPU.SLHBASE: average CPU utilization and core count of the Serverless instance; HDFS.NN.CAPACITY: storage utilization and total amount.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

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

	// Granularity, for example, 30s-max, 1m-max, and 1h-max.
	Downsample *string `json:"Downsample,omitnil,omitempty" name:"Downsample"`

	// Start time, not required for pie charts
	Start *int64 `json:"Start,omitnil,omitempty" name:"Start"`

	// Aggregation method, for future use
	Aggregator *string `json:"Aggregator,omitnil,omitempty" name:"Aggregator"`

	// Specific type of metrics to be queried, for example, "{"type":"CapacityTotal|CapacityRemaining"}".
	Tags *string `json:"Tags,omitnil,omitempty" name:"Tags"`
}

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

// Predefined struct for user
type DescribeEmrOverviewMetricsResponseParams struct {
	// Metric data details.
	Result []*OverviewMetricData `json:"Result,omitnil,omitempty" name:"Result"`

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

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

// Predefined struct for user
type DescribeGlobalConfigRequestParams struct {
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DescribeGlobalConfigRequest struct {
	*tchttp.BaseRequest
	
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DescribeGlobalConfigRequest) 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 *DescribeGlobalConfigRequest) 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", "DescribeGlobalConfigRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeGlobalConfigResponseParams struct {
	// Whether the resource scheduling feature is enabled.
	EnableResourceSchedule *bool `json:"EnableResourceSchedule,omitnil,omitempty" name:"EnableResourceSchedule"`

	// Currently effective resource scheduler.
	ActiveScheduler *string `json:"ActiveScheduler,omitnil,omitempty" name:"ActiveScheduler"`

	// Information of the fair scheduler.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CapacityGlobalConfig *CapacityGlobalConfig `json:"CapacityGlobalConfig,omitnil,omitempty" name:"CapacityGlobalConfig"`

	// Information of the capacity scheduler.
	// Note: This field may return null, indicating that no valid values can be obtained.
	FairGlobalConfig *FairGlobalConfig `json:"FairGlobalConfig,omitnil,omitempty" name:"FairGlobalConfig"`

	// Latest resource scheduler.
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`

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

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

// Predefined struct for user
type DescribeGroupsSTDRequestParams struct {
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Description key-value pair filter, which is used for conditional filtering queries.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Description order, which is used for sorting.
	OrderFields *Order `json:"OrderFields,omitnil,omitempty" name:"OrderFields"`

	// Number of returns.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pagination parameter.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeGroupsSTDRequest struct {
	*tchttp.BaseRequest
	
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Description key-value pair filter, which is used for conditional filtering queries.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Description order, which is used for sorting.
	OrderFields *Order `json:"OrderFields,omitnil,omitempty" name:"OrderFields"`

	// Number of returns.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pagination parameter.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeGroupsSTDRequest) 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 *DescribeGroupsSTDRequest) 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, "Filters")
	delete(f, "OrderFields")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeGroupsSTDRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeGroupsSTDResponseParams struct {
	// User group information.
	Data []*GroupInfos `json:"Data,omitnil,omitempty" name:"Data"`

	// Number of eligible user groups.
	TotalCount *int64 `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 DescribeGroupsSTDResponse struct {
	*tchttp.BaseResponse
	Response *DescribeGroupsSTDResponseParams `json:"Response"`
}

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

// Predefined struct for user
type DescribeHBaseTableOverviewRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Pagination query number offset, starting from 0.	
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Table name, supporting fuzzy matching
	Table *string `json:"Table,omitnil,omitempty" name:"Table"`

	// Field for sorting, with a default value
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// asc: Ascending; desc: Descending (default)
	OrderType *string `json:"OrderType,omitnil,omitempty" name:"OrderType"`
}

type DescribeHBaseTableOverviewRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Pagination query number offset, starting from 0.	
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Table name, supporting fuzzy matching
	Table *string `json:"Table,omitnil,omitempty" name:"Table"`

	// Field for sorting, with a default value
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// asc: Ascending; desc: Descending (default)
	OrderType *string `json:"OrderType,omitnil,omitempty" name:"OrderType"`
}

func (r *DescribeHBaseTableOverviewRequest) 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 *DescribeHBaseTableOverviewRequest) 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, "Offset")
	delete(f, "Limit")
	delete(f, "Table")
	delete(f, "OrderField")
	delete(f, "OrderType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeHBaseTableOverviewRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeHBaseTableOverviewResponseParams struct {
	// Overview data array
	TableMonitorList []*OverviewRow `json:"TableMonitorList,omitnil,omitempty" name:"TableMonitorList"`

	// Overview data array length
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Table schema information
	SchemaList []*TableSchemaItem `json:"SchemaList,omitnil,omitempty" name:"SchemaList"`

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

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

// Predefined struct for user
type DescribeHDFSStorageInfoRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Query information obtainment start time (seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query information obtainment end time (seconds).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

type DescribeHDFSStorageInfoRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Query information obtainment start time (seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query information obtainment end time (seconds).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

func (r *DescribeHDFSStorageInfoRequest) 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 *DescribeHDFSStorageInfoRequest) 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, "StartTime")
	delete(f, "EndTime")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeHDFSStorageInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeHDFSStorageInfoResponseParams struct {
	// Sampling time.
	SampleTime *int64 `json:"SampleTime,omitnil,omitempty" name:"SampleTime"`

	// Hdfs storage details.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StorageSummaryDistribution []*StorageSummaryDistribution `json:"StorageSummaryDistribution,omitnil,omitempty" name:"StorageSummaryDistribution"`

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

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

// Predefined struct for user
type DescribeHiveQueriesRequestParams struct {
	// The cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The start time in seconds.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time in seconds. EndTime-StartTime should not exceed one day's duration, which is 86400 seconds.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Starting offset for pagination. Start value: 0
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size. Valid range: [1,100]
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Execution status, for example, ERROR.
	State []*string `json:"State,omitnil,omitempty" name:"State"`

	// Time point earlier than the end time.
	EndTimeGte *uint64 `json:"EndTimeGte,omitnil,omitempty" name:"EndTimeGte"`

	// Time point later than the end time.
	EndTimeLte *uint64 `json:"EndTimeLte,omitnil,omitempty" name:"EndTimeLte"`
}

type DescribeHiveQueriesRequest struct {
	*tchttp.BaseRequest
	
	// The cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The start time in seconds.
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The end time in seconds. EndTime-StartTime should not exceed one day's duration, which is 86400 seconds.
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Starting offset for pagination. Start value: 0
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size. Valid range: [1,100]
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Execution status, for example, ERROR.
	State []*string `json:"State,omitnil,omitempty" name:"State"`

	// Time point earlier than the end time.
	EndTimeGte *uint64 `json:"EndTimeGte,omitnil,omitempty" name:"EndTimeGte"`

	// Time point later than the end time.
	EndTimeLte *uint64 `json:"EndTimeLte,omitnil,omitempty" name:"EndTimeLte"`
}

func (r *DescribeHiveQueriesRequest) 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 *DescribeHiveQueriesRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "State")
	delete(f, "EndTimeGte")
	delete(f, "EndTimeLte")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeHiveQueriesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeHiveQueriesResponseParams struct {
	// Total items
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// Result list
	Results []*HiveQuery `json:"Results,omitnil,omitempty" name:"Results"`

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

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

// Predefined struct for user
type DescribeInsightListRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time of the obtained insight result. The time is specific for filtering the start time of App or Hive querying.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time of the obtained insight result. The time is specific for filtering the start time of App or Hive querying.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`

	// Query type. Types such as Hive,Spark,DLC_Spark,Spark_SQL,SCHEDULE,MapReduce,Trino are supported. All are queried by default.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Whether it includes specific parameter suggestions and other information
	MustHasContext *bool `json:"MustHasContext,omitnil,omitempty" name:"MustHasContext"`
}

type DescribeInsightListRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time of the obtained insight result. The time is specific for filtering the start time of App or Hive querying.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time of the obtained insight result. The time is specific for filtering the start time of App or Hive querying.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`

	// Query type. Types such as Hive,Spark,DLC_Spark,Spark_SQL,SCHEDULE,MapReduce,Trino are supported. All are queried by default.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Whether it includes specific parameter suggestions and other information
	MustHasContext *bool `json:"MustHasContext,omitnil,omitempty" name:"MustHasContext"`
}

func (r *DescribeInsightListRequest) 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 *DescribeInsightListRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "PageSize")
	delete(f, "Page")
	delete(f, "Type")
	delete(f, "MustHasContext")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInsightListRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInsightListResponseParams struct {
	// Total number, which is used for pagination query.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Insight result array.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResultList []*InsightResult `json:"ResultList,omitnil,omitempty" name:"ResultList"`

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

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

// Predefined struct for user
type DescribeInspectionTaskResultRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Start time.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pagination offset.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeInspectionTaskResultRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Start time.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pagination offset.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeInspectionTaskResultRequest) 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 *DescribeInspectionTaskResultRequest) 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, "Type")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeInspectionTaskResultRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeInspectionTaskResultResponseParams struct {
	// Inspection task record, encoded in Base64 format.
	InspectionResultInfo *string `json:"InspectionResultInfo,omitnil,omitempty" name:"InspectionResultInfo"`

	// The total number of records.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// Category information encoded in Base64 format, which includes {"FixedTime": "Fixed time", "RealTime": "Real time"}.
	TypeInfo *string `json:"TypeInfo,omitnil,omitempty" name:"TypeInfo"`

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

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

// Predefined struct for user
type DescribeInstancesListRequestParams struct {
	// Cluster filtering policy. Valid values: <li>clusterList: Queries the list of clusters excluding terminated ones.</li><li>monitorManage: Queries the list of clusters excluding those terminated, under creation and not successfully created.</li><li>cloudHardwareManage/componentManage: Two reserved values, which have the same implications as those of `monitorManage`.</li>
	DisplayStrategy *string `json:"DisplayStrategy,omitnil,omitempty" name:"DisplayStrategy"`

	// Page number. Default value: `0`, indicating the first page.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of records to be returned per page. The default value is 100, and the maximum value is 100.
	// If both limit and offset are 0, all records will be queried.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting field. Valid values: <li>clusterId: Sorting by instance ID. </li><li>addTime: Sorting by instance creation time.</li><li>status: Sorting by instance status code.</li>
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Sort by OrderField in ascending or descending order. Valid values: <li>0: ascending order;</li> <li>1: descending order.</li> The default value is 0.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Custom search filter. Examples: <li>instance of filtering by ClusterId: [{"Name":"ClusterId","Values":["emr-xxxxxxxx"]}]</li><li>instance of filtering by clusterName: [{"Name": "ClusterName","Values": ["cluster_name"]}]</li><li>instance of filtering by ClusterStatus: [{"Name": "ClusterStatus","Values": ["2"]}]</li>.
	Filters []*Filters `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeInstancesListRequest struct {
	*tchttp.BaseRequest
	
	// Cluster filtering policy. Valid values: <li>clusterList: Queries the list of clusters excluding terminated ones.</li><li>monitorManage: Queries the list of clusters excluding those terminated, under creation and not successfully created.</li><li>cloudHardwareManage/componentManage: Two reserved values, which have the same implications as those of `monitorManage`.</li>
	DisplayStrategy *string `json:"DisplayStrategy,omitnil,omitempty" name:"DisplayStrategy"`

	// Page number. Default value: `0`, indicating the first page.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of records to be returned per page. The default value is 100, and the maximum value is 100.
	// If both limit and offset are 0, all records will be queried.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting field. Valid values: <li>clusterId: Sorting by instance ID. </li><li>addTime: Sorting by instance creation time.</li><li>status: Sorting by instance status code.</li>
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Sort by OrderField in ascending or descending order. Valid values: <li>0: ascending order;</li> <li>1: descending order.</li> The default value is 0.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Custom search filter. Examples: <li>instance of filtering by ClusterId: [{"Name":"ClusterId","Values":["emr-xxxxxxxx"]}]</li><li>instance of filtering by clusterName: [{"Name": "ClusterName","Values": ["cluster_name"]}]</li><li>instance of filtering by ClusterStatus: [{"Name": "ClusterStatus","Values": ["2"]}]</li>.
	Filters []*Filters `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

// Predefined struct for user
type DescribeInstancesListResponseParams struct {
	// Number of eligible instances.
	TotalCnt *int64 `json:"TotalCnt,omitnil,omitempty" name:"TotalCnt"`

	// Cluster instance list.
	InstancesList []*EmrListInstance `json:"InstancesList,omitnil,omitempty" name:"InstancesList"`

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

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

// Predefined struct for user
type DescribeInstancesRequestParams struct {
	// Cluster filtering policy. Valid values:
	// <li>clusterList: queries the list of clusters except terminated ones.</li>
	// <li>monitorManage: queries the list of clusters except those that have been terminated, are being created, or failed to be created.</li>
	// <li>cloudHardwareManage/componentManage: reserved fields with the same meaning as `monitorManage`.</li>
	DisplayStrategy *string `json:"DisplayStrategy,omitnil,omitempty" name:"DisplayStrategy"`

	// Queries by one or more instance IDs in the format of `emr-xxxxxxxx`. For the format of this parameter, please see the `id.N` section in [API Overview](https://intl.cloud.tencent.com/document/api/213/15688). If no instance ID is entered, the list of all instances under this `APPID` will be returned.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Page number. Default value: 0, indicating the first page.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

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

	// ID of the project to which the instance belongs. This parameter can be obtained from the `projectId` field in the return value of the `DescribeProject` API. If this value is -1, the list of all instances will be returned.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Sorting field. Valid values:
	// <li>clusterId: sorts by cluster ID.</li>
	// <li>addTime: sorts by instance creation time.</li>
	// <li>status: sorts by instance status code.</li>
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Sorts according to `OrderField` in ascending or descending order. Valid values:
	// <li>0: descending order.</li>
	// <li>1: ascending order.</li>Default value: 0.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`
}

type DescribeInstancesRequest struct {
	*tchttp.BaseRequest
	
	// Cluster filtering policy. Valid values:
	// <li>clusterList: queries the list of clusters except terminated ones.</li>
	// <li>monitorManage: queries the list of clusters except those that have been terminated, are being created, or failed to be created.</li>
	// <li>cloudHardwareManage/componentManage: reserved fields with the same meaning as `monitorManage`.</li>
	DisplayStrategy *string `json:"DisplayStrategy,omitnil,omitempty" name:"DisplayStrategy"`

	// Queries by one or more instance IDs in the format of `emr-xxxxxxxx`. For the format of this parameter, please see the `id.N` section in [API Overview](https://intl.cloud.tencent.com/document/api/213/15688). If no instance ID is entered, the list of all instances under this `APPID` will be returned.
	InstanceIds []*string `json:"InstanceIds,omitnil,omitempty" name:"InstanceIds"`

	// Page number. Default value: 0, indicating the first page.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

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

	// ID of the project to which the instance belongs. This parameter can be obtained from the `projectId` field in the return value of the `DescribeProject` API. If this value is -1, the list of all instances will be returned.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Sorting field. Valid values:
	// <li>clusterId: sorts by cluster ID.</li>
	// <li>addTime: sorts by instance creation time.</li>
	// <li>status: sorts by instance status code.</li>
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Sorts according to `OrderField` in ascending or descending order. Valid values:
	// <li>0: descending order.</li>
	// <li>1: ascending order.</li>Default value: 0.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`
}

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

// Predefined struct for user
type DescribeInstancesResponseParams struct {
	// Number of eligible instances.
	TotalCnt *int64 `json:"TotalCnt,omitnil,omitempty" name:"TotalCnt"`

	// List of EMR instance details.
	// Note: this field may return null, indicating that no valid values can be obtained.
	ClusterList []*ClusterInstancesInfo `json:"ClusterList,omitnil,omitempty" name:"ClusterList"`

	// List of tag keys associated to an instance.
	// Note: this field may return null, indicating that no valid values can be obtained.
	TagKeys []*string `json:"TagKeys,omitnil,omitempty" name:"TagKeys"`

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

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

// Predefined struct for user
type DescribeKyuubiQueryInfoRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Query information obtainment start time (seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query information obtainment end time (seconds).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

type DescribeKyuubiQueryInfoRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Query information obtainment start time (seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query information obtainment end time (seconds).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

func (r *DescribeKyuubiQueryInfoRequest) 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 *DescribeKyuubiQueryInfoRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "PageSize")
	delete(f, "Page")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeKyuubiQueryInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeKyuubiQueryInfoResponseParams struct {
	// Total number, which is used for pagination query.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Kyuubi information list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	KyuubiQueryInfoList []*KyuubiQueryInfo `json:"KyuubiQueryInfoList,omitnil,omitempty" name:"KyuubiQueryInfoList"`

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

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

// Predefined struct for user
type DescribeNodeDataDisksRequestParams struct {
	// ID of the EMR cluster instance.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// ID list of node CVM instances.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// Filter criteria for querying cloud disks.
	Filters []*Filters `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Fuzzy search.
	InnerSearch *string `json:"InnerSearch,omitnil,omitempty" name:"InnerSearch"`

	// Number of items returned per page. The default value is 100, and the maximum value is 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeNodeDataDisksRequest struct {
	*tchttp.BaseRequest
	
	// ID of the EMR cluster instance.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// ID list of node CVM instances.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// Filter criteria for querying cloud disks.
	Filters []*Filters `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Fuzzy search.
	InnerSearch *string `json:"InnerSearch,omitnil,omitempty" name:"InnerSearch"`

	// Number of items returned per page. The default value is 100, and the maximum value is 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

func (r *DescribeNodeDataDisksRequest) 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 *DescribeNodeDataDisksRequest) 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, "CvmInstanceIds")
	delete(f, "Filters")
	delete(f, "InnerSearch")
	delete(f, "Limit")
	delete(f, "Offset")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeNodeDataDisksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeNodeDataDisksResponseParams struct {
	// Total number.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Cloud disk list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CBSList []*CBSInstance `json:"CBSList,omitnil,omitempty" name:"CBSList"`

	// Maximum cloud disk capacity.
	MaxSize *uint64 `json:"MaxSize,omitnil,omitempty" name:"MaxSize"`

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

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

// Predefined struct for user
type DescribeNodeResourceConfigFastRequestParams struct {
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node type, CORE, TASK, ROUTER or ALL.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Billing type.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Availability zone ID.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Hardware type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

type DescribeNodeResourceConfigFastRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Node type, CORE, TASK, ROUTER or ALL.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Billing type.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Availability zone ID.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Hardware type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

func (r *DescribeNodeResourceConfigFastRequest) 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 *DescribeNodeResourceConfigFastRequest) 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, "ResourceType")
	delete(f, "PayMode")
	delete(f, "ZoneId")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	delete(f, "HardwareResourceType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeNodeResourceConfigFastRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeNodeResourceConfigFastResponseParams struct {
	// Return value of the DescribeResourceConfig API.
	Data []*DescribeResourceConfig `json:"Data,omitnil,omitempty" name:"Data"`

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

type DescribeNodeResourceConfigFastResponse struct {
	*tchttp.BaseResponse
	Response *DescribeNodeResourceConfigFastResponseParams `json:"Response"`
}

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

type DescribeNodeSpec struct {
	// Node type.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Node type name.
	NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"`

	// Types array.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Types []*NodeSpecType `json:"Types,omitnil,omitempty" name:"Types"`

	// Cloud Managed Node (M Node) model specifications list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CmnTypes []*NodeSpecType `json:"CmnTypes,omitnil,omitempty" name:"CmnTypes"`
}

// Predefined struct for user
type DescribeNodeSpecRequestParams struct {
	// Availability zone (AZ) ID. https://document.capi.woa.com/document/api/1605/76892 can be accessed for related information.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// 0: pay-as-you-go; 1: yearly/monthly subscription; 99: a combination of pay-as-you-go and yearly/monthly subscription. Invalid values will suppress billing display.
	CvmPayMode *uint64 `json:"CvmPayMode,omitnil,omitempty" name:"CvmPayMode"`

	// Node type: Master,Core,Task,Router,All.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// 0: old billing page; 1: new billing page. Invalid values will be deemed to be old billing by default.
	TradeType *uint64 `json:"TradeType,omitnil,omitempty" name:"TradeType"`

	// Product ID. If left blank, the value is "0". This field is used to represent the product ID in all situations. It is required in front-end scenarios.
	// 
	// 44	EMR	V3.5.0
	// 43	EMR	V3.4.0.tlinux
	// 42	EMR	V2.7.0.tlinux
	// 41	DRUID	V1.1.0
	// 67	STARROCKS	V2.2.0
	// 45	DRUID	V1.1.0.tlinux
	// 40	EMRCLOUD	v3.2.0
	// 47	EMR	V4.0.0
	// 48	STARROCKS	V1.2.0
	// 49	STARROCKS	V1.3.0
	// 50	KAFKA	V2.0.0
	// 51	STARROCKS	V1.4.0
	// 52	EMR-TKE	V1.0.0
	// 53	EMR	V3.6.0
	// 54	STARROCKS	V2.0.0
	// 55	EMR-TKE	V1.0.1
	// 56	EMR-TKE	DLCV1.0.0
	// 57	EMR	V2.8.0
	// 58	EMR	V3.6.1
	// 59	SERVERLESS	V1.0.0
	// 60	EMR-TKE	V1.1.0
	// 62	STARROCKS	V2.1.1
	// 63	STARROCKS	V2.1.1.tlinux
	// 64	EMR-TKE	TCCV1.0.0
	// 65	EMR-TKE-AI	V1.0.0
	// 66	RSS	V1.0.0
	// 24	EMR	TianQiong-V1.0.0
	// 3	EMR	V2.0.1.tlinux
	// 4	EMR	V2.1.0
	// 7	EMR	V3.0.0
	// 8	EMR	V3.0.0.tlinux
	// 9	EMR	V2.2.0
	// 11	CLICKHOUSE	V1.0.0
	// 12	CLICKHOUSE	V1.0.0.tlinux
	// 16	EMR	V2.3.0
	// 17	CLICKHOUSE	V1.1.0
	// 18	CLICKHOUSE	V1.1.0.tlinux
	// 19	EMR	V2.4.0
	// 20	EMR	V2.5.0
	// 21	USERCUSTOM	V1.0.0
	// 22	CLICKHOUSE	V1.2.0
	// 39	STARROCKS	V1.1.0
	// 25	EMR	V3.1.0
	// 26	DORIS	V1.0.0
	// 27	KAFKA	V1.0.0
	// 28	EMR	V3.2.0
	// 29	EMR	V2.5.1
	// 30	EMR	V2.6.0
	// 32	DORIS	V1.1.0
	// 33	EMR	V3.2.1
	// 34	EMR	V3.3.0
	// 35	DORIS	V1.2.0
	// 36	STARROCKS	V1.0.0
	// 37	EMR	V3.4.0
	// 38	EMR	V2.7.0
	ProductId *uint64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

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

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

type DescribeNodeSpecRequest struct {
	*tchttp.BaseRequest
	
	// Availability zone (AZ) ID. https://document.capi.woa.com/document/api/1605/76892 can be accessed for related information.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// 0: pay-as-you-go; 1: yearly/monthly subscription; 99: a combination of pay-as-you-go and yearly/monthly subscription. Invalid values will suppress billing display.
	CvmPayMode *uint64 `json:"CvmPayMode,omitnil,omitempty" name:"CvmPayMode"`

	// Node type: Master,Core,Task,Router,All.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// 0: old billing page; 1: new billing page. Invalid values will be deemed to be old billing by default.
	TradeType *uint64 `json:"TradeType,omitnil,omitempty" name:"TradeType"`

	// Product ID. If left blank, the value is "0". This field is used to represent the product ID in all situations. It is required in front-end scenarios.
	// 
	// 44	EMR	V3.5.0
	// 43	EMR	V3.4.0.tlinux
	// 42	EMR	V2.7.0.tlinux
	// 41	DRUID	V1.1.0
	// 67	STARROCKS	V2.2.0
	// 45	DRUID	V1.1.0.tlinux
	// 40	EMRCLOUD	v3.2.0
	// 47	EMR	V4.0.0
	// 48	STARROCKS	V1.2.0
	// 49	STARROCKS	V1.3.0
	// 50	KAFKA	V2.0.0
	// 51	STARROCKS	V1.4.0
	// 52	EMR-TKE	V1.0.0
	// 53	EMR	V3.6.0
	// 54	STARROCKS	V2.0.0
	// 55	EMR-TKE	V1.0.1
	// 56	EMR-TKE	DLCV1.0.0
	// 57	EMR	V2.8.0
	// 58	EMR	V3.6.1
	// 59	SERVERLESS	V1.0.0
	// 60	EMR-TKE	V1.1.0
	// 62	STARROCKS	V2.1.1
	// 63	STARROCKS	V2.1.1.tlinux
	// 64	EMR-TKE	TCCV1.0.0
	// 65	EMR-TKE-AI	V1.0.0
	// 66	RSS	V1.0.0
	// 24	EMR	TianQiong-V1.0.0
	// 3	EMR	V2.0.1.tlinux
	// 4	EMR	V2.1.0
	// 7	EMR	V3.0.0
	// 8	EMR	V3.0.0.tlinux
	// 9	EMR	V2.2.0
	// 11	CLICKHOUSE	V1.0.0
	// 12	CLICKHOUSE	V1.0.0.tlinux
	// 16	EMR	V2.3.0
	// 17	CLICKHOUSE	V1.1.0
	// 18	CLICKHOUSE	V1.1.0.tlinux
	// 19	EMR	V2.4.0
	// 20	EMR	V2.5.0
	// 21	USERCUSTOM	V1.0.0
	// 22	CLICKHOUSE	V1.2.0
	// 39	STARROCKS	V1.1.0
	// 25	EMR	V3.1.0
	// 26	DORIS	V1.0.0
	// 27	KAFKA	V1.0.0
	// 28	EMR	V3.2.0
	// 29	EMR	V2.5.1
	// 30	EMR	V2.6.0
	// 32	DORIS	V1.1.0
	// 33	EMR	V3.2.1
	// 34	EMR	V3.3.0
	// 35	DORIS	V1.2.0
	// 36	STARROCKS	V1.0.0
	// 37	EMR	V3.4.0
	// 38	EMR	V2.7.0
	ProductId *uint64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

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

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

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

// Predefined struct for user
type DescribeNodeSpecResponseParams struct {
	// Node specification type.
	NodeSpecs []*DescribeNodeSpec `json:"NodeSpecs,omitnil,omitempty" name:"NodeSpecs"`

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

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

type DescribeResourceConfig struct {
	// Specification management type.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Specification management data.
	ResourceData []*NodeResource `json:"ResourceData,omitnil,omitempty" name:"ResourceData"`
}

// Predefined struct for user
type DescribeResourceScheduleDiffDetailRequestParams struct {
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler for the queried change details. The available values are fair and capacity. If this parameter is not passed or a null value is passed, the latest scheduler will be used.
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`
}

type DescribeResourceScheduleDiffDetailRequest struct {
	*tchttp.BaseRequest
	
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler for the queried change details. The available values are fair and capacity. If this parameter is not passed or a null value is passed, the latest scheduler will be used.
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`
}

func (r *DescribeResourceScheduleDiffDetailRequest) 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 *DescribeResourceScheduleDiffDetailRequest) 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, "Scheduler")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeResourceScheduleDiffDetailRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeResourceScheduleDiffDetailResponseParams struct {
	// Details of change items.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Details []*DiffDetail `json:"Details,omitnil,omitempty" name:"Details"`

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

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

// Predefined struct for user
type DescribeResourceScheduleRequestParams struct {
	// EMR cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DescribeResourceScheduleRequest struct {
	*tchttp.BaseRequest
	
	// EMR cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DescribeResourceScheduleRequest) 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 *DescribeResourceScheduleRequest) 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", "DescribeResourceScheduleRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeResourceScheduleResponseParams struct {
	// Whether to enable the resource scheduling feature
	OpenSwitch *bool `json:"OpenSwitch,omitnil,omitempty" name:"OpenSwitch"`

	// The resource scheduler in service
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`

	// Fair Scheduler information
	FSInfo *string `json:"FSInfo,omitnil,omitempty" name:"FSInfo"`

	// Capacity Scheduler information
	CSInfo *string `json:"CSInfo,omitnil,omitempty" name:"CSInfo"`

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

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

// Predefined struct for user
type DescribeSLInstanceListRequestParams struct {
	// Instance filtering policy. Valid values: <li>clusterList: Query the list of instances except for those that have been terminated.</li> <li>monitorManage: Query the list of instances except for those that have been terminated, are being created, or fail to be created.</li>
	DisplayStrategy *string `json:"DisplayStrategy,omitnil,omitempty" name:"DisplayStrategy"`

	// Page number. The default value is 0, indicating the first page.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of records to be returned per page. The default value is 10, and the maximum value is 100.	
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting field. Valid values: <li>clusterId: Sort by instance ID.</li> <li>addTime: Sort by instance creation time.</li> <li>status: Sort by instance status code.</li>
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Sorts by OrderField in ascending or descending order. Valid values: <li>0: ascending order;</li> <li>1: descending order.</li> The default value is 0.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Custom search filters. Examples: <li>Filter instances by ClusterId: [{"Name":"ClusterId","Values":["emr-xxxxxxxx"]}]</li><li> Filter instances by clusterName: [{"Name": "ClusterName","Values": ["cluster_name"]}]</li><li>Filter instances by ClusterStatus: [{"Name": "ClusterStatus","Values": ["2"]}]</li>
	Filters []*Filters `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeSLInstanceListRequest struct {
	*tchttp.BaseRequest
	
	// Instance filtering policy. Valid values: <li>clusterList: Query the list of instances except for those that have been terminated.</li> <li>monitorManage: Query the list of instances except for those that have been terminated, are being created, or fail to be created.</li>
	DisplayStrategy *string `json:"DisplayStrategy,omitnil,omitempty" name:"DisplayStrategy"`

	// Page number. The default value is 0, indicating the first page.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of records to be returned per page. The default value is 10, and the maximum value is 100.	
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting field. Valid values: <li>clusterId: Sort by instance ID.</li> <li>addTime: Sort by instance creation time.</li> <li>status: Sort by instance status code.</li>
	OrderField *string `json:"OrderField,omitnil,omitempty" name:"OrderField"`

	// Sorts by OrderField in ascending or descending order. Valid values: <li>0: ascending order;</li> <li>1: descending order.</li> The default value is 0.
	Asc *int64 `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Custom search filters. Examples: <li>Filter instances by ClusterId: [{"Name":"ClusterId","Values":["emr-xxxxxxxx"]}]</li><li> Filter instances by clusterName: [{"Name": "ClusterName","Values": ["cluster_name"]}]</li><li>Filter instances by ClusterStatus: [{"Name": "ClusterStatus","Values": ["2"]}]</li>
	Filters []*Filters `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

// Predefined struct for user
type DescribeSLInstanceListResponseParams struct {
	// Total number of qualified instances	.
	TotalCnt *int64 `json:"TotalCnt,omitnil,omitempty" name:"TotalCnt"`

	// Instance information list. If pagination is applied, only the current page's instance information list is displayed.
	InstancesList []*SLInstanceInfo `json:"InstancesList,omitnil,omitempty" name:"InstancesList"`

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

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

// Predefined struct for user
type DescribeSLInstanceRequestParams struct {
	// Instance unique identifier (string).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type DescribeSLInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance unique identifier (string).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *DescribeSLInstanceRequest) 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 *DescribeSLInstanceRequest) 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", "DescribeSLInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSLInstanceResponseParams struct {
	// Character string identifier of the instance.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Instance billing mode. 0 indicates postpaid, i.e., pay-as-you-go; 1 indicates prepaid, i.e., monthly subscription.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Instance storage type.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Instance single-node disk capacity, in GB.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Instance node specifications.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Detailed configuration of the instance AZ, including the AZ name, VPC information, and number of nodes.
	ZoneSettings []*ZoneSetting `json:"ZoneSettings,omitnil,omitempty" name:"ZoneSettings"`

	// List of tags bound to the instance.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Numeric identifier of the instance.
	ClusterId *int64 `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Instance region ID.
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

	// Primary AZ of the instance.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Instance expiration time. For post-paid instances, the API returns 0000-00-00 00:00:00.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Instance isolation time. For instances that are not isolated, the API returns 0000-00-00 00:00:00.
	IsolateTime *string `json:"IsolateTime,omitnil,omitempty" name:"IsolateTime"`

	// Instance creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Instance status code: -2: "TERMINATED", 2: "RUNNING", 14: "TERMINATING", 19: "ISOLATING", 22: "ADJUSTING", and 201: "ISOLATED".
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Auto-renewal flag. 0: notify before expiration but do not auto-renew; 1: notify before expiration and auto-renew; and 2: do not notify before expiration and do not auto-renew. If the business does not support renewal, the value is 0.
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Total number of instance nodes.
	NodeNum *int64 `json:"NodeNum,omitnil,omitempty" name:"NodeNum"`


	SLInstance []*SLInstance `json:"SLInstance,omitnil,omitempty" name:"SLInstance"`

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

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

// Predefined struct for user
type DescribeServiceConfGroupInfosRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Configuration group name.
	ConfGroupName *string `json:"ConfGroupName,omitnil,omitempty" name:"ConfGroupName"`

	// Page number, starting from 1.
	PageNo *int64 `json:"PageNo,omitnil,omitempty" name:"PageNo"`

	// Page size.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

type DescribeServiceConfGroupInfosRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Configuration group name.
	ConfGroupName *string `json:"ConfGroupName,omitnil,omitempty" name:"ConfGroupName"`

	// Page number, starting from 1.
	PageNo *int64 `json:"PageNo,omitnil,omitempty" name:"PageNo"`

	// Page size.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

func (r *DescribeServiceConfGroupInfosRequest) 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 *DescribeServiceConfGroupInfosRequest) 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, "ServiceName")
	delete(f, "ConfGroupName")
	delete(f, "PageNo")
	delete(f, "PageSize")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeServiceConfGroupInfosRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeServiceConfGroupInfosResponseParams struct {
	// List size.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Configuration item key-value list.
	ConfItemKVList []*ConfigurationItem `json:"ConfItemKVList,omitnil,omitempty" name:"ConfItemKVList"`

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

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

// Predefined struct for user
type DescribeServiceNodeInfosRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Page number.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Searching fields.
	SearchText *string `json:"SearchText,omitnil,omitempty" name:"SearchText"`

	// Configuration status. -2: configuration failed; -1: configuration expired; 1: synchronized; -99: all.
	ConfStatus *int64 `json:"ConfStatus,omitnil,omitempty" name:"ConfStatus"`

	// Filter criteria: Maintenance status
	// 
	// 0 indicates all statuses.
	// 1 indicates normal.
	// 2 indicates the maintenance status.
	MaintainStateId *int64 `json:"MaintainStateId,omitnil,omitempty" name:"MaintainStateId"`

	// Filter criteria: Operation status
	// 
	// 0 indicates all statuses.
	// 1 indicates started.
	// 2 indicates stopped.
	OperatorStateId *int64 `json:"OperatorStateId,omitnil,omitempty" name:"OperatorStateId"`

	// Filter criteria: health status.
	// 0 indicates unavailable.
	// 1 indicates good.
	// -2 indicates unknown.
	// -99 indicates all.
	// -3 indicates potential risks.
	// -4 indicates undetected.
	HealthStateId *string `json:"HealthStateId,omitnil,omitempty" name:"HealthStateId"`

	// Service component names (in all caps, for example, YARN).
	ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"`

	// Node names: master, core, task, common, and router.
	NodeTypeName *string `json:"NodeTypeName,omitnil,omitempty" name:"NodeTypeName"`

	// Filter criteria: whether DN is in the maintenance status.
	// 0 indicates all statuses.
	// 1 indicates the maintenance status.
	DataNodeMaintenanceId *int64 `json:"DataNodeMaintenanceId,omitnil,omitempty" name:"DataNodeMaintenanceId"`

	// Searchable fields (currently supported SearchType: ipv4).
	SearchFields []*SearchItem `json:"SearchFields,omitnil,omitempty" name:"SearchFields"`
}

type DescribeServiceNodeInfosRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Page number.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Searching fields.
	SearchText *string `json:"SearchText,omitnil,omitempty" name:"SearchText"`

	// Configuration status. -2: configuration failed; -1: configuration expired; 1: synchronized; -99: all.
	ConfStatus *int64 `json:"ConfStatus,omitnil,omitempty" name:"ConfStatus"`

	// Filter criteria: Maintenance status
	// 
	// 0 indicates all statuses.
	// 1 indicates normal.
	// 2 indicates the maintenance status.
	MaintainStateId *int64 `json:"MaintainStateId,omitnil,omitempty" name:"MaintainStateId"`

	// Filter criteria: Operation status
	// 
	// 0 indicates all statuses.
	// 1 indicates started.
	// 2 indicates stopped.
	OperatorStateId *int64 `json:"OperatorStateId,omitnil,omitempty" name:"OperatorStateId"`

	// Filter criteria: health status.
	// 0 indicates unavailable.
	// 1 indicates good.
	// -2 indicates unknown.
	// -99 indicates all.
	// -3 indicates potential risks.
	// -4 indicates undetected.
	HealthStateId *string `json:"HealthStateId,omitnil,omitempty" name:"HealthStateId"`

	// Service component names (in all caps, for example, YARN).
	ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"`

	// Node names: master, core, task, common, and router.
	NodeTypeName *string `json:"NodeTypeName,omitnil,omitempty" name:"NodeTypeName"`

	// Filter criteria: whether DN is in the maintenance status.
	// 0 indicates all statuses.
	// 1 indicates the maintenance status.
	DataNodeMaintenanceId *int64 `json:"DataNodeMaintenanceId,omitnil,omitempty" name:"DataNodeMaintenanceId"`

	// Searchable fields (currently supported SearchType: ipv4).
	SearchFields []*SearchItem `json:"SearchFields,omitnil,omitempty" name:"SearchFields"`
}

func (r *DescribeServiceNodeInfosRequest) 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 *DescribeServiceNodeInfosRequest) 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, "Offset")
	delete(f, "Limit")
	delete(f, "SearchText")
	delete(f, "ConfStatus")
	delete(f, "MaintainStateId")
	delete(f, "OperatorStateId")
	delete(f, "HealthStateId")
	delete(f, "ServiceName")
	delete(f, "NodeTypeName")
	delete(f, "DataNodeMaintenanceId")
	delete(f, "SearchFields")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeServiceNodeInfosRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeServiceNodeInfosResponseParams struct {
	// Total number.
	TotalCnt *int64 `json:"TotalCnt,omitnil,omitempty" name:"TotalCnt"`

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

	// Alias serialization of all nodes in the cluster.
	AliasInfo *string `json:"AliasInfo,omitnil,omitempty" name:"AliasInfo"`

	// Supported FlagNode list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	SupportNodeFlagFilterList []*string `json:"SupportNodeFlagFilterList,omitnil,omitempty" name:"SupportNodeFlagFilterList"`

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

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

// Predefined struct for user
type DescribeSparkApplicationsRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Querying start time.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Querying end time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Number of entries per page.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Which page.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

type DescribeSparkApplicationsRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Querying start time.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Querying end time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Number of entries per page.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Which page.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

func (r *DescribeSparkApplicationsRequest) 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 *DescribeSparkApplicationsRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "PageSize")
	delete(f, "Page")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSparkApplicationsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSparkApplicationsResponseParams struct {
	// The number of returns.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Spark application list.
	ResultList []*SparkApplicationsList `json:"ResultList,omitnil,omitempty" name:"ResultList"`

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

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

// Predefined struct for user
type DescribeSparkQueriesRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Starting offset for pages, starting from 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size. Valid range: [1,100].
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Execution status: RUNNING,COMPLETED, FAILED.
	Status []*string `json:"Status,omitnil,omitempty" name:"Status"`
}

type DescribeSparkQueriesRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Starting offset for pages, starting from 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Page size. Valid range: [1,100].
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Execution status: RUNNING,COMPLETED, FAILED.
	Status []*string `json:"Status,omitnil,omitempty" name:"Status"`
}

func (r *DescribeSparkQueriesRequest) 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 *DescribeSparkQueriesRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "Status")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSparkQueriesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSparkQueriesResponseParams struct {
	// Total number.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// Result list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Results []*SparkQuery `json:"Results,omitnil,omitempty" name:"Results"`

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

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

// Predefined struct for user
type DescribeStarRocksQueryInfoRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Query information obtainment start time (seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query information obtainment end time (seconds).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

type DescribeStarRocksQueryInfoRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Query information obtainment start time (seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query information obtainment end time (seconds).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination query. The minimum value is 1, and the maximum value is 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

func (r *DescribeStarRocksQueryInfoRequest) 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 *DescribeStarRocksQueryInfoRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "PageSize")
	delete(f, "Page")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeStarRocksQueryInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeStarRocksQueryInfoResponseParams struct {
	// Total number, which is used for pagination query.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// StarRocks information list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StarRocksQueryInfoList []*StarRocksQueryInfo `json:"StarRocksQueryInfoList,omitnil,omitempty" name:"StarRocksQueryInfoList"`

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

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

// Predefined struct for user
type DescribeTrinoQueryInfoRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Obtain the start time for querying information (s).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Obtain the end time for querying information (s).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination queries. Minimum value: 1; maximum value: 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

type DescribeTrinoQueryInfoRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Obtain the start time for querying information (s).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Obtain the end time for querying information (s).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page size for pagination queries. Minimum value: 1; maximum value: 100.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Page number for pagination queries, starting from 1.
	Page *int64 `json:"Page,omitnil,omitempty" name:"Page"`
}

func (r *DescribeTrinoQueryInfoRequest) 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 *DescribeTrinoQueryInfoRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "PageSize")
	delete(f, "Page")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeTrinoQueryInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeTrinoQueryInfoResponseParams struct {
	// Total number, which is used for pagination query.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Query result array.
	// Note: This field may return null, indicating that no valid values can be obtained.
	QueryInfoList []*TrinoQueryInfo `json:"QueryInfoList,omitnil,omitempty" name:"QueryInfoList"`

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

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

// Predefined struct for user
type DescribeUsersForUserManagerRequestParams struct {
	// Cluster instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Page number
	PageNo *int64 `json:"PageNo,omitnil,omitempty" name:"PageNo"`

	// Pagination size.
	// All are queried by default. If the PageNo and PageSize settings are inappropriate, all are queried.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// User list query filter
	UserManagerFilter *UserManagerFilter `json:"UserManagerFilter,omitnil,omitempty" name:"UserManagerFilter"`

	// Whether the Keytab file information is required. This field is only valid for clusters with Kerberos enabled and defaults to `false`.
	NeedKeytabInfo *bool `json:"NeedKeytabInfo,omitnil,omitempty" name:"NeedKeytabInfo"`
}

type DescribeUsersForUserManagerRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Page number
	PageNo *int64 `json:"PageNo,omitnil,omitempty" name:"PageNo"`

	// Pagination size.
	// All are queried by default. If the PageNo and PageSize settings are inappropriate, all are queried.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// User list query filter
	UserManagerFilter *UserManagerFilter `json:"UserManagerFilter,omitnil,omitempty" name:"UserManagerFilter"`

	// Whether the Keytab file information is required. This field is only valid for clusters with Kerberos enabled and defaults to `false`.
	NeedKeytabInfo *bool `json:"NeedKeytabInfo,omitnil,omitempty" name:"NeedKeytabInfo"`
}

func (r *DescribeUsersForUserManagerRequest) 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 *DescribeUsersForUserManagerRequest) 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, "PageNo")
	delete(f, "PageSize")
	delete(f, "UserManagerFilter")
	delete(f, "NeedKeytabInfo")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeUsersForUserManagerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeUsersForUserManagerResponseParams struct {
	// Total number
	TotalCnt *int64 `json:"TotalCnt,omitnil,omitempty" name:"TotalCnt"`

	// User information list
	// Note: This field may return null, indicating that no valid value can be obtained.
	UserManagerUserList []*UserManagerUserBriefInfo `json:"UserManagerUserList,omitnil,omitempty" name:"UserManagerUserList"`

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

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

// Predefined struct for user
type DescribeYarnQueueRequestParams struct {
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler. The values are as follows:
	// 
	// 1. capacity
	// 2. fair
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`
}

type DescribeYarnQueueRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler. The values are as follows:
	// 
	// 1. capacity
	// 2. fair
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`
}

func (r *DescribeYarnQueueRequest) 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 *DescribeYarnQueueRequest) 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, "Scheduler")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeYarnQueueRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeYarnQueueResponseParams struct {
	// Queue information. It is a JSON string into which an object is converted. The corresponding Golang structure is as follows. For example, the first field `Name` of `QueueWithConfigSetForFairScheduler: ```Name                         string                               `json:"name"` //queue name ```  - `Name: field name - `string`: field type - `json:"name`:  indicates the corresponding `json key` during serialization/deserialization. Below, `json key` is used for referring.- `//`: the following comment content corresponds to the Name field seen on the page. Fields with types starting with `*` indicate that the value may be null under JSON specifications. Different languages need to be received through a type that can express null, such as Java's wrapper types. Fields with types starting with `[]` indicate an array type, which is used when `json key` calls `ModifyYarnQueueV2` API. - fair scheduler```type QueueWithConfigSetForFairScheduler struct {	Name                         string                               `json:"name"` //queue name MyId                         string                  `json:"myId"` // queue id, used for editing, deleting, and cloning	ParentId                     string                  `json:"parentId"`  // Parent queue Id	Type                         *string                              `json:"type"` // queue affinity. Parent or empty. Setting to be a parent or empty can be performed only when it is confirmed that a queue is a parent queue and has no subqueues. The queue is normally used to support the placement policy nestedUserQueue	AclSubmitApps                *AclForYarnQueue                     `json:"aclSubmitApps"` // submission access control	AclAdministerApps            *AclForYarnQueue                     `json:"aclAdministerApps"` // management access control	MinSharePreemptionTimeout    *int                                 `json:"minSharePreemptionTimeout"` // minimum share preemption timeout period	FairSharePreemptionTimeout   *int                                 `json:"fairSharePreemptionTimeout"` // fair share preemption timeout period	FairSharePreemptionThreshold *float32                             `json:"fairSharePreemptionThreshold"` // fair share preemption threshold. Value range (0, 1]	AllowPreemptionFrom          *bool                                `json:"allowPreemptionFrom"`                                        // preemption mode	SchedulingPolicy             *string                              `json:"schedulingPolicy"`  // scheduling policy with the valid values of drf, fair, and fifo	IsDefault                    *bool                                `json:"isDefault"` // whether it is the root.default queue	IsRoot                       *bool                                `json:"isRoot"` // whether it is the root queue	ConfigSets                   []ConfigSetForFairScheduler          `json:"configSets"` // configuration set settings	Children                     []QueueWithConfigSetForFairScheduler `json:"queues"` // subqueue information. recursive}type AclForYarnQueue struct {	User  *string `json:"user"` //username	Group *string `json:"group"`//group name}type ConfigSetForFairScheduler struct {	Name              string        `json:"name"` // configuration set name	MinResources      *YarnResource `json:"minResources"` // minimum resource amount	MaxResources      *YarnResource `json:"maxResources"` // maximum resource amount	MaxChildResources *YarnResource `json:"maxChildResources"` //.The maximum quantity of resources that can be allocated to undefined subqueues	MaxRunningApps    *int          `json:"maxRunningApps"` // the maximum number of apps that can run concurrently	Weight            *float32      `json:"weight"`                   // Weight	MaxAMShare        *float32      `json:"maxAMShare"` // App Master maximum share}type YarnResource struct {	Vcores *int `json:"vcores"`	Memory *int `json:"memory"`	Type *string `json:"type"` // when the value is `percent`, it indicates usage as a percentage, otherwise an absolute value is used indeed}```- Capacity scheduler```type QueueForCapacitySchedulerV3 struct {	Name                       string                `json:"name"` // queue name	MyId                       string                `json:"myId"` // queue id, used in the case of editing, deleting, or cloning	ParentId                   string                `json:"parentId"` // parent queue id 	Configs                    []ConfigForCapacityV3 `json:"configs"` //configuration set settings	State                      *string         `json:"state"` // resource pool status	DefaultNodeLabelExpression *string               `json:"default-node-label-expression"` // default tag expression	AclSubmitApps              *AclForYarnQueue      `json:"acl_submit_applications"` // submission access control 	AclAdminQueue              *AclForYarnQueue      `json:"acl_administer_queue"` //management access control	MaxAllocationMB *int32 `json:"maximum-allocation-mb"` // maximum Memory allocated to Container	MaxAllocationVcores *int32                         `json:"maximum-allocation-vcores"` // the maximum number of Vcores for Container	IsDefault           *bool                          `json:"isDefault"`// whether it is the root.default queue	IsRoot              *bool                          `json:"isRoot"` // whether it is the root queue	Queues              []*QueueForCapacitySchedulerV3 `json:"queues"`//subqueue information. Recursive}type ConfigForCapacityV3 struct {	Name                string          `json:"configName"` // configuration set name	Labels              []CapacityLabel `json:"labels"` // tag information	MinUserLimitPercent *int32          `json:"minimum-user-limit-percent"` // minimum user capacity	UserLimitFactor     *float32        `json:"user-limit-factor" valid:"rangeExcludeLeft(0|)"`  // user resource factor	MaxApps *int32 `json:"maximum-applications" valid:"rangeExcludeLeft(0|)"` // the maximum number of applications Max-Applications	MaxAmPercent               *float32 `json:"maximum-am-resource-percent"` // the maximum AM ratio	DefaultApplicationPriority *int32   `json:"default-application-priority"` // resource pool priority}type CapacityLabel struct {	Name        string   `json:"labelName"`	Capacity    *float32 `json:"capacity"`  // capacity MaxCapacity *float32 `json:"maximum-capacity"` //maximum capacity}type AclForYarnQueue struct {	User  *string `json:"user"` //username	Group *string `json:"group"`//group name}```.
	Queue *string `json:"Queue,omitnil,omitempty" name:"Queue"`

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

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

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

// Predefined struct for user
type DescribeYarnScheduleHistoryRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page number.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Page size.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Scheduler type. The values are ALL, Capacity Scheduler, and Fair Scheduler.
	SchedulerType *string `json:"SchedulerType,omitnil,omitempty" name:"SchedulerType"`

	// Task type. 0: waiting; 1: executing; 2: completed; -1: failed; -99: all.
	TaskState *int64 `json:"TaskState,omitnil,omitempty" name:"TaskState"`
}

type DescribeYarnScheduleHistoryRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Start time
	StartTime *uint64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time
	EndTime *uint64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Page number.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Page size.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Scheduler type. The values are ALL, Capacity Scheduler, and Fair Scheduler.
	SchedulerType *string `json:"SchedulerType,omitnil,omitempty" name:"SchedulerType"`

	// Task type. 0: waiting; 1: executing; 2: completed; -1: failed; -99: all.
	TaskState *int64 `json:"TaskState,omitnil,omitempty" name:"TaskState"`
}

func (r *DescribeYarnScheduleHistoryRequest) 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 *DescribeYarnScheduleHistoryRequest) 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, "StartTime")
	delete(f, "EndTime")
	delete(f, "Limit")
	delete(f, "Offset")
	delete(f, "SchedulerType")
	delete(f, "TaskState")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeYarnScheduleHistoryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeYarnScheduleHistoryResponseParams struct {
	// Task details.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tasks []*SchedulerTaskInfo `json:"Tasks,omitnil,omitempty" name:"Tasks"`

	// Total quantity of task details.
	Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`

	// Scheduling type filter list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	SchedulerNameList []*string `json:"SchedulerNameList,omitnil,omitempty" name:"SchedulerNameList"`

	// Status filter list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	StateList []*int64 `json:"StateList,omitnil,omitempty" name:"StateList"`

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

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

type DiffDetail struct {
	// Tab page header.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Number of change items.
	Count *uint64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Detailed data to be rendered.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Rows []*DiffDetailItem `json:"Rows,omitnil,omitempty" name:"Rows"`

	// Header information to be rendered.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Header []*DiffHeader `json:"Header,omitnil,omitempty" name:"Header"`
}

type DiffDetailItem struct {
	// Attribute.
	Attribute *string `json:"Attribute,omitnil,omitempty" name:"Attribute"`

	// Currently effective.
	InEffect *string `json:"InEffect,omitnil,omitempty" name:"InEffect"`

	// To be effective.
	PendingEffectiveness *string `json:"PendingEffectiveness,omitnil,omitempty" name:"PendingEffectiveness"`

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

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

	// Configuration set.
	ConfigSet *string `json:"ConfigSet,omitnil,omitempty" name:"ConfigSet"`

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

	// Current position.
	InEffectIndex *string `json:"InEffectIndex,omitnil,omitempty" name:"InEffectIndex"`

	// Position to be effective.
	PendingEffectIndex *string `json:"PendingEffectIndex,omitnil,omitempty" name:"PendingEffectIndex"`

	// Plan mode name.
	PlanName *string `json:"PlanName,omitnil,omitempty" name:"PlanName"`

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

	// Placement rule.
	RuleName *string `json:"RuleName,omitnil,omitempty" name:"RuleName"`

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

type DiffHeader struct {
	// Name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// ID, which is used by the front end.
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`
}

type DiskSpecInfo struct {
	// Number of disks.
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Valid values of the system disk type:
	// <li>CLOUD_SSD: Cloud SSD.</li>
	// <li>CLOUD_PREMIUM: Premium Cloud Disk.</li>
	// <li>CLOUD_BASIC: Cloud Disk.</li>
	// <li>LOCAL_BASIC: Local Disk.</li>
	// <li>LOCAL_SSD: Local SSD.</li>
	// 
	// Valid values of the data disk type.
	// <li>CLOUD_SSD: Cloud SSD.</li>
	// <li>CLOUD_PREMIUM: Premium Cloud Disk.</li>
	// <li>CLOUD_BASIC: Cloud Disk.</li>
	// <li>LOCAL_BASIC: Local Disk.</li>
	// <li>LOCAL_SSD: Local SSD.</li>
	// <li>CLOUD_HSSD: Enhanced SSD.</li>
	// <li>CLOUD_THROUGHPUT: Throughput HDD.</li>
	// <li>CLOUD_TSSD: Tremendous SSD.</li>
	// <li>CLOUD_BIGDATA: Big Data Cloud Disk.</li>
	// <li>CLOUD_HIGHIO: High IO Cloud Disk.</li>
	// <li>CLOUD_BSSD: Balanced SSD.</li>
	// <li>REMOTE_SSD: Remote SSD.</li>
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Data capacity in GB.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Additional performance.
	ExtraPerformance *int64 `json:"ExtraPerformance,omitnil,omitempty" name:"ExtraPerformance"`
}

type Dps struct {
	// Timestamp.
	Timestamp *string `json:"Timestamp,omitnil,omitempty" name:"Timestamp"`

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

type DynamicPodSpec struct {
	// Minimum number of CPUs
	RequestCpu *float64 `json:"RequestCpu,omitnil,omitempty" name:"RequestCpu"`

	// Maximum number of CPUs
	LimitCpu *float64 `json:"LimitCpu,omitnil,omitempty" name:"LimitCpu"`

	// Minimum memory in MB
	RequestMemory *float64 `json:"RequestMemory,omitnil,omitempty" name:"RequestMemory"`

	// Maximum memory in MB
	LimitMemory *float64 `json:"LimitMemory,omitnil,omitempty" name:"LimitMemory"`
}

type EmrListInstance struct {
	// Cluster ID
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Common status: cluster in production, cluster running, cluster creating, cluster closed, and cluster deleted.
	StatusDesc *string `json:"StatusDesc,omitnil,omitempty" name:"StatusDesc"`

	// Cluster name
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Cluster region
	ZoneId *uint64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// User APPID
	AppId *uint64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Creation time
	AddTime *string `json:"AddTime,omitnil,omitempty" name:"AddTime"`

	// Running time
	RunTime *string `json:"RunTime,omitnil,omitempty" name:"RunTime"`

	// Cluster IP
	MasterIp *string `json:"MasterIp,omitnil,omitempty" name:"MasterIp"`

	// Cluster version
	EmrVersion *string `json:"EmrVersion,omitnil,omitempty" name:"EmrVersion"`

	// Cluster billing mode
	ChargeType *uint64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// EMR ID
	Id *uint64 `json:"Id,omitnil,omitempty" name:"Id"`

	// Product ID.
	ProductId *uint64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

	// Project ID.
	ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Region.
	RegionId *uint64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

	// Subnet ID.
	SubnetId *uint64 `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Network ID.
	VpcId *uint64 `json:"VpcId,omitnil,omitempty" name:"VpcId"`

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

	// Status code. Valid values: -2 (cluster deleted), -1 (cluster closed), 0 (cluster in production), 2 (cluster running), 3 (cluster creating).
	Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Instance tag
	// Note: This field may return `null`, indicating that no valid value can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Alarm information.
	AlarmInfo *string `json:"AlarmInfo,omitnil,omitempty" name:"AlarmInfo"`

	// Whether it is a Woodpecker cluster.
	IsWoodpeckerCluster *uint64 `json:"IsWoodpeckerCluster,omitnil,omitempty" name:"IsWoodpeckerCluster"`

	// VPC name in Chinese.
	VpcName *string `json:"VpcName,omitnil,omitempty" name:"VpcName"`

	// Subnet in Chinese.
	SubnetName *string `json:"SubnetName,omitnil,omitempty" name:"SubnetName"`

	// String VpcId.
	UniqVpcId *string `json:"UniqVpcId,omitnil,omitempty" name:"UniqVpcId"`

	// String subnet.
	UniqSubnetId *string `json:"UniqSubnetId,omitnil,omitempty" name:"UniqSubnetId"`

	// Cluster type.
	ClusterClass *string `json:"ClusterClass,omitnil,omitempty" name:"ClusterClass"`

	// Whether it is a cross-AZ cluster.
	IsMultiZoneCluster *bool `json:"IsMultiZoneCluster,omitnil,omitempty" name:"IsMultiZoneCluster"`

	// Whether it is a cluster created by a cluster CVM.
	IsHandsCluster *bool `json:"IsHandsCluster,omitnil,omitempty" name:"IsHandsCluster"`

	// Client component information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	OutSideSoftInfo []*SoftDependInfo `json:"OutSideSoftInfo,omitnil,omitempty" name:"OutSideSoftInfo"`

	// Whether the current cluster's scenarios support external clients.
	IsSupportOutsideCluster *bool `json:"IsSupportOutsideCluster,omitnil,omitempty" name:"IsSupportOutsideCluster"`

	// Whether the cluster is used in a dedicated cluster scenario.
	IsDedicatedCluster *bool `json:"IsDedicatedCluster,omitnil,omitempty" name:"IsDedicatedCluster"`

	// Cluster supports for cloning.
	IsSupportClone *bool `json:"IsSupportClone,omitnil,omitempty" name:"IsSupportClone"`
}

type EmrPrice struct {
	// List price.
	OriginalCost *string `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discounted price.
	DiscountCost *string `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`

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

	// The queried spec.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PriceSpec *PriceResource `json:"PriceSpec,omitnil,omitempty" name:"PriceSpec"`

	// Whether spot instances are supported.
	SupportSpotPaid *bool `json:"SupportSpotPaid,omitnil,omitempty" name:"SupportSpotPaid"`
}

type EmrProductConfigDetail struct {
	// Software information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SoftInfo []*string `json:"SoftInfo,omitnil,omitempty" name:"SoftInfo"`

	// Number of Master nodes.
	MasterNodeSize *int64 `json:"MasterNodeSize,omitnil,omitempty" name:"MasterNodeSize"`

	// Number of Core nodes.
	CoreNodeSize *int64 `json:"CoreNodeSize,omitnil,omitempty" name:"CoreNodeSize"`

	// Number of Task nodes.
	TaskNodeSize *int64 `json:"TaskNodeSize,omitnil,omitempty" name:"TaskNodeSize"`

	// Number of Common nodes.
	ComNodeSize *int64 `json:"ComNodeSize,omitnil,omitempty" name:"ComNodeSize"`

	// Primary node resources
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	MasterResource *ResourceDetail `json:"MasterResource,omitnil,omitempty" name:"MasterResource"`

	// Core node resources
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	CoreResource *ResourceDetail `json:"CoreResource,omitnil,omitempty" name:"CoreResource"`

	// Task node resources
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskResource *ResourceDetail `json:"TaskResource,omitnil,omitempty" name:"TaskResource"`

	// Common node resources
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	ComResource *ResourceDetail `json:"ComResource,omitnil,omitempty" name:"ComResource"`

	// Whether to use COS.
	OnCos *bool `json:"OnCos,omitnil,omitempty" name:"OnCos"`

	// Charge type.
	ChargeType *int64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// Number of Router nodes.
	RouterNodeSize *int64 `json:"RouterNodeSize,omitnil,omitempty" name:"RouterNodeSize"`

	// Whether HA is supported.
	SupportHA *bool `json:"SupportHA,omitnil,omitempty" name:"SupportHA"`

	// Whether security mode is supported.
	SecurityOn *bool `json:"SecurityOn,omitnil,omitempty" name:"SecurityOn"`

	// Security group name.
	SecurityGroup *string `json:"SecurityGroup,omitnil,omitempty" name:"SecurityGroup"`

	// Whether to enable CBS encryption.
	CbsEncrypt *int64 `json:"CbsEncrypt,omitnil,omitempty" name:"CbsEncrypt"`

	// Custom application role.
	ApplicationRole *string `json:"ApplicationRole,omitnil,omitempty" name:"ApplicationRole"`

	// Security group.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SecurityGroups []*string `json:"SecurityGroups,omitnil,omitempty" name:"SecurityGroups"`

	// SSH key ID.
	PublicKeyId *string `json:"PublicKeyId,omitnil,omitempty" name:"PublicKeyId"`
}

type EmrProductConfigOutter struct {
	// Software information
	// Note: this field may return null, indicating that no valid values can be obtained.
	SoftInfo []*string `json:"SoftInfo,omitnil,omitempty" name:"SoftInfo"`

	// Number of master nodes
	// Note: this field may return null, indicating that no valid values can be obtained.
	MasterNodeSize *int64 `json:"MasterNodeSize,omitnil,omitempty" name:"MasterNodeSize"`

	// Number of core nodes
	// Note: this field may return null, indicating that no valid values can be obtained.
	CoreNodeSize *int64 `json:"CoreNodeSize,omitnil,omitempty" name:"CoreNodeSize"`

	// Number of task nodes
	// Note: this field may return null, indicating that no valid values can be obtained.
	TaskNodeSize *int64 `json:"TaskNodeSize,omitnil,omitempty" name:"TaskNodeSize"`

	// Number of common nodes
	// Note: this field may return null, indicating that no valid values can be obtained.
	ComNodeSize *int64 `json:"ComNodeSize,omitnil,omitempty" name:"ComNodeSize"`

	// Master node resource
	// Note: this field may return null, indicating that no valid values can be obtained.
	MasterResource *OutterResource `json:"MasterResource,omitnil,omitempty" name:"MasterResource"`

	// Core node resource
	// Note: this field may return null, indicating that no valid values can be obtained.
	CoreResource *OutterResource `json:"CoreResource,omitnil,omitempty" name:"CoreResource"`

	// Task node resource
	// Note: this field may return null, indicating that no valid values can be obtained.
	TaskResource *OutterResource `json:"TaskResource,omitnil,omitempty" name:"TaskResource"`

	// Common node resource
	// Note: this field may return null, indicating that no valid values can be obtained.
	ComResource *OutterResource `json:"ComResource,omitnil,omitempty" name:"ComResource"`

	// Whether COS is used
	// Note: this field may return null, indicating that no valid values can be obtained.
	OnCos *bool `json:"OnCos,omitnil,omitempty" name:"OnCos"`

	// Billing mode
	// Note: this field may return null, indicating that no valid values can be obtained.
	ChargeType *int64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// Number of router nodes
	// Note: this field may return null, indicating that no valid values can be obtained.
	RouterNodeSize *int64 `json:"RouterNodeSize,omitnil,omitempty" name:"RouterNodeSize"`

	// Whether HA is supported
	// Note: this field may return null, indicating that no valid values can be obtained.
	SupportHA *bool `json:"SupportHA,omitnil,omitempty" name:"SupportHA"`

	// Whether secure mode is supported
	// Note: this field may return null, indicating that no valid values can be obtained.
	SecurityOn *bool `json:"SecurityOn,omitnil,omitempty" name:"SecurityOn"`

	// Initial security group ID of the cluster.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SecurityGroup *string `json:"SecurityGroup,omitnil,omitempty" name:"SecurityGroup"`

	// Whether to enable CBS encryption
	// Note: this field may return null, indicating that no valid values can be obtained.
	CbsEncrypt *int64 `json:"CbsEncrypt,omitnil,omitempty" name:"CbsEncrypt"`

	// Custom application role
	// Note: this field may return `null`, indicating that no valid value can be obtained.
	ApplicationRole *string `json:"ApplicationRole,omitnil,omitempty" name:"ApplicationRole"`

	// Security group ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SecurityGroups []*string `json:"SecurityGroups,omitnil,omitempty" name:"SecurityGroups"`

	// SSH key ID
	// Note: This field may return `null`, indicating that no valid values can be obtained.
	PublicKeyId *string `json:"PublicKeyId,omitnil,omitempty" name:"PublicKeyId"`
}

type ExternalService struct {
	// Shared component type, which can be EMR or CUSTOM
	ShareType *string `json:"ShareType,omitnil,omitempty" name:"ShareType"`

	// Custom parameters
	CustomServiceDefineList []*CustomServiceDefine `json:"CustomServiceDefineList,omitnil,omitempty" name:"CustomServiceDefineList"`

	// Shared component name
	Service *string `json:"Service,omitnil,omitempty" name:"Service"`

	// Shared component cluster
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type FairGlobalConfig struct {
	// Corresponds to <p>Program Upper Limit</p> of the page.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserMaxAppsDefault *int64 `json:"UserMaxAppsDefault,omitnil,omitempty" name:"UserMaxAppsDefault"`
}

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

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

type Filters struct {
	// Field name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Filters by the field value
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

type FlowExtraDetail struct {
	// Additional information title.
	Title *string `json:"Title,omitnil,omitempty" name:"Title"`

	// Additional information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Detail []*FlowParamsDesc `json:"Detail,omitnil,omitempty" name:"Detail"`
}

type FlowParam struct {
	// Process parameter key.
	// TraceId: Query by TraceId.
	// FlowId: Query by FlowId.
	FKey *string `json:"FKey,omitnil,omitempty" name:"FKey"`

	// Parameter value
	FValue *string `json:"FValue,omitnil,omitempty" name:"FValue"`
}

type FlowParamsDesc struct {
	// Parameter key
	PKey *string `json:"PKey,omitnil,omitempty" name:"PKey"`

	// Parameter value.
	PValue *string `json:"PValue,omitnil,omitempty" name:"PValue"`
}

type GroupGlobalConfs struct {
	// Scaling group information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	GroupGlobalConf *AutoScaleResourceConf `json:"GroupGlobalConf,omitnil,omitempty" name:"GroupGlobalConf"`

	// Number of nodes scaled out in the current scaling group.
	CurrentNodes *int64 `json:"CurrentNodes,omitnil,omitempty" name:"CurrentNodes"`

	// Number of postpaid nodes scaled out in the current scaling group.
	CurrentPostPaidNodes *int64 `json:"CurrentPostPaidNodes,omitnil,omitempty" name:"CurrentPostPaidNodes"`

	// Number of spot instance nodes scaled out in the current scaling group.
	CurrentSpotPaidNodes *int64 `json:"CurrentSpotPaidNodes,omitnil,omitempty" name:"CurrentSpotPaidNodes"`
}

type GroupInfo struct {
	// Group name.
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

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

	// User list.
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`
}

type GroupInfos struct {
	// User group name.
	GroupName *string `json:"GroupName,omitnil,omitempty" name:"GroupName"`

	// User name list.
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

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

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// User group type.
	GroupType *int64 `json:"GroupType,omitnil,omitempty" name:"GroupType"`

	// User group type description.
	GroupTypeDesc *string `json:"GroupTypeDesc,omitnil,omitempty" name:"GroupTypeDesc"`
}

type HealthStatus struct {
	// Running normally.
	Code *int64 `json:"Code,omitnil,omitempty" name:"Code"`

	// Running normally.
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// Running normally.
	Desc *string `json:"Desc,omitnil,omitempty" name:"Desc"`
}

type HiveQuery struct {
	// Query statement.
	Statement *string `json:"Statement,omitnil,omitempty" name:"Statement"`

	// Execution duration.
	Duration *string `json:"Duration,omitnil,omitempty" name:"Duration"`

	// Start time in milliseconds.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time in milliseconds.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

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

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

	// AppId List
	// Note: This field may return null, indicating that no valid values can be obtained.
	JobIds []*string `json:"JobIds,omitnil,omitempty" name:"JobIds"`

	// Execution engine.
	ExecutionEngine *string `json:"ExecutionEngine,omitnil,omitempty" name:"ExecutionEngine"`

	// Query ID.
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`
}

type HostVolumeContext struct {
	// Directory for mounting the host in the pod. As the mount point of the host in the resource, a specified mount point corresponds to the host path and is used as the data storage directory in the pod.
	VolumePath *string `json:"VolumePath,omitnil,omitempty" name:"VolumePath"`
}

// Predefined struct for user
type InquiryPriceCreateInstanceRequestParams struct {
	// Time unit of instance purchase duration. Valid values:
	// <li>s: seconds. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Purchase duration of instance, which needs to be used together with `TimeUnit`.
	// <li>When `TimeUnit` is `s`, this parameter can only be filled with 3600, indicating a pay-as-you-go instance.</li>
	// <li>When `TimeUnit` is `m`, the number entered in this parameter indicates the purchase duration of the monthly-subscription instance; for example, 1 means one month</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

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

	// Instance billing mode. Valid values:
	// <li>0: pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether to enable high availability of node. Valid values:
	// <li>0: does not enable high availability of node.</li>
	// <li>1: enables high availability of node.</li>
	SupportHA *uint64 `json:"SupportHA,omitnil,omitempty" name:"SupportHA"`

	// List of deployed components. Different required components need to be selected for different EMR product IDs (ProductId: For specific meanings, see the ProductId field in the input parameters): <li>When ProductId is 2 (EMR v2.0.1), the required components include hdfs-2.7.3, yarn-2.7.3, zookeeper-3.4.9, and knox-1.2.0.</li> <li>When ProductId is 16 (EMR v2.3.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.5.5, and knox-1.2.0.</li> <li>When ProductId is 20 (EMR v2.5.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 30 (EMR v2.6.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.1, openldap-2.4.44, and knox-1.2.0.</li> <li>When ProductId is 38 (EMR v2.7.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 57 (EMR v2.8.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 7 (EMR v3.0.0), the required components include hdfs-3.1.2, yarn-3.1.2, zookeeper-3.4.9, and knox-1.2.0.</li> <li>When ProductId is 25 (EMR v3.1.0), the required components include hdfs-3.1.2, yarn-3.1.2, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 31 (EMR v3.1.1), the required components include hdfs-3.1.2, yarn-3.1.2, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 28 (EMR v3.2.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 33 (EMR v3.2.1), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.1, openldap-2.4.44, and knox-1.2.0.</li> <li>When ProductId is 34 (EMR v3.3.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.1, openldap-2.4.44, and knox-1.2.0.</li> <li>When ProductId is 37 (EMR v3.4.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 44 (EMR v3.5.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 53 (EMR v3.6.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 58 (EMR v3.6.1), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.46, and knox-1.6.1.</li> <li>When ProductId is 47 (EMR v4.0.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li>
	Software []*string `json:"Software,omitnil,omitempty" name:"Software"`

	// Node specification queried for price.
	ResourceSpec *NewResourceSpec `json:"ResourceSpec,omitnil,omitempty" name:"ResourceSpec"`

	// Instance location. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// Configuration information of VPC. This parameter is used to specify the VPC ID, subnet ID, etc.
	VPCSettings *VPCSettings `json:"VPCSettings,omitnil,omitempty" name:"VPCSettings"`

	// Hive-shared metadatabase type. Valid values:
	// <li>EMR_DEFAULT_META: the cluster creates one by default.</li>
	// <li>EMR_EXIST_META: the cluster uses the specified EMR-MetaDB instance.</li>
	// <li>USER_CUSTOM_META: the cluster uses a custom MetaDB instance.</li>
	MetaType *string `json:"MetaType,omitnil,omitempty" name:"MetaType"`

	// EMR-MetaDB instance
	UnifyMetaInstanceId *string `json:"UnifyMetaInstanceId,omitnil,omitempty" name:"UnifyMetaInstanceId"`

	// Custom MetaDB instance information
	MetaDBInfo *CustomMetaInfo `json:"MetaDBInfo,omitnil,omitempty" name:"MetaDBInfo"`

	// Product ID. Different product IDs represent different EMR product versions. Valid values: <li>2: EMR v2.0.1;</li> <li>16: EMR v2.3.0;</li> <li>20: EMR v2.5.0;</li> <li>30: EMR v2.6.0;</li> <li>38: EMR v2.7.0;</li> <li>57: EMR v2.8.0;</li> <li>7: EMR v3.0.0;</li> <li>25: EMR v3.1.0;</li> <li>31: EMR v3.1.1;</li> <li>28: EMR v3.2.0</li> <li>33: EMR v3.2.1</li> <li>34: EMR v3.3.0</li> <li>37: EMR v3.4.0;</li> <li>44: EMR v3.5.0;</li> <li>53: EMR v3.6.0;</li> <li>58: EMR v3.6.1;</li> <li>47: EMR v4.0.0.</li>
	ProductId *uint64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

	// Scenario values: Hadoop-Kudu, Hadoop-ZooKeeper, Hadoop-Presto, and Hadoop-HBase.
	SceneName *string `json:"SceneName,omitnil,omitempty" name:"SceneName"`

	// Shared component information
	ExternalService []*ExternalService `json:"ExternalService,omitnil,omitempty" name:"ExternalService"`

	// The current default value is 0. After cross-AZ feature support is enabled, it becomes 1.
	VersionID *uint64 `json:"VersionID,omitnil,omitempty" name:"VersionID"`

	// AZ specs
	MultiZoneSettings []*MultiZoneSetting `json:"MultiZoneSettings,omitnil,omitempty" name:"MultiZoneSettings"`
}

type InquiryPriceCreateInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Time unit of instance purchase duration. Valid values:
	// <li>s: seconds. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Purchase duration of instance, which needs to be used together with `TimeUnit`.
	// <li>When `TimeUnit` is `s`, this parameter can only be filled with 3600, indicating a pay-as-you-go instance.</li>
	// <li>When `TimeUnit` is `m`, the number entered in this parameter indicates the purchase duration of the monthly-subscription instance; for example, 1 means one month</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

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

	// Instance billing mode. Valid values:
	// <li>0: pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Whether to enable high availability of node. Valid values:
	// <li>0: does not enable high availability of node.</li>
	// <li>1: enables high availability of node.</li>
	SupportHA *uint64 `json:"SupportHA,omitnil,omitempty" name:"SupportHA"`

	// List of deployed components. Different required components need to be selected for different EMR product IDs (ProductId: For specific meanings, see the ProductId field in the input parameters): <li>When ProductId is 2 (EMR v2.0.1), the required components include hdfs-2.7.3, yarn-2.7.3, zookeeper-3.4.9, and knox-1.2.0.</li> <li>When ProductId is 16 (EMR v2.3.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.5.5, and knox-1.2.0.</li> <li>When ProductId is 20 (EMR v2.5.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 30 (EMR v2.6.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.1, openldap-2.4.44, and knox-1.2.0.</li> <li>When ProductId is 38 (EMR v2.7.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 57 (EMR v2.8.0), the required components include hdfs-2.8.5, yarn-2.8.5, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 7 (EMR v3.0.0), the required components include hdfs-3.1.2, yarn-3.1.2, zookeeper-3.4.9, and knox-1.2.0.</li> <li>When ProductId is 25 (EMR v3.1.0), the required components include hdfs-3.1.2, yarn-3.1.2, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 31 (EMR v3.1.1), the required components include hdfs-3.1.2, yarn-3.1.2, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 28 (EMR v3.2.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.1, and knox-1.2.0.</li> <li>When ProductId is 33 (EMR v3.2.1), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.1, openldap-2.4.44, and knox-1.2.0.</li> <li>When ProductId is 34 (EMR v3.3.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.1, openldap-2.4.44, and knox-1.2.0.</li> <li>When ProductId is 37 (EMR v3.4.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 44 (EMR v3.5.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 53 (EMR v3.6.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li> <li>When ProductId is 58 (EMR v3.6.1), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.46, and knox-1.6.1.</li> <li>When ProductId is 47 (EMR v4.0.0), the required components include hdfs-3.2.2, yarn-3.2.2, zookeeper-3.6.3, openldap-2.4.44, and knox-1.6.1.</li>
	Software []*string `json:"Software,omitnil,omitempty" name:"Software"`

	// Node specification queried for price.
	ResourceSpec *NewResourceSpec `json:"ResourceSpec,omitnil,omitempty" name:"ResourceSpec"`

	// Instance location. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// Configuration information of VPC. This parameter is used to specify the VPC ID, subnet ID, etc.
	VPCSettings *VPCSettings `json:"VPCSettings,omitnil,omitempty" name:"VPCSettings"`

	// Hive-shared metadatabase type. Valid values:
	// <li>EMR_DEFAULT_META: the cluster creates one by default.</li>
	// <li>EMR_EXIST_META: the cluster uses the specified EMR-MetaDB instance.</li>
	// <li>USER_CUSTOM_META: the cluster uses a custom MetaDB instance.</li>
	MetaType *string `json:"MetaType,omitnil,omitempty" name:"MetaType"`

	// EMR-MetaDB instance
	UnifyMetaInstanceId *string `json:"UnifyMetaInstanceId,omitnil,omitempty" name:"UnifyMetaInstanceId"`

	// Custom MetaDB instance information
	MetaDBInfo *CustomMetaInfo `json:"MetaDBInfo,omitnil,omitempty" name:"MetaDBInfo"`

	// Product ID. Different product IDs represent different EMR product versions. Valid values: <li>2: EMR v2.0.1;</li> <li>16: EMR v2.3.0;</li> <li>20: EMR v2.5.0;</li> <li>30: EMR v2.6.0;</li> <li>38: EMR v2.7.0;</li> <li>57: EMR v2.8.0;</li> <li>7: EMR v3.0.0;</li> <li>25: EMR v3.1.0;</li> <li>31: EMR v3.1.1;</li> <li>28: EMR v3.2.0</li> <li>33: EMR v3.2.1</li> <li>34: EMR v3.3.0</li> <li>37: EMR v3.4.0;</li> <li>44: EMR v3.5.0;</li> <li>53: EMR v3.6.0;</li> <li>58: EMR v3.6.1;</li> <li>47: EMR v4.0.0.</li>
	ProductId *uint64 `json:"ProductId,omitnil,omitempty" name:"ProductId"`

	// Scenario values: Hadoop-Kudu, Hadoop-ZooKeeper, Hadoop-Presto, and Hadoop-HBase.
	SceneName *string `json:"SceneName,omitnil,omitempty" name:"SceneName"`

	// Shared component information
	ExternalService []*ExternalService `json:"ExternalService,omitnil,omitempty" name:"ExternalService"`

	// The current default value is 0. After cross-AZ feature support is enabled, it becomes 1.
	VersionID *uint64 `json:"VersionID,omitnil,omitempty" name:"VersionID"`

	// AZ specs
	MultiZoneSettings []*MultiZoneSetting `json:"MultiZoneSettings,omitnil,omitempty" name:"MultiZoneSettings"`
}

func (r *InquiryPriceCreateInstanceRequest) 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 *InquiryPriceCreateInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TimeUnit")
	delete(f, "TimeSpan")
	delete(f, "Currency")
	delete(f, "PayMode")
	delete(f, "SupportHA")
	delete(f, "Software")
	delete(f, "ResourceSpec")
	delete(f, "Placement")
	delete(f, "VPCSettings")
	delete(f, "MetaType")
	delete(f, "UnifyMetaInstanceId")
	delete(f, "MetaDBInfo")
	delete(f, "ProductId")
	delete(f, "SceneName")
	delete(f, "ExternalService")
	delete(f, "VersionID")
	delete(f, "MultiZoneSettings")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "InquiryPriceCreateInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type InquiryPriceCreateInstanceResponseParams struct {
	// Original price.
	OriginalCost *float64 `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discounted price.
	DiscountCost *float64 `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`

	// Time unit of purchase instances. Valid values.
	// <li>s: seconds.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Instance purchase duration.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// The price list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PriceList []*ZoneDetailPriceResult `json:"PriceList,omitnil,omitempty" name:"PriceList"`

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

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

// Predefined struct for user
type InquiryPriceRenewInstanceRequestParams struct {
	// How long the instance will be renewed for, which needs to be used together with `TimeUnit`.
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Instance billing mode.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// List of resource IDs of the node to be renewed. The resource ID is in the format of `emr-vm-xxxxxxxx`. A valid resource ID can be queried in the [console](https://console.cloud.tencent.com/emr/static/hardware).
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`

	// Unit of time for instance renewal.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

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

	// Location of the instance. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// Whether to change from pay-as-you-go billing to monthly subscription billing. `0`: no; `1`: yes
	ModifyPayMode *int64 `json:"ModifyPayMode,omitnil,omitempty" name:"ModifyPayMode"`

	// Whether the renewal price for every node is required.
	NeedDetail *bool `json:"NeedDetail,omitnil,omitempty" name:"NeedDetail"`

	// Cluster ID. This parameter can be filled to get renewal information for all yearly/monthly subscription nodes in the cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type InquiryPriceRenewInstanceRequest struct {
	*tchttp.BaseRequest
	
	// How long the instance will be renewed for, which needs to be used together with `TimeUnit`.
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Instance billing mode.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// List of resource IDs of the node to be renewed. The resource ID is in the format of `emr-vm-xxxxxxxx`. A valid resource ID can be queried in the [console](https://console.cloud.tencent.com/emr/static/hardware).
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`

	// Unit of time for instance renewal.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

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

	// Location of the instance. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// Whether to change from pay-as-you-go billing to monthly subscription billing. `0`: no; `1`: yes
	ModifyPayMode *int64 `json:"ModifyPayMode,omitnil,omitempty" name:"ModifyPayMode"`

	// Whether the renewal price for every node is required.
	NeedDetail *bool `json:"NeedDetail,omitnil,omitempty" name:"NeedDetail"`

	// Cluster ID. This parameter can be filled to get renewal information for all yearly/monthly subscription nodes in the cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

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

// Predefined struct for user
type InquiryPriceRenewInstanceResponseParams struct {
	// Original price.
	OriginalCost *float64 `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discounted price.
	DiscountCost *float64 `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`

	// Time unit for instance renewal.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Duration of instance renewal.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Price details.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PriceDetail []*PriceDetail `json:"PriceDetail,omitnil,omitempty" name:"PriceDetail"`

	// Node renewal pricing list.
	NodeRenewPriceDetails []*NodeRenewPriceDetail `json:"NodeRenewPriceDetails,omitnil,omitempty" name:"NodeRenewPriceDetails"`

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

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

// Predefined struct for user
type InquiryPriceScaleOutInstanceRequestParams struct {
	// Time unit of scale-out. Valid value:
	// <li>s: Second. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Time span of scale-out, which needs to be used together with `TimeUnit`.
	// <li>When `PayMode` is 0, `TimeSpan` can only be 3,600.</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// ID of the AZ where an instance resides.
	ZoneId *uint64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Instance billing mode. Valid value:
	// <li>0: Pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

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

	// Number of core nodes to be added.
	CoreCount *uint64 `json:"CoreCount,omitnil,omitempty" name:"CoreCount"`

	// Number of task nodes to be added.
	TaskCount *uint64 `json:"TaskCount,omitnil,omitempty" name:"TaskCount"`

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

	// Number of router nodes to be added.
	RouterCount *uint64 `json:"RouterCount,omitnil,omitempty" name:"RouterCount"`

	// Number of master nodes to be added.
	MasterCount *uint64 `json:"MasterCount,omitnil,omitempty" name:"MasterCount"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Scale-out resource type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

type InquiryPriceScaleOutInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Time unit of scale-out. Valid value:
	// <li>s: Second. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Time span of scale-out, which needs to be used together with `TimeUnit`.
	// <li>When `PayMode` is 0, `TimeSpan` can only be 3,600.</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// ID of the AZ where an instance resides.
	ZoneId *uint64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Instance billing mode. Valid value:
	// <li>0: Pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

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

	// Number of core nodes to be added.
	CoreCount *uint64 `json:"CoreCount,omitnil,omitempty" name:"CoreCount"`

	// Number of task nodes to be added.
	TaskCount *uint64 `json:"TaskCount,omitnil,omitempty" name:"TaskCount"`

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

	// Number of router nodes to be added.
	RouterCount *uint64 `json:"RouterCount,omitnil,omitempty" name:"RouterCount"`

	// Number of master nodes to be added.
	MasterCount *uint64 `json:"MasterCount,omitnil,omitempty" name:"MasterCount"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Scale-out resource type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

func (r *InquiryPriceScaleOutInstanceRequest) 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 *InquiryPriceScaleOutInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TimeUnit")
	delete(f, "TimeSpan")
	delete(f, "ZoneId")
	delete(f, "PayMode")
	delete(f, "InstanceId")
	delete(f, "CoreCount")
	delete(f, "TaskCount")
	delete(f, "Currency")
	delete(f, "RouterCount")
	delete(f, "MasterCount")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	delete(f, "HardwareResourceType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "InquiryPriceScaleOutInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type InquiryPriceScaleOutInstanceResponseParams struct {
	// Original price.
	OriginalCost *string `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discounted price.
	DiscountCost *string `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`

	// Time unit of scale-out. Valid values.
	// <li>s: second.</li>
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Node spec queried for price.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PriceSpec *PriceResource `json:"PriceSpec,omitnil,omitempty" name:"PriceSpec"`

	// The inquiry results corresponding to the specs specified by the input parameter `MultipleResources`, with the result of the first spec returned by other output parameters.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MultipleEmrPrice []*EmrPrice `json:"MultipleEmrPrice,omitnil,omitempty" name:"MultipleEmrPrice"`

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

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

// Predefined struct for user
type InquiryPriceUpdateInstanceRequestParams struct {
	// Time unit of scaling. Valid values:
	// <li>s: seconds. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Duration of scaling, which needs to be used together with `TimeUnit`.
	// <li>When `PayMode` is 0, `TimeSpan` can only be 3,600.</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Instance billing mode. Valid values:
	// <li>0: pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

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

	// Target node specification.
	UpdateSpec *UpdateInstanceSettings `json:"UpdateSpec,omitnil,omitempty" name:"UpdateSpec"`

	// Instance location. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// The resource ID list for batch configuration change.
	ResourceIdList []*string `json:"ResourceIdList,omitnil,omitempty" name:"ResourceIdList"`
}

type InquiryPriceUpdateInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Time unit of scaling. Valid values:
	// <li>s: seconds. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Duration of scaling, which needs to be used together with `TimeUnit`.
	// <li>When `PayMode` is 0, `TimeSpan` can only be 3,600.</li>
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Instance billing mode. Valid values:
	// <li>0: pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

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

	// Target node specification.
	UpdateSpec *UpdateInstanceSettings `json:"UpdateSpec,omitnil,omitempty" name:"UpdateSpec"`

	// Instance location. This parameter is used to specify the AZ, project, and other attributes of the instance.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// The resource ID list for batch configuration change.
	ResourceIdList []*string `json:"ResourceIdList,omitnil,omitempty" name:"ResourceIdList"`
}

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

// Predefined struct for user
type InquiryPriceUpdateInstanceResponseParams struct {
	// Original price.
	OriginalCost *float64 `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discounted price.
	DiscountCost *float64 `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`

	// Time unit of resizing. Valid values:
	// <li>s: second.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Desizing duration.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Pricing details
	// Note: This field may return null, indicating that no valid values can be obtained.
	PriceDetail []*PriceDetail `json:"PriceDetail,omitnil,omitempty" name:"PriceDetail"`

	// New configuration price.
	// Note: This field may return null, indicating that no valid values can be obtained.
	NewConfigPrice *PriceResult `json:"NewConfigPrice,omitnil,omitempty" name:"NewConfigPrice"`

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

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

type InsightResult struct {
	// When Type is HIVE, the value is Hive query ID; when Type is MAPREDUCE, SPARK or TEZ, the value is YarnAppID.
	ID *string `json:"ID,omitnil,omitempty" name:"ID"`

	// Insight application type. Value values: HIVE, SPARK, MAPREDUCE, and TEZ.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Insight rule ID.
	// HIVE-ScanManyMeta: too much scanned metadata.
	// HIVE-ScanManyPartition: large table scanning.
	// HIVE-SlowCompile: compilation duration too long.
	// HIVE-UnSuitableConfig: improper parameter.
	// MAPREDUCE-MapperDataSkew: Map data skew.
	// MAPREDUCE-MapperMemWaste: MapMemory resource waste.
	// MAPREDUCE-MapperSlowTask: slow map task.
	// MAPREDUCE-MapperTaskGC:MapperTaskGC
	// MAPREDUCE-MemExceeded: peak memory exceeded.
	// MAPREDUCE-ReducerDataSkew: Reduce data skew.
	// MAPREDUCE-ReducerMemWaste: ReduceMemory resource waste.
	// MAPREDUCE-ReducerSlowTask: slow reduce task.
	// MAPREDUCE-ReducerTaskGC:ReducerTaskGC
	// MAPREDUCE-SchedulingDelay: scheduling delay.
	// SPARK-CpuWaste: CPU resource waste.
	// SPARK-DataSkew: data skew.
	// SPARK-ExecutorGC:ExecutorGC
	// SPARK-MemExceeded: peak memory exceeded.
	// SPARK-MemWaste: Memory resource waste.
	// SPARK-ScheduleOverhead:ScheduleOverhead
	// SPARK-ScheduleSkew: scheduling skew.
	// SPARK-SlowTask: slow task.
	// TEZ-DataSkew: data skew.
	// TEZ-MapperDataSkew: Map data skew.
	// TEZ-ReducerDataSkew: Reduce data skew.
	// TEZ-TezMemWaste: Memory resource waste.
	// TEZ-TezSlowTask: slow task.
	// TEZ-TezTaskGC:TasksGC
	RuleID *string `json:"RuleID,omitnil,omitempty" name:"RuleID"`

	// Insight rule name. Refer to the description of RuleID.
	RuleName *string `json:"RuleName,omitnil,omitempty" name:"RuleName"`

	// Insight rules interpretation.
	RuleExplain *string `json:"RuleExplain,omitnil,omitempty" name:"RuleExplain"`

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

	// Recommended message.
	Suggestion *string `json:"Suggestion,omitnil,omitempty" name:"Suggestion"`

	// Anomaly metrics measure insight severity. Higher values indicate greater severity within the same insight category. Metrics across different insight types cannot be meaningfully compared.
	Value *int64 `json:"Value,omitnil,omitempty" name:"Value"`

	// Scheduling task execution ID.
	ScheduleTaskExecID *string `json:"ScheduleTaskExecID,omitnil,omitempty" name:"ScheduleTaskExecID"`

	// Scheduling flow, DAG.
	ScheduleFlowName *string `json:"ScheduleFlowName,omitnil,omitempty" name:"ScheduleFlowName"`

	// A Task node in the scheduling flow.
	ScheduleTaskName *string `json:"ScheduleTaskName,omitnil,omitempty" name:"ScheduleTaskName"`

	// Core configurations for Yarn tasks.
	JobConf *string `json:"JobConf,omitnil,omitempty" name:"JobConf"`

	// Insight structure information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Context *string `json:"Context,omitnil,omitempty" name:"Context"`
}

type InspectionTaskSettings struct {
	// Unique identifier for inspection tasks.
	TaskType *string `json:"TaskType,omitnil,omitempty" name:"TaskType"`

	// Inspection task group name.
	Group *string `json:"Group,omitnil,omitempty" name:"Group"`

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

	// Inspection task parameter settings.
	TaskSettings []*TaskSettings `json:"TaskSettings,omitnil,omitempty" name:"TaskSettings"`

	// Whether it is selected, with the valid values of "true" and "false".
	Selected *string `json:"Selected,omitnil,omitempty" name:"Selected"`

	// Whether monitoring is enabled.
	Enable *string `json:"Enable,omitnil,omitempty" name:"Enable"`

	// Event JSON template.
	SettingsJson *string `json:"SettingsJson,omitnil,omitempty" name:"SettingsJson"`
}

type InstanceChargePrepaid struct {
	// The period of monthly subscription, which defaults to 1 and is expressed in month.
	// Valid values: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36, 48, 60.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Whether to enable auto-renewal. Valid values:
	// <li>`true`: Enable</li>
	// <li>`false` (default): Disable</li>
	RenewFlag *bool `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`
}

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

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

type ItemSeq struct {
	// Tag name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Items []*Item `json:"Items,omitnil,omitempty" name:"Items"`
}

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

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

type KyuubiQueryInfo struct {
	// Submitter IP address.
	ClientIP *string `json:"ClientIP,omitnil,omitempty" name:"ClientIP"`

	// Execution duration.
	Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Engine Id
	EngineID *string `json:"EngineID,omitnil,omitempty" name:"EngineID"`

	// Computing engine.
	EngineType *string `json:"EngineType,omitnil,omitempty" name:"EngineType"`

	// ID
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`

	// Session Id
	SessionID *string `json:"SessionID,omitnil,omitempty" name:"SessionID"`

	// Start time.
	BeginTime *int64 `json:"BeginTime,omitnil,omitempty" name:"BeginTime"`

	// Execution status.
	ExecutionState *string `json:"ExecutionState,omitnil,omitempty" name:"ExecutionState"`

	// Execution statement.
	ExecutionStatement *string `json:"ExecutionStatement,omitnil,omitempty" name:"ExecutionStatement"`

	// Statement Id
	StatementID *string `json:"StatementID,omitnil,omitempty" name:"StatementID"`

	// User who submits requests.
	User *string `json:"User,omitnil,omitempty" name:"User"`
}

type LoadAutoScaleStrategy struct {
	// Rule ID.
	StrategyId *int64 `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`

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

	// Cooling time for a rule to take effect.
	CalmDownTime *int64 `json:"CalmDownTime,omitnil,omitempty" name:"CalmDownTime"`

	// Scaling action. 1: scale-out, 2: scale-in.
	ScaleAction *int64 `json:"ScaleAction,omitnil,omitempty" name:"ScaleAction"`

	// Scaling amount each time the rule takes effect.
	ScaleNum *int64 `json:"ScaleNum,omitnil,omitempty" name:"ScaleNum"`

	// Metric processing method. 1: MAX, 2: MIN, 3: AVG.
	ProcessMethod *int64 `json:"ProcessMethod,omitnil,omitempty" name:"ProcessMethod"`

	// Rule priority, which is not applicable during adding. The default is auto-increment.
	Priority *int64 `json:"Priority,omitnil,omitempty" name:"Priority"`

	// Rule status. 1: enabled, 3: disabled.
	StrategyStatus *int64 `json:"StrategyStatus,omitnil,omitempty" name:"StrategyStatus"`

	// Specified Yarn Node Label for rule scale-out.
	YarnNodeLabel *string `json:"YarnNodeLabel,omitnil,omitempty" name:"YarnNodeLabel"`

	// Effective time of the rule
	PeriodValid *string `json:"PeriodValid,omitnil,omitempty" name:"PeriodValid"`

	// Graceful scale-in switch
	GraceDownFlag *bool `json:"GraceDownFlag,omitnil,omitempty" name:"GraceDownFlag"`

	// Graceful scale-in wait time
	GraceDownTime *int64 `json:"GraceDownTime,omitnil,omitempty" name:"GraceDownTime"`

	// Bound tag list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Preset configuration group.
	ConfigGroupAssigned *string `json:"ConfigGroupAssigned,omitnil,omitempty" name:"ConfigGroupAssigned"`

	// Calculation method of scale-out resources:"DEFAULT","INSTANCE", "CPU", "MEMORYGB".
	// "DEFAULT" indicates the default method, which is the same as "INSTANCE".
	// "INSTANCE" indicates calculation based on nodes (default mode).
	// "CPU" indicates calculation based on the quantity of cores of the machine.
	// "MEMORYGB" indicates calculation based on the memory size of the machine.
	MeasureMethod *string `json:"MeasureMethod,omitnil,omitempty" name:"MeasureMethod"`

	// Node deployment service list, such as ["HDFS-3.1.2","YARN-3.1.2"].
	// Note: This field may return null, indicating that no valid values can be obtained.
	SoftDeployDesc []*string `json:"SoftDeployDesc,omitnil,omitempty" name:"SoftDeployDesc"`

	// Startup process list, such as ["NodeManager"].
	ServiceNodeDesc *string `json:"ServiceNodeDesc,omitnil,omitempty" name:"ServiceNodeDesc"`

	// Startup process list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ServiceNodeInfo []*int64 `json:"ServiceNodeInfo,omitnil,omitempty" name:"ServiceNodeInfo"`

	// Node deployment service list. Only HDFS and YARN should be specified in the deployment service list. For details, see [Mapping Table for Component Names](https://www.tencentcloud.com/document/product/589/98760?from_cn_redirect=1).
	// Note: This field may return null, indicating that no valid values can be obtained.
	SoftDeployInfo []*int64 `json:"SoftDeployInfo,omitnil,omitempty" name:"SoftDeployInfo"`

	// Multi-metric trigger condition.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LoadMetricsConditions *LoadMetricsConditions `json:"LoadMetricsConditions,omitnil,omitempty" name:"LoadMetricsConditions"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Soft (for example, YARN).
	Soft *string `json:"Soft,omitnil,omitempty" name:"Soft"`
}

type LoadMetricsCondition struct {
	// Rule statistics cycle. Options include 1 min, 3 min, and 5 min.
	StatisticPeriod *int64 `json:"StatisticPeriod,omitnil,omitempty" name:"StatisticPeriod"`

	// Trigger count. Scaling begins only after it has been triggered continuously more than TriggerThreshold times.
	TriggerThreshold *int64 `json:"TriggerThreshold,omitnil,omitempty" name:"TriggerThreshold"`

	// Scaling load metric.
	LoadMetrics *string `json:"LoadMetrics,omitnil,omitempty" name:"LoadMetrics"`

	// Rule metadata record ID.
	MetricId *int64 `json:"MetricId,omitnil,omitempty" name:"MetricId"`

	// Trigger condition.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Conditions []*TriggerCondition `json:"Conditions,omitnil,omitempty" name:"Conditions"`
}

type LoadMetricsConditions struct {
	// Trigger rule condition.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LoadMetrics []*LoadMetricsCondition `json:"LoadMetrics,omitnil,omitempty" name:"LoadMetrics"`

	// 0: all conditions should be met.
	// 1: any one of the conditions is met.
	Match *int64 `json:"Match,omitnil,omitempty" name:"Match"`
}

type LoginSettings struct {
	// The login password of the instance, which contains 8 to 16 uppercase letters, lowercase letters, digits, and special characters (only !@%^*) and cannot start with a special character.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// The key ID. After an instance is associated with a key, you can access it with the private key in the key pair. You can call [DescribeKeyPairs](https://intl.cloud.tencent.com/document/api/213/15699?from_cn_redirect=1) to obtain `PublicKeyId`.
	PublicKeyId *string `json:"PublicKeyId,omitnil,omitempty" name:"PublicKeyId"`
}

type MetricTags struct {
	// Metric Unit.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Metric type.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`
}

// Predefined struct for user
type ModifyAutoRenewFlagRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// NOTIFY_AND_MANUAL_RENEW: Notification of impending expiration, without auto-renewal. NOTIFY_AND_AUTO_RENEW: Notification of impending expiration, with auto-renewal. DISABLE_NOTIFY_AND_MANUAL_RENEW: No notification of impending expiration, without auto-renewal.
	RenewFlag *string `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

type ModifyAutoRenewFlagRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// NOTIFY_AND_MANUAL_RENEW: Notification of impending expiration, without auto-renewal. NOTIFY_AND_AUTO_RENEW: Notification of impending expiration, with auto-renewal. DISABLE_NOTIFY_AND_MANUAL_RENEW: No notification of impending expiration, without auto-renewal.
	RenewFlag *string `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

func (r *ModifyAutoRenewFlagRequest) 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 *ModifyAutoRenewFlagRequest) 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, "ResourceIds")
	delete(f, "RenewFlag")
	delete(f, "ComputeResourceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyAutoRenewFlagRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ModifyAutoScaleStrategyRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Automatic scaling rule type. 1: Scaling by load metrics; 2: Scaling by time
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Metric for load-based scaling.
	LoadAutoScaleStrategies []*LoadAutoScaleStrategy `json:"LoadAutoScaleStrategies,omitnil,omitempty" name:"LoadAutoScaleStrategies"`

	// Rule for time-based scaling
	TimeAutoScaleStrategies []*TimeAutoScaleStrategy `json:"TimeAutoScaleStrategies,omitnil,omitempty" name:"TimeAutoScaleStrategies"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

type ModifyAutoScaleStrategyRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Automatic scaling rule type. 1: Scaling by load metrics; 2: Scaling by time
	StrategyType *int64 `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Metric for load-based scaling.
	LoadAutoScaleStrategies []*LoadAutoScaleStrategy `json:"LoadAutoScaleStrategies,omitnil,omitempty" name:"LoadAutoScaleStrategies"`

	// Rule for time-based scaling
	TimeAutoScaleStrategies []*TimeAutoScaleStrategy `json:"TimeAutoScaleStrategies,omitnil,omitempty" name:"TimeAutoScaleStrategies"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`
}

func (r *ModifyAutoScaleStrategyRequest) 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 *ModifyAutoScaleStrategyRequest) 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, "StrategyType")
	delete(f, "LoadAutoScaleStrategies")
	delete(f, "TimeAutoScaleStrategies")
	delete(f, "GroupId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyAutoScaleStrategyRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ModifyGlobalConfigRequestParams struct {
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// List of modified configurations. Key values have a one-to-one correspondence with the output parameters of the `DescribeGlobalConfig` API and are case-insensitive (if an error occurs indicating the key cannot be found, refer to the output parameters). The values are:
	// 1. enableResourceSchedule: Enables or disables resource scheduling. When disabling, a synchronous operation option (sync) is available with values true or false.
	// 2. scheduler type: scheduler.
	// 2. enableLabel: Enables or disables tags, with values true or false.
	// 2. tag directory: labelDir.
	// 3. whether to overwrite the user-specified queue, with values true or false.
	// 4. userMaxAppsDefault: program upper limit.
	// 5. dynamic configuration item: Corresponds to the Name field in the DefaultSettings object returned by the DescribeGlobalConfig API.
	// The values are strings. For **whether to overwrite the user-specified queue** and **program upper limit**, null in the JSON specifications means clearing the value of this configuration. Individual configuration items can be modified. For **dynamic configurations**, a full transmission is required to perform overwriting.
	Items []*Item `json:"Items,omitnil,omitempty" name:"Items"`
}

type ModifyGlobalConfigRequest struct {
	*tchttp.BaseRequest
	
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// List of modified configurations. Key values have a one-to-one correspondence with the output parameters of the `DescribeGlobalConfig` API and are case-insensitive (if an error occurs indicating the key cannot be found, refer to the output parameters). The values are:
	// 1. enableResourceSchedule: Enables or disables resource scheduling. When disabling, a synchronous operation option (sync) is available with values true or false.
	// 2. scheduler type: scheduler.
	// 2. enableLabel: Enables or disables tags, with values true or false.
	// 2. tag directory: labelDir.
	// 3. whether to overwrite the user-specified queue, with values true or false.
	// 4. userMaxAppsDefault: program upper limit.
	// 5. dynamic configuration item: Corresponds to the Name field in the DefaultSettings object returned by the DescribeGlobalConfig API.
	// The values are strings. For **whether to overwrite the user-specified queue** and **program upper limit**, null in the JSON specifications means clearing the value of this configuration. Individual configuration items can be modified. For **dynamic configurations**, a full transmission is required to perform overwriting.
	Items []*Item `json:"Items,omitnil,omitempty" name:"Items"`
}

func (r *ModifyGlobalConfigRequest) 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 *ModifyGlobalConfigRequest) 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, "Items")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyGlobalConfigRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ModifyInspectionSettingsRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Inspection type, FixedTime or RealTime.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Task configurations.
	Settings []*InspectionTaskSettings `json:"Settings,omitnil,omitempty" name:"Settings"`

	// Start timestamp.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End timestamp.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Inspection cycle, such as EveryDay, EveryWeek or EveryMonth.
	Strategy *string `json:"Strategy,omitnil,omitempty" name:"Strategy"`

	// Start time of each day.
	Clock *string `json:"Clock,omitnil,omitempty" name:"Clock"`

	// Day of the week.
	DayOfWeek *string `json:"DayOfWeek,omitnil,omitempty" name:"DayOfWeek"`

	// Number of the day in a month.
	DayOfMonth *string `json:"DayOfMonth,omitnil,omitempty" name:"DayOfMonth"`

	// Inspection job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`
}

type ModifyInspectionSettingsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Inspection type, FixedTime or RealTime.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Task configurations.
	Settings []*InspectionTaskSettings `json:"Settings,omitnil,omitempty" name:"Settings"`

	// Start timestamp.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End timestamp.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Inspection cycle, such as EveryDay, EveryWeek or EveryMonth.
	Strategy *string `json:"Strategy,omitnil,omitempty" name:"Strategy"`

	// Start time of each day.
	Clock *string `json:"Clock,omitnil,omitempty" name:"Clock"`

	// Day of the week.
	DayOfWeek *string `json:"DayOfWeek,omitnil,omitempty" name:"DayOfWeek"`

	// Number of the day in a month.
	DayOfMonth *string `json:"DayOfMonth,omitnil,omitempty" name:"DayOfMonth"`

	// Inspection job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`
}

func (r *ModifyInspectionSettingsRequest) 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 *ModifyInspectionSettingsRequest) 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, "Type")
	delete(f, "Settings")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Strategy")
	delete(f, "Clock")
	delete(f, "DayOfWeek")
	delete(f, "DayOfMonth")
	delete(f, "JobId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyInspectionSettingsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyInspectionSettingsResponseParams struct {
	// Description of the returned value.
	Info *string `json:"Info,omitnil,omitempty" name:"Info"`

	// ID of the successfully modified inspection task.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

// Predefined struct for user
type ModifyInstanceBasicRequestParams struct {
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Used to label computing resources that need to be modified.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID that needs to be modified, and can be used together with ResourceBaseType.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

type ModifyInstanceBasicRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Used to label computing resources that need to be modified.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID that needs to be modified, and can be used together with ResourceBaseType.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

func (r *ModifyInstanceBasicRequest) 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 *ModifyInstanceBasicRequest) 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, "ClusterName")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyInstanceBasicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ModifyResourceRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Billing type.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Resized CPU.
	NewCpu *int64 `json:"NewCpu,omitnil,omitempty" name:"NewCpu"`

	// Resized memory.
	NewMem *int64 `json:"NewMem,omitnil,omitempty" name:"NewMem"`

	// Token
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Resized machine specifications.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Node ID List.
	ResourceIdList []*string `json:"ResourceIdList,omitnil,omitempty" name:"ResourceIdList"`
}

type ModifyResourceRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Billing type.
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Resized CPU.
	NewCpu *int64 `json:"NewCpu,omitnil,omitempty" name:"NewCpu"`

	// Resized memory.
	NewMem *int64 `json:"NewMem,omitnil,omitempty" name:"NewMem"`

	// Token
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Resized machine specifications.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Node ID List.
	ResourceIdList []*string `json:"ResourceIdList,omitnil,omitempty" name:"ResourceIdList"`
}

func (r *ModifyResourceRequest) 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 *ModifyResourceRequest) 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, "PayMode")
	delete(f, "NewCpu")
	delete(f, "NewMem")
	delete(f, "ClientToken")
	delete(f, "InstanceType")
	delete(f, "ResourceIdList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyResourceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyResourceResponseParams struct {
	// Process traceId.
	TraceId *string `json:"TraceId,omitnil,omitempty" name:"TraceId"`

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

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

// Predefined struct for user
type ModifyResourceScheduleConfigRequestParams struct {
	// EMR cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Business identifier. `fair`: Edit fair configuration items; `fairPlan`: Edit the execution plan; `capacity`: Edit capacity configuration items.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

	// Modified module information
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`
}

type ModifyResourceScheduleConfigRequest struct {
	*tchttp.BaseRequest
	
	// EMR cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Business identifier. `fair`: Edit fair configuration items; `fairPlan`: Edit the execution plan; `capacity`: Edit capacity configuration items.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

	// Modified module information
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`
}

func (r *ModifyResourceScheduleConfigRequest) 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 *ModifyResourceScheduleConfigRequest) 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, "Key")
	delete(f, "Value")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyResourceScheduleConfigRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyResourceScheduleConfigResponseParams struct {
	// `true`: Draft, indicating the resource pool is not refreshed.
	IsDraft *bool `json:"IsDraft,omitnil,omitempty" name:"IsDraft"`

	// Verification error information. If it is not empty, it means that verification fails and configuration is not successful.
	ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"`

	// Returned data.
	Data *string `json:"Data,omitnil,omitempty" name:"Data"`

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

type ModifyResourceScheduleConfigResponse struct {
	*tchttp.BaseResponse
	Response *ModifyResourceScheduleConfigResponseParams `json:"Response"`
}

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

// Predefined struct for user
type ModifyResourceSchedulerRequestParams struct {
	// EMR cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The original scheduler: `fair`
	OldValue *string `json:"OldValue,omitnil,omitempty" name:"OldValue"`

	// The new scheduler: `capacity`
	NewValue *string `json:"NewValue,omitnil,omitempty" name:"NewValue"`
}

type ModifyResourceSchedulerRequest struct {
	*tchttp.BaseRequest
	
	// EMR cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The original scheduler: `fair`
	OldValue *string `json:"OldValue,omitnil,omitempty" name:"OldValue"`

	// The new scheduler: `capacity`
	NewValue *string `json:"NewValue,omitnil,omitempty" name:"NewValue"`
}

func (r *ModifyResourceSchedulerRequest) 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 *ModifyResourceSchedulerRequest) 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, "OldValue")
	delete(f, "NewValue")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyResourceSchedulerRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

type ModifyResourceTags struct {
	// Cluster ID or CVM ID
	ResourceId *string `json:"ResourceId,omitnil,omitempty" name:"ResourceId"`

	// 6-segment resource expression
	Resource *string `json:"Resource,omitnil,omitempty" name:"Resource"`

	// Resource prefix
	ResourcePrefix *string `json:"ResourcePrefix,omitnil,omitempty" name:"ResourcePrefix"`

	// ap-beijing
	ResourceRegion *string `json:"ResourceRegion,omitnil,omitempty" name:"ResourceRegion"`

	// emr
	ServiceType *string `json:"ServiceType,omitnil,omitempty" name:"ServiceType"`

	// List of deleted tags
	DeleteTags []*Tag `json:"DeleteTags,omitnil,omitempty" name:"DeleteTags"`

	// List of added tags
	AddTags []*Tag `json:"AddTags,omitnil,omitempty" name:"AddTags"`

	// List of modified tags
	ModifyTags []*Tag `json:"ModifyTags,omitnil,omitempty" name:"ModifyTags"`
}

// Predefined struct for user
type ModifyResourcesTagsRequestParams struct {
	// Tag type. Valid values: Cluster and Node
	ModifyType *string `json:"ModifyType,omitnil,omitempty" name:"ModifyType"`

	// Tag information
	ModifyResourceTagsInfoList []*ModifyResourceTags `json:"ModifyResourceTagsInfoList,omitnil,omitempty" name:"ModifyResourceTagsInfoList"`
}

type ModifyResourcesTagsRequest struct {
	*tchttp.BaseRequest
	
	// Tag type. Valid values: Cluster and Node
	ModifyType *string `json:"ModifyType,omitnil,omitempty" name:"ModifyType"`

	// Tag information
	ModifyResourceTagsInfoList []*ModifyResourceTags `json:"ModifyResourceTagsInfoList,omitnil,omitempty" name:"ModifyResourceTagsInfoList"`
}

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

// Predefined struct for user
type ModifyResourcesTagsResponseParams struct {
	// List of resource IDs with successful modification
	// Note: This field may return null, indicating that no valid values can be obtained.
	SuccessList []*string `json:"SuccessList,omitnil,omitempty" name:"SuccessList"`

	// List of resource IDs with failed modification
	// Note: This field may return null, indicating that no valid values can be obtained.
	FailList []*string `json:"FailList,omitnil,omitempty" name:"FailList"`

	// List of resource IDs with partial successful modification
	// Note: This field may return null, indicating that no valid values can be obtained.
	PartSuccessList []*string `json:"PartSuccessList,omitnil,omitempty" name:"PartSuccessList"`

	// Mapping list of cluster IDs and process IDs
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClusterToFlowIdList []*ClusterIDToFlowID `json:"ClusterToFlowIdList,omitnil,omitempty" name:"ClusterToFlowIdList"`

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

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

// Predefined struct for user
type ModifySLInstanceBasicRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

type ModifySLInstanceBasicRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

func (r *ModifySLInstanceBasicRequest) 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 *ModifySLInstanceBasicRequest) 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, "ClusterName")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySLInstanceBasicRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ModifySLInstanceRequestParams struct {
	// Instance unique identifier (string).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Region name to be changed.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Target node count after configuration change in this region. The total number of nodes across all regions should be greater than or equal to 3 and less than or equal to 50.
	NodeNum *int64 `json:"NodeNum,omitnil,omitempty" name:"NodeNum"`

	// The unique random identifier with a time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources repeatedly. For example: a9a90aa6-****-****-****-fae360632808.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`
}

type ModifySLInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance unique identifier (string).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Region name to be changed.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Target node count after configuration change in this region. The total number of nodes across all regions should be greater than or equal to 3 and less than or equal to 50.
	NodeNum *int64 `json:"NodeNum,omitnil,omitempty" name:"NodeNum"`

	// The unique random identifier with a time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources repeatedly. For example: a9a90aa6-****-****-****-fae360632808.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`
}

func (r *ModifySLInstanceRequest) 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 *ModifySLInstanceRequest) 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, "Zone")
	delete(f, "NodeNum")
	delete(f, "ClientToken")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySLInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ModifyUserGroupRequestParams struct {
	// User information list.
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

	// User primary group. The CVM cluster is a required parameter, while the TKE cluster is optional.
	UserGroup *string `json:"UserGroup,omitnil,omitempty" name:"UserGroup"`

	// User subgroup.
	Groups []*string `json:"Groups,omitnil,omitempty" name:"Groups"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type ModifyUserGroupRequest struct {
	*tchttp.BaseRequest
	
	// User information list.
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

	// User primary group. The CVM cluster is a required parameter, while the TKE cluster is optional.
	UserGroup *string `json:"UserGroup,omitnil,omitempty" name:"UserGroup"`

	// User subgroup.
	Groups []*string `json:"Groups,omitnil,omitempty" name:"Groups"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

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

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

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

// Predefined struct for user
type ModifyUserManagerPwdRequestParams struct {
	// Cluster instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Password
	PassWord *string `json:"PassWord,omitnil,omitempty" name:"PassWord"`
}

type ModifyUserManagerPwdRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

	// Password
	PassWord *string `json:"PassWord,omitnil,omitempty" name:"PassWord"`
}

func (r *ModifyUserManagerPwdRequest) 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 *ModifyUserManagerPwdRequest) 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, "UserName")
	delete(f, "PassWord")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyUserManagerPwdRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ModifyUsersOfGroupSTDRequestParams struct {
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// User group name.
	Group *string `json:"Group,omitnil,omitempty" name:"Group"`

	// User list.
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

	// User group description.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Enumeration class. Valid values: ADD, DELETE, SYNC.
	// 
	// 
	// Enumeration class description.
	// - ADD: Batched users to add. Adding the same user multiple times will not trigger an error.
	// - DELETE: Batched users to remove from the user group. Deleting non-existing users will not trigger an error.
	// - SYNC: Overwrites the entire user group. An empty list clears all existing members.
	// Defaults to SYNC.
	OperateAction *string `json:"OperateAction,omitnil,omitempty" name:"OperateAction"`
}

type ModifyUsersOfGroupSTDRequest struct {
	*tchttp.BaseRequest
	
	// Cluster name.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// User group name.
	Group *string `json:"Group,omitnil,omitempty" name:"Group"`

	// User list.
	Users []*string `json:"Users,omitnil,omitempty" name:"Users"`

	// User group description.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Enumeration class. Valid values: ADD, DELETE, SYNC.
	// 
	// 
	// Enumeration class description.
	// - ADD: Batched users to add. Adding the same user multiple times will not trigger an error.
	// - DELETE: Batched users to remove from the user group. Deleting non-existing users will not trigger an error.
	// - SYNC: Overwrites the entire user group. An empty list clears all existing members.
	// Defaults to SYNC.
	OperateAction *string `json:"OperateAction,omitnil,omitempty" name:"OperateAction"`
}

func (r *ModifyUsersOfGroupSTDRequest) 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 *ModifyUsersOfGroupSTDRequest) 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, "Group")
	delete(f, "Users")
	delete(f, "Description")
	delete(f, "OperateAction")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyUsersOfGroupSTDRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyUsersOfGroupSTDResponseParams struct {
	// Whether modification is successful.
	Data *bool `json:"Data,omitnil,omitempty" name:"Data"`

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

type ModifyUsersOfGroupSTDResponse struct {
	*tchttp.BaseResponse
	Response *ModifyUsersOfGroupSTDResponseParams `json:"Response"`
}

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

// Predefined struct for user
type ModifyYarnDeployRequestParams struct {
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler after switching. The values are fair and capacity.
	NewScheduler *string `json:"NewScheduler,omitnil,omitempty" name:"NewScheduler"`

	// Currently used scheduler. The values are fair and capacity.
	OldScheduler *string `json:"OldScheduler,omitnil,omitempty" name:"OldScheduler"`
}

type ModifyYarnDeployRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler after switching. The values are fair and capacity.
	NewScheduler *string `json:"NewScheduler,omitnil,omitempty" name:"NewScheduler"`

	// Currently used scheduler. The values are fair and capacity.
	OldScheduler *string `json:"OldScheduler,omitnil,omitempty" name:"OldScheduler"`
}

func (r *ModifyYarnDeployRequest) 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 *ModifyYarnDeployRequest) 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, "NewScheduler")
	delete(f, "OldScheduler")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyYarnDeployRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ModifyYarnDeployResponseParams struct {
	// When the value is "false", both the "Apply" and "Reset" buttons are grayed out.
	IsDraft *bool `json:"IsDraft,omitnil,omitempty" name:"IsDraft"`

	// Error information. This field is reserved.
	ErrorMsg *string `json:"ErrorMsg,omitnil,omitempty" name:"ErrorMsg"`

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

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

// Predefined struct for user
type ModifyYarnQueueV2RequestParams struct {
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler type. The values are as follows:
	// 
	// 1. capacity
	// 2. fair
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`

	// Resource pool data
	ConfigModifyInfoList []*ConfigModifyInfoV2 `json:"ConfigModifyInfoList,omitnil,omitempty" name:"ConfigModifyInfoList"`
}

type ModifyYarnQueueV2Request struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scheduler type. The values are as follows:
	// 
	// 1. capacity
	// 2. fair
	Scheduler *string `json:"Scheduler,omitnil,omitempty" name:"Scheduler"`

	// Resource pool data
	ConfigModifyInfoList []*ConfigModifyInfoV2 `json:"ConfigModifyInfoList,omitnil,omitempty" name:"ConfigModifyInfoList"`
}

func (r *ModifyYarnQueueV2Request) 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 *ModifyYarnQueueV2Request) 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, "Scheduler")
	delete(f, "ConfigModifyInfoList")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifyYarnQueueV2Request has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

type MonthRepeatStrategy struct {
	// Specific time for repetition task execution, such as 01:02:00.
	ExecuteAtTimeOfDay *string `json:"ExecuteAtTimeOfDay,omitnil,omitempty" name:"ExecuteAtTimeOfDay"`

	// Description of time period in days of the month. The length must be 2. For example, [2,10] indicates from the 2nd day to the 10th day every month.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	DaysOfMonthRange []*uint64 `json:"DaysOfMonthRange,omitnil,omitempty" name:"DaysOfMonthRange"`
}

type MultiDisk struct {
	// Cloud disk type.
	// <li>CLOUD_SSD: Cloud SSD.</li>
	// <li>CLOUD_PREMIUM: Premium Cloud Disk.</li>
	// <li>CLOUD_HSSD: Enhanced SSD.</li>
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Cloud disk size.
	Volume *int64 `json:"Volume,omitnil,omitempty" name:"Volume"`

	// Number of cloud disks of this type.
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`
}

type MultiDiskMC struct {
	// Number of cloud disks of this type.
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Disk type.
	// 1: Local Disk.
	// 2: Cloud Disk.
	// 3: Local SSD.
	// 4: Cloud SSD.
	// 5: Premium Cloud Disk.
	// 6: Enhanced SSD.
	// 11: Throughput HDD.
	// 12: Tremendous SSD.
	// 13: Balanced SSD.
	// 14: Big Data Cloud Disk.
	// 15: High IO Cloud Disk.
	// 16: Remote SSD.
	Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Disk size.
	Size *string `json:"Size,omitnil,omitempty" name:"Size"`

	// Cloud disk size (bytes).
	Volume *int64 `json:"Volume,omitnil,omitempty" name:"Volume"`
}

type MultiZoneSetting struct {
	// "master", "standby" or "third-party".
	ZoneTag *string `json:"ZoneTag,omitnil,omitempty" name:"ZoneTag"`

	// None
	VPCSettings *VPCSettings `json:"VPCSettings,omitnil,omitempty" name:"VPCSettings"`

	// None
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// None
	ResourceSpec *NewResourceSpec `json:"ResourceSpec,omitnil,omitempty" name:"ResourceSpec"`
}

type NewResourceSpec struct {
	// Describes master node resource
	MasterResourceSpec *Resource `json:"MasterResourceSpec,omitnil,omitempty" name:"MasterResourceSpec"`

	// Describes core node resource
	CoreResourceSpec *Resource `json:"CoreResourceSpec,omitnil,omitempty" name:"CoreResourceSpec"`

	// Describes task node resource
	TaskResourceSpec *Resource `json:"TaskResourceSpec,omitnil,omitempty" name:"TaskResourceSpec"`

	// Number of master nodes
	MasterCount *int64 `json:"MasterCount,omitnil,omitempty" name:"MasterCount"`

	// Number of core nodes
	CoreCount *int64 `json:"CoreCount,omitnil,omitempty" name:"CoreCount"`

	// Number of task nodes
	TaskCount *int64 `json:"TaskCount,omitnil,omitempty" name:"TaskCount"`

	// Describes common node resource
	CommonResourceSpec *Resource `json:"CommonResourceSpec,omitnil,omitempty" name:"CommonResourceSpec"`

	// Number of common nodes
	CommonCount *int64 `json:"CommonCount,omitnil,omitempty" name:"CommonCount"`
}

type NodeDetailPriceResult struct {
	// Node type: Master, Core, Task, Common, Router, and MySQL.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Price details by node part
	PartDetailPrice []*PartDetailPriceItem `json:"PartDetailPrice,omitnil,omitempty" name:"PartDetailPrice"`
}

type NodeHardwareInfo struct {
	// User AppID.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Serial number.
	SerialNo *string `json:"SerialNo,omitnil,omitempty" name:"SerialNo"`

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

	// Public network IP address bound for the Master node.
	WanIp *string `json:"WanIp,omitnil,omitempty" name:"WanIp"`

	// Node type. 0: Common node; 1: Master node.
	//  2: Core node; 3: Task node.
	Flag *int64 `json:"Flag,omitnil,omitempty" name:"Flag"`

	// Node specifications.
	Spec *string `json:"Spec,omitnil,omitempty" name:"Spec"`

	// Number of node cores.
	CpuNum *int64 `json:"CpuNum,omitnil,omitempty" name:"CpuNum"`

	// Node memory (bytes).
	MemSize *int64 `json:"MemSize,omitnil,omitempty" name:"MemSize"`

	// Node memory (GB).
	MemDesc *string `json:"MemDesc,omitnil,omitempty" name:"MemDesc"`

	// The region where the node is located.
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

	// The zone where the node is located.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Application time.
	ApplyTime *string `json:"ApplyTime,omitnil,omitempty" name:"ApplyTime"`

	// Release time.
	FreeTime *string `json:"FreeTime,omitnil,omitempty" name:"FreeTime"`

	// Hard disk size.
	DiskSize *string `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Node description.
	NameTag *string `json:"NameTag,omitnil,omitempty" name:"NameTag"`

	// Node deployment service.
	Services *string `json:"Services,omitnil,omitempty" name:"Services"`

	// Disk type. Valid values: 1 (Local Disk), 2 (Cloud Disk), 3 (Local SSD), 4 (Cloud SSD), 5 (Premium Cloud Disk), 6 (Enhanced SSD), 11 (Throughput SSD), 12 (Tremendous SSD), 13 (Balanced SSD), 14 (Big Data Cloud Disk), 15 (High IO Cloud Disk), and 16 (Remote SSD).
	StorageType *int64 `json:"StorageType,omitnil,omitempty" name:"StorageType"`

	// System disk size (GB).
	RootSize *int64 `json:"RootSize,omitnil,omitempty" name:"RootSize"`

	// Payment type. Valid values: 0 (pay-as-you-go); 1 (yearly/monthly subscription).
	ChargeType *int64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// Database IP address.
	CdbIp *string `json:"CdbIp,omitnil,omitempty" name:"CdbIp"`

	// Database port.
	CdbPort *int64 `json:"CdbPort,omitnil,omitempty" name:"CdbPort"`

	// Hard disk capacity (bytes).
	HwDiskSize *int64 `json:"HwDiskSize,omitnil,omitempty" name:"HwDiskSize"`

	// Hard disk capacity description.
	HwDiskSizeDesc *string `json:"HwDiskSizeDesc,omitnil,omitempty" name:"HwDiskSizeDesc"`

	// Memory capacity (bytes).
	HwMemSize *int64 `json:"HwMemSize,omitnil,omitempty" name:"HwMemSize"`

	// Memory capacity description.
	HwMemSizeDesc *string `json:"HwMemSizeDesc,omitnil,omitempty" name:"HwMemSizeDesc"`

	// Expiration time.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Node resource ID.
	EmrResourceId *string `json:"EmrResourceId,omitnil,omitempty" name:"EmrResourceId"`

	// Renewal flag.
	IsAutoRenew *int64 `json:"IsAutoRenew,omitnil,omitempty" name:"IsAutoRenew"`

	// Device identification.
	DeviceClass *string `json:"DeviceClass,omitnil,omitempty" name:"DeviceClass"`

	// Supporting resizing.
	Mutable *int64 `json:"Mutable,omitnil,omitempty" name:"Mutable"`

	// Multi-cloud disk
	// Note: this field may return null, indicating that no valid values can be obtained.
	MCMultiDisk []*MultiDiskMC `json:"MCMultiDisk,omitnil,omitempty" name:"MCMultiDisk"`

	// Database information
	// Note: this field may return null, indicating that no valid values can be obtained.
	CdbNodeInfo *CdbInfo `json:"CdbNodeInfo,omitnil,omitempty" name:"CdbNodeInfo"`

	// Private network IP address.
	Ip *string `json:"Ip,omitnil,omitempty" name:"Ip"`

	// Whether this node can be terminated. 1: Yes, 0: No.
	Destroyable *int64 `json:"Destroyable,omitnil,omitempty" name:"Destroyable"`

	// Tags bound to node
	// Note: this field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Whether it is an automatic scaling node. 0: common node, 1: automatic scaling node.
	AutoFlag *int64 `json:"AutoFlag,omitnil,omitempty" name:"AutoFlag"`

	// Resource type, with the valid values of "host" and "pod".
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`

	// Whether it is a floating specification. 1: Yes, 0: No.
	IsDynamicSpec *int64 `json:"IsDynamicSpec,omitnil,omitempty" name:"IsDynamicSpec"`

	// Floating specification value in the JSON string format.
	DynamicPodSpec *string `json:"DynamicPodSpec,omitnil,omitempty" name:"DynamicPodSpec"`

	// Whether the billing type can be changed. 1: Yes, 0: No.
	SupportModifyPayMode *int64 `json:"SupportModifyPayMode,omitnil,omitempty" name:"SupportModifyPayMode"`

	// System disk type. Valid values: 1 (Local Disk), 2 (Cloud Disk), 3 (Local SSD), 4 (Cloud SSD), 5 (Premium Cloud Disk), 6 (Enhanced SSD), 11 (Throughput HDD), 12 (Tremendous SSD), 13 (Balanced SSD), 14 (Big Data Cloud Disk), 15 (High IO Cloud Disk), and 16 (Remote SSD).
	RootStorageType *int64 `json:"RootStorageType,omitnil,omitempty" name:"RootStorageType"`

	// Availability information.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Subnet
	// Note: This field may return `null`, indicating that no valid value can be obtained.
	SubnetInfo *SubnetInfo `json:"SubnetInfo,omitnil,omitempty" name:"SubnetInfo"`

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

	// Current system time.
	CurrentTime *string `json:"CurrentTime,omitnil,omitempty" name:"CurrentTime"`

	// Indicates whether it is for federation. 1: Yes, 0: No.
	IsFederation *int64 `json:"IsFederation,omitnil,omitempty" name:"IsFederation"`

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

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

	// Whether instance protection is enabled. True: enabled, false: disabled.
	DisableApiTermination *bool `json:"DisableApiTermination,omitnil,omitempty" name:"DisableApiTermination"`

	// 0: old billing, 1: new billing.
	TradeVersion *int64 `json:"TradeVersion,omitnil,omitempty" name:"TradeVersion"`

	// Component status. ZooKeeper: STARTED, ResourceManager: STARTED, STARTED: Component is running, STOPPED: Component is halted.
	ServicesStatus *string `json:"ServicesStatus,omitnil,omitempty" name:"ServicesStatus"`

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

	// Shared cluster ID.
	SharedClusterId *string `json:"SharedClusterId,omitnil,omitempty" name:"SharedClusterId"`

	// Shared cluster ID description.
	SharedClusterIdDesc *string `json:"SharedClusterIdDesc,omitnil,omitempty" name:"SharedClusterIdDesc"`

	// Whether the resource is set for scheduled termination.
	TimingResource *bool `json:"TimingResource,omitnil,omitempty" name:"TimingResource"`

	// Corresponding TKE cluster ID in the case that the resource type (HardwareResourceType) is pod.
	TkeClusterId *string `json:"TkeClusterId,omitnil,omitempty" name:"TkeClusterId"`

	// Name list of services that can be configured when a new disk is mounted.
	ConfigurableServices []*string `json:"ConfigurableServices,omitnil,omitempty" name:"ConfigurableServices"`

	// Node labeling information: currently used only in the Terraform.
	NodeMark *string `json:"NodeMark,omitnil,omitempty" name:"NodeMark"`

	// Whether auto-renewal is available for committed use resources.
	UnderwriteSetAutoRenew *bool `json:"UnderwriteSetAutoRenew,omitnil,omitempty" name:"UnderwriteSetAutoRenew"`

	// GPU information.
	GpuDesc *string `json:"GpuDesc,omitnil,omitempty" name:"GpuDesc"`
}

type NodeMark struct {
	// Node type: master, core, task, router.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Node tag information: currently used only in the Terraform. It serves as an input parameter to differentiate information of nodes with the same type.
	NodeNames []*string `json:"NodeNames,omitnil,omitempty" name:"NodeNames"`

	// Availability zone name.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`
}

type NodeRenewPriceDetail struct {
	// Billing type (1: monthly subscription, 3: committed use).
	ChargeType *int64 `json:"ChargeType,omitnil,omitempty" name:"ChargeType"`

	// EMR resource ID.
	EmrResourceId *string `json:"EmrResourceId,omitnil,omitempty" name:"EmrResourceId"`

	// Node type.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Node private network IP.
	Ip *string `json:"Ip,omitnil,omitempty" name:"Ip"`

	// Current expiration time.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Original price.
	OriginalCost *float64 `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discount price.
	DiscountCost *float64 `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`

	// Node component renewal pricing list.
	RenewPriceDetails []*RenewPriceDetail `json:"RenewPriceDetails,omitnil,omitempty" name:"RenewPriceDetails"`
}

type NodeResource struct {
	// Configuration ID.
	ResourceConfigId *uint64 `json:"ResourceConfigId,omitnil,omitempty" name:"ResourceConfigId"`

	// Resource
	// Note: This field may return null, indicating that no valid values can be obtained.
	Resource *Resource `json:"Resource,omitnil,omitempty" name:"Resource"`

	// Creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Update time.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Whether default configuration applies, DEFAULT or BACKUP.
	IsDefault *string `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`

	// Remaining of this type.
	MaxResourceNum *uint64 `json:"MaxResourceNum,omitnil,omitempty" name:"MaxResourceNum"`

	// Supported committed use duration.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PrepaidUnderwritePeriods []*int64 `json:"PrepaidUnderwritePeriods,omitnil,omitempty" name:"PrepaidUnderwritePeriods"`
}

type NodeResourceSpec struct {
	// specifications type, such as S2.MEDIUM8.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// The system disk, which can be up to 1 PCS.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SystemDisk []*DiskSpecInfo `json:"SystemDisk,omitnil,omitempty" name:"SystemDisk"`

	// The list of tags to be bound.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// The cloud data disk, which can be up to 15 PCS.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataDisk []*DiskSpecInfo `json:"DataDisk,omitnil,omitempty" name:"DataDisk"`

	// The local data disk.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LocalDataDisk []*DiskSpecInfo `json:"LocalDataDisk,omitnil,omitempty" name:"LocalDataDisk"`
}

type NodeSpecDisk struct {
	// Quantity.
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

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

	// Disk type.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Specified disk size.
	DefaultDiskSize *int64 `json:"DefaultDiskSize,omitnil,omitempty" name:"DefaultDiskSize"`
}

type NodeSpecDiskV2 struct {
	// Quantity.
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

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

	// Disk type.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Specified disk size.
	DefaultDiskSize *int64 `json:"DefaultDiskSize,omitnil,omitempty" name:"DefaultDiskSize"`
}

type NodeSpecFamily struct {
	// Model.
	InstanceFamily *string `json:"InstanceFamily,omitnil,omitempty" name:"InstanceFamily"`

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

	// Order.
	Order *int64 `json:"Order,omitnil,omitempty" name:"Order"`

	// InstanceType List.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceTypes []*NodeSpecInstanceType `json:"InstanceTypes,omitnil,omitempty" name:"InstanceTypes"`
}

type NodeSpecInstanceType struct {
	// Specifications.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// 4
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// 8, in GB.
	Memory *int64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Order, with the smaller coming first.
	Order *int64 `json:"Order,omitnil,omitempty" name:"Order"`

	// Quantity.
	Num *int64 `json:"Num,omitnil,omitempty" name:"Num"`

	// Reasons for running out of stock.
	SellOutReason *string `json:"SellOutReason,omitnil,omitempty" name:"SellOutReason"`

	// System disk.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SystemDisk []*NodeSpecDisk `json:"SystemDisk,omitnil,omitempty" name:"SystemDisk"`

	// Data disk.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataDisk []*NodeSpecDisk `json:"DataDisk,omitnil,omitempty" name:"DataDisk"`

	// Local data disk.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LocalDataDisk []*NodeSpecDisk `json:"LocalDataDisk,omitnil,omitempty" name:"LocalDataDisk"`

	// Reasons for running out of stock.
	SoldOutReason *string `json:"SoldOutReason,omitnil,omitempty" name:"SoldOutReason"`

	// Model category.
	InstanceFamily *string `json:"InstanceFamily,omitnil,omitempty" name:"InstanceFamily"`

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

	// Node type.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

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

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

	// Category classification.
	FamilyName *string `json:"FamilyName,omitnil,omitempty" name:"FamilyName"`

	// CPU type.
	CpuType *string `json:"CpuType,omitnil,omitempty" name:"CpuType"`

	// RunOut (denoting running out of stock), Less (denoting low inventory), and Enough (denoting sufficient).
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Original price.
	OriginPrice *float64 `json:"OriginPrice,omitnil,omitempty" name:"OriginPrice"`

	// Supported purchase terms for committed use billing models.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PrepaidUnderwritePeriods []*int64 `json:"PrepaidUnderwritePeriods,omitnil,omitempty" name:"PrepaidUnderwritePeriods"`

	// GPU information.
	GpuDesc *string `json:"GpuDesc,omitnil,omitempty" name:"GpuDesc"`
}

type NodeSpecType struct {
	// Model series.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Model series name.
	TypeName *string `json:"TypeName,omitnil,omitempty" name:"TypeName"`

	// Order.
	Order *int64 `json:"Order,omitnil,omitempty" name:"Order"`

	// InstanceFamily array.
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceFamilies []*NodeSpecFamily `json:"InstanceFamilies,omitnil,omitempty" name:"InstanceFamilies"`
}

type NotRepeatStrategy struct {
	// The specific complete time when the task was executed, in the format of "2020-07-13 00:00:00".
	ExecuteAt *string `json:"ExecuteAt,omitnil,omitempty" name:"ExecuteAt"`
}

type OpScope struct {
	// The information of the services to operate on.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ServiceInfoList []*ServiceBasicRestartInfo `json:"ServiceInfoList,omitnil,omitempty" name:"ServiceInfoList"`
}

type Order struct {
	// Order field.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Desc or Asc.
	Direction *string `json:"Direction,omitnil,omitempty" name:"Direction"`
}

type OutterResource struct {
	// Specification
	// Note: this field may return null, indicating that no valid values can be obtained.
	Spec *string `json:"Spec,omitnil,omitempty" name:"Spec"`

	// Specification name
	// Note: this field may return null, indicating that no valid values can be obtained.
	SpecName *string `json:"SpecName,omitnil,omitempty" name:"SpecName"`

	// Disk type
	// Note: this field may return null, indicating that no valid values can be obtained.
	StorageType *int64 `json:"StorageType,omitnil,omitempty" name:"StorageType"`

	// Disk type
	// Note: this field may return null, indicating that no valid values can be obtained.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// System disk size
	// Note: this field may return null, indicating that no valid values can be obtained.
	RootSize *int64 `json:"RootSize,omitnil,omitempty" name:"RootSize"`

	// Memory size
	// Note: this field may return null, indicating that no valid values can be obtained.
	MemSize *int64 `json:"MemSize,omitnil,omitempty" name:"MemSize"`

	// Number of CPUs
	// Note: this field may return null, indicating that no valid values can be obtained.
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// Disk size
	// Note: this field may return null, indicating that no valid values can be obtained.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Specification
	// Note: this field may return null, indicating that no valid values can be obtained.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`
}

type OverviewMetricData struct {
	// Metric name.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// First data timestamp.
	First *int64 `json:"First,omitnil,omitempty" name:"First"`

	// Last data timestamp.
	Last *int64 `json:"Last,omitnil,omitempty" name:"Last"`

	// Sampling point time interval.
	Interval *int64 `json:"Interval,omitnil,omitempty" name:"Interval"`

	// Sampling point data.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataPoints []*string `json:"DataPoints,omitnil,omitempty" name:"DataPoints"`

	// Metric tags.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags *MetricTags `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type OverviewRow struct {
	// Table name
	Table *string `json:"Table,omitnil,omitempty" name:"Table"`

	// Number of read requests
	ReadRequestCount *float64 `json:"ReadRequestCount,omitnil,omitempty" name:"ReadRequestCount"`

	// Number of write requests
	WriteRequestCount *float64 `json:"WriteRequestCount,omitnil,omitempty" name:"WriteRequestCount"`

	// Current memstore size
	MemstoreSize *float64 `json:"MemstoreSize,omitnil,omitempty" name:"MemstoreSize"`

	// Size of StoreFile in the current region
	StoreFileSize *float64 `json:"StoreFileSize,omitnil,omitempty" name:"StoreFileSize"`

	// Regions. Click to jump.
	Operation *string `json:"Operation,omitnil,omitempty" name:"Operation"`

	// StoreFile quantity. 
	StoreFileNum *float64 `json:"StoreFileNum,omitnil,omitempty" name:"StoreFileNum"`
}

type PartDetailPriceItem struct {
	// Types, including node: node (denoting node), rootDisk (denoting system disk), dataDisk (denoting cloud data disk), and metaDB.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Unit price (original price).
	Price *float64 `json:"Price,omitnil,omitempty" name:"Price"`

	// Unit price (discounted price).
	RealCost *float64 `json:"RealCost,omitnil,omitempty" name:"RealCost"`

	// Total price (discounted price).
	RealTotalCost *float64 `json:"RealTotalCost,omitnil,omitempty" name:"RealTotalCost"`

	// Discount.
	Policy *float64 `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Quantity.
	GoodsNum *int64 `json:"GoodsNum,omitnil,omitempty" name:"GoodsNum"`
}

type Period struct {
	// Time span.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Time unit, "m" stands for month.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`
}

type PersistentVolumeContext struct {
	// Disk size in GB.
	DiskSize *uint64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Disk type, CLOUD_PREMIUM or CLOUD_SSD.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Number of disks.
	DiskNum *int64 `json:"DiskNum,omitnil,omitempty" name:"DiskNum"`

	// Additional performance of cloud disks.
	ExtraPerformance *int64 `json:"ExtraPerformance,omitnil,omitempty" name:"ExtraPerformance"`
}

type Placement struct {
	// The ID of the availability zone where the instance resides, such as `ap-guangzhou-1`. You can call the [DescribeZones](https://intl.cloud.tencent.com/document/product/213/15707?from_cn_redirect=1) API and obtain this ID from the `Zone` field in the response.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Project ID of the instance. If no ID is passed in, the default project ID is used.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`
}

type PodNewParameter struct {
	// The TKE or EKS cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Custom permissions
	// Examples:
	// {
	//   "apiVersion": "v1",
	//   "clusters": [
	//     {
	//       "cluster": {
	//         "certificate-authority-data": "xxxxxx==",
	//         "server": "https://xxxxx.com"
	//       },
	//       "name": "cls-xxxxx"
	//     }
	//   ],
	//   "contexts": [
	//     {
	//       "context": {
	//         "cluster": "cls-xxxxx",
	//         "user": "100014xxxxx"
	//       },
	//       "name": "cls-a44yhcxxxxxxxxxx"
	//     }
	//   ],
	//   "current-context": "cls-a4xxxx-context-default",
	//   "kind": "Config",
	//   "preferences": {},
	//   "users": [
	//     {
	//       "name": "100014xxxxx",
	//       "user": {
	//         "client-certificate-data": "xxxxxx",
	//         "client-key-data": "xxxxxx"
	//       }
	//     }
	//   ]
	// }
	Config *string `json:"Config,omitnil,omitempty" name:"Config"`

	// Custom parameters
	// Examples:
	// {
	//     "apiVersion": "apps/v1",
	//     "kind": "Deployment",
	//     "metadata": {
	//       "name": "test-deployment",
	//       "labels": {
	//         "app": "test"
	//       }
	//     },
	//     "spec": {
	//       "replicas": 3,
	//       "selector": {
	//         "matchLabels": {
	//           "app": "test-app"
	//         }
	//       },
	//       "template": {
	//         "metadata": {
	//           "annotations": {
	//             "your-organization.com/department-v1": "test-example-v1",
	//             "your-organization.com/department-v2": "test-example-v2"
	//           },
	//           "labels": {
	//             "app": "test-app",
	//             "environment": "production"
	//           }
	//         },
	//         "spec": {
	//           "nodeSelector": {
	//             "your-organization/node-test": "test-node"
	//           },
	//           "containers": [
	//             {
	//               "name": "nginx",
	//               "image": "nginx:1.14.2",
	//               "ports": [
	//                 {
	//                   "containerPort": 80
	//                 }
	//               ]
	//             }
	//           ],
	//           "affinity": {
	//             "nodeAffinity": {
	//               "requiredDuringSchedulingIgnoredDuringExecution": {
	//                 "nodeSelectorTerms": [
	//                   {
	//                     "matchExpressions": [
	//                       {
	//                         "key": "disk-type",
	//                         "operator": "In",
	//                         "values": [
	//                           "ssd",
	//                           "sas"
	//                         ]
	//                       },
	//                       {
	//                         "key": "cpu-num",
	//                         "operator": "Gt",
	//                         "values": [
	//                           "6"
	//                         ]
	//                       }
	//                     ]
	//                   }
	//                 ]
	//               }
	//             }
	//           }
	//         }
	//       }
	//     }
	//   }
	Parameter *string `json:"Parameter,omitnil,omitempty" name:"Parameter"`
}

type PodNewSpec struct {
	// The identifier of an external resource provider, such as "cls-a1cd23fa".
	ResourceProviderIdentifier *string `json:"ResourceProviderIdentifier,omitnil,omitempty" name:"ResourceProviderIdentifier"`

	// The type of the external resource provider, such as "tke". Currently, only "tke" is supported.
	ResourceProviderType *string `json:"ResourceProviderType,omitnil,omitempty" name:"ResourceProviderType"`

	// The purpose of the resource, which means the node type and can only be "TASK".
	NodeFlag *string `json:"NodeFlag,omitnil,omitempty" name:"NodeFlag"`

	// The number of CPUs.
	Cpu *uint64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// The memory size in GB.
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// The EKS cluster - CPU type. Valid values: `intel` and `amd`.
	CpuType *string `json:"CpuType,omitnil,omitempty" name:"CpuType"`

	// The data directory mounting information of the pod node.
	PodVolumes []*PodVolume `json:"PodVolumes,omitnil,omitempty" name:"PodVolumes"`

	// Whether the dynamic spec is used. Valid values:
	// <li>`true`: Yes</li>
	// <li>`false` (default): No</li>
	EnableDynamicSpecFlag *bool `json:"EnableDynamicSpecFlag,omitnil,omitempty" name:"EnableDynamicSpecFlag"`

	// The dynamic spec.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DynamicPodSpec *DynamicPodSpec `json:"DynamicPodSpec,omitnil,omitempty" name:"DynamicPodSpec"`

	// Unique ID of VPC network.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Unique ID of a VPC subnet.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// pod name
	PodName *string `json:"PodName,omitnil,omitempty" name:"PodName"`
}

type PodParameter struct {
	// ID of TKE or EKS cluster
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Custom permissions
	// Example:
	// {
	//   "apiVersion": "v1",
	//   "Clusters": [
	//     {
	//       "cluster": {
	//         "certificate-authority-data": "xxxxxx==",
	//         "server": "https://xxxxx.com"
	//       },
	//       "name": "cls-xxxxx"
	//     }
	//   ],
	//   "contexts": [
	//     {
	//       "context": {
	//         "cluster": "cls-xxxxx",
	//         "user": "100014xxxxx"
	//       },
	//       "name": "cls-a44yhcxxxxxxxxxx"
	//     }
	//   ],
	//   "current-context": "cls-a4xxxx-context-default",
	//   "kind": "Config",
	//   "preferences": {},
	//   "users": [
	//     {
	//       "name": "100014xxxxx",
	//       "user": {
	//         "client-certificate-data": "xxxxxx",
	//         "client-key-data": "xxxxxx"
	//       }
	//     }
	//   ]
	// }
	Config *string `json:"Config,omitnil,omitempty" name:"Config"`

	// Custom parameters
	// Example:
	// {
	//     "apiVersion": "apps/v1",
	//     "kind": "Deployment",
	//     "metadata": {
	//       "name": "test-deployment",
	//       "labels": {
	//         "app": "test"
	//       }
	//     },
	//     "spec": {
	//       "replicas": 3,
	//       "selector": {
	//         "matchLabels": {
	//           "app": "test-app"
	//         }
	//       },
	//       "template": {
	//         "metadata": {
	//           "annotations": {
	//             "your-organization.com/department-v1": "test-example-v1",
	//             "your-organization.com/department-v2": "test-example-v2"
	//           },
	//           "labels": {
	//             "app": "test-app",
	//             "environment": "production"
	//           }
	//         },
	//         "spec": {
	//           "nodeSelector": {
	//             "your-organization/node-test": "test-node"
	//           },
	//           "containers": [
	//             {
	//               "name": "nginx",
	//               "image": "nginx:1.14.2",
	//               "ports": [
	//                 {
	//                   "containerPort": 80
	//                 }
	//               ]
	//             }
	//           ],
	//           "affinity": {
	//             "nodeAffinity": {
	//               "requiredDuringSchedulingIgnoredDuringExecution": {
	//                 "nodeSelectorTerms": [
	//                   {
	//                     "matchExpressions": [
	//                       {
	//                         "key": "disk-type",
	//                         "operator": "In",
	//                         "values": [
	//                           "ssd",
	//                           "sas"
	//                         ]
	//                       },
	//                       {
	//                         "key": "cpu-num",
	//                         "operator": "Gt",
	//                         "values": [
	//                           "6"
	//                         ]
	//                       }
	//                     ]
	//                   }
	//                 ]
	//               }
	//             }
	//           }
	//         }
	//       }
	//     }
	//   }
	Parameter *string `json:"Parameter,omitnil,omitempty" name:"Parameter"`
}

type PodSpec struct {
	// Identifier of external resource provider, such as "cls-a1cd23fa".
	ResourceProviderIdentifier *string `json:"ResourceProviderIdentifier,omitnil,omitempty" name:"ResourceProviderIdentifier"`

	// Type of external resource provider, such as "tke". Currently, only "tke" is supported.
	ResourceProviderType *string `json:"ResourceProviderType,omitnil,omitempty" name:"ResourceProviderType"`

	// Purpose of the resource, which means the node type and can only be "TASK".
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Number of CPUs
	Cpu *uint64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// Memory size in GB.
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Mount point of resources for the host. A specified mount point corresponds to the host path and is used as the data storage directory in the pod. (This parameter has been disused)
	DataVolumes []*string `json:"DataVolumes,omitnil,omitempty" name:"DataVolumes"`

	// EKS cluster - CPU type. Valid values: `intel` and `amd`.
	CpuType *string `json:"CpuType,omitnil,omitempty" name:"CpuType"`

	// Data directory mounting information of the pod node.
	PodVolumes []*PodVolume `json:"PodVolumes,omitnil,omitempty" name:"PodVolumes"`

	// Whether floating specification is used. `1`: Yes; `0`: No.
	IsDynamicSpec *uint64 `json:"IsDynamicSpec,omitnil,omitempty" name:"IsDynamicSpec"`

	// Floating specification
	// Note: This field may return null, indicating that no valid values can be obtained.
	DynamicPodSpec *DynamicPodSpec `json:"DynamicPodSpec,omitnil,omitempty" name:"DynamicPodSpec"`

	// Unique ID of VPC network.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Unique ID of a VPC subnet.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// pod name
	PodName *string `json:"PodName,omitnil,omitempty" name:"PodName"`
}

type PodSpecInfo struct {
	// The specified information such as pod spec and source for scale-out with pod resources.
	PodSpec *PodNewSpec `json:"PodSpec,omitnil,omitempty" name:"PodSpec"`

	// The custom pod permission and parameter.
	PodParameter *PodNewParameter `json:"PodParameter,omitnil,omitempty" name:"PodParameter"`
}

type PodVolume struct {
	// Storage type, which can be "pvc" or "hostpath".
	VolumeType *string `json:"VolumeType,omitnil,omitempty" name:"VolumeType"`

	// This field will take effect if `VolumeType` is `pvc`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PVCVolume *PersistentVolumeContext `json:"PVCVolume,omitnil,omitempty" name:"PVCVolume"`

	// This field will take effect if `VolumeType` is `hostpath`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	HostVolume *HostVolumeContext `json:"HostVolume,omitnil,omitempty" name:"HostVolume"`
}

type PreExecuteFileSettings struct {
	// COS path to script, which has been disused
	Path *string `json:"Path,omitnil,omitempty" name:"Path"`

	// Execution script parameter
	Args []*string `json:"Args,omitnil,omitempty" name:"Args"`

	// COS bucket name, which has been disused
	Bucket *string `json:"Bucket,omitnil,omitempty" name:"Bucket"`

	// COS region name, which has been disused
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// COS domain data, which has been disused
	Domain *string `json:"Domain,omitnil,omitempty" name:"Domain"`

	// Execution sequence
	RunOrder *int64 `json:"RunOrder,omitnil,omitempty" name:"RunOrder"`

	// `resourceAfter` or `clusterAfter`
	WhenRun *string `json:"WhenRun,omitnil,omitempty" name:"WhenRun"`

	// Script name, which has been disused
	CosFileName *string `json:"CosFileName,omitnil,omitempty" name:"CosFileName"`

	// COS address of script
	CosFileURI *string `json:"CosFileURI,omitnil,omitempty" name:"CosFileURI"`

	// COS `SecretId`
	CosSecretId *string `json:"CosSecretId,omitnil,omitempty" name:"CosSecretId"`

	// COS `SecretKey`
	CosSecretKey *string `json:"CosSecretKey,omitnil,omitempty" name:"CosSecretKey"`

	// COS `appid`, which has been disused
	AppId *string `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Remarks
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type PrePaySetting struct {
	// Time.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Period *Period `json:"Period,omitnil,omitempty" name:"Period"`

	// Auto-renewal flag. 0: notify before expiration but do not auto-renew; 1: notify before expiration and auto-renew; and 2: do not notify before expiration and do not auto-renew.
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`
}

type PriceDetail struct {
	// The node ID
	ResourceId *string `json:"ResourceId,omitnil,omitempty" name:"ResourceId"`

	// The price formula
	Formula *string `json:"Formula,omitnil,omitempty" name:"Formula"`

	// The original price
	OriginalCost *float64 `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// The discount price
	DiscountCost *float64 `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`
}

type PriceResource struct {
	// Required specifications.
	Spec *string `json:"Spec,omitnil,omitempty" name:"Spec"`

	// Hard disk type.
	StorageType *uint64 `json:"StorageType,omitnil,omitempty" name:"StorageType"`

	// Hard disk type.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// System disk size.
	RootSize *int64 `json:"RootSize,omitnil,omitempty" name:"RootSize"`

	// Memory size.
	MemSize *int64 `json:"MemSize,omitnil,omitempty" name:"MemSize"`

	// Number of cores.
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// Hard disk size.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// List of cloud disks.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MultiDisks []*MultiDisk `json:"MultiDisks,omitnil,omitempty" name:"MultiDisks"`

	// Number of disks.
	DiskCnt *int64 `json:"DiskCnt,omitnil,omitempty" name:"DiskCnt"`

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

	// Tag
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Number of disks.
	DiskNum *int64 `json:"DiskNum,omitnil,omitempty" name:"DiskNum"`

	// Number of local disks.
	LocalDiskNum *int64 `json:"LocalDiskNum,omitnil,omitempty" name:"LocalDiskNum"`

	// GPU information.
	GpuDesc *string `json:"GpuDesc,omitnil,omitempty" name:"GpuDesc"`
}

type PriceResult struct {
	// Original price.
	OriginalCost *float64 `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discount price.
	DiscountCost *float64 `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`
}

type RenewPriceDetail struct {
	// Billing item name.
	BillingName *string `json:"BillingName,omitnil,omitempty" name:"BillingName"`

	// Discount.
	Policy *float64 `json:"Policy,omitnil,omitempty" name:"Policy"`

	// Quantity.
	Quantity *int64 `json:"Quantity,omitnil,omitempty" name:"Quantity"`

	// Original price.
	OriginalCost *float64 `json:"OriginalCost,omitnil,omitempty" name:"OriginalCost"`

	// Discount price.
	DiscountCost *float64 `json:"DiscountCost,omitnil,omitempty" name:"DiscountCost"`
}

type RepeatStrategy struct {
	// The valid values DAY, DOW, DOM, and NONE respectively indicate repetition by day, repetition by week, repetition by month, and one-time execution. This parameter is required.
	RepeatType *string `json:"RepeatType,omitnil,omitempty" name:"RepeatType"`

	// Daily repetition rule, which is effective when RepeatType is set to DAY
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	DayRepeat *DayRepeatStrategy `json:"DayRepeat,omitnil,omitempty" name:"DayRepeat"`

	// Weekly repetition rule, effective when RepeatType is DOW
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	WeekRepeat *WeekRepeatStrategy `json:"WeekRepeat,omitnil,omitempty" name:"WeekRepeat"`

	// Monthly repetition rule, valid when RepeatType is DOM
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	MonthRepeat *MonthRepeatStrategy `json:"MonthRepeat,omitnil,omitempty" name:"MonthRepeat"`

	// One-time execution rule, valid when RepeatType is NONE
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	NotRepeat *NotRepeatStrategy `json:"NotRepeat,omitnil,omitempty" name:"NotRepeat"`

	// Rule expiration time. After this time is due, the rule will be automatically set to the status "suspended". The format is "2020-07-23 00:00:00". It is required.
	Expire *string `json:"Expire,omitnil,omitempty" name:"Expire"`

	// Periodic rule start time.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`
}

// Predefined struct for user
type ResetYarnConfigRequestParams struct {
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Alias of the configuration to be reset. The options are as follows:
	// 
	// - capacityLabel: Reset the tag management configuration.
	// - fair: Reset the fair scheduling configuration.
	// - capacity: Reset the capacity scheduling configuration.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`
}

type ResetYarnConfigRequest struct {
	*tchttp.BaseRequest
	
	// English ID of the EMR cluster.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Alias of the configuration to be reset. The options are as follows:
	// 
	// - capacityLabel: Reset the tag management configuration.
	// - fair: Reset the fair scheduling configuration.
	// - capacity: Reset the capacity scheduling configuration.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`
}

func (r *ResetYarnConfigRequest) 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 *ResetYarnConfigRequest) 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, "Key")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResetYarnConfigRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type ResizeDataDisksRequestParams struct {
	// ID of the EMR cluster instance.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scale-out value, which should be greater than the original capacity and a multiple of 10.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// ID list of nodes to be scaled out.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// ID of the cloud disk to be scaled out.
	DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"`

	// Whether to scale out all cloud disks.
	ResizeAll *bool `json:"ResizeAll,omitnil,omitempty" name:"ResizeAll"`
}

type ResizeDataDisksRequest struct {
	*tchttp.BaseRequest
	
	// ID of the EMR cluster instance.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Scale-out value, which should be greater than the original capacity and a multiple of 10.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// ID list of nodes to be scaled out.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// ID of the cloud disk to be scaled out.
	DiskIds []*string `json:"DiskIds,omitnil,omitempty" name:"DiskIds"`

	// Whether to scale out all cloud disks.
	ResizeAll *bool `json:"ResizeAll,omitnil,omitempty" name:"ResizeAll"`
}

func (r *ResizeDataDisksRequest) 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 *ResizeDataDisksRequest) 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, "DiskSize")
	delete(f, "CvmInstanceIds")
	delete(f, "DiskIds")
	delete(f, "ResizeAll")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ResizeDataDisksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ResizeDataDisksResponseParams struct {
	// Flow ID.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type Resource struct {
	// Node specifications description, such as CVM.SA2.
	Spec *string `json:"Spec,omitnil,omitempty" name:"Spec"`

	// Storage type.
	// Valid values:
	// <li>4: Cloud SSD.</li>
	// <li>5: Premium Cloud Disk.</li>
	// <li>6: Enhanced SSD.</li>
	// <li>11: Throughput HDD.</li>
	// <li>12: Tremendous SSD.</li>: this type is invalid upon creation, and automatic judgment will be conducted based on data disk type and node type.
	StorageType *int64 `json:"StorageType,omitnil,omitempty" name:"StorageType"`

	// Disk type.
	// Valid values.
	// <li>CLOUD_SSD: Cloud SSD.</li>
	// <li>CLOUD_PREMIUM: Premium Cloud Disk.</li>
	// <li>CLOUD_BASIC: Cloud Disk.</li>
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Memory capacity, in MB.
	MemSize *int64 `json:"MemSize,omitnil,omitempty" name:"MemSize"`

	// Number of CPU cores.
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// Data disk capacity.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// System disk capacity.
	RootSize *int64 `json:"RootSize,omitnil,omitempty" name:"RootSize"`

	// List of cloud disks. When the data disk is a cloud disk, `DiskType` and `DiskSize` are used directly; `MultiDisks` will be used for the excessive part
	// Note: this field may return null, indicating that no valid values can be obtained.
	MultiDisks []*MultiDisk `json:"MultiDisks,omitnil,omitempty" name:"MultiDisks"`

	// List of tags to be bound
	// Note: this field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Specifications type, such as S2.MEDIUM8.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// Number of local disks. This field is deprecated.
	LocalDiskNum *uint64 `json:"LocalDiskNum,omitnil,omitempty" name:"LocalDiskNum"`

	// Number of local disks, such as 2.
	DiskNum *uint64 `json:"DiskNum,omitnil,omitempty" name:"DiskNum"`

	// GPU information.
	GpuDesc *string `json:"GpuDesc,omitnil,omitempty" name:"GpuDesc"`
}

type ResourceDetail struct {
	// Specifications.
	Spec *string `json:"Spec,omitnil,omitempty" name:"Spec"`

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

	// Hard disk type.
	StorageType *int64 `json:"StorageType,omitnil,omitempty" name:"StorageType"`

	// Hard disk type.
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// System disk size.
	RootSize *int64 `json:"RootSize,omitnil,omitempty" name:"RootSize"`

	// Memory size.
	MemSize *int64 `json:"MemSize,omitnil,omitempty" name:"MemSize"`

	// Number of CPUs.
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// Hard disk size.
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Specifications.
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`
}

type RestartPolicy struct {
	// Restart policy name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Policy display name
	DisplayName *string `json:"DisplayName,omitnil,omitempty" name:"DisplayName"`

	// Policy description
	Describe *string `json:"Describe,omitnil,omitempty" name:"Describe"`

	// Optional range for the number of batch restarted nodes
	BatchSizeRange []*int64 `json:"BatchSizeRange,omitnil,omitempty" name:"BatchSizeRange"`

	// Whether it is the default policy
	IsDefault *string `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`
}

type ResultItem struct {
	// User group name.
	Item *string `json:"Item,omitnil,omitempty" name:"Item"`

	// Whether the user group is created successfully.
	Result *bool `json:"Result,omitnil,omitempty" name:"Result"`

	// Specify the reason for the failure in the case of creation failure.
	Reason *string `json:"Reason,omitnil,omitempty" name:"Reason"`
}

type SLInstance struct {
	// EMR Instance Id
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// EMR Numeric Instance Id
	ClusterId *int64 `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Instance Name
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// Region id
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

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

	// Pay Mode
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Disk Type
	DiskType *string `json:"DiskType,omitnil,omitempty" name:"DiskType"`

	// Disk Size
	DiskSize *int64 `json:"DiskSize,omitnil,omitempty" name:"DiskSize"`

	// Node Type
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Node Number
	NodeNum *int64 `json:"NodeNum,omitnil,omitempty" name:"NodeNum"`

	// Expire Time
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// Isolate Time
	IsolateTime *string `json:"IsolateTime,omitnil,omitempty" name:"IsolateTime"`

	// Create Time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Auto Renew Flag
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// EMR Numeric Instance Status
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Zone Setting
	ZoneSettings []*ZoneSetting `json:"ZoneSettings,omitnil,omitempty" name:"ZoneSettings"`

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

	// Deploy Role
	DeployRole *string `json:"DeployRole,omitnil,omitempty" name:"DeployRole"`
}

type SLInstanceInfo struct {
	// Instance string ID.
	ClusterId *string `json:"ClusterId,omitnil,omitempty" name:"ClusterId"`

	// Instance numeric ID
	Id *uint64 `json:"Id,omitnil,omitempty" name:"Id"`

	// Status description.
	StatusDesc *string `json:"StatusDesc,omitnil,omitempty" name:"StatusDesc"`

	// Health status.
	HealthStatus *string `json:"HealthStatus,omitnil,omitempty" name:"HealthStatus"`

	// Instance name
	ClusterName *string `json:"ClusterName,omitnil,omitempty" name:"ClusterName"`

	// Region ID
	RegionId *uint64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

	// Primary AZ ID.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Primary AZ.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// User APP ID.
	AppId *uint64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Primary AZ VPC ID.
	VpcId *uint64 `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Primary AZ subnet ID.
	SubnetId *uint64 `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Status code
	Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Creation time.
	AddTime *string `json:"AddTime,omitnil,omitempty" name:"AddTime"`

	// Cluster billing type. 0 indicates pay-as-you-go. 1 indicates monthly subscription.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Multi-AZ information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ZoneSettings []*ZoneSetting `json:"ZoneSettings,omitnil,omitempty" name:"ZoneSettings"`

	// Instance tag.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Auto-renewal flag. 0: notify before expiration but do not auto-renew; 1: notify before expiration and auto-renew; and 2: do not notify before expiration and do not auto-renew. If the business does not support renewal, the value is set to 0.
	AutoRenewFlag *uint64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Isolation time. For instances that are not isolated, the API returns 0000-00-00 00:00:00.
	IsolateTime *string `json:"IsolateTime,omitnil,omitempty" name:"IsolateTime"`

	// Expiration time. For post-paid instances, the API returns 0000-00-00 00:00:00.
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
}

// Predefined struct for user
type ScaleOutClusterRequestParams struct {
	// The node billing mode. Valid values:
	// <li>`POSTPAID_BY_HOUR`: The postpaid mode by hour.</li>
	// <li>`SPOTPAID`: The spot instance mode (for task nodes only).</li>
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

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

	// Scale-up node type and quantity.
	ScaleOutNodeConfig *ScaleOutNodeConfig `json:"ScaleOutNodeConfig,omitnil,omitempty" name:"ScaleOutNodeConfig"`

	// Unique random identifier with the time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources again, for example, a9a90aa6-****-****-****-fae36063280.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Setting of parameters related to monthly subscription. Through this parameter, you can specify the duration of purchase for monthly subscription instances, whether to set auto-renewal, and other attributes. This parameter is required when the specified instance is subject to the payment mode of prepaid.
	InstanceChargePrepaid *InstanceChargePrepaid `json:"InstanceChargePrepaid,omitnil,omitempty" name:"InstanceChargePrepaid"`

	// [Bootstrap Actions](https://www.tencentcloud.com/document/product/589/35656?from_cn_redirect=1) script settings.
	ScriptBootstrapActionConfig []*ScriptBootstrapActionConfig `json:"ScriptBootstrapActionConfig,omitnil,omitempty" name:"ScriptBootstrapActionConfig"`

	// Scale-out deployment service. New nodes inherit services deployed in the current node type by default, including default optional services. This parameter only supports optional service filling, for example: HDFS, YARN, and Impala have been deployed to existing task nodes. When API is used to scale out the task nodes without deploying Impala, only HDFS and YARN are filled for deployment services. For more details, see [Mapping Table of Component Names](https://www.tencentcloud.com/document/product/589/98760?from_cn_redirect=1).
	SoftDeployInfo []*int64 `json:"SoftDeployInfo,omitnil,omitempty" name:"SoftDeployInfo"`

	// Deployment process. By default, all scale-out service processes are deployed. Deployment processes can be modified. For example, HDFS, YARN, or Impala has been deployed for the current Task node. The default deployment services include DataNode,NodeManager,ImpalaServer. If users need to modify deployment process information, the deployment process can be DataNode, NodeManager, ImpalaServerCoordinator or DataNode, NodeManager, ImpalaServerExecutor. For more details, see [Mapping Table of Process Names](https://www.tencentcloud.com/document/product/589/98760?from_cn_redirect=1).
	ServiceNodeInfo []*int64 `json:"ServiceNodeInfo,omitnil,omitempty" name:"ServiceNodeInfo"`

	// Spread placement group ID list. Only one can be specified currently.
	// This parameter can be obtained by calling the DisasterRecoverGroupId field in the return value of the [DescribeDisasterRecoverGroups](https://www.tencentcloud.com/document/product/213/17810?from_cn_redirect=1) API.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// List of tags bound to scale-out nodes.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Resource type selected for scale-out with valid values "HOST","POD","MNode", where HOST indicates an ordinary CVM resource, POD indicates a resource provided by the TKE cluster or EKS cluster, and MNode indicates a fully managed resource type.
	HardwareSourceType *string `json:"HardwareSourceType,omitnil,omitempty" name:"HardwareSourceType"`

	// Pod-related resource information.
	PodSpecInfo *PodSpecInfo `json:"PodSpecInfo,omitnil,omitempty" name:"PodSpecInfo"`

	// Machine group name selected for ClickHouse cluster scale-out.
	ClickHouseClusterName *string `json:"ClickHouseClusterName,omitnil,omitempty" name:"ClickHouseClusterName"`

	// Machine group type selected for ClickHouse cluster scale-out. "New" indicates creating a group type, and "old" indicates using an existing group type.
	ClickHouseClusterType *string `json:"ClickHouseClusterType,omitnil,omitempty" name:"ClickHouseClusterType"`

	// Specified Yarn Node Label for scale-out.
	YarnNodeLabel *string `json:"YarnNodeLabel,omitnil,omitempty" name:"YarnNodeLabel"`

	// Whether to start a service after scale-out (default: false).
	// <li>true: yes</li>.
	// <li>false: no</li>.
	EnableStartServiceFlag *bool `json:"EnableStartServiceFlag,omitnil,omitempty" name:"EnableStartServiceFlag"`

	// Specifications settings.
	ResourceSpec *NodeResourceSpec `json:"ResourceSpec,omitnil,omitempty" name:"ResourceSpec"`

	// Availability zone of the instance, such as ap-guangzhou-1. This parameter can also be obtained from the Zone field in the return value of [DescribeZones](https://www.tencentcloud.com/document/product/213/15707?from_cn_redirect=1).
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Subnet, which is the subnet at the time of cluster creation by default.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Configuration group specified for scale-out.
	ScaleOutServiceConfGroupsInfo []*ScaleOutServiceConfGroupsInfo `json:"ScaleOutServiceConfGroupsInfo,omitnil,omitempty" name:"ScaleOutServiceConfGroupsInfo"`

	// Node tag information: currently used only in Terraform.
	NodeMarks *NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`
}

type ScaleOutClusterRequest struct {
	*tchttp.BaseRequest
	
	// The node billing mode. Valid values:
	// <li>`POSTPAID_BY_HOUR`: The postpaid mode by hour.</li>
	// <li>`SPOTPAID`: The spot instance mode (for task nodes only).</li>
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

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

	// Scale-up node type and quantity.
	ScaleOutNodeConfig *ScaleOutNodeConfig `json:"ScaleOutNodeConfig,omitnil,omitempty" name:"ScaleOutNodeConfig"`

	// Unique random identifier with the time efficiency of 5 minutes, which needs to be specified by the caller to prevent the client from creating resources again, for example, a9a90aa6-****-****-****-fae36063280.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Setting of parameters related to monthly subscription. Through this parameter, you can specify the duration of purchase for monthly subscription instances, whether to set auto-renewal, and other attributes. This parameter is required when the specified instance is subject to the payment mode of prepaid.
	InstanceChargePrepaid *InstanceChargePrepaid `json:"InstanceChargePrepaid,omitnil,omitempty" name:"InstanceChargePrepaid"`

	// [Bootstrap Actions](https://www.tencentcloud.com/document/product/589/35656?from_cn_redirect=1) script settings.
	ScriptBootstrapActionConfig []*ScriptBootstrapActionConfig `json:"ScriptBootstrapActionConfig,omitnil,omitempty" name:"ScriptBootstrapActionConfig"`

	// Scale-out deployment service. New nodes inherit services deployed in the current node type by default, including default optional services. This parameter only supports optional service filling, for example: HDFS, YARN, and Impala have been deployed to existing task nodes. When API is used to scale out the task nodes without deploying Impala, only HDFS and YARN are filled for deployment services. For more details, see [Mapping Table of Component Names](https://www.tencentcloud.com/document/product/589/98760?from_cn_redirect=1).
	SoftDeployInfo []*int64 `json:"SoftDeployInfo,omitnil,omitempty" name:"SoftDeployInfo"`

	// Deployment process. By default, all scale-out service processes are deployed. Deployment processes can be modified. For example, HDFS, YARN, or Impala has been deployed for the current Task node. The default deployment services include DataNode,NodeManager,ImpalaServer. If users need to modify deployment process information, the deployment process can be DataNode, NodeManager, ImpalaServerCoordinator or DataNode, NodeManager, ImpalaServerExecutor. For more details, see [Mapping Table of Process Names](https://www.tencentcloud.com/document/product/589/98760?from_cn_redirect=1).
	ServiceNodeInfo []*int64 `json:"ServiceNodeInfo,omitnil,omitempty" name:"ServiceNodeInfo"`

	// Spread placement group ID list. Only one can be specified currently.
	// This parameter can be obtained by calling the DisasterRecoverGroupId field in the return value of the [DescribeDisasterRecoverGroups](https://www.tencentcloud.com/document/product/213/17810?from_cn_redirect=1) API.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// List of tags bound to scale-out nodes.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Resource type selected for scale-out with valid values "HOST","POD","MNode", where HOST indicates an ordinary CVM resource, POD indicates a resource provided by the TKE cluster or EKS cluster, and MNode indicates a fully managed resource type.
	HardwareSourceType *string `json:"HardwareSourceType,omitnil,omitempty" name:"HardwareSourceType"`

	// Pod-related resource information.
	PodSpecInfo *PodSpecInfo `json:"PodSpecInfo,omitnil,omitempty" name:"PodSpecInfo"`

	// Machine group name selected for ClickHouse cluster scale-out.
	ClickHouseClusterName *string `json:"ClickHouseClusterName,omitnil,omitempty" name:"ClickHouseClusterName"`

	// Machine group type selected for ClickHouse cluster scale-out. "New" indicates creating a group type, and "old" indicates using an existing group type.
	ClickHouseClusterType *string `json:"ClickHouseClusterType,omitnil,omitempty" name:"ClickHouseClusterType"`

	// Specified Yarn Node Label for scale-out.
	YarnNodeLabel *string `json:"YarnNodeLabel,omitnil,omitempty" name:"YarnNodeLabel"`

	// Whether to start a service after scale-out (default: false).
	// <li>true: yes</li>.
	// <li>false: no</li>.
	EnableStartServiceFlag *bool `json:"EnableStartServiceFlag,omitnil,omitempty" name:"EnableStartServiceFlag"`

	// Specifications settings.
	ResourceSpec *NodeResourceSpec `json:"ResourceSpec,omitnil,omitempty" name:"ResourceSpec"`

	// Availability zone of the instance, such as ap-guangzhou-1. This parameter can also be obtained from the Zone field in the return value of [DescribeZones](https://www.tencentcloud.com/document/product/213/15707?from_cn_redirect=1).
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Subnet, which is the subnet at the time of cluster creation by default.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Configuration group specified for scale-out.
	ScaleOutServiceConfGroupsInfo []*ScaleOutServiceConfGroupsInfo `json:"ScaleOutServiceConfGroupsInfo,omitnil,omitempty" name:"ScaleOutServiceConfGroupsInfo"`

	// Node tag information: currently used only in Terraform.
	NodeMarks *NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`
}

func (r *ScaleOutClusterRequest) 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 *ScaleOutClusterRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "InstanceChargeType")
	delete(f, "InstanceId")
	delete(f, "ScaleOutNodeConfig")
	delete(f, "ClientToken")
	delete(f, "InstanceChargePrepaid")
	delete(f, "ScriptBootstrapActionConfig")
	delete(f, "SoftDeployInfo")
	delete(f, "ServiceNodeInfo")
	delete(f, "DisasterRecoverGroupIds")
	delete(f, "Tags")
	delete(f, "HardwareSourceType")
	delete(f, "PodSpecInfo")
	delete(f, "ClickHouseClusterName")
	delete(f, "ClickHouseClusterType")
	delete(f, "YarnNodeLabel")
	delete(f, "EnableStartServiceFlag")
	delete(f, "ResourceSpec")
	delete(f, "Zone")
	delete(f, "SubnetId")
	delete(f, "ScaleOutServiceConfGroupsInfo")
	delete(f, "NodeMarks")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ScaleOutClusterRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ScaleOutClusterResponseParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Client token.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Scale-out process ID.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

	// Query process status and additional flow formation.
	TraceId *string `json:"TraceId,omitnil,omitempty" name:"TraceId"`

	// Order number.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DealNames []*string `json:"DealNames,omitnil,omitempty" name:"DealNames"`

	// Large order number.
	BillId *string `json:"BillId,omitnil,omitempty" name:"BillId"`

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

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

// Predefined struct for user
type ScaleOutInstanceRequestParams struct {
	// Time unit of scale-out. Valid values:
	// <li>s: Second. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	// <li>m: Month. When `PayMode` is 1, `TimeUnit` can only be `m`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Time span of scale-out, which needs to be used together with `TimeUnit`.
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

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

	// Instance billing mode. Valid value:
	// <li>0: Pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Client token.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Bootstrap script settings.
	PreExecutedFileSettings []*PreExecuteFileSettings `json:"PreExecutedFileSettings,omitnil,omitempty" name:"PreExecutedFileSettings"`

	// Number of task nodes to be added.
	TaskCount *uint64 `json:"TaskCount,omitnil,omitempty" name:"TaskCount"`

	// Number of core nodes to be added.
	CoreCount *uint64 `json:"CoreCount,omitnil,omitempty" name:"CoreCount"`

	// Processes unnecessary for scale-out.
	UnNecessaryNodeList []*uint64 `json:"UnNecessaryNodeList,omitnil,omitempty" name:"UnNecessaryNodeList"`

	// Number of router nodes to be added.
	RouterCount *uint64 `json:"RouterCount,omitnil,omitempty" name:"RouterCount"`

	// Deployed service.
	// <li>`SoftDeployInfo` and `ServiceNodeInfo` are in the same group and mutually exclusive with `UnNecessaryNodeList`.</li>
	// <li>The combination of `SoftDeployInfo` and `ServiceNodeInfo` is recommended.</li>
	SoftDeployInfo []*uint64 `json:"SoftDeployInfo,omitnil,omitempty" name:"SoftDeployInfo"`

	// Started process.
	ServiceNodeInfo []*uint64 `json:"ServiceNodeInfo,omitnil,omitempty" name:"ServiceNodeInfo"`

	// List of spread placement group IDs. Only one can be specified currently.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// List of tags bound to added nodes.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Resource type selected for scale-out. Valid values: "HOST","POD","MNode", where HOST indicates an ordinary CVM resource, POD indicates a resource provided by the TKE cluster or EKS cluster, and MNode indicates a fully managed resource type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`

	// Specified information such as pod specification and source for scale-out with pod resources.
	PodSpec *PodSpec `json:"PodSpec,omitnil,omitempty" name:"PodSpec"`

	// Server group name selected for ClickHouse cluster scale-out.
	ClickHouseClusterName *string `json:"ClickHouseClusterName,omitnil,omitempty" name:"ClickHouseClusterName"`

	// Server group type selected for ClickHouse cluster scale-out. Valid values: `new` (create a group) and `old` (select an existing group).
	ClickHouseClusterType *string `json:"ClickHouseClusterType,omitnil,omitempty" name:"ClickHouseClusterType"`

	// Yarn node label specified for rule-based scale-out.
	YarnNodeLabel *string `json:"YarnNodeLabel,omitnil,omitempty" name:"YarnNodeLabel"`

	// Custom pod permission and parameter
	PodParameter *PodParameter `json:"PodParameter,omitnil,omitempty" name:"PodParameter"`

	// Number of master nodes to be added.
	// When a ClickHouse cluster is scaled, this parameter does not take effect.
	// When a Kafka cluster is scaled, this parameter does not take effect.
	// When `HardwareResourceType` is `pod`, this parameter does not take effect.
	MasterCount *uint64 `json:"MasterCount,omitnil,omitempty" name:"MasterCount"`

	// Whether to start the service after scale-out. `true`: Yes; `false`: No.
	StartServiceAfterScaleOut *string `json:"StartServiceAfterScaleOut,omitnil,omitempty" name:"StartServiceAfterScaleOut"`

	// AZ, which defaults to the primary AZ of the cluster.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Subnet, which defaults to the subnet used when the cluster is created.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Pre-defined configuration set
	ScaleOutServiceConfAssign *string `json:"ScaleOutServiceConfAssign,omitnil,omitempty" name:"ScaleOutServiceConfAssign"`

	// Whether to enable auto-renewal. Valid values: `0` (no), `1` (yes).
	AutoRenew *int64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR. When the type is EMR, InstanceId is effective. When the type is ComputeResource, ComputeResourceId is used.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Advanced settings of computing resources.
	ComputeResourceAdvanceParams *ComputeResourceAdvanceParams `json:"ComputeResourceAdvanceParams,omitnil,omitempty" name:"ComputeResourceAdvanceParams"`

	// Node tag information: currently used only in Terraform.
	NodeMarks *NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`
}

type ScaleOutInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Time unit of scale-out. Valid values:
	// <li>s: Second. When `PayMode` is 0, `TimeUnit` can only be `s`.</li>
	// <li>m: Month. When `PayMode` is 1, `TimeUnit` can only be `m`.</li>
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Time span of scale-out, which needs to be used together with `TimeUnit`.
	TimeSpan *uint64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

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

	// Instance billing mode. Valid value:
	// <li>0: Pay-as-you-go.</li>
	PayMode *uint64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Client token.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Bootstrap script settings.
	PreExecutedFileSettings []*PreExecuteFileSettings `json:"PreExecutedFileSettings,omitnil,omitempty" name:"PreExecutedFileSettings"`

	// Number of task nodes to be added.
	TaskCount *uint64 `json:"TaskCount,omitnil,omitempty" name:"TaskCount"`

	// Number of core nodes to be added.
	CoreCount *uint64 `json:"CoreCount,omitnil,omitempty" name:"CoreCount"`

	// Processes unnecessary for scale-out.
	UnNecessaryNodeList []*uint64 `json:"UnNecessaryNodeList,omitnil,omitempty" name:"UnNecessaryNodeList"`

	// Number of router nodes to be added.
	RouterCount *uint64 `json:"RouterCount,omitnil,omitempty" name:"RouterCount"`

	// Deployed service.
	// <li>`SoftDeployInfo` and `ServiceNodeInfo` are in the same group and mutually exclusive with `UnNecessaryNodeList`.</li>
	// <li>The combination of `SoftDeployInfo` and `ServiceNodeInfo` is recommended.</li>
	SoftDeployInfo []*uint64 `json:"SoftDeployInfo,omitnil,omitempty" name:"SoftDeployInfo"`

	// Started process.
	ServiceNodeInfo []*uint64 `json:"ServiceNodeInfo,omitnil,omitempty" name:"ServiceNodeInfo"`

	// List of spread placement group IDs. Only one can be specified currently.
	DisasterRecoverGroupIds []*string `json:"DisasterRecoverGroupIds,omitnil,omitempty" name:"DisasterRecoverGroupIds"`

	// List of tags bound to added nodes.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Resource type selected for scale-out. Valid values: "HOST","POD","MNode", where HOST indicates an ordinary CVM resource, POD indicates a resource provided by the TKE cluster or EKS cluster, and MNode indicates a fully managed resource type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`

	// Specified information such as pod specification and source for scale-out with pod resources.
	PodSpec *PodSpec `json:"PodSpec,omitnil,omitempty" name:"PodSpec"`

	// Server group name selected for ClickHouse cluster scale-out.
	ClickHouseClusterName *string `json:"ClickHouseClusterName,omitnil,omitempty" name:"ClickHouseClusterName"`

	// Server group type selected for ClickHouse cluster scale-out. Valid values: `new` (create a group) and `old` (select an existing group).
	ClickHouseClusterType *string `json:"ClickHouseClusterType,omitnil,omitempty" name:"ClickHouseClusterType"`

	// Yarn node label specified for rule-based scale-out.
	YarnNodeLabel *string `json:"YarnNodeLabel,omitnil,omitempty" name:"YarnNodeLabel"`

	// Custom pod permission and parameter
	PodParameter *PodParameter `json:"PodParameter,omitnil,omitempty" name:"PodParameter"`

	// Number of master nodes to be added.
	// When a ClickHouse cluster is scaled, this parameter does not take effect.
	// When a Kafka cluster is scaled, this parameter does not take effect.
	// When `HardwareResourceType` is `pod`, this parameter does not take effect.
	MasterCount *uint64 `json:"MasterCount,omitnil,omitempty" name:"MasterCount"`

	// Whether to start the service after scale-out. `true`: Yes; `false`: No.
	StartServiceAfterScaleOut *string `json:"StartServiceAfterScaleOut,omitnil,omitempty" name:"StartServiceAfterScaleOut"`

	// AZ, which defaults to the primary AZ of the cluster.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Subnet, which defaults to the subnet used when the cluster is created.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Pre-defined configuration set
	ScaleOutServiceConfAssign *string `json:"ScaleOutServiceConfAssign,omitnil,omitempty" name:"ScaleOutServiceConfAssign"`

	// Whether to enable auto-renewal. Valid values: `0` (no), `1` (yes).
	AutoRenew *int64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR. When the type is EMR, InstanceId is effective. When the type is ComputeResource, ComputeResourceId is used.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Advanced settings of computing resources.
	ComputeResourceAdvanceParams *ComputeResourceAdvanceParams `json:"ComputeResourceAdvanceParams,omitnil,omitempty" name:"ComputeResourceAdvanceParams"`

	// Node tag information: currently used only in Terraform.
	NodeMarks *NodeMark `json:"NodeMarks,omitnil,omitempty" name:"NodeMarks"`
}

func (r *ScaleOutInstanceRequest) 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 *ScaleOutInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "TimeUnit")
	delete(f, "TimeSpan")
	delete(f, "InstanceId")
	delete(f, "PayMode")
	delete(f, "ClientToken")
	delete(f, "PreExecutedFileSettings")
	delete(f, "TaskCount")
	delete(f, "CoreCount")
	delete(f, "UnNecessaryNodeList")
	delete(f, "RouterCount")
	delete(f, "SoftDeployInfo")
	delete(f, "ServiceNodeInfo")
	delete(f, "DisasterRecoverGroupIds")
	delete(f, "Tags")
	delete(f, "HardwareResourceType")
	delete(f, "PodSpec")
	delete(f, "ClickHouseClusterName")
	delete(f, "ClickHouseClusterType")
	delete(f, "YarnNodeLabel")
	delete(f, "PodParameter")
	delete(f, "MasterCount")
	delete(f, "StartServiceAfterScaleOut")
	delete(f, "ZoneId")
	delete(f, "SubnetId")
	delete(f, "ScaleOutServiceConfAssign")
	delete(f, "AutoRenew")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	delete(f, "ComputeResourceAdvanceParams")
	delete(f, "NodeMarks")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ScaleOutInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type ScaleOutInstanceResponseParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Order number.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DealNames []*string `json:"DealNames,omitnil,omitempty" name:"DealNames"`

	// Client Token.
	ClientToken *string `json:"ClientToken,omitnil,omitempty" name:"ClientToken"`

	// Scale-out process ID.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

	// Large order number.
	BillId *string `json:"BillId,omitnil,omitempty" name:"BillId"`

	// TraceId for scale-out.
	TraceId *string `json:"TraceId,omitnil,omitempty" name:"TraceId"`

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

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

type ScaleOutNodeConfig struct {
	// Valid values of node type:
	//   <li>MASTER</li>
	//   <li>TASK</li>
	//   <li>CORE</li>
	//   <li>ROUTER</li>
	NodeFlag *string `json:"NodeFlag,omitnil,omitempty" name:"NodeFlag"`

	// The number of nodes.
	NodeCount *uint64 `json:"NodeCount,omitnil,omitempty" name:"NodeCount"`
}

type ScaleOutServiceConfGroupsInfo struct {
	// Component version name, for example, HDFS-2.8.5.
	ServiceComponentName *string `json:"ServiceComponentName,omitnil,omitempty" name:"ServiceComponentName"`

	// Configuration group name, for example, hdfs-core-defaultGroup. If the ConfGroupName parameter is passed in, the configuration group dimension is used.
	//                                                              If the ConfGroupName parameter is not passed in, the cluster dimension is used.
	ConfGroupName *string `json:"ConfGroupName,omitnil,omitempty" name:"ConfGroupName"`
}

type SceneSoftwareConfig struct {
	// The list of deployed components. The list of component options varies by `ProductVersion` (EMR version). For more information, see [Component Version](https://intl.cloud.tencent.com/document/product/589/20279?from_cn_redirect=1).
	// The instance type, `hive` or `flink`.
	Software []*string `json:"Software,omitnil,omitempty" name:"Software"`

	// The scenario name, which defaults to `Hadoop-Default`. For more details, see [here](https://intl.cloud.tencent.com/document/product/589/14624?from_cn_redirect=1). Valid values:
	// Hadoop-Kudu
	// Hadoop-Zookeeper
	// Hadoop-Presto
	// Hadoop-Hbase
	// Hadoop-Default
	SceneName *string `json:"SceneName,omitnil,omitempty" name:"SceneName"`
}

type SchedulerTaskDetail struct {
	// Steps.
	Step *string `json:"Step,omitnil,omitempty" name:"Step"`

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

	// Failure information.
	FailReason *string `json:"FailReason,omitnil,omitempty" name:"FailReason"`

	// ID used to obtain details.
	JobId *uint64 `json:"JobId,omitnil,omitempty" name:"JobId"`
}

type SchedulerTaskInfo struct {
	// Scheduler type
	SchedulerName *string `json:"SchedulerName,omitnil,omitempty" name:"SchedulerName"`

	// Operation type
	OperatorName *string `json:"OperatorName,omitnil,omitempty" name:"OperatorName"`

	// Start time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// End time.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Status.
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// Details.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Details []*SchedulerTaskDetail `json:"Details,omitnil,omitempty" name:"Details"`
}

type ScriptBootstrapActionConfig struct {
	// The COS URL of the script, in the format of `https://beijing-111111.cos.ap-beijing.myqcloud.com/data/test.sh`. For the COS bucket list, see [Bucket List](https://console.cloud.tencent.com/cos/bucket).
	CosFileURI *string `json:"CosFileURI,omitnil,omitempty" name:"CosFileURI"`

	// The execution time of the bootstrap action script. Valid values:
	// <li>`resourceAfter`: After node initialization</li>
	// <li>`clusterAfter`: After cluster start</li>
	// <li>`clusterBefore`: Before cluster start</li>
	ExecutionMoment *string `json:"ExecutionMoment,omitnil,omitempty" name:"ExecutionMoment"`

	// The execution script parameter. The parameter format must comply with standard shell specifications.
	Args []*string `json:"Args,omitnil,omitempty" name:"Args"`

	// The script file name.
	CosFileName *string `json:"CosFileName,omitnil,omitempty" name:"CosFileName"`

	// Remarks.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type SearchItem struct {
	// Searchable type.
	SearchType *string `json:"SearchType,omitnil,omitempty" name:"SearchType"`

	// Searchable value.
	SearchValue *string `json:"SearchValue,omitnil,omitempty" name:"SearchValue"`
}

type ServiceBasicRestartInfo struct {
	// The service name (required), such as HDFS.
	ServiceName *string `json:"ServiceName,omitnil,omitempty" name:"ServiceName"`

	// If it is left empty, all processes will be operated on.
	ComponentInfoList []*ComponentBasicRestartInfo `json:"ComponentInfoList,omitnil,omitempty" name:"ComponentInfoList"`
}

type ServiceNodeDetailInfo struct {
	// Process node IP
	Ip *string `json:"Ip,omitnil,omitempty" name:"Ip"`

	// Process type.
	NodeType *int64 `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Process name
	NodeName *string `json:"NodeName,omitnil,omitempty" name:"NodeName"`

	// Service component status
	ServiceStatus *int64 `json:"ServiceStatus,omitnil,omitempty" name:"ServiceStatus"`

	// Process monitoring status
	MonitorStatus *int64 `json:"MonitorStatus,omitnil,omitempty" name:"MonitorStatus"`

	// Service component status
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Process port information
	PortsInfo *string `json:"PortsInfo,omitnil,omitempty" name:"PortsInfo"`

	// Last restart time.
	LastRestartTime *string `json:"LastRestartTime,omitnil,omitempty" name:"LastRestartTime"`

	// Node type.
	Flag *int64 `json:"Flag,omitnil,omitempty" name:"Flag"`

	// Configuration group ID.
	ConfGroupId *int64 `json:"ConfGroupId,omitnil,omitempty" name:"ConfGroupId"`

	// Configuration group name.
	ConfGroupName *string `json:"ConfGroupName,omitnil,omitempty" name:"ConfGroupName"`

	// Whether the node needs to be restarted
	ConfStatus *int64 `json:"ConfStatus,omitnil,omitempty" name:"ConfStatus"`

	// Process detection information
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	ServiceDetectionInfo []*ServiceProcessFunctionInfo `json:"ServiceDetectionInfo,omitnil,omitempty" name:"ServiceDetectionInfo"`

	// Node type.
	NodeFlagFilter *string `json:"NodeFlagFilter,omitnil,omitempty" name:"NodeFlagFilter"`

	// Process health status
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	HealthStatus *HealthStatus `json:"HealthStatus,omitnil,omitempty" name:"HealthStatus"`

	// Whether the role supports monitoring.
	IsSupportRoleMonitor *bool `json:"IsSupportRoleMonitor,omitnil,omitempty" name:"IsSupportRoleMonitor"`

	// Suspension policy
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	StopPolicies []*RestartPolicy `json:"StopPolicies,omitnil,omitempty" name:"StopPolicies"`

	// Strong validation of the API in a test environment. This strong validation doesn't exist on the current network, but it does exist in the data returned by the emrcc interface. If it’s not applied, an error will be reported. Omitting it will result in an error.
	HAState *string `json:"HAState,omitnil,omitempty" name:"HAState"`

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

	// Whether the federation is supported.
	IsFederation *bool `json:"IsFederation,omitnil,omitempty" name:"IsFederation"`

	// Whether the DataNode is in maintenance status.
	DataNodeMaintenanceState *int64 `json:"DataNodeMaintenanceState,omitnil,omitempty" name:"DataNodeMaintenanceState"`
}

type ServiceProcessFunctionInfo struct {
	// Detection alarm level.
	DetectAlert *string `json:"DetectAlert,omitnil,omitempty" name:"DetectAlert"`

	// Detection feature description
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: DetetcFunctionKey is deprecated.
	DetetcFunctionKey *string `json:"DetetcFunctionKey,omitnil,omitempty" name:"DetetcFunctionKey"`

	// Detection feature result
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: DetetcFunctionValue is deprecated.
	DetetcFunctionValue *string `json:"DetetcFunctionValue,omitnil,omitempty" name:"DetetcFunctionValue"`

	// Detection results.
	// Note: This field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: DetetcTime is deprecated.
	DetetcTime *string `json:"DetetcTime,omitnil,omitempty" name:"DetetcTime"`

	// Detection feature description.
	DetectFunctionKey *string `json:"DetectFunctionKey,omitnil,omitempty" name:"DetectFunctionKey"`

	// Detection feature result.
	DetectFunctionValue *string `json:"DetectFunctionValue,omitnil,omitempty" name:"DetectFunctionValue"`

	// Detection result.
	DetectTime *string `json:"DetectTime,omitnil,omitempty" name:"DetectTime"`
}

// Predefined struct for user
type SetNodeResourceConfigDefaultRequestParams struct {
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Configuration ID.
	ResourceConfigId *uint64 `json:"ResourceConfigId,omitnil,omitempty" name:"ResourceConfigId"`

	// Specification node type, with the valid values of CORE, TASK, and ROUTER.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Hardware type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

type SetNodeResourceConfigDefaultRequest struct {
	*tchttp.BaseRequest
	
	// Cluster instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// Configuration ID.
	ResourceConfigId *uint64 `json:"ResourceConfigId,omitnil,omitempty" name:"ResourceConfigId"`

	// Specification node type, with the valid values of CORE, TASK, and ROUTER.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`

	// Hardware type.
	HardwareResourceType *string `json:"HardwareResourceType,omitnil,omitempty" name:"HardwareResourceType"`
}

func (r *SetNodeResourceConfigDefaultRequest) 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 *SetNodeResourceConfigDefaultRequest) 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, "ResourceConfigId")
	delete(f, "ResourceType")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	delete(f, "HardwareResourceType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "SetNodeResourceConfigDefaultRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

type ShortNodeInfo struct {
	// Node type: Master/Core/Task/Router/Common.
	NodeType *string `json:"NodeType,omitnil,omitempty" name:"NodeType"`

	// Number of nodes.
	NodeSize *uint64 `json:"NodeSize,omitnil,omitempty" name:"NodeSize"`
}

type SoftDependInfo struct {
	// The component name.
	SoftName *string `json:"SoftName,omitnil,omitempty" name:"SoftName"`

	// Whether the component is required.
	Required *bool `json:"Required,omitnil,omitempty" name:"Required"`
}

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

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

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

	// Start time.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Duration.
	Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"`

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

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

	// Number of cores multiplied by seconds.
	CoreSeconds *int64 `json:"CoreSeconds,omitnil,omitempty" name:"CoreSeconds"`

	// Memory MB multiplied by seconds.
	MemorySeconds *string `json:"MemorySeconds,omitnil,omitempty" name:"MemorySeconds"`

	// Insight result.
	Insight *string `json:"Insight,omitnil,omitempty" name:"Insight"`
}

type SparkQuery struct {
	// Execution statement.
	Statement *string `json:"Statement,omitnil,omitempty" name:"Statement"`

	// Execution duration (ms).
	Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"`

	// Execution status.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Query ID.
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`

	// Number of scanned partitions.
	ScanPartitionNum *int64 `json:"ScanPartitionNum,omitnil,omitempty" name:"ScanPartitionNum"`

	// Total number of scanned rows.
	ScanRowNum *int64 `json:"ScanRowNum,omitnil,omitempty" name:"ScanRowNum"`

	// Total number of scanned files.
	ScanFileNum *int64 `json:"ScanFileNum,omitnil,omitempty" name:"ScanFileNum"`

	// Total data volume scanned by query (bytes).
	ScanTotalData *int64 `json:"ScanTotalData,omitnil,omitempty" name:"ScanTotalData"`

	// Application ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ApplicationId []*string `json:"ApplicationId,omitnil,omitempty" name:"ApplicationId"`

	// Total number of output rows.
	OutputRowNum *int64 `json:"OutputRowNum,omitnil,omitempty" name:"OutputRowNum"`

	// Total number of output files.
	OutputFileNum *int64 `json:"OutputFileNum,omitnil,omitempty" name:"OutputFileNum"`

	// Number of output partitions.
	OutputPartitionNum *int64 `json:"OutputPartitionNum,omitnil,omitempty" name:"OutputPartitionNum"`

	// Total output data volume (bytes).
	OutputTotalData *int64 `json:"OutputTotalData,omitnil,omitempty" name:"OutputTotalData"`

	// Start time.
	BeginTime *int64 `json:"BeginTime,omitnil,omitempty" name:"BeginTime"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

type StageInfoDetail struct {
	// Steps.
	Stage *string `json:"Stage,omitnil,omitempty" name:"Stage"`

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

	// Indicates whether to display
	IsShow *bool `json:"IsShow,omitnil,omitempty" name:"IsShow"`

	// Whether it is a subprocess
	IsSubFlow *bool `json:"IsSubFlow,omitnil,omitempty" name:"IsSubFlow"`

	// Subprocess tag.
	SubFlowFlag *string `json:"SubFlowFlag,omitnil,omitempty" name:"SubFlowFlag"`

	// Step execution status. 0: not started, 1: in progress, 2: completed, 3: partially completed, -1: failed
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Step running status description.
	Desc *string `json:"Desc,omitnil,omitempty" name:"Desc"`

	// Running progress.
	Progress *float64 `json:"Progress,omitnil,omitempty" name:"Progress"`

	// Start time
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Starttime *string `json:"Starttime,omitnil,omitempty" name:"Starttime"`

	// End time
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Endtime *string `json:"Endtime,omitnil,omitempty" name:"Endtime"`

	// Whether details are included.
	HadWoodDetail *bool `json:"HadWoodDetail,omitnil,omitempty" name:"HadWoodDetail"`

	// Wood subprocess ID.
	WoodJobId *uint64 `json:"WoodJobId,omitnil,omitempty" name:"WoodJobId"`

	// Multi-language version key.
	LanguageKey *string `json:"LanguageKey,omitnil,omitempty" name:"LanguageKey"`

	// Reason for stage failure.
	FailedReason *string `json:"FailedReason,omitnil,omitempty" name:"FailedReason"`

	// Step duration.
	TimeConsuming *string `json:"TimeConsuming,omitnil,omitempty" name:"TimeConsuming"`

	// id, for frontend
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`
}

type StarRocksQueryInfo struct {
	// Submission IP address.
	ClientIP *string `json:"ClientIP,omitnil,omitempty" name:"ClientIP"`

	// Total CPU time (ns).
	CPUCost *int64 `json:"CPUCost,omitnil,omitempty" name:"CPUCost"`

	// Default DB.
	DefaultDB *string `json:"DefaultDB,omitnil,omitempty" name:"DefaultDB"`

	// End time.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Execution IP address.
	ExecutionIP *string `json:"ExecutionIP,omitnil,omitempty" name:"ExecutionIP"`

	// Query ID.
	QueryID *string `json:"QueryID,omitnil,omitempty" name:"QueryID"`

	// Query type.
	QueryType *string `json:"QueryType,omitnil,omitempty" name:"QueryType"`

	// Total memory consumed (bytes).
	MemCost *int64 `json:"MemCost,omitnil,omitempty" name:"MemCost"`

	// CPU usage (ns) at the plan stage.
	PlanCpuCosts *int64 `json:"PlanCpuCosts,omitnil,omitempty" name:"PlanCpuCosts"`

	// Memory usage (bytes) at the plan stage.
	PlanMemCosts *int64 `json:"PlanMemCosts,omitnil,omitempty" name:"PlanMemCosts"`

	// Execution duration.
	QueryTime *int64 `json:"QueryTime,omitnil,omitempty" name:"QueryTime"`

	// Resource group.
	ResourceGroup *string `json:"ResourceGroup,omitnil,omitempty" name:"ResourceGroup"`

	// Number of rows obtained.
	ReturnRows *int64 `json:"ReturnRows,omitnil,omitempty" name:"ReturnRows"`

	// Scanned data volume (bytes).
	ScanBytes *int64 `json:"ScanBytes,omitnil,omitempty" name:"ScanBytes"`

	// Number of scanned rows.
	ScanRows *int64 `json:"ScanRows,omitnil,omitempty" name:"ScanRows"`

	// Start time.
	BeginTime *int64 `json:"BeginTime,omitnil,omitempty" name:"BeginTime"`

	// Execution status.
	ExecutionState *string `json:"ExecutionState,omitnil,omitempty" name:"ExecutionState"`

	// Execution statement.
	ExecutionStatement *string `json:"ExecutionStatement,omitnil,omitempty" name:"ExecutionStatement"`

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

// Predefined struct for user
type StartStopServiceOrMonitorRequestParams struct {
	// The cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The operation type. Valid values:
	// <li>StartService: Start service</li>
	// <li>StopService: Stop service</li>
	// <li>StartMonitor: Start maintenance</li>
	// <li>StopMonitor: Stop maintenance</li>
	// <li>RestartService: Restart service. If this type is selected, "StrategyConfig" is required.</li>
	OpType *string `json:"OpType,omitnil,omitempty" name:"OpType"`

	// The operation scope.
	OpScope *OpScope `json:"OpScope,omitnil,omitempty" name:"OpScope"`

	// The operation policy.
	StrategyConfig *StrategyConfig `json:"StrategyConfig,omitnil,omitempty" name:"StrategyConfig"`

	// Parameters used for suspending services.
	StopParams *StopParams `json:"StopParams,omitnil,omitempty" name:"StopParams"`

	// This parameter is available only when OpType is <li>StopMonitor</li>. True indicates that the system enters the maintenance mode but still monitors processes without starting them.
	KeepMonitorButNotRecoverProcess *bool `json:"KeepMonitorButNotRecoverProcess,omitnil,omitempty" name:"KeepMonitorButNotRecoverProcess"`
}

type StartStopServiceOrMonitorRequest struct {
	*tchttp.BaseRequest
	
	// The cluster ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The operation type. Valid values:
	// <li>StartService: Start service</li>
	// <li>StopService: Stop service</li>
	// <li>StartMonitor: Start maintenance</li>
	// <li>StopMonitor: Stop maintenance</li>
	// <li>RestartService: Restart service. If this type is selected, "StrategyConfig" is required.</li>
	OpType *string `json:"OpType,omitnil,omitempty" name:"OpType"`

	// The operation scope.
	OpScope *OpScope `json:"OpScope,omitnil,omitempty" name:"OpScope"`

	// The operation policy.
	StrategyConfig *StrategyConfig `json:"StrategyConfig,omitnil,omitempty" name:"StrategyConfig"`

	// Parameters used for suspending services.
	StopParams *StopParams `json:"StopParams,omitnil,omitempty" name:"StopParams"`

	// This parameter is available only when OpType is <li>StopMonitor</li>. True indicates that the system enters the maintenance mode but still monitors processes without starting them.
	KeepMonitorButNotRecoverProcess *bool `json:"KeepMonitorButNotRecoverProcess,omitnil,omitempty" name:"KeepMonitorButNotRecoverProcess"`
}

func (r *StartStopServiceOrMonitorRequest) 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 *StartStopServiceOrMonitorRequest) 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, "OpType")
	delete(f, "OpScope")
	delete(f, "StrategyConfig")
	delete(f, "StopParams")
	delete(f, "KeepMonitorButNotRecoverProcess")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "StartStopServiceOrMonitorRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

type StopParams struct {
	// Security mode: safe.
	// Default mode: default.
	StopPolicy *string `json:"StopPolicy,omitnil,omitempty" name:"StopPolicy"`

	// Thread Count
	ThreadCount *int64 `json:"ThreadCount,omitnil,omitempty" name:"ThreadCount"`
}

type StorageSummaryDistribution struct {
	// Data item.
	MetricItem *string `json:"MetricItem,omitnil,omitempty" name:"MetricItem"`

	// Data item description.
	MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"`

	// Sampling value.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Dps []*Dps `json:"Dps,omitnil,omitempty" name:"Dps"`
}

type StrategyConfig struct {
	// 0: disable rolling restart.
	// 1: enable rolling start.
	RollingRestartSwitch *int64 `json:"RollingRestartSwitch,omitnil,omitempty" name:"RollingRestartSwitch"`

	// Rolling restart quantity per batch, which is up to 99999.
	BatchSize *int64 `json:"BatchSize,omitnil,omitempty" name:"BatchSize"`

	// Stop and wait time for rolling restart per batch, with the maximum interval of 5 minutes and the unit of seconds.
	TimeWait *int64 `json:"TimeWait,omitnil,omitempty" name:"TimeWait"`

	// Operation failure processing policy. 0: Block upon failure, 1: Automatically skipping failure.
	DealOnFail *int64 `json:"DealOnFail,omitnil,omitempty" name:"DealOnFail"`

	// Parameters required in the instruction.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Args []*Arg `json:"Args,omitnil,omitempty" name:"Args"`
}

type SubnetInfo struct {
	// Subnet information (name).
	SubnetName *string `json:"SubnetName,omitnil,omitempty" name:"SubnetName"`

	// Subnet information (ID).
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
}

type TableSchemaItem struct {
	// Column identifier
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Whether it is sortable by this column
	Sortable *bool `json:"Sortable,omitnil,omitempty" name:"Sortable"`

	// Whether it is filterable
	WithFilter *bool `json:"WithFilter,omitnil,omitempty" name:"WithFilter"`

	// Filtered candidate set
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Candidates []*string `json:"Candidates,omitnil,omitempty" name:"Candidates"`

	// Whether it is clickable.
	Clickable *bool `json:"Clickable,omitnil,omitempty" name:"Clickable"`

	// Display name.
	Title *string `json:"Title,omitnil,omitempty" name:"Title"`
}

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

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

type Taint struct {
	// Taint Key
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

	// Taint Value
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`

	// Taint Effect
	Effect *string `json:"Effect,omitnil,omitempty" name:"Effect"`
}

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

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

	// Unique parameter identifier.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

	// Whether it is editable, "true" or "false".
	Editable *string `json:"Editable,omitnil,omitempty" name:"Editable"`
}

// Predefined struct for user
type TerminateClusterNodesRequestParams struct {
	// The instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The list of resources to be terminated.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// Valid values of node type:
	//   <li>MASTER</li>
	//   <li>TASK</li>
	//   <li>CORE</li>
	//   <li>ROUTER</li>
	NodeFlag *string `json:"NodeFlag,omitnil,omitempty" name:"NodeFlag"`

	// The graceful scale-in feature. Valid values:
	//   <li>`true`: Enabled.</li>
	//   <li>`false`: Disabled.</li>
	GraceDownFlag *bool `json:"GraceDownFlag,omitnil,omitempty" name:"GraceDownFlag"`

	// The graceful scale-in wait time in seconds. Value range: 60–1800.
	GraceDownTime *int64 `json:"GraceDownTime,omitnil,omitempty" name:"GraceDownTime"`
}

type TerminateClusterNodesRequest struct {
	*tchttp.BaseRequest
	
	// The instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// The list of resources to be terminated.
	CvmInstanceIds []*string `json:"CvmInstanceIds,omitnil,omitempty" name:"CvmInstanceIds"`

	// Valid values of node type:
	//   <li>MASTER</li>
	//   <li>TASK</li>
	//   <li>CORE</li>
	//   <li>ROUTER</li>
	NodeFlag *string `json:"NodeFlag,omitnil,omitempty" name:"NodeFlag"`

	// The graceful scale-in feature. Valid values:
	//   <li>`true`: Enabled.</li>
	//   <li>`false`: Disabled.</li>
	GraceDownFlag *bool `json:"GraceDownFlag,omitnil,omitempty" name:"GraceDownFlag"`

	// The graceful scale-in wait time in seconds. Value range: 60–1800.
	GraceDownTime *int64 `json:"GraceDownTime,omitnil,omitempty" name:"GraceDownTime"`
}

func (r *TerminateClusterNodesRequest) 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 *TerminateClusterNodesRequest) 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, "CvmInstanceIds")
	delete(f, "NodeFlag")
	delete(f, "GraceDownFlag")
	delete(f, "GraceDownTime")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "TerminateClusterNodesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type TerminateClusterNodesResponseParams struct {
	// The scale-in process ID.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

// Predefined struct for user
type TerminateInstanceRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// ID of terminated node. This parameter is reserved and does not need to be configured.
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR. When the type is EMR, InstanceId is effective. When the type is ComputeResource, ComputeResourceId is used.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

type TerminateInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// ID of terminated node. This parameter is reserved and does not need to be configured.
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`

	// The type can be ComputeResource, EMR, or a default value. The default value is EMR. When the type is EMR, InstanceId is effective. When the type is ComputeResource, ComputeResourceId is used.
	ResourceBaseType *string `json:"ResourceBaseType,omitnil,omitempty" name:"ResourceBaseType"`

	// Computing resource ID.
	ComputeResourceId *string `json:"ComputeResourceId,omitnil,omitempty" name:"ComputeResourceId"`
}

func (r *TerminateInstanceRequest) 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 *TerminateInstanceRequest) 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, "ResourceIds")
	delete(f, "ResourceBaseType")
	delete(f, "ComputeResourceId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "TerminateInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type TerminateSLInstanceRequestParams struct {
	// Instance unique identifier (string).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

type TerminateSLInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance unique identifier (string).
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`
}

func (r *TerminateSLInstanceRequest) 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 *TerminateSLInstanceRequest) 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", "TerminateSLInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

// Predefined struct for user
type TerminateTasksRequestParams struct {
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// List of resource IDs of the node to be terminated. The resource ID is in the format of `emr-vm-xxxxxxxx`. A valid resource ID can be queried in the [console](https://console.cloud.tencent.com/emr/static/hardware).
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`
}

type TerminateTasksRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// List of resource IDs of the node to be terminated. The resource ID is in the format of `emr-vm-xxxxxxxx`. A valid resource ID can be queried in the [console](https://console.cloud.tencent.com/emr/static/hardware).
	ResourceIds []*string `json:"ResourceIds,omitnil,omitempty" name:"ResourceIds"`
}

func (r *TerminateTasksRequest) 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 *TerminateTasksRequest) 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, "ResourceIds")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "TerminateTasksRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

type TimeAutoScaleStrategy struct {
	// Policy name, which is unique within one cluster.
	StrategyName *string `json:"StrategyName,omitnil,omitempty" name:"StrategyName"`

	// Cooling time after policy trigger, during which auto scaling cannot be triggered.
	IntervalTime *uint64 `json:"IntervalTime,omitnil,omitempty" name:"IntervalTime"`

	// Scaling action. 1: scale-out, 2: scale-in.
	ScaleAction *uint64 `json:"ScaleAction,omitnil,omitempty" name:"ScaleAction"`

	// Scaling amount.
	ScaleNum *uint64 `json:"ScaleNum,omitnil,omitempty" name:"ScaleNum"`

	// Rule status. 1: valid; 2: invalid; 3: suspended. This field is required.
	StrategyStatus *uint64 `json:"StrategyStatus,omitnil,omitempty" name:"StrategyStatus"`

	// Rule priority. The smaller value indicates the higher priority.
	Priority *uint64 `json:"Priority,omitnil,omitempty" name:"Priority"`

	// When multiple rules are triggered at the same time and some are not really executed, retries will be performed within this time range.
	RetryValidTime *uint64 `json:"RetryValidTime,omitnil,omitempty" name:"RetryValidTime"`

	// Time scaling repetition policy
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	RepeatStrategy *RepeatStrategy `json:"RepeatStrategy,omitnil,omitempty" name:"RepeatStrategy"`

	// Unique policy ID.
	StrategyId *uint64 `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`

	// Graceful scale-in switch.
	GraceDownFlag *bool `json:"GraceDownFlag,omitnil,omitempty" name:"GraceDownFlag"`

	// Graceful scale-in wait time.
	GraceDownTime *int64 `json:"GraceDownTime,omitnil,omitempty" name:"GraceDownTime"`

	// Bound tag list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tags []*Tag `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Preset configuration group.
	ConfigGroupAssigned *string `json:"ConfigGroupAssigned,omitnil,omitempty" name:"ConfigGroupAssigned"`

	// Calculation method of scale-out resources. Valid values: "DEFAULT","INSTANCE", "CPU" and "MEMORYGB".
	// "DEFAULT" indicates the default method, which is the same as "INSTANCE".
	// "INSTANCE" indicates calculation based on nodes (default mode).
	// "CPU" indicates calculation based on the quantity of cores of the machine.
	// "MEMORYGB" indicates calculation based on the memory size of the machine.
	MeasureMethod *string `json:"MeasureMethod,omitnil,omitempty" name:"MeasureMethod"`

	// Termination policy. "DEFAULT" denotes the default policy, which indicates that scale-in is triggered by scale-in rules. "TIMING" denotes timed destruction.
	TerminatePolicy *string `json:"TerminatePolicy,omitnil,omitempty" name:"TerminatePolicy"`

	// Maximum use time in seconds. The minimum value is 1 hour, and the maximum is 24 hours.
	MaxUse *int64 `json:"MaxUse,omitnil,omitempty" name:"MaxUse"`

	// Node deployment service list. Fill in only HDFS and YARN. For details, see [Mapping Table for Component Names](https://intl.cloud.tencent.com/document/product/589/98760?from_cn_redirect=1).
	// Note: This field may return null, indicating that no valid values can be obtained.
	SoftDeployInfo []*int64 `json:"SoftDeployInfo,omitnil,omitempty" name:"SoftDeployInfo"`

	// Startup process list
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	ServiceNodeInfo []*int64 `json:"ServiceNodeInfo,omitnil,omitempty" name:"ServiceNodeInfo"`

	// Compensatory scale-out. 0: disable, 1: enable.
	CompensateFlag *int64 `json:"CompensateFlag,omitnil,omitempty" name:"CompensateFlag"`

	// Scaling group ID.
	GroupId *int64 `json:"GroupId,omitnil,omitempty" name:"GroupId"`

	// Graceful scale-in business pod tag. Nodes are scaled in when the pod mentioned above is not found on the node or the graceful scale-in time is passed.
	GraceDownLabel []*TkeLabel `json:"GraceDownLabel,omitnil,omitempty" name:"GraceDownLabel"`
}

type TkeLabel struct {
	// Label Name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Label Value
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`
}

type TopologyInfo struct {
	// Availability zone ID.
	ZoneId *int64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Availability information.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Subnet information
	// Note: This field may return `null`, indicating that no valid value can be obtained.
	SubnetInfoList []*SubnetInfo `json:"SubnetInfoList,omitnil,omitempty" name:"SubnetInfoList"`

	// Node information
	// Note: This field may return `null`, indicating that no valid value can be obtained.
	NodeInfoList []*ShortNodeInfo `json:"NodeInfoList,omitnil,omitempty" name:"NodeInfoList"`
}

type TriggerCondition struct {
	// Conditional comparison method. 1: greater than, 2: less than, 3: greater than or equal to, 4: less than or equal to
	CompareMethod *int64 `json:"CompareMethod,omitnil,omitempty" name:"CompareMethod"`

	// Conditional threshold.
	Threshold *float64 `json:"Threshold,omitnil,omitempty" name:"Threshold"`
}

type TrinoQueryInfo struct {
	// catalog
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// IP address used for submission.
	ClientIpAddr *string `json:"ClientIpAddr,omitnil,omitempty" name:"ClientIpAddr"`

	// Number of segments.
	CompletedSplits *string `json:"CompletedSplits,omitnil,omitempty" name:"CompletedSplits"`

	// CPU time.
	CpuTime *int64 `json:"CpuTime,omitnil,omitempty" name:"CpuTime"`

	// Cumulative memory.
	CumulativeMemory *int64 `json:"CumulativeMemory,omitnil,omitempty" name:"CumulativeMemory"`

	// Execution duration.
	DurationMillis *int64 `json:"DurationMillis,omitnil,omitempty" name:"DurationMillis"`

	// End time (seconds).
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Query ID.
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`

	// Internal transmission volume.
	InternalNetworkBytes *int64 `json:"InternalNetworkBytes,omitnil,omitempty" name:"InternalNetworkBytes"`

	// Number of output bytes.
	OutputBytes *int64 `json:"OutputBytes,omitnil,omitempty" name:"OutputBytes"`

	// Peak memory.
	PeakUserMemoryBytes *int64 `json:"PeakUserMemoryBytes,omitnil,omitempty" name:"PeakUserMemoryBytes"`

	// Physical input volume.
	PhysicalInputBytes *int64 `json:"PhysicalInputBytes,omitnil,omitempty" name:"PhysicalInputBytes"`

	// Processed input volume.
	ProcessedInputBytes *int64 `json:"ProcessedInputBytes,omitnil,omitempty" name:"ProcessedInputBytes"`

	// Compilation duration.
	SqlCompileTime *int64 `json:"SqlCompileTime,omitnil,omitempty" name:"SqlCompileTime"`

	// Start time (seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Execution status.
	State *string `json:"State,omitnil,omitempty" name:"State"`

	// Execution statement.
	Statement *string `json:"Statement,omitnil,omitempty" name:"Statement"`

	// User who submits requests.
	User *string `json:"User,omitnil,omitempty" name:"User"`

	// Number of bytes written.
	WrittenBytes *int64 `json:"WrittenBytes,omitnil,omitempty" name:"WrittenBytes"`
}

type UpdateInstanceSettings struct {
	// Memory capacity in GB
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Number of CPU cores
	CPUCores *uint64 `json:"CPUCores,omitnil,omitempty" name:"CPUCores"`

	// Machine resource ID (EMR resource identifier)
	ResourceId *string `json:"ResourceId,omitnil,omitempty" name:"ResourceId"`

	// Target machine specification
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`
}

type UserInfoForUserManager struct {
	// Username
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// The group to which the user belongs
	UserGroup *string `json:"UserGroup,omitnil,omitempty" name:"UserGroup"`

	// Password
	PassWord *string `json:"PassWord,omitnil,omitempty" name:"PassWord"`

	// Remarks
	ReMark *string `json:"ReMark,omitnil,omitempty" name:"ReMark"`

	// User subgroup.
	Groups []*string `json:"Groups,omitnil,omitempty" name:"Groups"`
}

type UserManagerFilter struct {
	// Username.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// User source.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

	// Group name.
	Groups *string `json:"Groups,omitnil,omitempty" name:"Groups"`
}

type UserManagerUserBriefInfo struct {
	// Username
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// The group to which the user belongs
	UserGroup *string `json:"UserGroup,omitnil,omitempty" name:"UserGroup"`

	// `Manager` represents an admin, and `NormalUser` represents a general user.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

	// User creation time.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Whether the corresponding Keytab file of the user is available for download. This parameter applies only to a Kerberos-enabled cluster.
	SupportDownLoadKeyTab *bool `json:"SupportDownLoadKeyTab,omitnil,omitempty" name:"SupportDownLoadKeyTab"`

	// Download address of the keytab file.
	DownLoadKeyTabUrl *string `json:"DownLoadKeyTabUrl,omitnil,omitempty" name:"DownLoadKeyTabUrl"`
}

type VPCSettings struct {
	// VPC ID
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
}

type VirtualPrivateCloud struct {
	// The VPC ID.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// The subnet ID.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`
}

type WeekRepeatStrategy struct {
	// Specific time for repetition task execution, such as 01:02:00.
	ExecuteAtTimeOfDay *string `json:"ExecuteAtTimeOfDay,omitnil,omitempty" name:"ExecuteAtTimeOfDay"`

	// Ordinal number description of the day of a week, for example, [1,3,4] indicates Monday, Wednesday, and Thursday.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	DaysOfWeek []*uint64 `json:"DaysOfWeek,omitnil,omitempty" name:"DaysOfWeek"`
}

type ZoneDetailPriceResult struct {
	// Availability zone ID.
	ZoneId *string `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Price details by node
	NodeDetailPrice []*NodeDetailPriceResult `json:"NodeDetailPrice,omitnil,omitempty" name:"NodeDetailPrice"`
}

type ZoneResourceConfiguration struct {
	// The VPC configuration information. This parameter is used to specify the VPC ID, subnet ID and other information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	VirtualPrivateCloud *VirtualPrivateCloud `json:"VirtualPrivateCloud,omitnil,omitempty" name:"VirtualPrivateCloud"`

	// The instance location. This parameter is used to specify the AZ, project, and other attributes of the instance.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Placement *Placement `json:"Placement,omitnil,omitempty" name:"Placement"`

	// The specs of all nodes.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AllNodeResourceSpec *AllNodeResourceSpec `json:"AllNodeResourceSpec,omitnil,omitempty" name:"AllNodeResourceSpec"`

	// Leave ZoneTag empty in the case of a single availability zone. In the case of a dual-AZ deployment, select master for the first availability zone's ZoneTag and standby for the second. In the case of a three-AZ deployment, select master for the first availability zone's ZoneTag, standby for the second, and third-party for the third. Valid values.
	//   <li>master</li>
	//   <li>standby</li>
	//   <li>third-party</li>
	ZoneTag *string `json:"ZoneTag,omitnil,omitempty" name:"ZoneTag"`
}

type ZoneSetting struct {
	// Availability zone name
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// AZ VPC and subnet.
	VPCSettings *VPCSettings `json:"VPCSettings,omitnil,omitempty" name:"VPCSettings"`

	// Number of AZ nodes.
	NodeNum *int64 `json:"NodeNum,omitnil,omitempty" name:"NodeNum"`
}