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

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

type AccessInfo struct {
	// Methods to visit the engine
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessType *string `json:"AccessType,omitnil,omitempty" name:"AccessType"`

	// URL that visits the engine and part of internal parameters should be taken place according to the actual situation.
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessConnectionInfos []*string `json:"AccessConnectionInfos,omitnil,omitempty" name:"AccessConnectionInfos"`
}

// Predefined struct for user
type AddUsersToWorkGroupRequestParams struct {
	// Information about working groups and users to be operated
	AddInfo *UserIdSetOfWorkGroupId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

type AddUsersToWorkGroupRequest struct {
	*tchttp.BaseRequest
	
	// Information about working groups and users to be operated
	AddInfo *UserIdSetOfWorkGroupId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

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

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

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

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

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

// Predefined struct for user
type AlterDMSDatabaseRequestParams struct {
	// Current name
	CurrentName *string `json:"CurrentName,omitnil,omitempty" name:"CurrentName"`

	// Schema name
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Path
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Basic object
	Asset *Asset `json:"Asset,omitnil,omitempty" name:"Asset"`


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

type AlterDMSDatabaseRequest struct {
	*tchttp.BaseRequest
	
	// Current name
	CurrentName *string `json:"CurrentName,omitnil,omitempty" name:"CurrentName"`

	// Schema name
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Path
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Basic object
	Asset *Asset `json:"Asset,omitnil,omitempty" name:"Asset"`

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

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

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

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

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

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

type Asset struct {
	// Primary key
	// Note: This field may return null, indicating that no valid values can be obtained.
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// Name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Object GUID value
	// Note: This field may return null, indicating that no valid values can be obtained.
	Guid *string `json:"Guid,omitnil,omitempty" name:"Guid"`

	// Data directory
	// Note: This field may return null, indicating that no valid values can be obtained.
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

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

	// Object owner
	Owner *string `json:"Owner,omitnil,omitempty" name:"Owner"`

	// Object owner account
	OwnerAccount *string `json:"OwnerAccount,omitnil,omitempty" name:"OwnerAccount"`

	// Permission
	PermValues []*KVPair `json:"PermValues,omitnil,omitempty" name:"PermValues"`

	// Additional attributes
	Params []*KVPair `json:"Params,omitnil,omitempty" name:"Params"`

	// Additional business attributes
	BizParams []*KVPair `json:"BizParams,omitnil,omitempty" name:"BizParams"`

	// Data version
	DataVersion *int64 `json:"DataVersion,omitnil,omitempty" name:"DataVersion"`

	// Creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time
	ModifiedTime *string `json:"ModifiedTime,omitnil,omitempty" name:"ModifiedTime"`

	// Data source primary key
	DatasourceId *int64 `json:"DatasourceId,omitnil,omitempty" name:"DatasourceId"`
}

// Predefined struct for user
type AttachDataMaskPolicyRequestParams struct {
	// Collection of DMask permission objects that should be bound.
	DataMaskStrategyPolicySet []*DataMaskStrategyPolicy `json:"DataMaskStrategyPolicySet,omitnil,omitempty" name:"DataMaskStrategyPolicySet"`
}

type AttachDataMaskPolicyRequest struct {
	*tchttp.BaseRequest
	
	// Collection of DMask permission objects that should be bound.
	DataMaskStrategyPolicySet []*DataMaskStrategyPolicy `json:"DataMaskStrategyPolicySet,omitnil,omitempty" name:"DataMaskStrategyPolicySet"`
}

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

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

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

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

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

// Predefined struct for user
type AttachUserPolicyRequestParams struct {
	// User ID, which is the same as the sub-user UIN. The CreateUser API is needed to create a user at first. The DescribeUsers API can be used for viewing.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Collection of authentication policies
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

type AttachUserPolicyRequest struct {
	*tchttp.BaseRequest
	
	// User ID, which is the same as the sub-user UIN. The CreateUser API is needed to create a user at first. The DescribeUsers API can be used for viewing.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Collection of authentication policies
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

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

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

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

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

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

// Predefined struct for user
type AttachWorkGroupPolicyRequestParams struct {
	// Working group IDs
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Collection of policies to be bound
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

type AttachWorkGroupPolicyRequest struct {
	*tchttp.BaseRequest
	
	// Working group IDs
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Collection of policies to be bound
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

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

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

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

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

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

// Predefined struct for user
type BindWorkGroupsToUserRequestParams struct {
	// Information about bound working groups and users
	AddInfo *WorkGroupIdSetOfUserId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

type BindWorkGroupsToUserRequest struct {
	*tchttp.BaseRequest
	
	// Information about bound working groups and users
	AddInfo *WorkGroupIdSetOfUserId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

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

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

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

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

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

type CHDFSProductVpcInfo struct {
	// vpc id
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// VPC name
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcName *string `json:"VpcName,omitnil,omitempty" name:"VpcName"`

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

	// Rule ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	RuleId *int64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`

	// Permission group ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessGroupId *string `json:"AccessGroupId,omitnil,omitempty" name:"AccessGroupId"`
}

// Predefined struct for user
type CancelSparkSessionBatchSQLRequestParams struct {
	// The unique identifier of a batch task.
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

	// User-defined primary key. If it is specified, the value should be used for querying.
	CustomKey *string `json:"CustomKey,omitnil,omitempty" name:"CustomKey"`
}

type CancelSparkSessionBatchSQLRequest struct {
	*tchttp.BaseRequest
	
	// The unique identifier of a batch task.
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

	// User-defined primary key. If it is specified, the value should be used for querying.
	CustomKey *string `json:"CustomKey,omitnil,omitempty" name:"CustomKey"`
}

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

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

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

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

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

// Predefined struct for user
type CancelTaskRequestParams struct {
	// Globally unique task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type CancelTaskRequest struct {
	*tchttp.BaseRequest
	
	// Globally unique task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

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

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

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

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

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

// Predefined struct for user
type CheckDataEngineConfigPairsValidityRequestParams struct {
	// ID of the minor version of the engine
	ChildImageVersionId *string `json:"ChildImageVersionId,omitnil,omitempty" name:"ChildImageVersionId"`

	// User-defined parameters
	DataEngineConfigPairs []*DataEngineConfigPair `json:"DataEngineConfigPairs,omitnil,omitempty" name:"DataEngineConfigPairs"`

	// ID of the major version of the engine. If there is the ID of the minor version, only the ID of the minor version needs to be input. If not, the latest ID of the minor version under the major version will be acquired.
	ImageVersionId *string `json:"ImageVersionId,omitnil,omitempty" name:"ImageVersionId"`
}

type CheckDataEngineConfigPairsValidityRequest struct {
	*tchttp.BaseRequest
	
	// ID of the minor version of the engine
	ChildImageVersionId *string `json:"ChildImageVersionId,omitnil,omitempty" name:"ChildImageVersionId"`

	// User-defined parameters
	DataEngineConfigPairs []*DataEngineConfigPair `json:"DataEngineConfigPairs,omitnil,omitempty" name:"DataEngineConfigPairs"`

	// ID of the major version of the engine. If there is the ID of the minor version, only the ID of the minor version needs to be input. If not, the latest ID of the minor version under the major version will be acquired.
	ImageVersionId *string `json:"ImageVersionId,omitnil,omitempty" name:"ImageVersionId"`
}

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

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

// Predefined struct for user
type CheckDataEngineConfigPairsValidityResponseParams struct {
	// Validity of parameters. true: valid; false: There is at least one invalid parameter.
	IsAvailable *bool `json:"IsAvailable,omitnil,omitempty" name:"IsAvailable"`

	// Collection of invalid parameters
	// Note: This field may return null, indicating that no valid values can be obtained.
	UnavailableConfig []*string `json:"UnavailableConfig,omitnil,omitempty" name:"UnavailableConfig"`

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

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

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

// Predefined struct for user
type CheckDataEngineImageCanBeRollbackRequestParams struct {
	// Unique engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

type CheckDataEngineImageCanBeRollbackRequest struct {
	*tchttp.BaseRequest
	
	// Unique engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

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

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

// Predefined struct for user
type CheckDataEngineImageCanBeRollbackResponseParams struct {
	// Log record ID after rolling back
	ToRecordId *string `json:"ToRecordId,omitnil,omitempty" name:"ToRecordId"`

	// Log record ID before rolling back
	FromRecordId *string `json:"FromRecordId,omitnil,omitempty" name:"FromRecordId"`

	// Whether it can be rolled back
	IsRollback *bool `json:"IsRollback,omitnil,omitempty" name:"IsRollback"`

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

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

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

// Predefined struct for user
type CheckDataEngineImageCanBeUpgradeRequestParams struct {
	// Cluster ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

type CheckDataEngineImageCanBeUpgradeRequest struct {
	*tchttp.BaseRequest
	
	// Cluster ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

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

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

// Predefined struct for user
type CheckDataEngineImageCanBeUpgradeResponseParams struct {
	// ID of the minor version of the cluster image that can be updated under the major version
	ChildImageVersionId *string `json:"ChildImageVersionId,omitnil,omitempty" name:"ChildImageVersionId"`

	// Whether it can be updated
	IsUpgrade *bool `json:"IsUpgrade,omitnil,omitempty" name:"IsUpgrade"`

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

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

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

// Predefined struct for user
type CheckGrantedPermissionRequestParams struct {
	// Permission check
	CheckPermission []*CheckPermission `json:"CheckPermission,omitnil,omitempty" name:"CheckPermission"`
}

type CheckGrantedPermissionRequest struct {
	*tchttp.BaseRequest
	
	// Permission check
	CheckPermission []*CheckPermission `json:"CheckPermission,omitnil,omitempty" name:"CheckPermission"`
}

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

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

// Predefined struct for user
type CheckGrantedPermissionResponseParams struct {
	// Permission status
	PermissionResponses []*PermissionResponseInfo `json:"PermissionResponses,omitnil,omitempty" name:"PermissionResponses"`

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

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

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

type CheckPermission struct {
	// Permission type
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessType *string `json:"AccessType,omitnil,omitempty" name:"AccessType"`

	// Resource information
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResourceBaseInfo *ResourceBaseInfo `json:"ResourceBaseInfo,omitnil,omitempty" name:"ResourceBaseInfo"`
}

type Column struct {
	// Column name, which is case-insensitive and can contain up to 25 characters.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Column type. Valid values:
	// string|tinyint|smallint|int|bigint|boolean|float|double|decimal|timestamp|date|binary|array<data_type>|map<primitive_type, data_type>|struct<col_name : data_type [COMMENT col_comment], ...>|uniontype<data_type, data_type, ...>.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Class comment.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Comment *string `json:"Comment,omitnil,omitempty" name:"Comment"`

	// Length of the entire numeric value
	// Note: This field may return null, indicating that no valid values can be obtained.
	Precision *int64 `json:"Precision,omitnil,omitempty" name:"Precision"`

	// Length of the decimal part
	// Note: This field may return null, indicating that no valid values can be obtained.
	Scale *int64 `json:"Scale,omitnil,omitempty" name:"Scale"`

	// Whether the column is null.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Nullable *string `json:"Nullable,omitnil,omitempty" name:"Nullable"`

	// Field position
	// Note: This field may return null, indicating that no valid values can be obtained.
	Position *int64 `json:"Position,omitnil,omitempty" name:"Position"`

	// Field creation time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Field modification time
	// Note: This field may return null, indicating that no valid values can be obtained.
	ModifiedTime *string `json:"ModifiedTime,omitnil,omitempty" name:"ModifiedTime"`

	// Whether the column is the partition field.
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsPartition *bool `json:"IsPartition,omitnil,omitempty" name:"IsPartition"`
}

type CommonMetrics struct {
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTaskTime *float64 `json:"CreateTaskTime,omitnil,omitempty" name:"CreateTaskTime"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ProcessTime *float64 `json:"ProcessTime,omitnil,omitempty" name:"ProcessTime"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	QueueTime *float64 `json:"QueueTime,omitnil,omitempty" name:"QueueTime"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecutionTime *float64 `json:"ExecutionTime,omitnil,omitempty" name:"ExecutionTime"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	IsResultCacheHit *bool `json:"IsResultCacheHit,omitnil,omitempty" name:"IsResultCacheHit"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	MatchedMVBytes *int64 `json:"MatchedMVBytes,omitnil,omitempty" name:"MatchedMVBytes"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	MatchedMVs *string `json:"MatchedMVs,omitnil,omitempty" name:"MatchedMVs"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	AffectedBytes *string `json:"AffectedBytes,omitnil,omitempty" name:"AffectedBytes"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	AffectedRows *int64 `json:"AffectedRows,omitnil,omitempty" name:"AffectedRows"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ProcessedBytes *int64 `json:"ProcessedBytes,omitnil,omitempty" name:"ProcessedBytes"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ProcessedRows *int64 `json:"ProcessedRows,omitnil,omitempty" name:"ProcessedRows"`
}

// Predefined struct for user
type CopyDLCTableRequestParams struct {
	// Description of the source data table name
	SourceData []*DMSSourceDatabaseInfo `json:"SourceData,omitnil,omitempty" name:"SourceData"`

	// Target database name
	DestinationDatabaseName *string `json:"DestinationDatabaseName,omitnil,omitempty" name:"DestinationDatabaseName"`

	// Target data table name
	DestinationTableName *string `json:"DestinationTableName,omitnil,omitempty" name:"DestinationTableName"`

	// Engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Whether to create a new table
	IsCreateTable *bool `json:"IsCreateTable,omitnil,omitempty" name:"IsCreateTable"`

	// Catalog name
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Resource group name
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

type CopyDLCTableRequest struct {
	*tchttp.BaseRequest
	
	// Description of the source data table name
	SourceData []*DMSSourceDatabaseInfo `json:"SourceData,omitnil,omitempty" name:"SourceData"`

	// Target database name
	DestinationDatabaseName *string `json:"DestinationDatabaseName,omitnil,omitempty" name:"DestinationDatabaseName"`

	// Target data table name
	DestinationTableName *string `json:"DestinationTableName,omitnil,omitempty" name:"DestinationTableName"`

	// Engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Whether to create a new table
	IsCreateTable *bool `json:"IsCreateTable,omitnil,omitempty" name:"IsCreateTable"`

	// Catalog name
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Resource group name
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

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

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

// Predefined struct for user
type CopyDLCTableResponseParams struct {
	// Task ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type CopyDLCTableResponse struct {
	*tchttp.BaseResponse
	Response *CopyDLCTableResponseParams `json:"Response"`
}

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

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

type CosPermission struct {
	// COS path.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CosPath *string `json:"CosPath,omitnil,omitempty" name:"CosPath"`

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

// Predefined struct for user
type CreateCHDFSBindingProductRequestParams struct {
	// Names of metadata acceleration buckets to be bound
	MountPoint *string `json:"MountPoint,omitnil,omitempty" name:"MountPoint"`

	// Types of buckets which are divided into cos and lakefs
	BucketType *string `json:"BucketType,omitnil,omitempty" name:"BucketType"`

	// Product name
	ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"`

	// Engine name. When ProductName selects DLC products, this parameter must be specified. When ProductName selects other products, it can be unspecified.
	EngineName *string `json:"EngineName,omitnil,omitempty" name:"EngineName"`

	// VPC information. When the product name is other, this parameter must be specified.
	VpcInfo []*VpcInfo `json:"VpcInfo,omitnil,omitempty" name:"VpcInfo"`
}

type CreateCHDFSBindingProductRequest struct {
	*tchttp.BaseRequest
	
	// Names of metadata acceleration buckets to be bound
	MountPoint *string `json:"MountPoint,omitnil,omitempty" name:"MountPoint"`

	// Types of buckets which are divided into cos and lakefs
	BucketType *string `json:"BucketType,omitnil,omitempty" name:"BucketType"`

	// Product name
	ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"`

	// Engine name. When ProductName selects DLC products, this parameter must be specified. When ProductName selects other products, it can be unspecified.
	EngineName *string `json:"EngineName,omitnil,omitempty" name:"EngineName"`

	// VPC information. When the product name is other, this parameter must be specified.
	VpcInfo []*VpcInfo `json:"VpcInfo,omitnil,omitempty" name:"VpcInfo"`
}

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

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

// Predefined struct for user
type CreateCHDFSBindingProductResponseParams struct {
	// Binding information
	// Note: This field may return null, indicating that no valid values can be obtained.
	MountPointAssociates []*MountPointAssociates `json:"MountPointAssociates,omitnil,omitempty" name:"MountPointAssociates"`

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

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

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

// Predefined struct for user
type CreateDLCTableRequestParams struct {
	// Data table configuration information
	TableBaseInfo *TableBaseInfo `json:"TableBaseInfo,omitnil,omitempty" name:"TableBaseInfo"`

	// Table type
	TableType *string `json:"TableType,omitnil,omitempty" name:"TableType"`

	// Data table column information
	Columns []*TColumn `json:"Columns,omitnil,omitempty" name:"Columns"`

	// Data table partition information
	Partitions []*TPartition `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Data table attribute information
	Properties []*Property `json:"Properties,omitnil,omitempty" name:"Properties"`

	// External table configuration information
	ExternalDataConfiguration *ExternalDataConfiguration `json:"ExternalDataConfiguration,omitnil,omitempty" name:"ExternalDataConfiguration"`

	// Engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Resource group name
	ResourceGroupname *string `json:"ResourceGroupname,omitnil,omitempty" name:"ResourceGroupname"`


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

type CreateDLCTableRequest struct {
	*tchttp.BaseRequest
	
	// Data table configuration information
	TableBaseInfo *TableBaseInfo `json:"TableBaseInfo,omitnil,omitempty" name:"TableBaseInfo"`

	// Table type
	TableType *string `json:"TableType,omitnil,omitempty" name:"TableType"`

	// Data table column information
	Columns []*TColumn `json:"Columns,omitnil,omitempty" name:"Columns"`

	// Data table partition information
	Partitions []*TPartition `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Data table attribute information
	Properties []*Property `json:"Properties,omitnil,omitempty" name:"Properties"`

	// External table configuration information
	ExternalDataConfiguration *ExternalDataConfiguration `json:"ExternalDataConfiguration,omitnil,omitempty" name:"ExternalDataConfiguration"`

	// Engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Resource group name
	ResourceGroupname *string `json:"ResourceGroupname,omitnil,omitempty" name:"ResourceGroupname"`

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

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

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

// Predefined struct for user
type CreateDLCTableResponseParams struct {
	// DLC table information object
	// Note: This field may return null, indicating that no valid values can be obtained.
	DLCTable *DLCTable `json:"DLCTable,omitnil,omitempty" name:"DLCTable"`

	// The SQL statement for creating a managed storage internal table
	Execution *string `json:"Execution,omitnil,omitempty" name:"Execution"`

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

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

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

// Predefined struct for user
type CreateDMSDatabaseRequestParams struct {
	// Basic metadata object
	Asset *Asset `json:"Asset,omitnil,omitempty" name:"Asset"`

	// Schema directory
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Db storage path
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`
}

type CreateDMSDatabaseRequest struct {
	*tchttp.BaseRequest
	
	// Basic metadata object
	Asset *Asset `json:"Asset,omitnil,omitempty" name:"Asset"`

	// Schema directory
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Db storage path
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`
}

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

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

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

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

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

// Predefined struct for user
type CreateDataEngineRequestParams struct {
	// The engine type. Valid values: `spark` and `presto`.
	EngineType *string `json:"EngineType,omitnil,omitempty" name:"EngineType"`

	// The name of the virtual cluster.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// The cluster type. Valid values: `spark_private`, `presto_private`, `presto_cu`, and `spark_cu`.
	ClusterType *string `json:"ClusterType,omitnil,omitempty" name:"ClusterType"`

	// The billing mode. Valid values: `0` (shared engine), `1` (pay-as-you-go), and `2` (monthly subscription).
	Mode *int64 `json:"Mode,omitnil,omitempty" name:"Mode"`

	// Whether to automatically start the clusters.
	AutoResume *bool `json:"AutoResume,omitnil,omitempty" name:"AutoResume"`

	// The minimum number of clusters.
	MinClusters *int64 `json:"MinClusters,omitnil,omitempty" name:"MinClusters"`

	// The maximum number of clusters.
	MaxClusters *int64 `json:"MaxClusters,omitnil,omitempty" name:"MaxClusters"`

	// Whether the cluster is the default one.
	//
	// Deprecated: DefaultDataEngine is deprecated.
	DefaultDataEngine *bool `json:"DefaultDataEngine,omitnil,omitempty" name:"DefaultDataEngine"`

	// The VPC CIDR block.
	CidrBlock *string `json:"CidrBlock,omitnil,omitempty" name:"CidrBlock"`

	// The description.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// The cluster size.
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// The pay mode. Valid value: `0` (postpaid, default) and `1` (prepaid) (currently not available).
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// The usage duration of the resource. Postpaid: Fill in 3,600 as a fixed figure; prepaid: fill in a figure equal to or bigger than 1 which means purchasing resources for one month. The maximum figure is not bigger than 120. The default value is 1.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// The unit of the resource period. Valid values: `s` (default) for the postpaid mode and `m` for the prepaid mode.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// The auto-renewal status of the resource. For the postpaid mode, no renewal is required, and the value is fixed to `0`. For the prepaid mode, valid values are `0` (manual), `1` (auto), and `2` (no renewal). If this parameter is set to `0` for a key account in the prepaid mode, auto-renewal applies. It defaults to `0`.
	AutoRenew *int64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// The tags to be set for the resource being created.
	Tags []*TagInfo `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Whether to automatically suspend clusters. Valid values: `false` (default, no) and `true` (yes).
	AutoSuspend *bool `json:"AutoSuspend,omitnil,omitempty" name:"AutoSuspend"`

	// Whether to enable scheduled start and suspension of clusters. Valid values: `0` (disable) and `1` (enable). Note: This policy and the auto-suspension policy are mutually exclusive.
	CrontabResumeSuspend *int64 `json:"CrontabResumeSuspend,omitnil,omitempty" name:"CrontabResumeSuspend"`

	// The complex policy for scheduled start and suspension, including the start/suspension time and suspension policy.
	CrontabResumeSuspendStrategy *CrontabResumeSuspendStrategy `json:"CrontabResumeSuspendStrategy,omitnil,omitempty" name:"CrontabResumeSuspendStrategy"`

	// The type of tasks to be executed by the engine, which defaults to SQL. Valid values: `SQL` and `BATCH`.
	EngineExecType *string `json:"EngineExecType,omitnil,omitempty" name:"EngineExecType"`

	// The max task concurrency of a cluster, which defaults to 5.
	MaxConcurrency *int64 `json:"MaxConcurrency,omitnil,omitempty" name:"MaxConcurrency"`

	// The task queue time limit, which defaults to 0. When the actual queue time exceeds the value set here, scale-out may be triggered. Setting this parameter to 0 represents that scale-out may be triggered immediately after a task queues up.
	TolerableQueueTime *int64 `json:"TolerableQueueTime,omitnil,omitempty" name:"TolerableQueueTime"`

	// The cluster auto-suspension time, which defaults to 10 min.
	AutoSuspendTime *int64 `json:"AutoSuspendTime,omitnil,omitempty" name:"AutoSuspendTime"`

	// The resource type. Valid values: `Standard_CU` (standard) and `Memory_CU` (memory).
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// The advanced configurations of clusters.
	DataEngineConfigPairs []*DataEngineConfigPair `json:"DataEngineConfigPairs,omitnil,omitempty" name:"DataEngineConfigPairs"`

	// The version name of cluster image, such as SuperSQL-P 1.1 and SuperSQL-S 3.2. If no value is passed in, a cluster is created using the latest image version.
	ImageVersionName *string `json:"ImageVersionName,omitnil,omitempty" name:"ImageVersionName"`

	// The primary cluster, which is specified when a failover cluster is created.
	MainClusterName *string `json:"MainClusterName,omitnil,omitempty" name:"MainClusterName"`

	// Whether to enable the scaling feature for a monthly subscribed Spark job cluster.
	ElasticSwitch *bool `json:"ElasticSwitch,omitnil,omitempty" name:"ElasticSwitch"`

	// The upper limit (in CUs) for scaling of the monthly subscribed Spark job cluster.
	ElasticLimit *int64 `json:"ElasticLimit,omitnil,omitempty" name:"ElasticLimit"`

	// The session resource configuration template for a Spark job cluster.
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`

	// Automatically grant permissions
	AutoAuthorization *bool `json:"AutoAuthorization,omitnil,omitempty" name:"AutoAuthorization"`

	// Engine network ID
	EngineNetworkId *string `json:"EngineNetworkId,omitnil,omitempty" name:"EngineNetworkId"`

	// Generation of the engine. SuperSQL means the supersql engine while Native means the standard engine. It is SuperSQL by default.
	EngineGeneration *string `json:"EngineGeneration,omitnil,omitempty" name:"EngineGeneration"`
}

type CreateDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// The engine type. Valid values: `spark` and `presto`.
	EngineType *string `json:"EngineType,omitnil,omitempty" name:"EngineType"`

	// The name of the virtual cluster.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// The cluster type. Valid values: `spark_private`, `presto_private`, `presto_cu`, and `spark_cu`.
	ClusterType *string `json:"ClusterType,omitnil,omitempty" name:"ClusterType"`

	// The billing mode. Valid values: `0` (shared engine), `1` (pay-as-you-go), and `2` (monthly subscription).
	Mode *int64 `json:"Mode,omitnil,omitempty" name:"Mode"`

	// Whether to automatically start the clusters.
	AutoResume *bool `json:"AutoResume,omitnil,omitempty" name:"AutoResume"`

	// The minimum number of clusters.
	MinClusters *int64 `json:"MinClusters,omitnil,omitempty" name:"MinClusters"`

	// The maximum number of clusters.
	MaxClusters *int64 `json:"MaxClusters,omitnil,omitempty" name:"MaxClusters"`

	// Whether the cluster is the default one.
	DefaultDataEngine *bool `json:"DefaultDataEngine,omitnil,omitempty" name:"DefaultDataEngine"`

	// The VPC CIDR block.
	CidrBlock *string `json:"CidrBlock,omitnil,omitempty" name:"CidrBlock"`

	// The description.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// The cluster size.
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// The pay mode. Valid value: `0` (postpaid, default) and `1` (prepaid) (currently not available).
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// The usage duration of the resource. Postpaid: Fill in 3,600 as a fixed figure; prepaid: fill in a figure equal to or bigger than 1 which means purchasing resources for one month. The maximum figure is not bigger than 120. The default value is 1.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// The unit of the resource period. Valid values: `s` (default) for the postpaid mode and `m` for the prepaid mode.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// The auto-renewal status of the resource. For the postpaid mode, no renewal is required, and the value is fixed to `0`. For the prepaid mode, valid values are `0` (manual), `1` (auto), and `2` (no renewal). If this parameter is set to `0` for a key account in the prepaid mode, auto-renewal applies. It defaults to `0`.
	AutoRenew *int64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// The tags to be set for the resource being created.
	Tags []*TagInfo `json:"Tags,omitnil,omitempty" name:"Tags"`

	// Whether to automatically suspend clusters. Valid values: `false` (default, no) and `true` (yes).
	AutoSuspend *bool `json:"AutoSuspend,omitnil,omitempty" name:"AutoSuspend"`

	// Whether to enable scheduled start and suspension of clusters. Valid values: `0` (disable) and `1` (enable). Note: This policy and the auto-suspension policy are mutually exclusive.
	CrontabResumeSuspend *int64 `json:"CrontabResumeSuspend,omitnil,omitempty" name:"CrontabResumeSuspend"`

	// The complex policy for scheduled start and suspension, including the start/suspension time and suspension policy.
	CrontabResumeSuspendStrategy *CrontabResumeSuspendStrategy `json:"CrontabResumeSuspendStrategy,omitnil,omitempty" name:"CrontabResumeSuspendStrategy"`

	// The type of tasks to be executed by the engine, which defaults to SQL. Valid values: `SQL` and `BATCH`.
	EngineExecType *string `json:"EngineExecType,omitnil,omitempty" name:"EngineExecType"`

	// The max task concurrency of a cluster, which defaults to 5.
	MaxConcurrency *int64 `json:"MaxConcurrency,omitnil,omitempty" name:"MaxConcurrency"`

	// The task queue time limit, which defaults to 0. When the actual queue time exceeds the value set here, scale-out may be triggered. Setting this parameter to 0 represents that scale-out may be triggered immediately after a task queues up.
	TolerableQueueTime *int64 `json:"TolerableQueueTime,omitnil,omitempty" name:"TolerableQueueTime"`

	// The cluster auto-suspension time, which defaults to 10 min.
	AutoSuspendTime *int64 `json:"AutoSuspendTime,omitnil,omitempty" name:"AutoSuspendTime"`

	// The resource type. Valid values: `Standard_CU` (standard) and `Memory_CU` (memory).
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// The advanced configurations of clusters.
	DataEngineConfigPairs []*DataEngineConfigPair `json:"DataEngineConfigPairs,omitnil,omitempty" name:"DataEngineConfigPairs"`

	// The version name of cluster image, such as SuperSQL-P 1.1 and SuperSQL-S 3.2. If no value is passed in, a cluster is created using the latest image version.
	ImageVersionName *string `json:"ImageVersionName,omitnil,omitempty" name:"ImageVersionName"`

	// The primary cluster, which is specified when a failover cluster is created.
	MainClusterName *string `json:"MainClusterName,omitnil,omitempty" name:"MainClusterName"`

	// Whether to enable the scaling feature for a monthly subscribed Spark job cluster.
	ElasticSwitch *bool `json:"ElasticSwitch,omitnil,omitempty" name:"ElasticSwitch"`

	// The upper limit (in CUs) for scaling of the monthly subscribed Spark job cluster.
	ElasticLimit *int64 `json:"ElasticLimit,omitnil,omitempty" name:"ElasticLimit"`

	// The session resource configuration template for a Spark job cluster.
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`

	// Automatically grant permissions
	AutoAuthorization *bool `json:"AutoAuthorization,omitnil,omitempty" name:"AutoAuthorization"`

	// Engine network ID
	EngineNetworkId *string `json:"EngineNetworkId,omitnil,omitempty" name:"EngineNetworkId"`

	// Generation of the engine. SuperSQL means the supersql engine while Native means the standard engine. It is SuperSQL by default.
	EngineGeneration *string `json:"EngineGeneration,omitnil,omitempty" name:"EngineGeneration"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateDataEngineRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "EngineType")
	delete(f, "DataEngineName")
	delete(f, "ClusterType")
	delete(f, "Mode")
	delete(f, "AutoResume")
	delete(f, "MinClusters")
	delete(f, "MaxClusters")
	delete(f, "DefaultDataEngine")
	delete(f, "CidrBlock")
	delete(f, "Message")
	delete(f, "Size")
	delete(f, "PayMode")
	delete(f, "TimeSpan")
	delete(f, "TimeUnit")
	delete(f, "AutoRenew")
	delete(f, "Tags")
	delete(f, "AutoSuspend")
	delete(f, "CrontabResumeSuspend")
	delete(f, "CrontabResumeSuspendStrategy")
	delete(f, "EngineExecType")
	delete(f, "MaxConcurrency")
	delete(f, "TolerableQueueTime")
	delete(f, "AutoSuspendTime")
	delete(f, "ResourceType")
	delete(f, "DataEngineConfigPairs")
	delete(f, "ImageVersionName")
	delete(f, "MainClusterName")
	delete(f, "ElasticSwitch")
	delete(f, "ElasticLimit")
	delete(f, "SessionResourceTemplate")
	delete(f, "AutoAuthorization")
	delete(f, "EngineNetworkId")
	delete(f, "EngineGeneration")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateDataEngineRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateDataEngineResponseParams struct {
	// The ID of the virtual engine.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

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

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

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

// Predefined struct for user
type CreateDataMaskStrategyRequestParams struct {
	// Masking policy description.
	Strategy *DataMaskStrategyInfo `json:"Strategy,omitnil,omitempty" name:"Strategy"`
}

type CreateDataMaskStrategyRequest struct {
	*tchttp.BaseRequest
	
	// Masking policy description.
	Strategy *DataMaskStrategyInfo `json:"Strategy,omitnil,omitempty" name:"Strategy"`
}

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

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

// Predefined struct for user
type CreateDataMaskStrategyResponseParams struct {
	// Policy ID
	StrategyId *string `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`

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

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

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

// Predefined struct for user
type CreateInternalTableRequestParams struct {
	// The basic table information.
	TableBaseInfo *TableBaseInfo `json:"TableBaseInfo,omitnil,omitempty" name:"TableBaseInfo"`

	// The table fields.
	Columns []*TColumn `json:"Columns,omitnil,omitempty" name:"Columns"`

	// The table partitions.
	Partitions []*TPartition `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// The table properties.
	Properties []*Property `json:"Properties,omitnil,omitempty" name:"Properties"`
}

type CreateInternalTableRequest struct {
	*tchttp.BaseRequest
	
	// The basic table information.
	TableBaseInfo *TableBaseInfo `json:"TableBaseInfo,omitnil,omitempty" name:"TableBaseInfo"`

	// The table fields.
	Columns []*TColumn `json:"Columns,omitnil,omitempty" name:"Columns"`

	// The table partitions.
	Partitions []*TPartition `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// The table properties.
	Properties []*Property `json:"Properties,omitnil,omitempty" name:"Properties"`
}

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

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

// Predefined struct for user
type CreateInternalTableResponseParams struct {
	// The SQL statements for creating the managed internal table.
	Execution *string `json:"Execution,omitnil,omitempty" name:"Execution"`

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

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

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

// Predefined struct for user
type CreateResultDownloadRequestParams struct {
	// The result query task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The result format.
	Format *string `json:"Format,omitnil,omitempty" name:"Format"`

	// Whether to re-generate a file to download. This parameter applies only when the last task is `timeout` or `error`.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`
}

type CreateResultDownloadRequest struct {
	*tchttp.BaseRequest
	
	// The result query task ID.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The result format.
	Format *string `json:"Format,omitnil,omitempty" name:"Format"`

	// Whether to re-generate a file to download. This parameter applies only when the last task is `timeout` or `error`.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`
}

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

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

// Predefined struct for user
type CreateResultDownloadResponseParams struct {
	// The download task ID.
	DownloadId *string `json:"DownloadId,omitnil,omitempty" name:"DownloadId"`

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

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

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

// Predefined struct for user
type CreateSparkAppRequestParams struct {
	// The Spark job name.
	AppName *string `json:"AppName,omitnil,omitempty" name:"AppName"`

	// The Spark job type. Valid values: `1` for Spark JAR job and `2` for Spark streaming job.
	AppType *int64 `json:"AppType,omitnil,omitempty" name:"AppType"`

	// The data engine executing the Spark job.
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// The path of the Spark job package.
	AppFile *string `json:"AppFile,omitnil,omitempty" name:"AppFile"`

	// Data visiting policy achieved through CAM Role arn; the console can obtain it through Data Job -> Job Configuration; SDK can obtain corresponding values through the DescribeUserRoles API.
	RoleArn *int64 `json:"RoleArn,omitnil,omitempty" name:"RoleArn"`

	// The driver size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppDriverSize *string `json:"AppDriverSize,omitnil,omitempty" name:"AppDriverSize"`

	// The executor size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppExecutorSize *string `json:"AppExecutorSize,omitnil,omitempty" name:"AppExecutorSize"`

	// Number of Spark job executors
	AppExecutorNums *int64 `json:"AppExecutorNums,omitnil,omitempty" name:"AppExecutorNums"`

	// This field has been disused. Use the `Datasource` field instead.
	Eni *string `json:"Eni,omitnil,omitempty" name:"Eni"`

	// The source of the Spark job package. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocal *string `json:"IsLocal,omitnil,omitempty" name:"IsLocal"`

	// The main class of the Spark job.
	MainClass *string `json:"MainClass,omitnil,omitempty" name:"MainClass"`

	// Spark configurations separated by line break
	AppConf *string `json:"AppConf,omitnil,omitempty" name:"AppConf"`

	// The source of the dependency JAR packages of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalJars *string `json:"IsLocalJars,omitnil,omitempty" name:"IsLocalJars"`

	// The dependency JAR packages of the Spark JAR job (JAR packages), separated by comma.
	AppJars *string `json:"AppJars,omitnil,omitempty" name:"AppJars"`

	// The source of the dependency files of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalFiles *string `json:"IsLocalFiles,omitnil,omitempty" name:"IsLocalFiles"`

	// The dependency files of the Spark job (files other than JAR and ZIP packages) separated by comma.
	AppFiles *string `json:"AppFiles,omitnil,omitempty" name:"AppFiles"`

	// The input parameters of the Spark job, separated by comma.
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`

	// The maximum number of retries, valid for Spark streaming tasks only.
	MaxRetries *int64 `json:"MaxRetries,omitnil,omitempty" name:"MaxRetries"`

	// The data source name.
	DataSource *string `json:"DataSource,omitnil,omitempty" name:"DataSource"`

	// The source of the PySpark dependencies. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalPythonFiles *string `json:"IsLocalPythonFiles,omitnil,omitempty" name:"IsLocalPythonFiles"`

	// The PySpark dependencies (Python files), separated by comma, with .py, .zip, and .egg formats supported.
	AppPythonFiles *string `json:"AppPythonFiles,omitnil,omitempty" name:"AppPythonFiles"`

	// The source of the dependency archives of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalArchives *string `json:"IsLocalArchives,omitnil,omitempty" name:"IsLocalArchives"`

	// The dependency archives of the Spark job, separated by comma, with tar.gz, .tgz, and .tar formats supported.
	AppArchives *string `json:"AppArchives,omitnil,omitempty" name:"AppArchives"`

	// The Spark image version.
	SparkImage *string `json:"SparkImage,omitnil,omitempty" name:"SparkImage"`

	// The Spark image version name.
	SparkImageVersion *string `json:"SparkImageVersion,omitnil,omitempty" name:"SparkImageVersion"`

	// The specified executor count (max), which defaults to 1. This parameter applies if the "Dynamic" mode is selected. If the "Dynamic" mode is not selected, the executor count is equal to `AppExecutorNums`.
	AppExecutorMaxNumbers *int64 `json:"AppExecutorMaxNumbers,omitnil,omitempty" name:"AppExecutorMaxNumbers"`

	// The ID of the associated Data Lake Compute query script.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Whether to inherit the task resource configuration from the cluster template. Valid values: `0` (default): No; `1`: Yes.
	IsInherit *uint64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`

	// Whether to run the task with the session SQLs. Valid values: `false` for no and `true` for yes.
	IsSessionStarted *bool `json:"IsSessionStarted,omitnil,omitempty" name:"IsSessionStarted"`
}

type CreateSparkAppRequest struct {
	*tchttp.BaseRequest
	
	// The Spark job name.
	AppName *string `json:"AppName,omitnil,omitempty" name:"AppName"`

	// The Spark job type. Valid values: `1` for Spark JAR job and `2` for Spark streaming job.
	AppType *int64 `json:"AppType,omitnil,omitempty" name:"AppType"`

	// The data engine executing the Spark job.
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// The path of the Spark job package.
	AppFile *string `json:"AppFile,omitnil,omitempty" name:"AppFile"`

	// Data visiting policy achieved through CAM Role arn; the console can obtain it through Data Job -> Job Configuration; SDK can obtain corresponding values through the DescribeUserRoles API.
	RoleArn *int64 `json:"RoleArn,omitnil,omitempty" name:"RoleArn"`

	// The driver size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppDriverSize *string `json:"AppDriverSize,omitnil,omitempty" name:"AppDriverSize"`

	// The executor size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppExecutorSize *string `json:"AppExecutorSize,omitnil,omitempty" name:"AppExecutorSize"`

	// Number of Spark job executors
	AppExecutorNums *int64 `json:"AppExecutorNums,omitnil,omitempty" name:"AppExecutorNums"`

	// This field has been disused. Use the `Datasource` field instead.
	Eni *string `json:"Eni,omitnil,omitempty" name:"Eni"`

	// The source of the Spark job package. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocal *string `json:"IsLocal,omitnil,omitempty" name:"IsLocal"`

	// The main class of the Spark job.
	MainClass *string `json:"MainClass,omitnil,omitempty" name:"MainClass"`

	// Spark configurations separated by line break
	AppConf *string `json:"AppConf,omitnil,omitempty" name:"AppConf"`

	// The source of the dependency JAR packages of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalJars *string `json:"IsLocalJars,omitnil,omitempty" name:"IsLocalJars"`

	// The dependency JAR packages of the Spark JAR job (JAR packages), separated by comma.
	AppJars *string `json:"AppJars,omitnil,omitempty" name:"AppJars"`

	// The source of the dependency files of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalFiles *string `json:"IsLocalFiles,omitnil,omitempty" name:"IsLocalFiles"`

	// The dependency files of the Spark job (files other than JAR and ZIP packages) separated by comma.
	AppFiles *string `json:"AppFiles,omitnil,omitempty" name:"AppFiles"`

	// The input parameters of the Spark job, separated by comma.
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`

	// The maximum number of retries, valid for Spark streaming tasks only.
	MaxRetries *int64 `json:"MaxRetries,omitnil,omitempty" name:"MaxRetries"`

	// The data source name.
	DataSource *string `json:"DataSource,omitnil,omitempty" name:"DataSource"`

	// The source of the PySpark dependencies. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalPythonFiles *string `json:"IsLocalPythonFiles,omitnil,omitempty" name:"IsLocalPythonFiles"`

	// The PySpark dependencies (Python files), separated by comma, with .py, .zip, and .egg formats supported.
	AppPythonFiles *string `json:"AppPythonFiles,omitnil,omitempty" name:"AppPythonFiles"`

	// The source of the dependency archives of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalArchives *string `json:"IsLocalArchives,omitnil,omitempty" name:"IsLocalArchives"`

	// The dependency archives of the Spark job, separated by comma, with tar.gz, .tgz, and .tar formats supported.
	AppArchives *string `json:"AppArchives,omitnil,omitempty" name:"AppArchives"`

	// The Spark image version.
	SparkImage *string `json:"SparkImage,omitnil,omitempty" name:"SparkImage"`

	// The Spark image version name.
	SparkImageVersion *string `json:"SparkImageVersion,omitnil,omitempty" name:"SparkImageVersion"`

	// The specified executor count (max), which defaults to 1. This parameter applies if the "Dynamic" mode is selected. If the "Dynamic" mode is not selected, the executor count is equal to `AppExecutorNums`.
	AppExecutorMaxNumbers *int64 `json:"AppExecutorMaxNumbers,omitnil,omitempty" name:"AppExecutorMaxNumbers"`

	// The ID of the associated Data Lake Compute query script.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Whether to inherit the task resource configuration from the cluster template. Valid values: `0` (default): No; `1`: Yes.
	IsInherit *uint64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`

	// Whether to run the task with the session SQLs. Valid values: `false` for no and `true` for yes.
	IsSessionStarted *bool `json:"IsSessionStarted,omitnil,omitempty" name:"IsSessionStarted"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateSparkAppRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "AppName")
	delete(f, "AppType")
	delete(f, "DataEngine")
	delete(f, "AppFile")
	delete(f, "RoleArn")
	delete(f, "AppDriverSize")
	delete(f, "AppExecutorSize")
	delete(f, "AppExecutorNums")
	delete(f, "Eni")
	delete(f, "IsLocal")
	delete(f, "MainClass")
	delete(f, "AppConf")
	delete(f, "IsLocalJars")
	delete(f, "AppJars")
	delete(f, "IsLocalFiles")
	delete(f, "AppFiles")
	delete(f, "CmdArgs")
	delete(f, "MaxRetries")
	delete(f, "DataSource")
	delete(f, "IsLocalPythonFiles")
	delete(f, "AppPythonFiles")
	delete(f, "IsLocalArchives")
	delete(f, "AppArchives")
	delete(f, "SparkImage")
	delete(f, "SparkImageVersion")
	delete(f, "AppExecutorMaxNumbers")
	delete(f, "SessionId")
	delete(f, "IsInherit")
	delete(f, "IsSessionStarted")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateSparkAppRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateSparkAppResponseParams struct {
	// The unique ID of the application.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkAppId *string `json:"SparkAppId,omitnil,omitempty" name:"SparkAppId"`

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

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

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

// Predefined struct for user
type CreateSparkAppTaskRequestParams struct {
	// Spark job name
	JobName *string `json:"JobName,omitnil,omitempty" name:"JobName"`

	// The input parameters of the Spark job, separated by space. They are generally used for periodic calls.
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`
}

type CreateSparkAppTaskRequest struct {
	*tchttp.BaseRequest
	
	// Spark job name
	JobName *string `json:"JobName,omitnil,omitempty" name:"JobName"`

	// The input parameters of the Spark job, separated by space. They are generally used for periodic calls.
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`
}

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

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

// Predefined struct for user
type CreateSparkAppTaskResponseParams struct {
	// Batch ID
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type CreateSparkAppTaskResponse struct {
	*tchttp.BaseResponse
	Response *CreateSparkAppTaskResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateSparkSessionBatchSQLRequestParams struct {
	// The name of the engine for executing the Spark job.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Run SQL. The base64 encoding is needed.
	ExecuteSQL *string `json:"ExecuteSQL,omitnil,omitempty" name:"ExecuteSQL"`

	// The driver size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	DriverSize *string `json:"DriverSize,omitnil,omitempty" name:"DriverSize"`

	// The executor size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	ExecutorSize *string `json:"ExecutorSize,omitnil,omitempty" name:"ExecutorSize"`

	// The executor count, which defaults to 1.
	ExecutorNumbers *uint64 `json:"ExecutorNumbers,omitnil,omitempty" name:"ExecutorNumbers"`

	// The maximum executor count, which defaults to 1. This parameter applies if the "Dynamic" mode is selected. If the "Dynamic" mode is not selected, the value of this parameter is the same as that of `ExecutorNumbers`.
	ExecutorMaxNumbers *uint64 `json:"ExecutorMaxNumbers,omitnil,omitempty" name:"ExecutorMaxNumbers"`

	// The session timeout period in seconds. Default value: 3600
	TimeoutInSecond *int64 `json:"TimeoutInSecond,omitnil,omitempty" name:"TimeoutInSecond"`

	// The unique ID of a session. If this parameter is specified, the task will be run using the specified session.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// The name of the session to create.
	SessionName *string `json:"SessionName,omitnil,omitempty" name:"SessionName"`

	// The session configurations. Valid values: `1.dlc.eni` for user-defined ENI gateway information;
	// `2.dlc.role.arn` for user-defined roleArn configurations;
	// and `3.dlc.sql.set.config` for user-defined cluster configurations.
	Arguments []*KVPair `json:"Arguments,omitnil,omitempty" name:"Arguments"`

	// Whether to inherit the resource configuration of clusters; 0: not inherit (by default); 1: inherit clusters.
	IsInherit *int64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`

	// User-defined primary key, and it should be unique.
	CustomKey *string `json:"CustomKey,omitnil,omitempty" name:"CustomKey"`
}

type CreateSparkSessionBatchSQLRequest struct {
	*tchttp.BaseRequest
	
	// The name of the engine for executing the Spark job.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Run SQL. The base64 encoding is needed.
	ExecuteSQL *string `json:"ExecuteSQL,omitnil,omitempty" name:"ExecuteSQL"`

	// The driver size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	DriverSize *string `json:"DriverSize,omitnil,omitempty" name:"DriverSize"`

	// The executor size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	ExecutorSize *string `json:"ExecutorSize,omitnil,omitempty" name:"ExecutorSize"`

	// The executor count, which defaults to 1.
	ExecutorNumbers *uint64 `json:"ExecutorNumbers,omitnil,omitempty" name:"ExecutorNumbers"`

	// The maximum executor count, which defaults to 1. This parameter applies if the "Dynamic" mode is selected. If the "Dynamic" mode is not selected, the value of this parameter is the same as that of `ExecutorNumbers`.
	ExecutorMaxNumbers *uint64 `json:"ExecutorMaxNumbers,omitnil,omitempty" name:"ExecutorMaxNumbers"`

	// The session timeout period in seconds. Default value: 3600
	TimeoutInSecond *int64 `json:"TimeoutInSecond,omitnil,omitempty" name:"TimeoutInSecond"`

	// The unique ID of a session. If this parameter is specified, the task will be run using the specified session.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// The name of the session to create.
	SessionName *string `json:"SessionName,omitnil,omitempty" name:"SessionName"`

	// The session configurations. Valid values: `1.dlc.eni` for user-defined ENI gateway information;
	// `2.dlc.role.arn` for user-defined roleArn configurations;
	// and `3.dlc.sql.set.config` for user-defined cluster configurations.
	Arguments []*KVPair `json:"Arguments,omitnil,omitempty" name:"Arguments"`

	// Whether to inherit the resource configuration of clusters; 0: not inherit (by default); 1: inherit clusters.
	IsInherit *int64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`

	// User-defined primary key, and it should be unique.
	CustomKey *string `json:"CustomKey,omitnil,omitempty" name:"CustomKey"`
}

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

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

// Predefined struct for user
type CreateSparkSessionBatchSQLResponseParams struct {
	// The unique identifier of a batch task.
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

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

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

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

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

// Predefined struct for user
type CreateStoreLocationRequestParams struct {
	// COS path for calculation results storage, such as cosn://bucketname/
	StoreLocation *string `json:"StoreLocation,omitnil,omitempty" name:"StoreLocation"`
}

type CreateStoreLocationRequest struct {
	*tchttp.BaseRequest
	
	// COS path for calculation results storage, such as cosn://bucketname/
	StoreLocation *string `json:"StoreLocation,omitnil,omitempty" name:"StoreLocation"`
}

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

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

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

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

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

// Predefined struct for user
type CreateTaskRequestParams struct {
	// Computing task. This parameter contains the task type and related configuration information.
	Task *Task `json:"Task,omitnil,omitempty" name:"Task"`

	// Database name. If there is a database name in the SQL statement, the database in the SQL statement will be used first; otherwise, the database specified by this parameter will be used (note: when submitting the database creation SQL statement, passed in an empty string for this field).
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Name of the default data source
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Data engine name. If this parameter is not specified, the task will be submitted to the default engine.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Standard spark execution task resourceGroupName
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

type CreateTaskRequest struct {
	*tchttp.BaseRequest
	
	// Computing task. This parameter contains the task type and related configuration information.
	Task *Task `json:"Task,omitnil,omitempty" name:"Task"`

	// Database name. If there is a database name in the SQL statement, the database in the SQL statement will be used first; otherwise, the database specified by this parameter will be used (note: when submitting the database creation SQL statement, passed in an empty string for this field).
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Name of the default data source
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Data engine name. If this parameter is not specified, the task will be submitted to the default engine.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Standard spark execution task resourceGroupName
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

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

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

// Predefined struct for user
type CreateTaskResponseParams struct {
	// Task ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type CreateTaskResponse struct {
	*tchttp.BaseResponse
	Response *CreateTaskResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateTasksRequestParams struct {
	// Database name. If there is a database name in the SQL statement, the database in the SQL statement will be used first; otherwise, the database specified by this parameter will be used (note: when submitting the database creation SQL statement, passed in an empty string for this field).
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// SQL task information
	Tasks *TasksInfo `json:"Tasks,omitnil,omitempty" name:"Tasks"`

	// Data source name. Default value: DataLakeCatalog.
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Compute engine name. If this parameter is not specified, the task will be submitted to the default engine.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Resource group name of the spark cluster
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

type CreateTasksRequest struct {
	*tchttp.BaseRequest
	
	// Database name. If there is a database name in the SQL statement, the database in the SQL statement will be used first; otherwise, the database specified by this parameter will be used (note: when submitting the database creation SQL statement, passed in an empty string for this field).
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// SQL task information
	Tasks *TasksInfo `json:"Tasks,omitnil,omitempty" name:"Tasks"`

	// Data source name. Default value: DataLakeCatalog.
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Compute engine name. If this parameter is not specified, the task will be submitted to the default engine.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Resource group name of the spark cluster
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

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

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

// Predefined struct for user
type CreateTasksResponseParams struct {
	// ID of the current batch of submitted tasks
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

	// Collection of task IDs arranged in order of execution
	TaskIdSet []*string `json:"TaskIdSet,omitnil,omitempty" name:"TaskIdSet"`

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

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

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

// Predefined struct for user
type CreateUserRequestParams struct {
	// Sub-user UIN that needs to be granted permissions. It can be checked through the upper right corner of Tencent Cloud Console → Account Information → Account ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// User description, which can make it easy to identify different users.
	UserDescription *string `json:"UserDescription,omitnil,omitempty" name:"UserDescription"`

	// Collections of permissions bound to users
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`

	// Types of users. ADMIN: administrators; COMMON: general users. When the type of user is administrator, the collections of permissions and bound working groups cannot be set. Administrators own all the permissions by default. If the parameter is not filled in, it will be COMMON by default.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

	// Collection of IDs of working groups bound to users
	WorkGroupIds []*int64 `json:"WorkGroupIds,omitnil,omitempty" name:"WorkGroupIds"`

	// User alias, and its characters are less than 50.
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`
}

type CreateUserRequest struct {
	*tchttp.BaseRequest
	
	// Sub-user UIN that needs to be granted permissions. It can be checked through the upper right corner of Tencent Cloud Console → Account Information → Account ID.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// User description, which can make it easy to identify different users.
	UserDescription *string `json:"UserDescription,omitnil,omitempty" name:"UserDescription"`

	// Collections of permissions bound to users
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`

	// Types of users. ADMIN: administrators; COMMON: general users. When the type of user is administrator, the collections of permissions and bound working groups cannot be set. Administrators own all the permissions by default. If the parameter is not filled in, it will be COMMON by default.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

	// Collection of IDs of working groups bound to users
	WorkGroupIds []*int64 `json:"WorkGroupIds,omitnil,omitempty" name:"WorkGroupIds"`

	// User alias, and its characters are less than 50.
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`
}

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

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

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

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

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

// Predefined struct for user
type CreateUserRoleRequestParams struct {
	// RoleArn info
	Arn *string `json:"Arn,omitnil,omitempty" name:"Arn"`

	// Role description
	Desc *string `json:"Desc,omitnil,omitempty" name:"Desc"`

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

	// Authorized path list in cos
	CosPermissionList []*CosPermission `json:"CosPermissionList,omitnil,omitempty" name:"CosPermissionList"`

	// cam policy json
	PermissionJson *string `json:"PermissionJson,omitnil,omitempty" name:"PermissionJson"`

	// Whether resident is set to: 1 non-resident (default), 2 resident (only able to set one resident).
	IsDefault *int64 `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`
}

type CreateUserRoleRequest struct {
	*tchttp.BaseRequest
	
	// RoleArn info
	Arn *string `json:"Arn,omitnil,omitempty" name:"Arn"`

	// Role description
	Desc *string `json:"Desc,omitnil,omitempty" name:"Desc"`

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

	// Authorized path list in cos
	CosPermissionList []*CosPermission `json:"CosPermissionList,omitnil,omitempty" name:"CosPermissionList"`

	// cam policy json
	PermissionJson *string `json:"PermissionJson,omitnil,omitempty" name:"PermissionJson"`

	// Whether resident is set to: 1 non-resident (default), 2 resident (only able to set one resident).
	IsDefault *int64 `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`
}

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

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

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

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

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

// Predefined struct for user
type CreateWorkGroupRequestParams struct {
	// Working group name
	WorkGroupName *string `json:"WorkGroupName,omitnil,omitempty" name:"WorkGroupName"`

	// Working group description
	WorkGroupDescription *string `json:"WorkGroupDescription,omitnil,omitempty" name:"WorkGroupDescription"`

	// Collections of authentication policies bound to working groups
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`

	// Collection of IDs of users to be bound to working groups
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

type CreateWorkGroupRequest struct {
	*tchttp.BaseRequest
	
	// Working group name
	WorkGroupName *string `json:"WorkGroupName,omitnil,omitempty" name:"WorkGroupName"`

	// Working group description
	WorkGroupDescription *string `json:"WorkGroupDescription,omitnil,omitempty" name:"WorkGroupDescription"`

	// Collections of authentication policies bound to working groups
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`

	// Collection of IDs of users to be bound to working groups
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

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

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

// Predefined struct for user
type CreateWorkGroupResponseParams struct {
	// Working group ID which is globally unique
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

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

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

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

type CrontabResumeSuspendStrategy struct {
	// Scheduled starting time, such as 8: 00 a.m. on Monday and Wednesday
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResumeTime *string `json:"ResumeTime,omitnil,omitempty" name:"ResumeTime"`

	// Scheduled suspension time, such as 8: 00 p.m. on Monday and Wednesday
	// Note: This field may return null, indicating that no valid values can be obtained.
	SuspendTime *string `json:"SuspendTime,omitnil,omitempty" name:"SuspendTime"`

	// The suspension setting. Valid values: `0` (suspension after task end, default) and `1` (force suspension).
	// Note: This field may return null, indicating that no valid values can be obtained.
	SuspendStrategy *int64 `json:"SuspendStrategy,omitnil,omitempty" name:"SuspendStrategy"`
}

type DLCCatalogAccess struct {
	// VPCID
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Product type
	// Note: This field may return null, indicating that no valid values can be obtained.
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// Description
	// Note: This field may return null, indicating that no valid values can be obtained.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Creation time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type DLCTable struct {
	// Basic information of the data table
	// Note: This field may return null, indicating that no valid values can be obtained.
	TableBaseInfo *TableBaseInfo `json:"TableBaseInfo,omitnil,omitempty" name:"TableBaseInfo"`

	// Data table column information
	// Note: This field may return null, indicating that no valid values can be obtained.
	Columns []*TColumn `json:"Columns,omitnil,omitempty" name:"Columns"`

	// Data table partition information
	// Note: This field may return null, indicating that no valid values can be obtained.
	Partitions []*TPartition `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// Data storage path
	// Note: This field may return null, indicating that no valid values can be obtained.
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Data table attribute information
	// Note: This field may return null, indicating that no valid values can be obtained.
	Properties []*Property `json:"Properties,omitnil,omitempty" name:"Properties"`

	// Data table update information
	// Note: This field may return null, indicating that no valid values can be obtained.
	ModifiedTime *string `json:"ModifiedTime,omitnil,omitempty" name:"ModifiedTime"`

	// Database creation time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Data format
	// Note: This field may return null, indicating that no valid values can be obtained.
	InputFormat *string `json:"InputFormat,omitnil,omitempty" name:"InputFormat"`

	// Data storage size
	// Note: This field may return null, indicating that no valid values can be obtained.
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// Number of rows in the data table
	// Note: This field may return null, indicating that no valid values can be obtained.
	RecordCount *int64 `json:"RecordCount,omitnil,omitempty" name:"RecordCount"`

	// Materialized view name
	// Note: This field may return null, indicating that no valid values can be obtained.
	MapMaterializedViewName *string `json:"MapMaterializedViewName,omitnil,omitempty" name:"MapMaterializedViewName"`

	// Visit hot spots
	// Note: This field may return null, indicating that no valid values can be obtained.
	HeatValue *int64 `json:"HeatValue,omitnil,omitempty" name:"HeatValue"`

	// External table configuration information
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExternalDataConfiguration *ExternalDataConfiguration `json:"ExternalDataConfiguration,omitnil,omitempty" name:"ExternalDataConfiguration"`
}

type DMSColumn struct {
	// Name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Description
	// Note: This field may return null, indicating that no valid values can be obtained.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Type
	// Note: This field may return null, indicating that no valid values can be obtained.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Sort
	// Note: This field may return null, indicating that no valid values can be obtained.
	Position *int64 `json:"Position,omitnil,omitempty" name:"Position"`

	// Additional Parameters
	// Note: This field may return null, indicating that no valid values can be obtained.
	Params []*KVPair `json:"Params,omitnil,omitempty" name:"Params"`

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

	// Whether partitioned
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsPartition *bool `json:"IsPartition,omitnil,omitempty" name:"IsPartition"`
}

type DMSColumnOrder struct {
	// Column name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Col *string `json:"Col,omitnil,omitempty" name:"Col"`

	// Sort
	// Note: This field may return null, indicating that no valid values can be obtained.
	Order *int64 `json:"Order,omitnil,omitempty" name:"Order"`
}

type DMSDatabaseInfo struct {
	// Database name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Schema name
	// Note: This field may return null, indicating that no valid values can be obtained.
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Storage address
	// Note: This field may return null, indicating that no valid values can be obtained.
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Basic object information
	// Note: This field may return null, indicating that no valid values can be obtained.
	Asset *Asset `json:"Asset,omitnil,omitempty" name:"Asset"`
}

type DMSPartition struct {
	// Database name
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Data directory name
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Table name
	TableName *string `json:"TableName,omitnil,omitempty" name:"TableName"`

	// Data version
	DataVersion *int64 `json:"DataVersion,omitnil,omitempty" name:"DataVersion"`

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

	// Value List
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`

	// Storage size
	StorageSize *int64 `json:"StorageSize,omitnil,omitempty" name:"StorageSize"`

	// Number of records
	RecordCount *int64 `json:"RecordCount,omitnil,omitempty" name:"RecordCount"`

	// Creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time
	ModifiedTime *string `json:"ModifiedTime,omitnil,omitempty" name:"ModifiedTime"`

	// Last access time
	LastAccessTime *string `json:"LastAccessTime,omitnil,omitempty" name:"LastAccessTime"`

	// Additional attribute
	Params []*KVPair `json:"Params,omitnil,omitempty" name:"Params"`

	// Storage object
	Sds *DMSSds `json:"Sds,omitnil,omitempty" name:"Sds"`
}

type DMSSds struct {
	// Storage address
	// Note: This field may return null, indicating that no valid values can be obtained.
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Input format
	// Note: This field may return null, indicating that no valid values can be obtained.
	InputFormat *string `json:"InputFormat,omitnil,omitempty" name:"InputFormat"`

	// Output format
	// Note: This field may return null, indicating that no valid values can be obtained.
	OutputFormat *string `json:"OutputFormat,omitnil,omitempty" name:"OutputFormat"`

	// Number of buckets
	// Note: This field may return null, indicating that no valid values can be obtained.
	NumBuckets *int64 `json:"NumBuckets,omitnil,omitempty" name:"NumBuckets"`

	// Whether it is compressed
	// Note: This field may return null, indicating that no valid values can be obtained.
	Compressed *bool `json:"Compressed,omitnil,omitempty" name:"Compressed"`

	// Whether it has a subdirectory
	// Note: This field may return null, indicating that no valid values can be obtained.
	StoredAsSubDirectories *bool `json:"StoredAsSubDirectories,omitnil,omitempty" name:"StoredAsSubDirectories"`

	// Serialization lib
	// Note: This field may return null, indicating that no valid values can be obtained.
	SerdeLib *string `json:"SerdeLib,omitnil,omitempty" name:"SerdeLib"`

	// Serialization name
	// Note: This field may return null, indicating that no valid values can be obtained.
	SerdeName *string `json:"SerdeName,omitnil,omitempty" name:"SerdeName"`

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

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

	// Additional Parameters
	// Note: This field may return null, indicating that no valid values can be obtained.
	Params []*KVPair `json:"Params,omitnil,omitempty" name:"Params"`

	// Column sorting (Expired)
	// Note: This field may return null, indicating that no valid values can be obtained.
	SortCols *DMSColumnOrder `json:"SortCols,omitnil,omitempty" name:"SortCols"`

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

	// Column sorting field
	// Note: This field may return null, indicating that no valid values can be obtained.
	SortColumns []*DMSColumnOrder `json:"SortColumns,omitnil,omitempty" name:"SortColumns"`
}

type DMSSourceDatabaseInfo struct {
	// Source database name
	// Note: This field may return null, indicating that no valid values can be obtained.
	SourceDatabaseName *string `json:"SourceDatabaseName,omitnil,omitempty" name:"SourceDatabaseName"`

	// Array of table names in the source database
	// Note: This field may return null, indicating that no valid values can be obtained.
	SourceTableNameList []*string `json:"SourceTableNameList,omitnil,omitempty" name:"SourceTableNameList"`
}

type DataEngineBasicInfo struct {
	// DataEngine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Data engine status: -2: deleted; -1: failed; 0: initializing; 1: suspended; 2: running; 3: ready to delete; 4: deleting
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// Creation time
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Update time
	UpdateTime *int64 `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Returned information
	// Note: This field may return null, indicating that no valid values can be obtained.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Engine types, and the valid values are PrestoSQL, SparkSQL, and SparkBatch.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineType *string `json:"DataEngineType,omitnil,omitempty" name:"DataEngineType"`

	// User ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

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

type DataEngineConfigInstanceInfo struct {
	// Engine ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Collection of user-defined configuration items
	DataEngineConfigPairs []*DataEngineConfigPair `json:"DataEngineConfigPairs,omitnil,omitempty" name:"DataEngineConfigPairs"`

	// Template of the resource parameter configuration of the job cluster
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`
}

type DataEngineConfigPair struct {
	// Configuration items
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConfigItem *string `json:"ConfigItem,omitnil,omitempty" name:"ConfigItem"`

	// Configuration values
	// Note: This field may return null, indicating that no valid values can be obtained.
	ConfigValue *string `json:"ConfigValue,omitnil,omitempty" name:"ConfigValue"`
}

type DataEngineImageVersion struct {
	// ID of the major version of the image
	ImageVersionId *string `json:"ImageVersionId,omitnil,omitempty" name:"ImageVersionId"`

	// Name of the major version of the image
	ImageVersion *string `json:"ImageVersion,omitnil,omitempty" name:"ImageVersion"`

	// Description of the major version of the image
	// Note: This field may return null, indicating that no valid values can be obtained.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Whether it is a public version: 1: public version; 2: private version
	IsPublic *uint64 `json:"IsPublic,omitnil,omitempty" name:"IsPublic"`

	// Cluster types: SparkSQL, PrestoSQL, and SparkBatch
	EngineType *string `json:"EngineType,omitnil,omitempty" name:"EngineType"`

	// Version status. 1: initializing; 2: online; 3: offline
	IsSharedEngine *uint64 `json:"IsSharedEngine,omitnil,omitempty" name:"IsSharedEngine"`

	// Version status. 1: initializing; 2: online; 3: offline
	State *uint64 `json:"State,omitnil,omitempty" name:"State"`

	// Insert time
	InsertTime *string `json:"InsertTime,omitnil,omitempty" name:"InsertTime"`

	// Update time
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`
}

type DataEngineInfo struct {
	// DataEngine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Engine type: spark/presto
	EngineType *string `json:"EngineType,omitnil,omitempty" name:"EngineType"`

	// Cluster resource type spark_private/presto_private/presto_cu/spark_cu
	ClusterType *string `json:"ClusterType,omitnil,omitempty" name:"ClusterType"`

	// Quota ID
	QuotaId *string `json:"QuotaId,omitnil,omitempty" name:"QuotaId"`

	// Data engine status -2 deleted, -1 failed, 0 initializing, 1 suspended, 2 running, 3 ready to delete, and 4 deleting
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// Creation time
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Update time
	UpdateTime *int64 `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Cluster specifications
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// Billing mode: 0 shared mode, 1 pay-as-you-go, and 2 monthly subscription
	Mode *int64 `json:"Mode,omitnil,omitempty" name:"Mode"`

	// Minimum number of clusters
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	MinClusters *int64 `json:"MinClusters,omitnil,omitempty" name:"MinClusters"`

	// Maximum number of clusters
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	MaxClusters *int64 `json:"MaxClusters,omitnil,omitempty" name:"MaxClusters"`

	// Whether to recover automatically
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	AutoResume *bool `json:"AutoResume,omitnil,omitempty" name:"AutoResume"`

	// Automatic recovery time
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	SpendAfter *int64 `json:"SpendAfter,omitnil,omitempty" name:"SpendAfter"`

	// Cluster IP range
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	CidrBlock *string `json:"CidrBlock,omitnil,omitempty" name:"CidrBlock"`

	// Whether it is the default engine
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	DefaultDataEngine *bool `json:"DefaultDataEngine,omitnil,omitempty" name:"DefaultDataEngine"`

	// Returned Message
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Operator
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`

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

	// Isolation time
	IsolatedTime *string `json:"IsolatedTime,omitnil,omitempty" name:"IsolatedTime"`

	// Rectification time
	ReversalTime *string `json:"ReversalTime,omitnil,omitempty" name:"ReversalTime"`

	// Username
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`

	// Key-value pair collection
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	TagList []*TagInfo `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Permissions owned by the engine
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Permissions []*string `json:"Permissions,omitnil,omitempty" name:"Permissions"`

	// Whether to automatically suspend the cluster: False (by default) means that the cluster is not automatically suspended; true means that the cluster is automatically suspended.
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	AutoSuspend *bool `json:"AutoSuspend,omitnil,omitempty" name:"AutoSuspend"`

	// Scheduling policy of starting and ending the cluster: 0 (by default) indicates turning off the scheduling policy; 1 indicates turning on the scheduling policy. (Note: The scheduling policy of starting and ending the cluster and the automatic suspension policy are mutually exclusive.)
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	CrontabResumeSuspend *int64 `json:"CrontabResumeSuspend,omitnil,omitempty" name:"CrontabResumeSuspend"`

	// Scheduled start and end policy. Complex type: Include start and end time and the cluster suspension strategy.
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	CrontabResumeSuspendStrategy *CrontabResumeSuspendStrategy `json:"CrontabResumeSuspendStrategy,omitnil,omitempty" name:"CrontabResumeSuspendStrategy"`

	// Type of the task executed by the engine. Valid value: SQL/BATCH
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	EngineExecType *string `json:"EngineExecType,omitnil,omitempty" name:"EngineExecType"`

	// Automatic renewal flag: 0 means the initial state and there is no automatic renewal by default. If the user has the privilege to retain services with advanced payment, there will be an automatic renewal. 1 means that there is an automatic renewal. 2 means that there is surely no automatic renewal.
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`

	// Cluster automatic suspension time
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	AutoSuspendTime *int64 `json:"AutoSuspendTime,omitnil,omitempty" name:"AutoSuspendTime"`

	// Network connection configuration
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	NetworkConnectionSet []*NetworkConnection `json:"NetworkConnectionSet,omitnil,omitempty" name:"NetworkConnectionSet"`

	// Jump address of ui
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	UiURL *string `json:"UiURL,omitnil,omitempty" name:"UiURL"`

	// Type of the engine resource
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Cluster image version ID
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	ImageVersionId *string `json:"ImageVersionId,omitnil,omitempty" name:"ImageVersionId"`

	// Minor cluster image version ID
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	ChildImageVersionId *string `json:"ChildImageVersionId,omitnil,omitempty" name:"ChildImageVersionId"`

	// Cluster image version name
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	ImageVersionName *string `json:"ImageVersionName,omitnil,omitempty" name:"ImageVersionName"`

	// Whether to enable the standby cluster
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	StartStandbyCluster *bool `json:"StartStandbyCluster,omitnil,omitempty" name:"StartStandbyCluster"`

	// Whether the elastic scaling of the spark jar monthly subscription cluster is enabled
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	ElasticSwitch *bool `json:"ElasticSwitch,omitnil,omitempty" name:"ElasticSwitch"`

	// Upper limit of the spark jar's monthly subscribed cluster elasticity
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	ElasticLimit *int64 `json:"ElasticLimit,omitnil,omitempty" name:"ElasticLimit"`

	// Whether it is the default engine
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	DefaultHouse *bool `json:"DefaultHouse,omitnil,omitempty" name:"DefaultHouse"`

	// Maximum concurrency number of a single cluster
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	MaxConcurrency *int64 `json:"MaxConcurrency,omitnil,omitempty" name:"MaxConcurrency"`

	// Maximum time for the task to queue
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	TolerableQueueTime *int64 `json:"TolerableQueueTime,omitnil,omitempty" name:"TolerableQueueTime"`

	// User AppID
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	UserAppId *int64 `json:"UserAppId,omitnil,omitempty" name:"UserAppId"`

	// User uin
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	UserUin *string `json:"UserUin,omitnil,omitempty" name:"UserUin"`

	// SessionResourceTemplate
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`

	// Automatic authorization switch
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	AutoAuthorization *bool `json:"AutoAuthorization,omitnil,omitempty" name:"AutoAuthorization"`

	// Engine version, supporting Native/SuperSQL
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	EngineGeneration *string `json:"EngineGeneration,omitnil,omitempty" name:"EngineGeneration"`

	// Detailed engine type, supporting SparkSQL/SparkBatch/PrestoSQL/Kyuubi
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	EngineTypeDetail *string `json:"EngineTypeDetail,omitnil,omitempty" name:"EngineTypeDetail"`

	// Engine network ID
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	EngineNetworkId *string `json:"EngineNetworkId,omitnil,omitempty" name:"EngineNetworkId"`

	// Number of resource groups associated with the standard engine
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	EngineResourceGroupCount *int64 `json:"EngineResourceGroupCount,omitnil,omitempty" name:"EngineResourceGroupCount"`

	// Current usage of the engine (Cu)
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	EngineResourceUsedCU *int64 `json:"EngineResourceUsedCU,omitnil,omitempty" name:"EngineResourceUsedCU"`

	// Access information of the engine
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	AccessInfos []*AccessInfo `json:"AccessInfos,omitnil,omitempty" name:"AccessInfos"`

	// Name of the network where the engine is located
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	EngineNetworkName *string `json:"EngineNetworkName,omitnil,omitempty" name:"EngineNetworkName"`
}

type DataEngineScaleInfo struct {
	// Engine ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Engine name
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Engine specification details
	// Note: This field may return null, indicating that no valid values can be obtained.
	ScaleDetail []*DataEngineScaleInfoDetail `json:"ScaleDetail,omitnil,omitempty" name:"ScaleDetail"`
}

type DataEngineScaleInfoDetail struct {
	// Start time of counting in the format of yyyy-MM-dd HH:mm:ss
	// Note: This field may return null, indicating that no valid values can be obtained.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time of counting in the format of yyyy-MM-dd HH:mm:ss
	// Note: This field may return null, indicating that no valid values can be obtained.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Current statistical time period and engine specifications
	// Note: This field may return null, indicating that no valid values can be obtained.
	CU *int64 `json:"CU,omitnil,omitempty" name:"CU"`
}

type DataGovernPolicy struct {
	// Governance rule type. Valid values: `Customize` (custom) and `Intelligence` (intelligent).
	// Note: This field may return null, indicating that no valid values can be obtained.
	RuleType *string `json:"RuleType,omitnil,omitempty" name:"RuleType"`

	// The governance engine.
	// Note: This field may return null, indicating that no valid values can be obtained.
	GovernEngine *string `json:"GovernEngine,omitnil,omitempty" name:"GovernEngine"`
}

type DataMaskStrategy struct {
	// Policy ID
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	StrategyId *string `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`

	// User AppId
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserAppId *string `json:"UserAppId,omitnil,omitempty" name:"UserAppId"`

	// User UIN
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Specifies the uin of the user sub-account to operate.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`

	// Policy name
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	StrategyName *string `json:"StrategyName,omitnil,omitempty" name:"StrategyName"`

	// MASK_SHOW_FIRST_4, MASK_SHOW_LAST_4, MASK_HASH, MASK_DATE_SHOW_YEAR, MASK_NULL, MASK_DEFAULT.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StrategyType *string `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Policy description
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	StrategyDesc *string `json:"StrategyDesc,omitnil,omitempty" name:"StrategyDesc"`

	// User group policy list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Groups []*GroupInfo `json:"Groups,omitnil,omitempty" name:"Groups"`

	// User sub-account uin list, concatenated by ;.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Users *string `json:"Users,omitnil,omitempty" name:"Users"`

	// 1: in effect; 0: deleted.
	// Note: This field may return null, indicating that no valid values can be obtained.
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// Policy creation time. timestamp in milliseconds.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Policy update time. timestamp in milliseconds.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UpdateTime *int64 `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`
}

type DataMaskStrategyInfo struct {
	// Policy name
	StrategyName *string `json:"StrategyName,omitnil,omitempty" name:"StrategyName"`

	// MASK_SHOW_FIRST_4, MASK_SHOW_LAST_4, MASK_HASH, MASK_DATE_SHOW_YEAR, MASK_NULL, MASK_DEFAULT.
	StrategyType *string `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`

	// Policy description
	StrategyDesc *string `json:"StrategyDesc,omitnil,omitempty" name:"StrategyDesc"`

	// User group policy list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Groups []*GroupInfo `json:"Groups,omitnil,omitempty" name:"Groups"`

	// User sub-account uin list, concatenated by ;.
	Users *string `json:"Users,omitnil,omitempty" name:"Users"`

	// Policy ID
	StrategyId *string `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`
}

type DataMaskStrategyPolicy struct {
	// Masking permission object.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PolicyInfo *Policy `json:"PolicyInfo,omitnil,omitempty" name:"PolicyInfo"`

	// Masking policy ID. specifies the ID of the data masking policy.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataMaskStrategyId *string `json:"DataMaskStrategyId,omitnil,omitempty" name:"DataMaskStrategyId"`

	// Bound field type.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ColumnType *string `json:"ColumnType,omitnil,omitempty" name:"ColumnType"`
}

// Predefined struct for user
type DeleteCHDFSBindingProductRequestParams struct {
	// Names of metadata acceleration buckets to be unbound
	MountPoint *string `json:"MountPoint,omitnil,omitempty" name:"MountPoint"`

	// Types of buckets which are divided into cos and lakefs
	BucketType *string `json:"BucketType,omitnil,omitempty" name:"BucketType"`

	// Product name
	ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"`

	// Engine name. When ProductName selects DLC products, this parameter must be specified. When ProductName selects other products, it can be unspecified.
	EngineName *string `json:"EngineName,omitnil,omitempty" name:"EngineName"`

	// VPC information. When ProductName is other, this parameter must be specified.
	VpcInfo []*VpcInfo `json:"VpcInfo,omitnil,omitempty" name:"VpcInfo"`
}

type DeleteCHDFSBindingProductRequest struct {
	*tchttp.BaseRequest
	
	// Names of metadata acceleration buckets to be unbound
	MountPoint *string `json:"MountPoint,omitnil,omitempty" name:"MountPoint"`

	// Types of buckets which are divided into cos and lakefs
	BucketType *string `json:"BucketType,omitnil,omitempty" name:"BucketType"`

	// Product name
	ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"`

	// Engine name. When ProductName selects DLC products, this parameter must be specified. When ProductName selects other products, it can be unspecified.
	EngineName *string `json:"EngineName,omitnil,omitempty" name:"EngineName"`

	// VPC information. When ProductName is other, this parameter must be specified.
	VpcInfo []*VpcInfo `json:"VpcInfo,omitnil,omitempty" name:"VpcInfo"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteDataEngineRequestParams struct {
	// Delete the name array of virtual clusters.
	DataEngineNames []*string `json:"DataEngineNames,omitnil,omitempty" name:"DataEngineNames"`
}

type DeleteDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// Delete the name array of virtual clusters.
	DataEngineNames []*string `json:"DataEngineNames,omitnil,omitempty" name:"DataEngineNames"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteDataMaskStrategyRequestParams struct {
	// DMask policy Id. specifies the Id of the data masking policy.
	StrategyId *string `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`
}

type DeleteDataMaskStrategyRequest struct {
	*tchttp.BaseRequest
	
	// DMask policy Id. specifies the Id of the data masking policy.
	StrategyId *string `json:"StrategyId,omitnil,omitempty" name:"StrategyId"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteSparkAppRequestParams struct {
	// The Spark job name.
	AppName *string `json:"AppName,omitnil,omitempty" name:"AppName"`
}

type DeleteSparkAppRequest struct {
	*tchttp.BaseRequest
	
	// The Spark job name.
	AppName *string `json:"AppName,omitnil,omitempty" name:"AppName"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteThirdPartyAccessUserRequestParams struct {

}

type DeleteThirdPartyAccessUserRequest struct {
	*tchttp.BaseRequest
	
}

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

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

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

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

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

// Predefined struct for user
type DeleteUserRequestParams struct {
	// ID of the user to be deleted
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

type DeleteUserRequest struct {
	*tchttp.BaseRequest
	
	// ID of the user to be deleted
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteUsersFromWorkGroupRequestParams struct {
	// User information to be deleted
	AddInfo *UserIdSetOfWorkGroupId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

type DeleteUsersFromWorkGroupRequest struct {
	*tchttp.BaseRequest
	
	// User information to be deleted
	AddInfo *UserIdSetOfWorkGroupId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteWorkGroupRequestParams struct {
	// Collection of IDs of working groups to be deleted
	WorkGroupIds []*int64 `json:"WorkGroupIds,omitnil,omitempty" name:"WorkGroupIds"`
}

type DeleteWorkGroupRequest struct {
	*tchttp.BaseRequest
	
	// Collection of IDs of working groups to be deleted
	WorkGroupIds []*int64 `json:"WorkGroupIds,omitnil,omitempty" name:"WorkGroupIds"`
}

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

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

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

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

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

// Predefined struct for user
type DescribeAdvancedStoreLocationRequestParams struct {

}

type DescribeAdvancedStoreLocationRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeAdvancedStoreLocationResponseParams struct {
	// Whether to enable advanced settings. 0 means no while 1 means yes.
	Enable *uint64 `json:"Enable,omitnil,omitempty" name:"Enable"`

	// COS path of saving querying results
	StoreLocation *string `json:"StoreLocation,omitnil,omitempty" name:"StoreLocation"`

	// Whether there is permission for managed storage
	HasLakeFs *bool `json:"HasLakeFs,omitnil,omitempty" name:"HasLakeFs"`

	// Managed storage status. The value is meaningful only when HasLakeFs is equal to true.
	// Note: This field may return null, indicating that no valid values can be obtained.
	LakeFsStatus *string `json:"LakeFsStatus,omitnil,omitempty" name:"LakeFsStatus"`

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

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

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

// Predefined struct for user
type DescribeDLCCatalogAccessRequestParams struct {
	// Displayed records
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Number of records
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter criteria
	Filter *Filter `json:"Filter,omitnil,omitempty" name:"Filter"`
}

type DescribeDLCCatalogAccessRequest struct {
	*tchttp.BaseRequest
	
	// Displayed records
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Number of records
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter criteria
	Filter *Filter `json:"Filter,omitnil,omitempty" name:"Filter"`
}

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

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

// Predefined struct for user
type DescribeDLCCatalogAccessResponseParams struct {
	// Total
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of the permissions granted by DLCCatalog
	Rows []*DLCCatalogAccess `json:"Rows,omitnil,omitempty" name:"Rows"`

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

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

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

// Predefined struct for user
type DescribeDLCTableListRequestParams struct {
	// Database name
	DbName *string `json:"DbName,omitnil,omitempty" name:"DbName"`

	// Catalog name
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Query the list's filter criteria.
	Filters *Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

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

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

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

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

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

	// Sorting fields
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting rules: true for ascending order; false for descending order
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Data format type: hive, iceberg, etc.
	TableFormat *string `json:"TableFormat,omitnil,omitempty" name:"TableFormat"`


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

type DescribeDLCTableListRequest struct {
	*tchttp.BaseRequest
	
	// Database name
	DbName *string `json:"DbName,omitnil,omitempty" name:"DbName"`

	// Catalog name
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Query the list's filter criteria.
	Filters *Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

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

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

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

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

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

	// Sorting fields
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting rules: true for ascending order; false for descending order
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Data format type: hive, iceberg, etc.
	TableFormat *string `json:"TableFormat,omitnil,omitempty" name:"TableFormat"`

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

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

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

// Predefined struct for user
type DescribeDLCTableListResponseParams struct {
	// DLC metadata list information
	// Note: This field may return null, indicating that no valid values can be obtained.
	TableList []*DLCTable `json:"TableList,omitnil,omitempty" name:"TableList"`

	// Statistical value
	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 DescribeDLCTableListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDLCTableListResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDLCTableRequestParams struct {
	// Database name
	DbName *string `json:"DbName,omitnil,omitempty" name:"DbName"`

	// Data table name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Catalog name
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Keyword
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`

	// Match rules
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`

	// Table type
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`
}

type DescribeDLCTableRequest struct {
	*tchttp.BaseRequest
	
	// Database name
	DbName *string `json:"DbName,omitnil,omitempty" name:"DbName"`

	// Data table name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Catalog name
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Keyword
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`

	// Match rules
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`

	// Table type
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`
}

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

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

// Predefined struct for user
type DescribeDLCTableResponseParams struct {
	// Data table information object
	// Note: This field may return null, indicating that no valid values can be obtained.
	DLCTable *DLCTable `json:"DLCTable,omitnil,omitempty" name:"DLCTable"`

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

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

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

// Predefined struct for user
type DescribeDMSDatabaseListRequestParams struct {
	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Schema name
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Match rules
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`

	// Pagination parameters, indicating the size of a single page.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

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

	// Sorting fields
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting fields: true for ascending order; false for descending order
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`
}

type DescribeDMSDatabaseListRequest struct {
	*tchttp.BaseRequest
	
	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Schema name
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Match rules
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`

	// Pagination parameters, indicating the size of a single page.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

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

	// Sorting fields
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting fields: true for ascending order; false for descending order
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`
}

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

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

// Predefined struct for user
type DescribeDMSDatabaseListResponseParams struct {
	// List of database objects for the DMS
	DatabaseList []*DMSDatabaseInfo `json:"DatabaseList,omitnil,omitempty" name:"DatabaseList"`

	// Total number of databases
	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 DescribeDMSDatabaseListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDMSDatabaseListResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDMSDatabaseRequestParams struct {
	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Schema name
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Match rules
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`
}

type DescribeDMSDatabaseRequest struct {
	*tchttp.BaseRequest
	
	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Schema name
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Match rules
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`
}

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

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

// Predefined struct for user
type DescribeDMSDatabaseResponseParams struct {
	// Database name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Schema name
	// Note: This field may return null, indicating that no valid values can be obtained.
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Storage address
	// Note: This field may return null, indicating that no valid values can be obtained.
	Location *string `json:"Location,omitnil,omitempty" name:"Location"`

	// Data object
	// Note: This field may return null, indicating that no valid values can be obtained.
	Asset *Asset `json:"Asset,omitnil,omitempty" name:"Asset"`

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

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

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

// Predefined struct for user
type DescribeDataEngineImageVersionsRequestParams struct {
	// Types of engines: SQL, SparkBatch, StandardSpark, and StandardPresto
	EngineType *string `json:"EngineType,omitnil,omitempty" name:"EngineType"`

	// Sort field: InsertTime (Insertion time, default), UpdateTime (Update time)
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sort order: false (descending, default), true (ascending)
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`
}

type DescribeDataEngineImageVersionsRequest struct {
	*tchttp.BaseRequest
	
	// Types of engines: SQL, SparkBatch, StandardSpark, and StandardPresto
	EngineType *string `json:"EngineType,omitnil,omitempty" name:"EngineType"`

	// Sort field: InsertTime (Insertion time, default), UpdateTime (Update time)
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sort order: false (descending, default), true (ascending)
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`
}

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

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

// Predefined struct for user
type DescribeDataEngineImageVersionsResponseParams struct {
	// Major version of the image information list of clusters
	ImageParentVersions []*DataEngineImageVersion `json:"ImageParentVersions,omitnil,omitempty" name:"ImageParentVersions"`

	// Total
	Total *uint64 `json:"Total,omitnil,omitempty" name:"Total"`

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

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

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

// Predefined struct for user
type DescribeDataEnginePythonSparkImagesRequestParams struct {
	// ID of the minor version of the cluster image
	ChildImageVersionId *string `json:"ChildImageVersionId,omitnil,omitempty" name:"ChildImageVersionId"`
}

type DescribeDataEnginePythonSparkImagesRequest struct {
	*tchttp.BaseRequest
	
	// ID of the minor version of the cluster image
	ChildImageVersionId *string `json:"ChildImageVersionId,omitnil,omitempty" name:"ChildImageVersionId"`
}

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

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

// Predefined struct for user
type DescribeDataEnginePythonSparkImagesResponseParams struct {
	// PYSPARK image information list
	PythonSparkImages []*PythonSparkImage `json:"PythonSparkImages,omitnil,omitempty" name:"PythonSparkImages"`

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

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

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

// Predefined struct for user
type DescribeDataEngineRequestParams struct {
	// House name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`
}

type DescribeDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// House name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`
}

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

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

// Predefined struct for user
type DescribeDataEngineResponseParams struct {
	// Data engine details
	DataEngine *DataEngineInfo `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

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

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

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

// Predefined struct for user
type DescribeDataEnginesScaleDetailRequestParams struct {
	// Engine name list
	DataEngineNames []*string `json:"DataEngineNames,omitnil,omitempty" name:"DataEngineNames"`

	// Start time, and the format is yyyy-MM-dd HH:mm:ss. It can query the records within one month at most.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, and the format is yyyy-MM-dd HH:mm:ss. It can query the records within one month at most.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

type DescribeDataEnginesScaleDetailRequest struct {
	*tchttp.BaseRequest
	
	// Engine name list
	DataEngineNames []*string `json:"DataEngineNames,omitnil,omitempty" name:"DataEngineNames"`

	// Start time, and the format is yyyy-MM-dd HH:mm:ss. It can query the records within one month at most.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, and the format is yyyy-MM-dd HH:mm:ss. It can query the records within one month at most.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`
}

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

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

// Predefined struct for user
type DescribeDataEnginesScaleDetailResponseParams struct {
	// Details about the statistics of engine specifications
	// Note: This field may return null, indicating that no valid values can be obtained.
	Scales []*DataEngineScaleInfo `json:"Scales,omitnil,omitempty" name:"Scales"`

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

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

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

// Predefined struct for user
type DescribeDataMaskStrategiesRequestParams struct {
	// The pagination parameter, specifies the amount of data returned per page. it is 10 by default.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pagination parameters. data offset. default: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter field. strategy-name: search by policy name.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeDataMaskStrategiesRequest struct {
	*tchttp.BaseRequest
	
	// The pagination parameter, specifies the amount of data returned per page. it is 10 by default.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Pagination parameters. data offset. default: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter field. strategy-name: search by policy name.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

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

// Predefined struct for user
type DescribeDataMaskStrategiesResponseParams struct {
	// Total DMask policies.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// DMask policy list. specifies the list of data masking policies.
	Strategies []*DataMaskStrategy `json:"Strategies,omitnil,omitempty" name:"Strategies"`

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

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

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

// Predefined struct for user
type DescribeEngineUsageInfoRequestParams struct {
	// The data engine ID.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

type DescribeEngineUsageInfoRequest struct {
	*tchttp.BaseRequest
	
	// The data engine ID.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

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

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

// Predefined struct for user
type DescribeEngineUsageInfoResponseParams struct {
	// The total cluster spec.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// The used cluster spec.
	Used *int64 `json:"Used,omitnil,omitempty" name:"Used"`

	// The available cluster spec.
	Available *int64 `json:"Available,omitnil,omitempty" name:"Available"`


	AvailPercent *int64 `json:"AvailPercent,omitnil,omitempty" name:"AvailPercent"`

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

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

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

// Predefined struct for user
type DescribeForbiddenTableProRequestParams struct {

}

type DescribeForbiddenTableProRequest struct {
	*tchttp.BaseRequest
	
}

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

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

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

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

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

// Predefined struct for user
type DescribeJobRequestParams struct {
	// Job ID
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`
}

type DescribeJobRequest struct {
	*tchttp.BaseRequest
	
	// Job ID
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`
}

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

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

// Predefined struct for user
type DescribeJobResponseParams struct {
	// Job name
	JobName *string `json:"JobName,omitnil,omitempty" name:"JobName"`

	// Task statistics information.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StatisticInfo *StatisticInfo `json:"StatisticInfo,omitnil,omitempty" name:"StatisticInfo"`

	// Job configuration
	JobConfiguration *string `json:"JobConfiguration,omitnil,omitempty" name:"JobConfiguration"`

	// Job status:
	JobStatus *int64 `json:"JobStatus,omitnil,omitempty" name:"JobStatus"`

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

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

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

// Predefined struct for user
type DescribeJobsRequestParams struct {
	// Query keywords
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`

	// Matching mode
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`

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

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

	// Sorting fields
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting fields, and true means the ascending order (by default) while false means the descending order.
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`
}

type DescribeJobsRequest struct {
	*tchttp.BaseRequest
	
	// Query keywords
	Keyword *string `json:"Keyword,omitnil,omitempty" name:"Keyword"`

	// Matching mode
	Pattern *string `json:"Pattern,omitnil,omitempty" name:"Pattern"`

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

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

	// Sorting fields
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting fields, and true means the ascending order (by default) while false means the descending order.
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`
}

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

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

// Predefined struct for user
type DescribeJobsResponseParams struct {
	// List of job information
	JobList []*JobResponseInfo `json:"JobList,omitnil,omitempty" name:"JobList"`

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

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

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

// Predefined struct for user
type DescribeLakeFsDirSummaryRequestParams struct {

}

type DescribeLakeFsDirSummaryRequest struct {
	*tchttp.BaseRequest
	
}

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

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

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

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

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

// Predefined struct for user
type DescribeLakeFsInfoRequestParams struct {

}

type DescribeLakeFsInfoRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeLakeFsInfoResponseParams struct {
	// Managed storage information
	// Note: This field may return null, indicating that no valid values can be obtained.
	LakeFsInfos []*LakeFsInfo `json:"LakeFsInfos,omitnil,omitempty" name:"LakeFsInfos"`

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

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

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

// Predefined struct for user
type DescribeOtherCHDFSBindingListRequestParams struct {
	// Bucket name
	BucketId *string `json:"BucketId,omitnil,omitempty" name:"BucketId"`
}

type DescribeOtherCHDFSBindingListRequest struct {
	*tchttp.BaseRequest
	
	// Bucket name
	BucketId *string `json:"BucketId,omitnil,omitempty" name:"BucketId"`
}

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

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

// Predefined struct for user
type DescribeOtherCHDFSBindingListResponseParams struct {
	// List not bound to DLC products
	OtherCHDFSBindingList []*OtherCHDFSBinding `json:"OtherCHDFSBindingList,omitnil,omitempty" name:"OtherCHDFSBindingList"`

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

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

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

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

// Predefined struct for user
type DescribeQueryRequestParams struct {
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DescribeQueryRequest struct {
	*tchttp.BaseRequest
	
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

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

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

// Predefined struct for user
type DescribeQueryResponseParams struct {
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The SQL being executed currently. A task contains one SQL.
	SQL *string `json:"SQL,omitnil,omitempty" name:"SQL"`

	// The currently executed task types are divided into DDL, DML, and DQL.
	SQLType *string `json:"SQLType,omitnil,omitempty" name:"SQLType"`

	// The current status of the task is 0: initializing; 1: running; 2: executed; 3: writing data; 4: queuing; -1: task execution failed; -3: manually terminated. The task execution result is returned only when the task is successfully executed.
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// Default data set of query results
	DataSet *string `json:"DataSet,omitnil,omitempty" name:"DataSet"`

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

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

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

// Predefined struct for user
type DescribeResultDownloadRequestParams struct {
	// The query task ID.
	DownloadId *string `json:"DownloadId,omitnil,omitempty" name:"DownloadId"`
}

type DescribeResultDownloadRequest struct {
	*tchttp.BaseRequest
	
	// The query task ID.
	DownloadId *string `json:"DownloadId,omitnil,omitempty" name:"DownloadId"`
}

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

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

// Predefined struct for user
type DescribeResultDownloadResponseParams struct {
	// The file save path.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Path *string `json:"Path,omitnil,omitempty" name:"Path"`

	// The task status. Valid values: `init`, `queue`, `format`, `compress`, `success`, `timeout`, and `error`.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The task exception cause.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Reason *string `json:"Reason,omitnil,omitempty" name:"Reason"`

	// The temporary secret ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SecretId *string `json:"SecretId,omitnil,omitempty" name:"SecretId"`

	// The temporary secret key.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SecretKey *string `json:"SecretKey,omitnil,omitempty" name:"SecretKey"`

	// The temporary token.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Token *string `json:"Token,omitnil,omitempty" name:"Token"`

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

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

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

// Predefined struct for user
type DescribeSessionImageVersionRequestParams struct {
	// Engine Id.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Framework type: machine-learning, python, spark-ml.
	FrameworkType *string `json:"FrameworkType,omitnil,omitempty" name:"FrameworkType"`
}

type DescribeSessionImageVersionRequest struct {
	*tchttp.BaseRequest
	
	// Engine Id.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Framework type: machine-learning, python, spark-ml.
	FrameworkType *string `json:"FrameworkType,omitnil,omitempty" name:"FrameworkType"`
}

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

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

// Predefined struct for user
type DescribeSessionImageVersionResponseParams struct {
	// Expands the image list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	EngineSessionImages []*EngineSessionImage `json:"EngineSessionImages,omitnil,omitempty" name:"EngineSessionImages"`

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

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

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

// Predefined struct for user
type DescribeSparkAppJobRequestParams struct {
	// The Spark job ID. If it co-exists with `JobName`, `JobName` is invalid. At least `JobId` or `JobName` must be used.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Spark job name
	JobName *string `json:"JobName,omitnil,omitempty" name:"JobName"`
}

type DescribeSparkAppJobRequest struct {
	*tchttp.BaseRequest
	
	// The Spark job ID. If it co-exists with `JobName`, `JobName` is invalid. At least `JobId` or `JobName` must be used.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Spark job name
	JobName *string `json:"JobName,omitnil,omitempty" name:"JobName"`
}

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

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

// Predefined struct for user
type DescribeSparkAppJobResponseParams struct {
	// Spark job details
	// Note: This field may return null, indicating that no valid values can be obtained.
	Job *SparkJobInfo `json:"Job,omitnil,omitempty" name:"Job"`

	// Whether the queried Spark job exists
	IsExists *bool `json:"IsExists,omitnil,omitempty" name:"IsExists"`

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

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

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

// Predefined struct for user
type DescribeSparkAppJobsRequestParams struct {
	// The returned results are sorted by this field.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Descending or ascending order, such as `desc`.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// The filters. The following types are supported, and `Name` of the parameter passed in must be one of them: `spark-job-name` (job name), `spark-job-id` (job ID), `spark-app-type` (job type: `1` for batch, `2` for streaming, and `4` for SQL), `user-name` (creator), and `key-word` (job name or ID keywords for fuzzy search).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The update start time in the format of yyyy-mm-dd HH:MM:SS.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The update end time in the format of yyyy-mm-dd HH:MM:SS.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The query list offset, which defaults to 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The maximum number of queries allowed in the list, which defaults to 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeSparkAppJobsRequest struct {
	*tchttp.BaseRequest
	
	// The returned results are sorted by this field.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Descending or ascending order, such as `desc`.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// The filters. The following types are supported, and `Name` of the parameter passed in must be one of them: `spark-job-name` (job name), `spark-job-id` (job ID), `spark-app-type` (job type: `1` for batch, `2` for streaming, and `4` for SQL), `user-name` (creator), and `key-word` (job name or ID keywords for fuzzy search).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The update start time in the format of yyyy-mm-dd HH:MM:SS.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The update end time in the format of yyyy-mm-dd HH:MM:SS.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The query list offset, which defaults to 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// The maximum number of queries allowed in the list, which defaults to 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

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

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

// Predefined struct for user
type DescribeSparkAppJobsResponseParams struct {
	// Detailed list of Spark jobs
	SparkAppJobs []*SparkJobInfo `json:"SparkAppJobs,omitnil,omitempty" name:"SparkAppJobs"`

	// Total number of Spark jobs
	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 DescribeSparkAppJobsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSparkAppJobsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSparkAppTasksRequestParams struct {
	// Spark job ID
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Paginated query offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Paginated query limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Execution instance ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The update start time in the format of yyyy-MM-dd HH:mm:ss.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The update end time in the format of yyyy-MM-dd HH:mm:ss.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Filter by this parameter, which can be `task-state`.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeSparkAppTasksRequest struct {
	*tchttp.BaseRequest
	
	// Spark job ID
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Paginated query offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Paginated query limit
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Execution instance ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The update start time in the format of yyyy-MM-dd HH:mm:ss.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// The update end time in the format of yyyy-MM-dd HH:mm:ss.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Filter by this parameter, which can be `task-state`.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

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

// Predefined struct for user
type DescribeSparkAppTasksResponseParams struct {
	// Task result (this field has been disused)
	// Note: This field may return null, indicating that no valid values can be obtained.
	Tasks *TaskResponseInfo `json:"Tasks,omitnil,omitempty" name:"Tasks"`

	// Total number of tasks
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of task results
	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkAppTasks []*TaskResponseInfo `json:"SparkAppTasks,omitnil,omitempty" name:"SparkAppTasks"`

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

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

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

// Predefined struct for user
type DescribeSparkSessionBatchSqlLogRequestParams struct {
	// The unique ID of a Spark SQL job.
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

	// User-defined primary key. If it is specified, the query should be based on the value.
	CustomKey *string `json:"CustomKey,omitnil,omitempty" name:"CustomKey"`
}

type DescribeSparkSessionBatchSqlLogRequest struct {
	*tchttp.BaseRequest
	
	// The unique ID of a Spark SQL job.
	BatchId *string `json:"BatchId,omitnil,omitempty" name:"BatchId"`

	// User-defined primary key. If it is specified, the query should be based on the value.
	CustomKey *string `json:"CustomKey,omitnil,omitempty" name:"CustomKey"`
}

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

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

// Predefined struct for user
type DescribeSparkSessionBatchSqlLogResponseParams struct {
	// Status: 0: running; 1: successful; 2: failed; 3: cancellation; 4: timeout
	State *uint64 `json:"State,omitnil,omitempty" name:"State"`

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

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

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

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

// Predefined struct for user
type DescribeStoreLocationRequestParams struct {

}

type DescribeStoreLocationRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeStoreLocationResponseParams struct {
	// Return the path of the location where results are stored and which was set by the user. If it is not set, the null character string, i.e. "", will be returned.
	// Note: This field may return null, indicating that no valid values can be obtained.
	StoreLocation *string `json:"StoreLocation,omitnil,omitempty" name:"StoreLocation"`

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

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

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

// Predefined struct for user
type DescribeSubUserAccessPolicyRequestParams struct {

}

type DescribeSubUserAccessPolicyRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeSubUserAccessPolicyResponseParams struct {
	// Sub-user's visiting policy
	PolicyDocument *string `json:"PolicyDocument,omitnil,omitempty" name:"PolicyDocument"`

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

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

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

// Predefined struct for user
type DescribeTablesNameRequestParams struct {
	// List all the data tables in the database.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Quantity of returns. It is 10 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset. It starts from 0 and is 0 by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter criteria. The following filter types are supported. The Name should be one of them.
	// Table-name - String - (filter criteria) data table name, such as table-001.
	// table-id - String - (filter criteria) table id, such as 12342.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Specified data source name to be queried, and it is DataLakeCatalog by default.
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Start time: It is used to filter the update time, and the format is yyyy-mm-dd HH:MM:SS.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time: It is used to filter the update time, and the format is yyyy-mm-dd HH:MM:SS.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Sorting fields, and they support CreateTime (creation time), UpdateTime (update time), StorageSize (storage space), RecordCount (number of rows), and Name (table name) (The ascending order according to names will be adopted if it is not passed).
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting fields, and false means the descending order (by default) while true means the ascending order.
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Table type, query of the table type, and the available value is EXTERNAL_TABLE,INDEX_TABLE,MANAGED_TABLE,MATERIALIZED_VIEW,TABLE,VIEW,VIRTUAL_VIEW
	TableType *string `json:"TableType,omitnil,omitempty" name:"TableType"`

	// Filter fields - table format: If no criteria are specified, all the items will be checked; LAKEFS: managed table; ICEBERG: non-managed iceberg table; HIVE: non-managed hive table; OTHER: other non-managed tables.
	TableFormat *string `json:"TableFormat,omitnil,omitempty" name:"TableFormat"`
}

type DescribeTablesNameRequest struct {
	*tchttp.BaseRequest
	
	// List all the data tables in the database.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Quantity of returns. It is 10 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset. It starts from 0 and is 0 by default.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Filter criteria. The following filter types are supported. The Name should be one of them.
	// Table-name - String - (filter criteria) data table name, such as table-001.
	// table-id - String - (filter criteria) table id, such as 12342.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Specified data source name to be queried, and it is DataLakeCatalog by default.
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Start time: It is used to filter the update time, and the format is yyyy-mm-dd HH:MM:SS.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time: It is used to filter the update time, and the format is yyyy-mm-dd HH:MM:SS.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Sorting fields, and they support CreateTime (creation time), UpdateTime (update time), StorageSize (storage space), RecordCount (number of rows), and Name (table name) (The ascending order according to names will be adopted if it is not passed).
	Sort *string `json:"Sort,omitnil,omitempty" name:"Sort"`

	// Sorting fields, and false means the descending order (by default) while true means the ascending order.
	Asc *bool `json:"Asc,omitnil,omitempty" name:"Asc"`

	// Table type, query of the table type, and the available value is EXTERNAL_TABLE,INDEX_TABLE,MANAGED_TABLE,MATERIALIZED_VIEW,TABLE,VIEW,VIRTUAL_VIEW
	TableType *string `json:"TableType,omitnil,omitempty" name:"TableType"`

	// Filter fields - table format: If no criteria are specified, all the items will be checked; LAKEFS: managed table; ICEBERG: non-managed iceberg table; HIVE: non-managed hive table; OTHER: other non-managed tables.
	TableFormat *string `json:"TableFormat,omitnil,omitempty" name:"TableFormat"`
}

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

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

// Predefined struct for user
type DescribeTablesNameResponseParams struct {
	// Object list of data table names
	TableNameList []*string `json:"TableNameList,omitnil,omitempty" name:"TableNameList"`

	// Total instances
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeTablesNameResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTablesNameResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeTaskResultRequestParams struct {
	// Unique task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The pagination information returned by the last response. This parameter can be omitted for the first response, where the data will be returned from the beginning. The data with a volume set by the `MaxResults` field is returned each time.
	NextToken *string `json:"NextToken,omitnil,omitempty" name:"NextToken"`

	// Maximum number of returned rows. Value range: 0–1,000. Default value: 1,000.
	MaxResults *int64 `json:"MaxResults,omitnil,omitempty" name:"MaxResults"`

	// Whether to convert the data type
	IsTransformDataType *bool `json:"IsTransformDataType,omitnil,omitempty" name:"IsTransformDataType"`
}

type DescribeTaskResultRequest struct {
	*tchttp.BaseRequest
	
	// Unique task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// The pagination information returned by the last response. This parameter can be omitted for the first response, where the data will be returned from the beginning. The data with a volume set by the `MaxResults` field is returned each time.
	NextToken *string `json:"NextToken,omitnil,omitempty" name:"NextToken"`

	// Maximum number of returned rows. Value range: 0–1,000. Default value: 1,000.
	MaxResults *int64 `json:"MaxResults,omitnil,omitempty" name:"MaxResults"`

	// Whether to convert the data type
	IsTransformDataType *bool `json:"IsTransformDataType,omitnil,omitempty" name:"IsTransformDataType"`
}

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

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

// Predefined struct for user
type DescribeTaskResultResponseParams struct {
	// The queried task information. If the returned value is empty, the task with the entered task ID does not exist. The task result will be returned only if the task status is `2` (succeeded).
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskInfo *TaskResultInfo `json:"TaskInfo,omitnil,omitempty" name:"TaskInfo"`

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

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

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

// Predefined struct for user
type DescribeTaskStatisticsRequestParams struct {
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

type DescribeTaskStatisticsRequest struct {
	*tchttp.BaseRequest
	
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`
}

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

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

// Predefined struct for user
type DescribeTaskStatisticsResponseParams struct {
	// Task statistics information.
	StatisticInfo *StatisticInfo `json:"StatisticInfo,omitnil,omitempty" name:"StatisticInfo"`

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

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

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

// Predefined struct for user
type DescribeTasksRequestParams struct {
	// Number of returned results. Default value: 10. Maximum value: 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

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

	// Filter. The following filters are supported, and the `Name` input parameter must be one of them. Up to 50 `task-id` values can be filtered, while up to 5 other parameters can be filtered in total.
	// task-id - String - (filter by task ID). `task-id` format: e386471f-139a-4e59-877f-50ece8135b99.
	// task-state - String - (filter exactly by task status). Valid values: `0` (initial), `1` (running), `2` (succeeded), `-1` (failed).
	// task-sql-keyword - String - (filter fuzzily by SQL statement keyword, such as `DROP TABLE`).
	// task-operator- string (filter by sub-UIN)
	// task-kind - string (filter by task type)
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting field. Valid values: `create-time` (default value), `update-time`.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting order. Valid values: `asc` (ascending order), `desc` (descending order). Default value: `asc`.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Start time in the format of `yyyy-mm-dd HH:MM:SS`, which is the current time seven days ago by default.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time in the format of `yyyy-mm-dd HH:MM:SS`, which is the current time by default. The time span is (0, 30] days. Data in the last 45 days can be queried.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The data engine name for filtering.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Resource group name of the spark engine
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

type DescribeTasksRequest struct {
	*tchttp.BaseRequest
	
	// Number of returned results. Default value: 10. Maximum value: 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

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

	// Filter. The following filters are supported, and the `Name` input parameter must be one of them. Up to 50 `task-id` values can be filtered, while up to 5 other parameters can be filtered in total.
	// task-id - String - (filter by task ID). `task-id` format: e386471f-139a-4e59-877f-50ece8135b99.
	// task-state - String - (filter exactly by task status). Valid values: `0` (initial), `1` (running), `2` (succeeded), `-1` (failed).
	// task-sql-keyword - String - (filter fuzzily by SQL statement keyword, such as `DROP TABLE`).
	// task-operator- string (filter by sub-UIN)
	// task-kind - string (filter by task type)
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting field. Valid values: `create-time` (default value), `update-time`.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting order. Valid values: `asc` (ascending order), `desc` (descending order). Default value: `asc`.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Start time in the format of `yyyy-mm-dd HH:MM:SS`, which is the current time seven days ago by default.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time in the format of `yyyy-mm-dd HH:MM:SS`, which is the current time by default. The time span is (0, 30] days. Data in the last 45 days can be queried.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// The data engine name for filtering.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Resource group name of the spark engine
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

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

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

// Predefined struct for user
type DescribeTasksResponseParams struct {
	// List of task objects.
	TaskList []*TaskResponseInfo `json:"TaskList,omitnil,omitempty" name:"TaskList"`

	// Total number of instances
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// The task overview.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TasksOverview *TasksOverview `json:"TasksOverview,omitnil,omitempty" name:"TasksOverview"`

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

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

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

// Predefined struct for user
type DescribeThirdPartyAccessUserRequestParams struct {

}

type DescribeThirdPartyAccessUserRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeThirdPartyAccessUserResponseParams struct {
	// User information
	UserInfo *OpendThirdAccessUserInfo `json:"UserInfo,omitnil,omitempty" name:"UserInfo"`

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

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

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

// Predefined struct for user
type DescribeUpdatableDataEnginesRequestParams struct {
	// Operation commands of engine configuration. UpdateSparkSQLLakefsPath updates the path of managed tables, and UpdateSparkSQLResultPath updates the path of result buckets.
	DataEngineConfigCommand *string `json:"DataEngineConfigCommand,omitnil,omitempty" name:"DataEngineConfigCommand"`

	// Whether to use managed storage as result storage
	UseLakeFs *bool `json:"UseLakeFs,omitnil,omitempty" name:"UseLakeFs"`

	// User-defined Result Storage Path
	CustomResultPath *string `json:"CustomResultPath,omitnil,omitempty" name:"CustomResultPath"`
}

type DescribeUpdatableDataEnginesRequest struct {
	*tchttp.BaseRequest
	
	// Operation commands of engine configuration. UpdateSparkSQLLakefsPath updates the path of managed tables, and UpdateSparkSQLResultPath updates the path of result buckets.
	DataEngineConfigCommand *string `json:"DataEngineConfigCommand,omitnil,omitempty" name:"DataEngineConfigCommand"`

	// Whether to use managed storage as result storage
	UseLakeFs *bool `json:"UseLakeFs,omitnil,omitempty" name:"UseLakeFs"`

	// User-defined Result Storage Path
	CustomResultPath *string `json:"CustomResultPath,omitnil,omitempty" name:"CustomResultPath"`
}

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

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

// Predefined struct for user
type DescribeUpdatableDataEnginesResponseParams struct {
	// Basic cluster information
	DataEngineBasicInfos []*DataEngineBasicInfo `json:"DataEngineBasicInfos,omitnil,omitempty" name:"DataEngineBasicInfos"`

	// Number of clusters
	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 DescribeUpdatableDataEnginesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeUpdatableDataEnginesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeUserDataEngineConfigRequestParams struct {
	// Sorting methods; desc means in reverse order; asc means in order.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Quantity of returns. It is 10 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting fields, which support the following type: create-time
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Filter criteria. The following filter types are supported. The parameter Name should be one of them. The number of values that can be filtered by each type of parameter should not be bigger than 5.
	// app-id - String - (filtering appid)
	// engine-id - String - (filtering engine ID)
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeUserDataEngineConfigRequest struct {
	*tchttp.BaseRequest
	
	// Sorting methods; desc means in reverse order; asc means in order.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Quantity of returns. It is 10 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting fields, which support the following type: create-time
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Filter criteria. The following filter types are supported. The parameter Name should be one of them. The number of values that can be filtered by each type of parameter should not be bigger than 5.
	// app-id - String - (filtering appid)
	// engine-id - String - (filtering engine ID)
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

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

// Predefined struct for user
type DescribeUserDataEngineConfigResponseParams struct {
	// List of custom configuration items of the user's engine
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineConfigInstanceInfos []*DataEngineConfigInstanceInfo `json:"DataEngineConfigInstanceInfos,omitnil,omitempty" name:"DataEngineConfigInstanceInfos"`

	// Total configuration items
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeUserDataEngineConfigResponse struct {
	*tchttp.BaseResponse
	Response *DescribeUserDataEngineConfigResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeUserInfoRequestParams struct {
	// User ID
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Type of queried information. Group: working group; DataAuth: data permission; EngineAuth: engine permission
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Filter criteria that are queried
	// 
	// When the type is Group, the fuzzy search is supported as the key is workgroup-name.
	// 
	// When the type is DataAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// data-name: fuzzy search of the database and table.
	// 
	// When the type is EngineAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// engine-name: fuzzy search of the database and table.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sort fields.
	// 
	// When the type is Group, the create-time and group-name are supported.
	// 
	// When the type is DataAuth, create-time is supported.
	// 
	// When the type is EngineAuth, create-time is supported.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods: desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

	// Type of queried information. Group: working group; DataAuth: data permission; EngineAuth: engine permission
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Filter criteria that are queried
	// 
	// When the type is Group, the fuzzy search is supported as the key is workgroup-name.
	// 
	// When the type is DataAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// data-name: fuzzy search of the database and table.
	// 
	// When the type is EngineAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// engine-name: fuzzy search of the database and table.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sort fields.
	// 
	// When the type is Group, the create-time and group-name are supported.
	// 
	// When the type is DataAuth, create-time is supported.
	// 
	// When the type is EngineAuth, create-time is supported.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods: desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

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

// Predefined struct for user
type DescribeUserInfoResponseParams struct {
	// Detailed user information
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserInfo *UserDetailInfo `json:"UserInfo,omitnil,omitempty" name:"UserInfo"`

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

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

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

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

// Predefined struct for user
type DescribeUserRolesRequestParams struct {
	// The number limit of enumerated user roles.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// The offset for starting enumeration. 
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Fuzzy enumeration by arn.
	Fuzzy *string `json:"Fuzzy,omitnil,omitempty" name:"Fuzzy"`

	// The field for sorting the returned results.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// The sorting order, descending or ascending, such as `desc`.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`


	IsDefault *int64 `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`
}

type DescribeUserRolesRequest struct {
	*tchttp.BaseRequest
	
	// The number limit of enumerated user roles.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// The offset for starting enumeration. 
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Fuzzy enumeration by arn.
	Fuzzy *string `json:"Fuzzy,omitnil,omitempty" name:"Fuzzy"`

	// The field for sorting the returned results.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// The sorting order, descending or ascending, such as `desc`.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	IsDefault *int64 `json:"IsDefault,omitnil,omitempty" name:"IsDefault"`
}

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

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

// Predefined struct for user
type DescribeUserRolesResponseParams struct {
	// The total number of user roles meeting the enumeration conditions.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// The user roles.
	UserRoles []*UserRole `json:"UserRoles,omitnil,omitempty" name:"UserRoles"`

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

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

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

// Predefined struct for user
type DescribeUserTypeRequestParams struct {
	// User ID (UIN). If it is not specified, it will be the sub-UIN of the caller by default.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`
}

type DescribeUserTypeRequest struct {
	*tchttp.BaseRequest
	
	// User ID (UIN). If it is not specified, it will be the sub-UIN of the caller by default.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`
}

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

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

// Predefined struct for user
type DescribeUserTypeResponseParams struct {
	// Types of users. ADMIN: administrators; COMMON: general users
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

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

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

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

// Predefined struct for user
type DescribeUsersRequestParams struct {
	// Specify the UIN of the sub-user to be queried. Users need to create it through the CreateUser API.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting fields, which support the following type: create-time
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods: desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Filter criteria. The following filter types are supported. User-type means the filtering is based on the types of users, and user-keyword means the filtering is based on the names of users.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeUsersRequest struct {
	*tchttp.BaseRequest
	
	// Specify the UIN of the sub-user to be queried. Users need to create it through the CreateUser API.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting fields, which support the following type: create-time
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods: desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Filter criteria. The following filter types are supported. User-type means the filtering is based on the types of users, and user-keyword means the filtering is based on the names of users.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

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

// Predefined struct for user
type DescribeUsersResponseParams struct {
	// Total queried number of users queried
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Collection of the queried information of the authorized user
	UserSet []*UserInfo `json:"UserSet,omitnil,omitempty" name:"UserSet"`

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

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

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

// Predefined struct for user
type DescribeWorkGroupInfoRequestParams struct {
	// Working group IDs
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Types of queried information. User: user information; DataAuth: data permissions; EngineAuth: engine permissions
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Filter criteria that are queried
	// 
	// When the type is User, the fuzzy search is supported as the key is user-name.
	// 
	// When the type is DataAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// data-name: fuzzy search of the database and table.
	// 
	// When the type is EngineAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// engine-name: fuzzy search of the database and table.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sort fields.
	// 
	// When the type is User, create-time and user-name are supported.
	// 
	// When the type is DataAuth, create-time is supported.
	// 
	// When the type is EngineAuth, create-time is supported.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods: desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeWorkGroupInfoRequest struct {
	*tchttp.BaseRequest
	
	// Working group IDs
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Types of queried information. User: user information; DataAuth: data permissions; EngineAuth: engine permissions
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Filter criteria that are queried
	// 
	// When the type is User, the fuzzy search is supported as the key is user-name.
	// 
	// When the type is DataAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// data-name: fuzzy search of the database and table.
	// 
	// When the type is EngineAuth, the keys supported are:
	// 
	// policy-type: types of permissions;
	// 
	// policy-source: data sources;
	// 
	// engine-name: fuzzy search of the database and table.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sort fields.
	// 
	// When the type is User, create-time and user-name are supported.
	// 
	// When the type is DataAuth, create-time is supported.
	// 
	// When the type is EngineAuth, create-time is supported.
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods: desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

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

// Predefined struct for user
type DescribeWorkGroupInfoResponseParams struct {
	// Details about working groups
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupInfo *WorkGroupDetailInfo `json:"WorkGroupInfo,omitnil,omitempty" name:"WorkGroupInfo"`

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

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

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

// Predefined struct for user
type DescribeWorkGroupsRequestParams struct {
	// IDs of working groups that are queried. If it is not filled in or is 0, this means no need for filtering.
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Filter criteria. Only the fuzzy search according to working group names is supported. The key is workgroup-name.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting fields, which support the following type: create-time
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods; desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`
}

type DescribeWorkGroupsRequest struct {
	*tchttp.BaseRequest
	
	// IDs of working groups that are queried. If it is not filled in or is 0, this means no need for filtering.
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Filter criteria. Only the fuzzy search according to working group names is supported. The key is workgroup-name.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Offset, which is 0 by default.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Quantity of returns. It is 20 by default, and the maximum value is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Sorting fields, which support the following type: create-time
	SortBy *string `json:"SortBy,omitnil,omitempty" name:"SortBy"`

	// Sorting methods; desc means in order; asc means in reverse order; it is asc by default.
	Sorting *string `json:"Sorting,omitnil,omitempty" name:"Sorting"`
}

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

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

// Predefined struct for user
type DescribeWorkGroupsResponseParams struct {
	// The total number of working groups
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Collection of working group information
	WorkGroupSet []*WorkGroupInfo `json:"WorkGroupSet,omitnil,omitempty" name:"WorkGroupSet"`

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

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

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

// Predefined struct for user
type DetachUserPolicyRequestParams struct {
	// User ID, which matches Uin on the CAM side.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Collection of unbound permissions
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

type DetachUserPolicyRequest struct {
	*tchttp.BaseRequest
	
	// User ID, which matches Uin on the CAM side.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Collection of unbound permissions
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

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

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

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

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

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

// Predefined struct for user
type DetachWorkGroupPolicyRequestParams struct {
	// Working group ID
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Collection of unbound permissions
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

type DetachWorkGroupPolicyRequest struct {
	*tchttp.BaseRequest
	
	// Working group ID
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Collection of unbound permissions
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`
}

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

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

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

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

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

// Predefined struct for user
type DropDLCTableRequestParams struct {
	// Engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

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

	// Data table name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Whether to delete the data
	DeleteData *bool `json:"DeleteData,omitnil,omitempty" name:"DeleteData"`

	// Resource group name
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

type DropDLCTableRequest struct {
	*tchttp.BaseRequest
	
	// Engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

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

	// Data table name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Whether to delete the data
	DeleteData *bool `json:"DeleteData,omitnil,omitempty" name:"DeleteData"`

	// Resource group name
	ResourceGroupName *string `json:"ResourceGroupName,omitnil,omitempty" name:"ResourceGroupName"`
}

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

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

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

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

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

// Predefined struct for user
type DropDMSDatabaseRequestParams struct {
	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Whether to delete the data.
	DeleteData *bool `json:"DeleteData,omitnil,omitempty" name:"DeleteData"`

	// Whether to use cascade delete.
	Cascade *bool `json:"Cascade,omitnil,omitempty" name:"Cascade"`
}

type DropDMSDatabaseRequest struct {
	*tchttp.BaseRequest
	
	// Database name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Whether to delete the data.
	DeleteData *bool `json:"DeleteData,omitnil,omitempty" name:"DeleteData"`

	// Whether to use cascade delete.
	Cascade *bool `json:"Cascade,omitnil,omitempty" name:"Cascade"`
}

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

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

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

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

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

// Predefined struct for user
type DropDMSTableRequestParams struct {
	// Database name
	DbName *string `json:"DbName,omitnil,omitempty" name:"DbName"`

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

	// Whether to delete the data
	DeleteData *bool `json:"DeleteData,omitnil,omitempty" name:"DeleteData"`

	// Environment properties
	EnvProps *KVPair `json:"EnvProps,omitnil,omitempty" name:"EnvProps"`


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

type DropDMSTableRequest struct {
	*tchttp.BaseRequest
	
	// Database name
	DbName *string `json:"DbName,omitnil,omitempty" name:"DbName"`

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

	// Whether to delete the data
	DeleteData *bool `json:"DeleteData,omitnil,omitempty" name:"DeleteData"`

	// Environment properties
	EnvProps *KVPair `json:"EnvProps,omitnil,omitempty" name:"EnvProps"`

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

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

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

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

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

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

type EngineSessionImage struct {
	// Specifies the unique id of the Spark mirror.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkImageId *string `json:"SparkImageId,omitnil,omitempty" name:"SparkImageId"`

	// Spark image version name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkImageVersion *string `json:"SparkImageVersion,omitnil,omitempty" name:"SparkImageVersion"`

	// Minor version image type. 1: TensorFlow, 2: Pytorch, 3: SK-learn.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkImageType *int64 `json:"SparkImageType,omitnil,omitempty" name:"SparkImageType"`

	// Image address.
	// 
	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkImageTag *string `json:"SparkImageTag,omitnil,omitempty" name:"SparkImageTag"`
}

type Execution struct {
	// The automatically generated SQL statements.
	SQL *string `json:"SQL,omitnil,omitempty" name:"SQL"`
}

type ExternalDataConfiguration struct {
	// Metadata storage object
	// Note: This field may return null, indicating that no valid values can be obtained.
	Sds *DMSSds `json:"Sds,omitnil,omitempty" name:"Sds"`

	// View text
	// Note: This field may return null, indicating that no valid values can be obtained.
	ViewOriginalText *string `json:"ViewOriginalText,omitnil,omitempty" name:"ViewOriginalText"`

	// View text
	// Note: This field may return null, indicating that no valid values can be obtained.
	ViewExpandedText *string `json:"ViewExpandedText,omitnil,omitempty" name:"ViewExpandedText"`

	// Hive maintenance version
	// Note: This field may return null, indicating that no valid values can be obtained.
	Retention *int64 `json:"Retention,omitnil,omitempty" name:"Retention"`

	// Lifecycle
	// Note: This field may return null, indicating that no valid values can be obtained.
	LifeTime *int64 `json:"LifeTime,omitnil,omitempty" name:"LifeTime"`

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

type FavorInfo struct {
	// Prioritized items
	// Note: This field may return null, indicating that no valid values can be obtained.
	Priority *int64 `json:"Priority,omitnil,omitempty" name:"Priority"`

	// Catalog name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// DataBase name
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataBase *string `json:"DataBase,omitnil,omitempty" name:"DataBase"`

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

type Filter struct {
	// Attribute name. If more than one filter exists, the logical relationship between these filters is `OR`.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Attribute value. If multiple values exist in one filter, the logical relationship between these values is `OR`.
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

// Predefined struct for user
type GenerateCreateMangedTableSqlRequestParams struct {
	// The basic table information.
	TableBaseInfo *TableBaseInfo `json:"TableBaseInfo,omitnil,omitempty" name:"TableBaseInfo"`

	// The table fields.
	Columns []*TColumn `json:"Columns,omitnil,omitempty" name:"Columns"`

	// The table partitions.
	Partitions []*TPartition `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// The table properties.
	Properties []*Property `json:"Properties,omitnil,omitempty" name:"Properties"`

	// The Upsert key for a v2 table (in Upsert mode).
	UpsertKeys []*string `json:"UpsertKeys,omitnil,omitempty" name:"UpsertKeys"`
}

type GenerateCreateMangedTableSqlRequest struct {
	*tchttp.BaseRequest
	
	// The basic table information.
	TableBaseInfo *TableBaseInfo `json:"TableBaseInfo,omitnil,omitempty" name:"TableBaseInfo"`

	// The table fields.
	Columns []*TColumn `json:"Columns,omitnil,omitempty" name:"Columns"`

	// The table partitions.
	Partitions []*TPartition `json:"Partitions,omitnil,omitempty" name:"Partitions"`

	// The table properties.
	Properties []*Property `json:"Properties,omitnil,omitempty" name:"Properties"`

	// The Upsert key for a v2 table (in Upsert mode).
	UpsertKeys []*string `json:"UpsertKeys,omitnil,omitempty" name:"UpsertKeys"`
}

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

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

// Predefined struct for user
type GenerateCreateMangedTableSqlResponseParams struct {
	// The SQL statements for creating the managed internal table.
	Execution *Execution `json:"Execution,omitnil,omitempty" name:"Execution"`

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

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

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

// Predefined struct for user
type GetOptimizerPolicyRequestParams struct {
	// Policy description
	SmartPolicy *SmartPolicy `json:"SmartPolicy,omitnil,omitempty" name:"SmartPolicy"`
}

type GetOptimizerPolicyRequest struct {
	*tchttp.BaseRequest
	
	// Policy description
	SmartPolicy *SmartPolicy `json:"SmartPolicy,omitnil,omitempty" name:"SmartPolicy"`
}

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

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

// Predefined struct for user
type GetOptimizerPolicyResponseParams struct {
	// Smart optimization policy
	SmartOptimizerPolicy *SmartOptimizerPolicy `json:"SmartOptimizerPolicy,omitnil,omitempty" name:"SmartOptimizerPolicy"`

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

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

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

// Predefined struct for user
type GrantDLCCatalogAccessRequestParams struct {
	// Authorized VpcId
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Product (EMR|DLC|Doris|Inlong|Wedata)
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

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

	// UIN of the account to which VPC belongs
	VpcUin *string `json:"VpcUin,omitnil,omitempty" name:"VpcUin"`

	// AppId of the account to which VPC belongs
	VpcAppId *uint64 `json:"VpcAppId,omitnil,omitempty" name:"VpcAppId"`
}

type GrantDLCCatalogAccessRequest struct {
	*tchttp.BaseRequest
	
	// Authorized VpcId
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Product (EMR|DLC|Doris|Inlong|Wedata)
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

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

	// UIN of the account to which VPC belongs
	VpcUin *string `json:"VpcUin,omitnil,omitempty" name:"VpcUin"`

	// AppId of the account to which VPC belongs
	VpcAppId *uint64 `json:"VpcAppId,omitnil,omitempty" name:"VpcAppId"`
}

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

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

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

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

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

type GroupInfo struct {
	// User group ID.
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Policy type.
	StrategyType *string `json:"StrategyType,omitnil,omitempty" name:"StrategyType"`
}

type JobResponseInfo struct {
	// Job name
	// Note: This field may return null, indicating that no valid values can be obtained.
	JobName *string `json:"JobName,omitnil,omitempty" name:"JobName"`

	// Statistics
	// Note: This field may return null, indicating that no valid values can be obtained.
	StatisticInfo *StatisticInfo `json:"StatisticInfo,omitnil,omitempty" name:"StatisticInfo"`

	// Job configuration
	// Note: This field may return null, indicating that no valid values can be obtained.
	JobConfiguration *string `json:"JobConfiguration,omitnil,omitempty" name:"JobConfiguration"`

	// The current status of the job: 0: initializing; 1: running; 2: executed; 3: writing data; 4: queuing; -1: execution failed; -3: manually terminated. The job execution result is returned only when the job is successfully executed.
	// Note: This field may return null, indicating that no valid values can be obtained.
	JobStatus *int64 `json:"JobStatus,omitnil,omitempty" name:"JobStatus"`
}

type KVPair struct {
	// Configured key
	// Note: This field may return null, indicating that no valid values can be obtained.
	Key *string `json:"Key,omitnil,omitempty" name:"Key"`

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

type LakeFsInfo struct {
	// Managed storage name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Managed storage type
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Capacity
	SpaceUsedSize *float64 `json:"SpaceUsedSize,omitnil,omitempty" name:"SpaceUsedSize"`

	// Timestamp of the creation time
	CreateTimeStamp *int64 `json:"CreateTimeStamp,omitnil,omitempty" name:"CreateTimeStamp"`

	// Whether it is the user's default bucket: 0: default bucket, 1: non-default bucket
	// Note: This field may return null, indicating that no valid values can be obtained.
	DefaultBucket *int64 `json:"DefaultBucket,omitnil,omitempty" name:"DefaultBucket"`

	// Managed storage short name
	// Note: This field may return null, indicating that no valid values can be obtained.
	ShortName *string `json:"ShortName,omitnil,omitempty" name:"ShortName"`

	// Description information of the bucket
	// Note: This field may return null, indicating that no valid values can be obtained.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// The status of the managed bucket. Current values: creating, bind, readOnly, and isolate
	// Note: This field may return null, indicating that no valid values can be obtained.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`
}

// Predefined struct for user
type ModifyAdvancedStoreLocationRequestParams struct {
	// COS path for saving querying results
	StoreLocation *string `json:"StoreLocation,omitnil,omitempty" name:"StoreLocation"`

	// Whether to enable advanced settings. 0 means no while 1 means yes.
	Enable *uint64 `json:"Enable,omitnil,omitempty" name:"Enable"`
}

type ModifyAdvancedStoreLocationRequest struct {
	*tchttp.BaseRequest
	
	// COS path for saving querying results
	StoreLocation *string `json:"StoreLocation,omitnil,omitempty" name:"StoreLocation"`

	// Whether to enable advanced settings. 0 means no while 1 means yes.
	Enable *uint64 `json:"Enable,omitnil,omitempty" name:"Enable"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyDataEngineDescriptionRequestParams struct {
	// Name of the engine to be modified
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Engine description and its maximum length is 250 characters.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`
}

type ModifyDataEngineDescriptionRequest struct {
	*tchttp.BaseRequest
	
	// Name of the engine to be modified
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Engine description and its maximum length is 250 characters.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyGovernEventRuleRequestParams struct {

}

type ModifyGovernEventRuleRequest struct {
	*tchttp.BaseRequest
	
}

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

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

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

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

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

// Predefined struct for user
type ModifySparkAppBatchRequestParams struct {
	// The list of the IDs of the Spark job tasks to be modified in batches.
	SparkAppId []*string `json:"SparkAppId,omitnil,omitempty" name:"SparkAppId"`

	// The engine ID.
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// The driver size.
	// Valid values for the standard resource type: `small`, `medium`, `large`, and `xlarge`.
	// Valid values for the memory resource type: `m.small`, `m.medium`, `m.large`, and `m.xlarge`.
	AppDriverSize *string `json:"AppDriverSize,omitnil,omitempty" name:"AppDriverSize"`

	// The executor size.
	// Valid values for the standard resource type: `small`, `medium`, `large`, and `xlarge`.
	// Valid values for the memory resource type: `m.small`, `m.medium`, `m.large`, and `m.xlarge`.
	AppExecutorSize *string `json:"AppExecutorSize,omitnil,omitempty" name:"AppExecutorSize"`

	// The executor count. The minimum value is 1 and the maximum value is less than the cluster specification.
	AppExecutorNums *uint64 `json:"AppExecutorNums,omitnil,omitempty" name:"AppExecutorNums"`

	// The maximum executor count (in dynamic configuration scenarios). The minimum value is 1 and the maximum value is less than the cluster specification. If you set `ExecutorMaxNumbers` to a value smaller than that of `ExecutorNums`, the value of `ExecutorMaxNumbers` is automatically changed to that of `ExecutorNums`.
	AppExecutorMaxNumbers *uint64 `json:"AppExecutorMaxNumbers,omitnil,omitempty" name:"AppExecutorMaxNumbers"`

	// Whether to inherit the task resource configuration from the cluster template. Valid values: `0` (default): No; `1`: Yes.
	IsInherit *uint64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`
}

type ModifySparkAppBatchRequest struct {
	*tchttp.BaseRequest
	
	// The list of the IDs of the Spark job tasks to be modified in batches.
	SparkAppId []*string `json:"SparkAppId,omitnil,omitempty" name:"SparkAppId"`

	// The engine ID.
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// The driver size.
	// Valid values for the standard resource type: `small`, `medium`, `large`, and `xlarge`.
	// Valid values for the memory resource type: `m.small`, `m.medium`, `m.large`, and `m.xlarge`.
	AppDriverSize *string `json:"AppDriverSize,omitnil,omitempty" name:"AppDriverSize"`

	// The executor size.
	// Valid values for the standard resource type: `small`, `medium`, `large`, and `xlarge`.
	// Valid values for the memory resource type: `m.small`, `m.medium`, `m.large`, and `m.xlarge`.
	AppExecutorSize *string `json:"AppExecutorSize,omitnil,omitempty" name:"AppExecutorSize"`

	// The executor count. The minimum value is 1 and the maximum value is less than the cluster specification.
	AppExecutorNums *uint64 `json:"AppExecutorNums,omitnil,omitempty" name:"AppExecutorNums"`

	// The maximum executor count (in dynamic configuration scenarios). The minimum value is 1 and the maximum value is less than the cluster specification. If you set `ExecutorMaxNumbers` to a value smaller than that of `ExecutorNums`, the value of `ExecutorMaxNumbers` is automatically changed to that of `ExecutorNums`.
	AppExecutorMaxNumbers *uint64 `json:"AppExecutorMaxNumbers,omitnil,omitempty" name:"AppExecutorMaxNumbers"`

	// Whether to inherit the task resource configuration from the cluster template. Valid values: `0` (default): No; `1`: Yes.
	IsInherit *uint64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`
}

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

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

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

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

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

// Predefined struct for user
type ModifySparkAppRequestParams struct {
	// The Spark job name.
	AppName *string `json:"AppName,omitnil,omitempty" name:"AppName"`

	// The Spark job type. Valid values: `1` for Spark JAR job and `2` for Spark streaming job.
	AppType *int64 `json:"AppType,omitnil,omitempty" name:"AppType"`

	// The data engine executing the Spark job.
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// The path of the Spark job package.
	AppFile *string `json:"AppFile,omitnil,omitempty" name:"AppFile"`

	// The data access policy (CAM role arn).
	RoleArn *int64 `json:"RoleArn,omitnil,omitempty" name:"RoleArn"`

	// The driver size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppDriverSize *string `json:"AppDriverSize,omitnil,omitempty" name:"AppDriverSize"`

	// The executor size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppExecutorSize *string `json:"AppExecutorSize,omitnil,omitempty" name:"AppExecutorSize"`

	// Number of Spark job executors
	AppExecutorNums *int64 `json:"AppExecutorNums,omitnil,omitempty" name:"AppExecutorNums"`

	// The Spark job ID.
	SparkAppId *string `json:"SparkAppId,omitnil,omitempty" name:"SparkAppId"`

	// This field has been disused. Use the `Datasource` field instead.
	Eni *string `json:"Eni,omitnil,omitempty" name:"Eni"`

	// The source of the Spark job package. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocal *string `json:"IsLocal,omitnil,omitempty" name:"IsLocal"`

	// The main class of the Spark job.
	MainClass *string `json:"MainClass,omitnil,omitempty" name:"MainClass"`

	// Spark configurations separated by line break
	AppConf *string `json:"AppConf,omitnil,omitempty" name:"AppConf"`

	// The source of the dependency JAR packages of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalJars *string `json:"IsLocalJars,omitnil,omitempty" name:"IsLocalJars"`

	// The dependency JAR packages of the Spark JAR job (JAR packages), separated by comma.
	AppJars *string `json:"AppJars,omitnil,omitempty" name:"AppJars"`

	// The source of the dependency files of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalFiles *string `json:"IsLocalFiles,omitnil,omitempty" name:"IsLocalFiles"`

	// The dependency files of the Spark job (files other than JAR and ZIP packages), separated by comma.
	AppFiles *string `json:"AppFiles,omitnil,omitempty" name:"AppFiles"`

	// The source of the PySpark dependencies. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalPythonFiles *string `json:"IsLocalPythonFiles,omitnil,omitempty" name:"IsLocalPythonFiles"`

	// The PySpark dependencies (Python files), separated by comma, with .py, .zip, and .egg formats supported.
	AppPythonFiles *string `json:"AppPythonFiles,omitnil,omitempty" name:"AppPythonFiles"`

	// The input parameters of the Spark job, separated by comma.
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`

	// The maximum number of retries, valid for Spark streaming tasks only.
	MaxRetries *int64 `json:"MaxRetries,omitnil,omitempty" name:"MaxRetries"`

	// Data source name
	DataSource *string `json:"DataSource,omitnil,omitempty" name:"DataSource"`

	// The source of the dependency archives of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalArchives *string `json:"IsLocalArchives,omitnil,omitempty" name:"IsLocalArchives"`

	// The dependency archives of the Spark job, separated by comma, with tar.gz, .tgz, and .tar formats supported.
	AppArchives *string `json:"AppArchives,omitnil,omitempty" name:"AppArchives"`

	// The Spark image version.
	SparkImage *string `json:"SparkImage,omitnil,omitempty" name:"SparkImage"`

	// The Spark image version name.
	SparkImageVersion *string `json:"SparkImageVersion,omitnil,omitempty" name:"SparkImageVersion"`

	// The specified executor count (max), which defaults to 1. This parameter applies if the "Dynamic" mode is selected. If the "Dynamic" mode is not selected, the executor count is equal to `AppExecutorNums`.
	AppExecutorMaxNumbers *int64 `json:"AppExecutorMaxNumbers,omitnil,omitempty" name:"AppExecutorMaxNumbers"`

	// The associated Data Lake Compute query script.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Whether to inherit the task resource configuration from the cluster configuration template. Valid values: `0` (default): No; `1`: Yes.
	IsInherit *uint64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`

	// Whether to run the task with the session SQLs. Valid values: `false` for no and `true` for yes.
	IsSessionStarted *bool `json:"IsSessionStarted,omitnil,omitempty" name:"IsSessionStarted"`
}

type ModifySparkAppRequest struct {
	*tchttp.BaseRequest
	
	// The Spark job name.
	AppName *string `json:"AppName,omitnil,omitempty" name:"AppName"`

	// The Spark job type. Valid values: `1` for Spark JAR job and `2` for Spark streaming job.
	AppType *int64 `json:"AppType,omitnil,omitempty" name:"AppType"`

	// The data engine executing the Spark job.
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// The path of the Spark job package.
	AppFile *string `json:"AppFile,omitnil,omitempty" name:"AppFile"`

	// The data access policy (CAM role arn).
	RoleArn *int64 `json:"RoleArn,omitnil,omitempty" name:"RoleArn"`

	// The driver size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppDriverSize *string `json:"AppDriverSize,omitnil,omitempty" name:"AppDriverSize"`

	// The executor size. Valid values: `small` (default, 1 CU), `medium` (2 CUs), `large` (4 CUs), and `xlarge` (8 CUs).
	AppExecutorSize *string `json:"AppExecutorSize,omitnil,omitempty" name:"AppExecutorSize"`

	// Number of Spark job executors
	AppExecutorNums *int64 `json:"AppExecutorNums,omitnil,omitempty" name:"AppExecutorNums"`

	// The Spark job ID.
	SparkAppId *string `json:"SparkAppId,omitnil,omitempty" name:"SparkAppId"`

	// This field has been disused. Use the `Datasource` field instead.
	Eni *string `json:"Eni,omitnil,omitempty" name:"Eni"`

	// The source of the Spark job package. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocal *string `json:"IsLocal,omitnil,omitempty" name:"IsLocal"`

	// The main class of the Spark job.
	MainClass *string `json:"MainClass,omitnil,omitempty" name:"MainClass"`

	// Spark configurations separated by line break
	AppConf *string `json:"AppConf,omitnil,omitempty" name:"AppConf"`

	// The source of the dependency JAR packages of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalJars *string `json:"IsLocalJars,omitnil,omitempty" name:"IsLocalJars"`

	// The dependency JAR packages of the Spark JAR job (JAR packages), separated by comma.
	AppJars *string `json:"AppJars,omitnil,omitempty" name:"AppJars"`

	// The source of the dependency files of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalFiles *string `json:"IsLocalFiles,omitnil,omitempty" name:"IsLocalFiles"`

	// The dependency files of the Spark job (files other than JAR and ZIP packages), separated by comma.
	AppFiles *string `json:"AppFiles,omitnil,omitempty" name:"AppFiles"`

	// The source of the PySpark dependencies. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalPythonFiles *string `json:"IsLocalPythonFiles,omitnil,omitempty" name:"IsLocalPythonFiles"`

	// The PySpark dependencies (Python files), separated by comma, with .py, .zip, and .egg formats supported.
	AppPythonFiles *string `json:"AppPythonFiles,omitnil,omitempty" name:"AppPythonFiles"`

	// The input parameters of the Spark job, separated by comma.
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`

	// The maximum number of retries, valid for Spark streaming tasks only.
	MaxRetries *int64 `json:"MaxRetries,omitnil,omitempty" name:"MaxRetries"`

	// Data source name
	DataSource *string `json:"DataSource,omitnil,omitempty" name:"DataSource"`

	// The source of the dependency archives of the Spark job. Valid values: `cos` for COS and `lakefs` for the local system (for use in the console, but this method does not support direct API calls).
	IsLocalArchives *string `json:"IsLocalArchives,omitnil,omitempty" name:"IsLocalArchives"`

	// The dependency archives of the Spark job, separated by comma, with tar.gz, .tgz, and .tar formats supported.
	AppArchives *string `json:"AppArchives,omitnil,omitempty" name:"AppArchives"`

	// The Spark image version.
	SparkImage *string `json:"SparkImage,omitnil,omitempty" name:"SparkImage"`

	// The Spark image version name.
	SparkImageVersion *string `json:"SparkImageVersion,omitnil,omitempty" name:"SparkImageVersion"`

	// The specified executor count (max), which defaults to 1. This parameter applies if the "Dynamic" mode is selected. If the "Dynamic" mode is not selected, the executor count is equal to `AppExecutorNums`.
	AppExecutorMaxNumbers *int64 `json:"AppExecutorMaxNumbers,omitnil,omitempty" name:"AppExecutorMaxNumbers"`

	// The associated Data Lake Compute query script.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Whether to inherit the task resource configuration from the cluster configuration template. Valid values: `0` (default): No; `1`: Yes.
	IsInherit *uint64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`

	// Whether to run the task with the session SQLs. Valid values: `false` for no and `true` for yes.
	IsSessionStarted *bool `json:"IsSessionStarted,omitnil,omitempty" name:"IsSessionStarted"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifySparkAppRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "AppName")
	delete(f, "AppType")
	delete(f, "DataEngine")
	delete(f, "AppFile")
	delete(f, "RoleArn")
	delete(f, "AppDriverSize")
	delete(f, "AppExecutorSize")
	delete(f, "AppExecutorNums")
	delete(f, "SparkAppId")
	delete(f, "Eni")
	delete(f, "IsLocal")
	delete(f, "MainClass")
	delete(f, "AppConf")
	delete(f, "IsLocalJars")
	delete(f, "AppJars")
	delete(f, "IsLocalFiles")
	delete(f, "AppFiles")
	delete(f, "IsLocalPythonFiles")
	delete(f, "AppPythonFiles")
	delete(f, "CmdArgs")
	delete(f, "MaxRetries")
	delete(f, "DataSource")
	delete(f, "IsLocalArchives")
	delete(f, "AppArchives")
	delete(f, "SparkImage")
	delete(f, "SparkImageVersion")
	delete(f, "AppExecutorMaxNumbers")
	delete(f, "SessionId")
	delete(f, "IsInherit")
	delete(f, "IsSessionStarted")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySparkAppRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type ModifyUserRequestParams struct {
	// User ID which matches UIN on the CAM side
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// User description
	UserDescription *string `json:"UserDescription,omitnil,omitempty" name:"UserDescription"`
}

type ModifyUserRequest struct {
	*tchttp.BaseRequest
	
	// User ID which matches UIN on the CAM side
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// User description
	UserDescription *string `json:"UserDescription,omitnil,omitempty" name:"UserDescription"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyUserTypeRequestParams struct {
	// User ID
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Types that users modify. ADMIN: administrators; COMMON: general users.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`


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

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

	// Types that users modify. ADMIN: administrators; COMMON: general users.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

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

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

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

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

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

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

// Predefined struct for user
type ModifyWorkGroupRequestParams struct {
	// Working group IDs
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Working group description, and the upper limit of the number of its characters is 50.
	WorkGroupDescription *string `json:"WorkGroupDescription,omitnil,omitempty" name:"WorkGroupDescription"`
}

type ModifyWorkGroupRequest struct {
	*tchttp.BaseRequest
	
	// Working group IDs
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Working group description, and the upper limit of the number of its characters is 50.
	WorkGroupDescription *string `json:"WorkGroupDescription,omitnil,omitempty" name:"WorkGroupDescription"`
}

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

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

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

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

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

type MountPointAssociates struct {
	// Bucket ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	BucketId *string `json:"BucketId,omitnil,omitempty" name:"BucketId"`

	// vpcId
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet address
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcCidrBlock *string `json:"VpcCidrBlock,omitnil,omitempty" name:"VpcCidrBlock"`

	// Permission group ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessGroupId *string `json:"AccessGroupId,omitnil,omitempty" name:"AccessGroupId"`

	// Permission rule ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessRuleId *int64 `json:"AccessRuleId,omitnil,omitempty" name:"AccessRuleId"`
}

type NetworkConnection struct {
	// Network configuration ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// Unique identifier of network configuration
	// Note: This field may return null, indicating that no valid values can be obtained.
	AssociateId *string `json:"AssociateId,omitnil,omitempty" name:"AssociateId"`

	// Computing engine ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	HouseId *string `json:"HouseId,omitnil,omitempty" name:"HouseId"`

	// Data source ID (discarded)
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionId *string `json:"DatasourceConnectionId,omitnil,omitempty" name:"DatasourceConnectionId"`

	// Network configuration status (0 - initializing; 1 - normal)
	// Note: This field may return null, indicating that no valid values can be obtained.
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// Creation time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Modification time
	// Note: This field may return null, indicating that no valid values can be obtained.
	UpdateTime *int64 `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Create user Appid.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Appid *int64 `json:"Appid,omitnil,omitempty" name:"Appid"`

	// Computing engine name
	// Note: This field may return null, indicating that no valid values can be obtained.
	HouseName *string `json:"HouseName,omitnil,omitempty" name:"HouseName"`

	// Network configuration name
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Network configuration type
	// Note: This field may return null, indicating that no valid values can be obtained.
	NetworkConnectionType *int64 `json:"NetworkConnectionType,omitnil,omitempty" name:"NetworkConnectionType"`

	// Create user UIN.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Create user SubAccountUin.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`

	// Network configuration description
	// Note: This field may return null, indicating that no valid values can be obtained.
	NetworkConnectionDesc *string `json:"NetworkConnectionDesc,omitnil,omitempty" name:"NetworkConnectionDesc"`

	// Data source vpcid
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionVpcId *string `json:"DatasourceConnectionVpcId,omitnil,omitempty" name:"DatasourceConnectionVpcId"`

	// Data source SubnetId
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionSubnetId *string `json:"DatasourceConnectionSubnetId,omitnil,omitempty" name:"DatasourceConnectionSubnetId"`

	// Data source SubnetId
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionCidrBlock *string `json:"DatasourceConnectionCidrBlock,omitnil,omitempty" name:"DatasourceConnectionCidrBlock"`

	// Data source SubnetCidrBlock
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionSubnetCidrBlock *string `json:"DatasourceConnectionSubnetCidrBlock,omitnil,omitempty" name:"DatasourceConnectionSubnetCidrBlock"`
}

type OpendThirdAccessUserInfo struct {
	// ID information
	// Note: This field may return null, indicating that no valid values can be obtained.
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// User primary UIN
	// Note: This field may return null, indicating that no valid values can be obtained.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// User AppID
	// Note: This field may return null, indicating that no valid values can be obtained.
	AppId *string `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Activation time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type OtherCHDFSBinding struct {
	// Product name
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProductName *string `json:"ProductName,omitnil,omitempty" name:"ProductName"`

	// User name (a discarded field)
	// Note: This field may return null, indicating that no valid values can be obtained.
	SuperUser []*string `json:"SuperUser,omitnil,omitempty" name:"SuperUser"`

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

	// Whether to bind the bucket (a discarded field)
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsBind *bool `json:"IsBind,omitnil,omitempty" name:"IsBind"`
}

type PermissionResponseInfo struct {
	// Permission type
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessType *string `json:"AccessType,omitnil,omitempty" name:"AccessType"`

	// Resource information
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResourceBaseInfo *ResourceBaseInfo `json:"ResourceBaseInfo,omitnil,omitempty" name:"ResourceBaseInfo"`

	// Authentication result
	// Note: This field may return null, indicating that no valid values can be obtained.
	Allowed *bool `json:"Allowed,omitnil,omitempty" name:"Allowed"`
}

type Policy struct {
	// The database name requiring authorization. use * to represent all databases under the current Catalog. for administrator level authorization type, only * is allowed. for data connection level authorization type, leave it blank. for other types, any specified database is allowed.
	Database *string `json:"Database,omitnil,omitempty" name:"Database"`

	// Specifies the name of the data source requiring authorization. at administrator level, only * is supported (representing all resources at this level). for database-level or data source-level authentication, only COSDataCatalog or * is supported. for table-level authentication, user-defined data sources can be filled. defaults to DataLakeCatalog if left blank. note: if authenticating a user-defined data source, the permissions DLC can manage are a subset of the account provided when the user accesses the data source.
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Specifies the table name requiring authorization. use * to represent all tables in the current Database. for administrator-level authorization type, only * is allowed. for data connection level or Database-level authorization type, leave it blank. for other types, any specific data table can be specified.
	Table *string `json:"Table,omitnil,omitempty" name:"Table"`

	// The target permissions, which vary by permission level. Admin: `ALL` (default); data connection: `CREATE`; database: `ALL`, `CREATE`, `ALTER`, and `DROP`; table: `ALL`, `SELECT`, `INSERT`, `ALTER`, `DELETE`, `DROP`, and `UPDATE`. Note: For table permissions, if a data source other than `COSDataCatalog` is specified, only the `SELECT` permission can be granted here.
	Operation *string `json:"Operation,omitnil,omitempty" name:"Operation"`

	// The permission type. Valid values: `ADMIN`, `DATASOURCE`, `DATABASE`, `TABLE`, `VIEW`, `FUNCTION`, `COLUMN`, and `ENGINE`. Note: If it is left empty, `ADMIN` is used.
	PolicyType *string `json:"PolicyType,omitnil,omitempty" name:"PolicyType"`

	// Name of the function requiring authorization. use * to represent all functions in the current Catalog. for administrator-level authorization type, only * is allowed. for data connection-level authorization type, leave it blank. for other types, any function can be specified.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Function *string `json:"Function,omitnil,omitempty" name:"Function"`

	// Authorization is required for the view. fill in * to represent all views under the current Database. when the authorization type is administrator level, only * is allowed. when the authorization type is data connection level or Database level, only blank is allowed. for other types, any view can be specified.
	// Note: This field may return null, indicating that no valid values can be obtained.
	View *string `json:"View,omitnil,omitempty" name:"View"`

	// Columns requiring authorization. use * to represent all current columns. when the authorization type is administrator level, only * is allowed.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Column *string `json:"Column,omitnil,omitempty" name:"Column"`

	// The data engine requiring authorization. use * to represent all current engines. when the authorization type is administrator level, only * is allowed.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// Whether the grantee is allowed to further grant the permissions. Valid values: `false` (default) and `true` (the grantee can grant permissions gained here to other sub-users).
	// Note: This field may return null, indicating that no valid values can be obtained.
	ReAuth *bool `json:"ReAuth,omitnil,omitempty" name:"ReAuth"`

	// The permission source, which is not required when input parameters are passed in. Valid values: `USER` (from the user) and `WORKGROUP` (from one or more associated work groups).
	// Note: This field may return null, indicating that no valid values can be obtained.
	Source *string `json:"Source,omitnil,omitempty" name:"Source"`

	// The grant mode, which is not required as an input parameter. Valid values: `COMMON` and `SENIOR`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Mode *string `json:"Mode,omitnil,omitempty" name:"Mode"`

	// The operator, which is not required as an input parameter.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Operator *string `json:"Operator,omitnil,omitempty" name:"Operator"`

	// The permission policy creation time, which is not required as an input parameter.
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// The ID of the work group, which applies only when the value of the `Source` field is `WORKGROUP`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SourceId *int64 `json:"SourceId,omitnil,omitempty" name:"SourceId"`

	// The name of the work group, which applies only when the value of the `Source` field is `WORKGROUP`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	SourceName *string `json:"SourceName,omitnil,omitempty" name:"SourceName"`

	// The policy ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// Specifies the engine type.
	EngineGeneration *string `json:"EngineGeneration,omitnil,omitempty" name:"EngineGeneration"`
}

type Policys struct {
	// Collection of policies
	// Note: This field may return null, indicating that no valid values can be obtained.
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`

	// Total policies
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
}

type PrestoMonitorMetrics struct {
	// Note: This field may return null, indicating that no valid values can be obtained.
	LocalCacheHitRate *float64 `json:"LocalCacheHitRate,omitnil,omitempty" name:"LocalCacheHitRate"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	FragmentCacheHitRate *float64 `json:"FragmentCacheHitRate,omitnil,omitempty" name:"FragmentCacheHitRate"`
}

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

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

type PythonSparkImage struct {
	// Unique ID of the spark image
	SparkImageId *string `json:"SparkImageId,omitnil,omitempty" name:"SparkImageId"`

	// ID of the cluster image of the minor version
	ChildImageVersionId *string `json:"ChildImageVersionId,omitnil,omitempty" name:"ChildImageVersionId"`

	// Name of the spark image
	SparkImageVersion *string `json:"SparkImageVersion,omitnil,omitempty" name:"SparkImageVersion"`

	// Description of the spark image
	// Note: This field may return null, indicating that no valid values can be obtained.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Update time
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`
}

// Predefined struct for user
type QueryResultRequestParams struct {
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// lastReadFile is the file read last time. lastReadOffset is where the read stopped.
	NextToken *string `json:"NextToken,omitnil,omitempty" name:"NextToken"`
}

type QueryResultRequest struct {
	*tchttp.BaseRequest
	
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// lastReadFile is the file read last time. lastReadOffset is where the read stopped.
	NextToken *string `json:"NextToken,omitnil,omitempty" name:"NextToken"`
}

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

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

// Predefined struct for user
type QueryResultResponseParams struct {
	// Task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Result data
	ResultSet *string `json:"ResultSet,omitnil,omitempty" name:"ResultSet"`

	// schema
	ResultSchema []*Column `json:"ResultSchema,omitnil,omitempty" name:"ResultSchema"`

	// Pagination information
	// Note: This field may return null, indicating that no valid values can be obtained.
	NextToken *string `json:"NextToken,omitnil,omitempty" name:"NextToken"`

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

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

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

// Predefined struct for user
type QueryTaskCostDetailRequestParams struct {
	// Filter criteria. The following filter types are supported. The parameter Name should be one of them. The maximum number of values that can be filtered by task-id is 50. The values that can be filtered by other parameter filters should not be more than 5.
	// task-id - String - (accurate filtering of task IDs). The example of the value of task-id is e386471f-139a-4e59-877f-50ece8135b99.
	// task-state - String - (filtering task status); valid values: 0 (initializing), 1 (running), 2 (successful), and -1 (failed).
	// task-sql-keyword - String - (fuzzy filtering of the keywords of SQL statements); the example of the value is DROP TABLE.
	// task-operator- string (filtering sub-UIN)
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Start time, and the format is yyyy-mm-dd HH:MM:SS. It is the current moment 45 days ago by default.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, and the format is yyyy-mm-dd HH:MM:SS. The time span is longer than 0 day but shorter than or equal to 30 days. Data within the recent 45 days can be queried. It is the current moment by default.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Data engine name, used for selecting
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Identifier on the next page
	SearchAfter *string `json:"SearchAfter,omitnil,omitempty" name:"SearchAfter"`

	// Size of each page
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

type QueryTaskCostDetailRequest struct {
	*tchttp.BaseRequest
	
	// Filter criteria. The following filter types are supported. The parameter Name should be one of them. The maximum number of values that can be filtered by task-id is 50. The values that can be filtered by other parameter filters should not be more than 5.
	// task-id - String - (accurate filtering of task IDs). The example of the value of task-id is e386471f-139a-4e59-877f-50ece8135b99.
	// task-state - String - (filtering task status); valid values: 0 (initializing), 1 (running), 2 (successful), and -1 (failed).
	// task-sql-keyword - String - (fuzzy filtering of the keywords of SQL statements); the example of the value is DROP TABLE.
	// task-operator- string (filtering sub-UIN)
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Start time, and the format is yyyy-mm-dd HH:MM:SS. It is the current moment 45 days ago by default.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time, and the format is yyyy-mm-dd HH:MM:SS. The time span is longer than 0 day but shorter than or equal to 30 days. Data within the recent 45 days can be queried. It is the current moment by default.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Data engine name, used for selecting
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Identifier on the next page
	SearchAfter *string `json:"SearchAfter,omitnil,omitempty" name:"SearchAfter"`

	// Size of each page
	PageSize *uint64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`
}

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

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

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

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

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

// Predefined struct for user
type RegisterThirdPartyAccessUserRequestParams struct {

}

type RegisterThirdPartyAccessUserRequest struct {
	*tchttp.BaseRequest
	
}

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

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

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

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

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

// Predefined struct for user
type RenewDataEngineRequestParams struct {
	// CU queue name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Renewal period in months, which is at least one month.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Payment type. It is 1 by default and is prepaid.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Unit. It is m by default, and only m can be filled in.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Auto-renewal flag: 0 means the initial status, and there is no automatic renewal by default. If the user has the privilege to retain services with prepayment, there will be an automatic renewal. 1 means that there is an automatic renewal. 2 means that there is surely no automatic renewal. If it is not specified, the parameter is 0 by default.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`
}

type RenewDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// CU queue name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Renewal period in months, which is at least one month.
	TimeSpan *int64 `json:"TimeSpan,omitnil,omitempty" name:"TimeSpan"`

	// Payment type. It is 1 by default and is prepaid.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Unit. It is m by default, and only m can be filled in.
	TimeUnit *string `json:"TimeUnit,omitnil,omitempty" name:"TimeUnit"`

	// Auto-renewal flag: 0 means the initial status, and there is no automatic renewal by default. If the user has the privilege to retain services with prepayment, there will be an automatic renewal. 1 means that there is an automatic renewal. 2 means that there is surely no automatic renewal. If it is not specified, the parameter is 0 by default.
	RenewFlag *int64 `json:"RenewFlag,omitnil,omitempty" name:"RenewFlag"`
}

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

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

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

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

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

type ResourceBaseInfo struct {
	// Catalog name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Schema name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Schema *string `json:"Schema,omitnil,omitempty" name:"Schema"`

	// Table name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Table *string `json:"Table,omitnil,omitempty" name:"Table"`

	// View name
	// Note: This field may return null, indicating that no valid values can be obtained.
	View *string `json:"View,omitnil,omitempty" name:"View"`

	// Database name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Database *string `json:"Database,omitnil,omitempty" name:"Database"`

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

type ResourceInfo struct {
	// Affiliated type
	// Note: This field may return null, indicating that no valid values can be obtained.
	AttributionType *string `json:"AttributionType,omitnil,omitempty" name:"AttributionType"`

	// Resource type
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResourceType *string `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// Engine name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// If the resource type is spark-sql, the value is Name; if the resource type is spark-batch, the value is session app_name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Instance *string `json:"Instance,omitnil,omitempty" name:"Instance"`

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

	// Status
	// Note: This field may return null, indicating that no valid values can be obtained.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`
}

// Predefined struct for user
type RestartDataEngineRequestParams struct {
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Whether to restart by force and ignore tasks
	ForcedOperation *bool `json:"ForcedOperation,omitnil,omitempty" name:"ForcedOperation"`
}

type RestartDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Whether to restart by force and ignore tasks
	ForcedOperation *bool `json:"ForcedOperation,omitnil,omitempty" name:"ForcedOperation"`
}

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

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

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

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

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

// Predefined struct for user
type RevokeDLCCatalogAccessRequestParams struct {
	// VpcID
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`
}

type RevokeDLCCatalogAccessRequest struct {
	*tchttp.BaseRequest
	
	// VpcID
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`
}

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

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

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

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

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

// Predefined struct for user
type RollbackDataEngineImageRequestParams struct {
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// FromRecordId parameters returned by the API for checking the availability of rolling back
	FromRecordId *string `json:"FromRecordId,omitnil,omitempty" name:"FromRecordId"`

	// ToRecordId parameters returned by the API for checking the availability of rolling back
	ToRecordId *string `json:"ToRecordId,omitnil,omitempty" name:"ToRecordId"`
}

type RollbackDataEngineImageRequest struct {
	*tchttp.BaseRequest
	
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// FromRecordId parameters returned by the API for checking the availability of rolling back
	FromRecordId *string `json:"FromRecordId,omitnil,omitempty" name:"FromRecordId"`

	// ToRecordId parameters returned by the API for checking the availability of rolling back
	ToRecordId *string `json:"ToRecordId,omitnil,omitempty" name:"ToRecordId"`
}

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

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

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

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

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

type SQLTask struct {
	// Base64-encrypted SQL statement
	SQL *string `json:"SQL,omitnil,omitempty" name:"SQL"`

	// Task configuration information
	Config []*KVPair `json:"Config,omitnil,omitempty" name:"Config"`
}

type SessionResourceTemplate struct {
	// The driver size.
	// Valid values for the standard resource type: `small`, `medium`, `large`, and `xlarge`.
	// Valid values for the memory resource type: `m.small`, `m.medium`, `m.large`, and `m.xlarge`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DriverSize *string `json:"DriverSize,omitnil,omitempty" name:"DriverSize"`

	// The executor size.
	// Valid values for the standard resource type: `small`, `medium`, `large`, and `xlarge`.
	// Valid values for the memory resource type: `m.small`, `m.medium`, `m.large`, and `m.xlarge`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecutorSize *string `json:"ExecutorSize,omitnil,omitempty" name:"ExecutorSize"`

	// The executor count. The minimum value is 1 and the maximum value is less than the cluster specification.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecutorNums *uint64 `json:"ExecutorNums,omitnil,omitempty" name:"ExecutorNums"`

	// The maximum executor count (in dynamic mode). The minimum value is 1 and the maximum value is less than the cluster specification. If you set `ExecutorMaxNumbers` to a value smaller than that of `ExecutorNums`, the value of `ExecutorMaxNumbers` is automatically changed to that of `ExecutorNums`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecutorMaxNumbers *uint64 `json:"ExecutorMaxNumbers,omitnil,omitempty" name:"ExecutorMaxNumbers"`
}

type SmartOptimizerIndexPolicy struct {
	// Enable index.
	// Note: This field may return null, indicating that no valid values can be obtained.
	IndexEnable *string `json:"IndexEnable,omitnil,omitempty" name:"IndexEnable"`
}

type SmartOptimizerLifecyclePolicy struct {
	// Enable the lifecycle
	// Note: This field may return null, indicating that no valid values can be obtained.
	LifecycleEnable *string `json:"LifecycleEnable,omitnil,omitempty" name:"LifecycleEnable"`

	// Expiration time
	// Note: This field may return null, indicating that no valid values can be obtained.
	Expiration *int64 `json:"Expiration,omitnil,omitempty" name:"Expiration"`

	// Whether to delete the table
	// Note: This field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: DropTable is deprecated.
	DropTable *bool `json:"DropTable,omitnil,omitempty" name:"DropTable"`

	// Expired fields
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpiredField *string `json:"ExpiredField,omitnil,omitempty" name:"ExpiredField"`

	// Expired field format
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExpiredFieldFormat *string `json:"ExpiredFieldFormat,omitnil,omitempty" name:"ExpiredFieldFormat"`
}

type SmartOptimizerPolicy struct {
	// Whether to inherit it
	// Note: This field may return null, indicating that no valid values can be obtained.
	Inherit *string `json:"Inherit,omitnil,omitempty" name:"Inherit"`

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

	// SmartOptimizerWrittenPolicy
	// Note: This field may return null, indicating that no valid values can be obtained.
	Written *SmartOptimizerWrittenPolicy `json:"Written,omitnil,omitempty" name:"Written"`

	// SmartOptimizerLifecyclePolicy
	// Note: This field may return null, indicating that no valid values can be obtained.
	Lifecycle *SmartOptimizerLifecyclePolicy `json:"Lifecycle,omitnil,omitempty" name:"Lifecycle"`

	// SmartOptimizerIndexPolicy
	// Note: This field may return null, indicating that no valid values can be obtained.
	Index *SmartOptimizerIndexPolicy `json:"Index,omitnil,omitempty" name:"Index"`
}

type SmartOptimizerWrittenPolicy struct {
	// none/enable/disable/default
	// Note: This field may return null, indicating that no valid values can be obtained.
	WrittenEnable *string `json:"WrittenEnable,omitnil,omitempty" name:"WrittenEnable"`


	AdvancePolicy *WrittenAdvancePolicy `json:"AdvancePolicy,omitnil,omitempty" name:"AdvancePolicy"`
}

type SmartPolicy struct {
	// Basic information
	// Note: This field may return null, indicating that no valid values can be obtained.
	BaseInfo *SmartPolicyBaseInfo `json:"BaseInfo,omitnil,omitempty" name:"BaseInfo"`

	// Policy description
	// Note: This field may return null, indicating that no valid values can be obtained.
	Policy *SmartOptimizerPolicy `json:"Policy,omitnil,omitempty" name:"Policy"`
}

type SmartPolicyBaseInfo struct {
	// User UIN
	// Note: This field may return null, indicating that no valid values can be obtained.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Catalog/Database/Table
	// Note: This field may return null, indicating that no valid values can be obtained.
	PolicyType *string `json:"PolicyType,omitnil,omitempty" name:"PolicyType"`

	// Catalog name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Catalog *string `json:"Catalog,omitnil,omitempty" name:"Catalog"`

	// Database name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Database *string `json:"Database,omitnil,omitempty" name:"Database"`

	// Table name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Table *string `json:"Table,omitnil,omitempty" name:"Table"`

	// User AppID
	// Note: This field may return null, indicating that no valid values can be obtained.
	AppId *string `json:"AppId,omitnil,omitempty" name:"AppId"`
}

type SortOrder struct {

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


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


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

type SparkJobInfo struct {
	// Spark job ID
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Spark job name
	JobName *string `json:"JobName,omitnil,omitempty" name:"JobName"`

	// Spark job type. Valid values: `1` (batch job), `2` (streaming job).
	JobType *int64 `json:"JobType,omitnil,omitempty" name:"JobType"`

	// Engine name
	DataEngine *string `json:"DataEngine,omitnil,omitempty" name:"DataEngine"`

	// This field has been disused. Use the `Datasource` field instead.
	Eni *string `json:"Eni,omitnil,omitempty" name:"Eni"`

	// Whether the program package is uploaded locally. Valid values: `cos`, `lakefs`.
	IsLocal *string `json:"IsLocal,omitnil,omitempty" name:"IsLocal"`

	// Program package path
	JobFile *string `json:"JobFile,omitnil,omitempty" name:"JobFile"`

	// Role ID
	RoleArn *int64 `json:"RoleArn,omitnil,omitempty" name:"RoleArn"`

	// Main class of Spark job execution
	MainClass *string `json:"MainClass,omitnil,omitempty" name:"MainClass"`

	// Command line parameters of the Spark job separated by space
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`

	// Native Spark configurations separated by line break
	JobConf *string `json:"JobConf,omitnil,omitempty" name:"JobConf"`

	// Whether the dependency JAR packages are uploaded locally. Valid values: `cos`, `lakefs`.
	IsLocalJars *string `json:"IsLocalJars,omitnil,omitempty" name:"IsLocalJars"`

	// Dependency JAR packages of the Spark job separated by comma
	JobJars *string `json:"JobJars,omitnil,omitempty" name:"JobJars"`

	// Whether the dependency file is uploaded locally. Valid values: `cos`, `lakefs`.
	IsLocalFiles *string `json:"IsLocalFiles,omitnil,omitempty" name:"IsLocalFiles"`

	// Dependency files of the Spark job separated by comma
	JobFiles *string `json:"JobFiles,omitnil,omitempty" name:"JobFiles"`

	// Driver resource size of the Spark job
	JobDriverSize *string `json:"JobDriverSize,omitnil,omitempty" name:"JobDriverSize"`

	// Executor resource size of the Spark job
	JobExecutorSize *string `json:"JobExecutorSize,omitnil,omitempty" name:"JobExecutorSize"`

	// Number of Spark job executors
	JobExecutorNums *int64 `json:"JobExecutorNums,omitnil,omitempty" name:"JobExecutorNums"`

	// Maximum number of retries of the Spark flow task
	JobMaxAttempts *int64 `json:"JobMaxAttempts,omitnil,omitempty" name:"JobMaxAttempts"`

	// Spark job creator
	JobCreator *string `json:"JobCreator,omitnil,omitempty" name:"JobCreator"`

	// Spark job creation time
	JobCreateTime *int64 `json:"JobCreateTime,omitnil,omitempty" name:"JobCreateTime"`

	// Spark job update time
	JobUpdateTime *uint64 `json:"JobUpdateTime,omitnil,omitempty" name:"JobUpdateTime"`

	// Last task ID of the Spark job
	CurrentTaskId *string `json:"CurrentTaskId,omitnil,omitempty" name:"CurrentTaskId"`

	// Last status of the Spark job
	JobStatus *int64 `json:"JobStatus,omitnil,omitempty" name:"JobStatus"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	StreamingStat *StreamingStatistics `json:"StreamingStat,omitnil,omitempty" name:"StreamingStat"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataSource *string `json:"DataSource,omitnil,omitempty" name:"DataSource"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	IsLocalPythonFiles *string `json:"IsLocalPythonFiles,omitnil,omitempty" name:"IsLocalPythonFiles"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	AppPythonFiles *string `json:"AppPythonFiles,omitnil,omitempty" name:"AppPythonFiles"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	IsLocalArchives *string `json:"IsLocalArchives,omitnil,omitempty" name:"IsLocalArchives"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	JobArchives *string `json:"JobArchives,omitnil,omitempty" name:"JobArchives"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkImage *string `json:"SparkImage,omitnil,omitempty" name:"SparkImage"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	JobPythonFiles *string `json:"JobPythonFiles,omitnil,omitempty" name:"JobPythonFiles"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskNum *int64 `json:"TaskNum,omitnil,omitempty" name:"TaskNum"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineStatus *int64 `json:"DataEngineStatus,omitnil,omitempty" name:"DataEngineStatus"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	JobExecutorMaxNumbers *int64 `json:"JobExecutorMaxNumbers,omitnil,omitempty" name:"JobExecutorMaxNumbers"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkImageVersion *string `json:"SparkImageVersion,omitnil,omitempty" name:"SparkImageVersion"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineClusterType *string `json:"DataEngineClusterType,omitnil,omitempty" name:"DataEngineClusterType"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineImageVersion *string `json:"DataEngineImageVersion,omitnil,omitempty" name:"DataEngineImageVersion"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	IsInherit *uint64 `json:"IsInherit,omitnil,omitempty" name:"IsInherit"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	IsSessionStarted *bool `json:"IsSessionStarted,omitnil,omitempty" name:"IsSessionStarted"`

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

type SparkMonitorMetrics struct {
	// Note: This field may return null, indicating that no valid values can be obtained.
	ShuffleWriteBytesCos *int64 `json:"ShuffleWriteBytesCos,omitnil,omitempty" name:"ShuffleWriteBytesCos"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ShuffleWriteBytesTotal *int64 `json:"ShuffleWriteBytesTotal,omitnil,omitempty" name:"ShuffleWriteBytesTotal"`
}

type SparkSessionBatchLog struct {
	// The log step. Valid values: `BEG`, `CS`, `DS`, `DSS`, `DSF`, `FINF`, `RTO`, `CANCEL`, `CT`, `DT`, `DTS`, `DTF`, `FINT`, and `EXCE`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Step *string `json:"Step,omitnil,omitempty" name:"Step"`

	// Time.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Time *string `json:"Time,omitnil,omitempty" name:"Time"`

	// The log message.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// The operation.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Operate []*SparkSessionBatchLogOperate `json:"Operate,omitnil,omitempty" name:"Operate"`
}

type SparkSessionBatchLogOperate struct {
	// The operation message.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Text *string `json:"Text,omitnil,omitempty" name:"Text"`

	// The operation type. Valid values: `COPY`, `LOG`, `UI`, `RESULT`, `List`, and `TAB`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Operate *string `json:"Operate,omitnil,omitempty" name:"Operate"`

	// Additional information, such as taskid, sessionid, and sparkui.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Supplement []*KVPair `json:"Supplement,omitnil,omitempty" name:"Supplement"`
}

type StatementInformation struct {
	// Unique ID of the SQL task
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// SQL content
	// Note: This field may return null, indicating that no valid values can be obtained.
	SQL *string `json:"SQL,omitnil,omitempty" name:"SQL"`
}

type StatisticInfo struct {
	// Task ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Amount of data scanned
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalProcessedBytes *int64 `json:"TotalProcessedBytes,omitnil,omitempty" name:"TotalProcessedBytes"`

	// Calculation time: ms
	// Note: This field may return null, indicating that no valid values can be obtained.
	UsedTime *int64 `json:"UsedTime,omitnil,omitempty" name:"UsedTime"`

	// Creation Time
	// Note: This field may return null, indicating that no valid values can be obtained.
	CreateTime *int64 `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Task end time
	// Note: This field may return null, indicating that no valid values can be obtained.
	EndTime *int64 `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Task start time
	// Note: This field may return null, indicating that no valid values can be obtained.
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Number of rows affected
	// Note: This field may return null, indicating that no valid values can be obtained.
	RowsAffect *int64 `json:"RowsAffect,omitnil,omitempty" name:"RowsAffect"`

	// Task duration
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalTime *int64 `json:"TotalTime,omitnil,omitempty" name:"TotalTime"`
}

type StreamingStatistics struct {
	// Task start time
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Number of data receivers
	Receivers *int64 `json:"Receivers,omitnil,omitempty" name:"Receivers"`

	// Number of receivers in service
	NumActiveReceivers *int64 `json:"NumActiveReceivers,omitnil,omitempty" name:"NumActiveReceivers"`

	// Number of inactive receivers
	NumInactiveReceivers *int64 `json:"NumInactiveReceivers,omitnil,omitempty" name:"NumInactiveReceivers"`

	// Number of running batches
	NumActiveBatches *int64 `json:"NumActiveBatches,omitnil,omitempty" name:"NumActiveBatches"`

	// Number of batches to be processed
	NumRetainedCompletedBatches *int64 `json:"NumRetainedCompletedBatches,omitnil,omitempty" name:"NumRetainedCompletedBatches"`

	// Number of completed batches
	NumTotalCompletedBatches *int64 `json:"NumTotalCompletedBatches,omitnil,omitempty" name:"NumTotalCompletedBatches"`

	// Average input speed
	AverageInputRate *float64 `json:"AverageInputRate,omitnil,omitempty" name:"AverageInputRate"`

	// Average queue time
	AverageSchedulingDelay *float64 `json:"AverageSchedulingDelay,omitnil,omitempty" name:"AverageSchedulingDelay"`

	// Average processing time
	AverageProcessingTime *float64 `json:"AverageProcessingTime,omitnil,omitempty" name:"AverageProcessingTime"`

	// Average latency
	AverageTotalDelay *float64 `json:"AverageTotalDelay,omitnil,omitempty" name:"AverageTotalDelay"`
}

// Predefined struct for user
type SuspendResumeDataEngineRequestParams struct {
	// The name of a virtual cluster.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// The operation type: `suspend` or `resume`.
	Operate *string `json:"Operate,omitnil,omitempty" name:"Operate"`
}

type SuspendResumeDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// The name of a virtual cluster.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// The operation type: `suspend` or `resume`.
	Operate *string `json:"Operate,omitnil,omitempty" name:"Operate"`
}

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

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

// Predefined struct for user
type SuspendResumeDataEngineResponseParams struct {
	// The details of the virtual cluster.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

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

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

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

// Predefined struct for user
type SwitchDataEngineImageRequestParams struct {
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// New image version ID
	NewImageVersionId *string `json:"NewImageVersionId,omitnil,omitempty" name:"NewImageVersionId"`
}

type SwitchDataEngineImageRequest struct {
	*tchttp.BaseRequest
	
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// New image version ID
	NewImageVersionId *string `json:"NewImageVersionId,omitnil,omitempty" name:"NewImageVersionId"`
}

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

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

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

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

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

// Predefined struct for user
type SwitchDataEngineRequestParams struct {
	// The name of the primary cluster.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Whether to start the standby cluster.
	StartStandbyCluster *bool `json:"StartStandbyCluster,omitnil,omitempty" name:"StartStandbyCluster"`
}

type SwitchDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// The name of the primary cluster.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Whether to start the standby cluster.
	StartStandbyCluster *bool `json:"StartStandbyCluster,omitnil,omitempty" name:"StartStandbyCluster"`
}

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

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

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

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

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

type TColumn struct {
	// Field name
	// Note: This field may return null, indicating that no valid values can be obtained.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Field type
	// Note: This field may return null, indicating that no valid values can be obtained.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Field description
	// Note: This field may return null, indicating that no valid values can be obtained.
	Comment *string `json:"Comment,omitnil,omitempty" name:"Comment"`

	// Field default values
	// Note: This field may return null, indicating that no valid values can be obtained.
	Default *string `json:"Default,omitnil,omitempty" name:"Default"`

	// Is the field non-empty?
	// Note: This field may return null, indicating that no valid values can be obtained.
	NotNull *bool `json:"NotNull,omitnil,omitempty" name:"NotNull"`

	// Indicate the length of the entire numeric with a value of 1-38
	// Note: This field may return null, indicating that no valid values can be obtained.
	Precision *int64 `json:"Precision,omitnil,omitempty" name:"Precision"`

	// Indicates the length of the decimal part.
	// Scale is smaller than Precision.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Scale *int64 `json:"Scale,omitnil,omitempty" name:"Scale"`

	// Field position: Fields with smaller values need to be placed first.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Position *int64 `json:"Position,omitnil,omitempty" name:"Position"`

	// Whether it is a partition field
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsPartition *bool `json:"IsPartition,omitnil,omitempty" name:"IsPartition"`
}

type TPartition struct {
	// The field name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

	// The field description.
	Comment *string `json:"Comment,omitnil,omitempty" name:"Comment"`

	// The partition type.
	PartitionType *string `json:"PartitionType,omitnil,omitempty" name:"PartitionType"`

	// The partition format.
	PartitionFormat *string `json:"PartitionFormat,omitnil,omitempty" name:"PartitionFormat"`

	// The separator count of the partition conversion policy.
	PartitionDot *int64 `json:"PartitionDot,omitnil,omitempty" name:"PartitionDot"`

	// The partition conversion policy.
	Transform *string `json:"Transform,omitnil,omitempty" name:"Transform"`

	// The policy parameters.
	TransformArgs []*string `json:"TransformArgs,omitnil,omitempty" name:"TransformArgs"`
}

type TableBaseInfo struct {
	// The database name.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// The table name.
	TableName *string `json:"TableName,omitnil,omitempty" name:"TableName"`

	// The data source name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// The table remarks.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TableComment *string `json:"TableComment,omitnil,omitempty" name:"TableComment"`

	// The specific type: `table` or `view`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// The data format type, such as `hive` and `iceberg`.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TableFormat *string `json:"TableFormat,omitnil,omitempty" name:"TableFormat"`

	// The table creator name.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`

	// The table creator ID.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserSubUin *string `json:"UserSubUin,omitnil,omitempty" name:"UserSubUin"`

	// The data governance configuration.
	// Note: This field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: GovernPolicy is deprecated.
	GovernPolicy *DataGovernPolicy `json:"GovernPolicy,omitnil,omitempty" name:"GovernPolicy"`

	// Whether database data governance is disabled. Valid values: `true` (disabled) and `false` (not disabled).
	// Note: This field may return null, indicating that no valid values can be obtained.
	//
	// Deprecated: DbGovernPolicyIsDisable is deprecated.
	DbGovernPolicyIsDisable *string `json:"DbGovernPolicyIsDisable,omitnil,omitempty" name:"DbGovernPolicyIsDisable"`

	// Smart data governance configuration items
	// Note: This field may return null, indicating that no valid values can be obtained.
	SmartPolicy *SmartPolicy `json:"SmartPolicy,omitnil,omitempty" name:"SmartPolicy"`
}

type TagInfo struct {
	// The tag key.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"`

	// The tag value.
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagValue *string `json:"TagValue,omitnil,omitempty" name:"TagValue"`
}

type Task struct {
	// SQL query task
	SQLTask *SQLTask `json:"SQLTask,omitnil,omitempty" name:"SQLTask"`

	// Spark SQL query task
	SparkSQLTask *SQLTask `json:"SparkSQLTask,omitnil,omitempty" name:"SparkSQLTask"`
}

type TaskResponseInfo struct {
	// Database name of the task
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Data volume of the task
	DataAmount *int64 `json:"DataAmount,omitnil,omitempty" name:"DataAmount"`

	// Task ID
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`

	// The compute time in ms.
	UsedTime *int64 `json:"UsedTime,omitnil,omitempty" name:"UsedTime"`

	// Task output path
	OutputPath *string `json:"OutputPath,omitnil,omitempty" name:"OutputPath"`

	// Task creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// The task status. Valid values: `0` (initializing), `1` (executing), `2` (executed), `3` (writing data), `4` (queuing), `-1` (failed), and `-3` (canceled).
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// SQL statement type of the task, such as DDL and DML.
	SQLType *string `json:"SQLType,omitnil,omitempty" name:"SQLType"`

	// SQL statement of the task
	SQL *string `json:"SQL,omitnil,omitempty" name:"SQL"`

	// Whether the result has expired
	ResultExpired *bool `json:"ResultExpired,omitnil,omitempty" name:"ResultExpired"`

	// Number of affected data rows
	RowAffectInfo *string `json:"RowAffectInfo,omitnil,omitempty" name:"RowAffectInfo"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataSet *string `json:"DataSet,omitnil,omitempty" name:"DataSet"`

	// Failure information, such as `errorMessage`. This field has been disused.
	Error *string `json:"Error,omitnil,omitempty" name:"Error"`

	// Task progress (%)
	Percentage *int64 `json:"Percentage,omitnil,omitempty" name:"Percentage"`

	// Output information of task execution
	OutputMessage *string `json:"OutputMessage,omitnil,omitempty" name:"OutputMessage"`

	// Type of the engine executing the SQL statement
	TaskType *string `json:"TaskType,omitnil,omitempty" name:"TaskType"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ProgressDetail *string `json:"ProgressDetail,omitnil,omitempty" name:"ProgressDetail"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	OperateUin *string `json:"OperateUin,omitnil,omitempty" name:"OperateUin"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	InputType *string `json:"InputType,omitnil,omitempty" name:"InputType"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	InputConf *string `json:"InputConf,omitnil,omitempty" name:"InputConf"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DataNumber *int64 `json:"DataNumber,omitnil,omitempty" name:"DataNumber"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	CanDownload *bool `json:"CanDownload,omitnil,omitempty" name:"CanDownload"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkJobName *string `json:"SparkJobName,omitnil,omitempty" name:"SparkJobName"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkJobId *string `json:"SparkJobId,omitnil,omitempty" name:"SparkJobId"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	SparkJobFile *string `json:"SparkJobFile,omitnil,omitempty" name:"SparkJobFile"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	UiUrl *string `json:"UiUrl,omitnil,omitempty" name:"UiUrl"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalTime *int64 `json:"TotalTime,omitnil,omitempty" name:"TotalTime"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	CmdArgs *string `json:"CmdArgs,omitnil,omitempty" name:"CmdArgs"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ImageVersion *string `json:"ImageVersion,omitnil,omitempty" name:"ImageVersion"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	DriverSize *string `json:"DriverSize,omitnil,omitempty" name:"DriverSize"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecutorSize *string `json:"ExecutorSize,omitnil,omitempty" name:"ExecutorSize"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecutorNums *uint64 `json:"ExecutorNums,omitnil,omitempty" name:"ExecutorNums"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecutorMaxNumbers *uint64 `json:"ExecutorMaxNumbers,omitnil,omitempty" name:"ExecutorMaxNumbers"`

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

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

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

	// Note: This field may return null, indicating that no valid values can be obtained.
	ResultFormat *string `json:"ResultFormat,omitnil,omitempty" name:"ResultFormat"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	EngineTypeDetail *string `json:"EngineTypeDetail,omitnil,omitempty" name:"EngineTypeDetail"`

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

type TaskResultInfo struct {
	// Unique task ID
	TaskId *string `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Name of the default selected data source when the current job is executed
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatasourceConnectionName *string `json:"DatasourceConnectionName,omitnil,omitempty" name:"DatasourceConnectionName"`

	// Name of the default selected database when the current job is executed
	// Note: This field may return null, indicating that no valid values can be obtained.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// The currently executed SQL statement. Each task contains one SQL statement.
	SQL *string `json:"SQL,omitnil,omitempty" name:"SQL"`

	// Type of the executed task. Valid values: `DDL`, `DML`, `DQL`.
	SQLType *string `json:"SQLType,omitnil,omitempty" name:"SQLType"`

	// u200cThe current task status. Valid values: `0` (initializing), `1` (executing), `2` (executed), `3` (writing data), `4` (queuing), u200c`-1` (failed), and `-3` (canceled). Only when the task is successfully executed, a task execution result will be returned.
	State *int64 `json:"State,omitnil,omitempty" name:"State"`

	// Amount of the data scanned in bytes
	DataAmount *int64 `json:"DataAmount,omitnil,omitempty" name:"DataAmount"`

	// The compute time in ms.
	UsedTime *int64 `json:"UsedTime,omitnil,omitempty" name:"UsedTime"`

	// Address of the COS bucket for storing the task result
	OutputPath *string `json:"OutputPath,omitnil,omitempty" name:"OutputPath"`

	// Task creation timestamp
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Task execution information. `success` will be returned if the task succeeds; otherwise, the failure cause will be returned.
	OutputMessage *string `json:"OutputMessage,omitnil,omitempty" name:"OutputMessage"`

	// Number of affected rows
	RowAffectInfo *string `json:"RowAffectInfo,omitnil,omitempty" name:"RowAffectInfo"`

	// Schema information of the result
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResultSchema []*Column `json:"ResultSchema,omitnil,omitempty" name:"ResultSchema"`

	// Result information. After it is unescaped, each element of the outer array is a data row.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ResultSet *string `json:"ResultSet,omitnil,omitempty" name:"ResultSet"`

	// Pagination information. If there is no more result data, `nextToken` will be empty.
	NextToken *string `json:"NextToken,omitnil,omitempty" name:"NextToken"`

	// Task progress (%)
	Percentage *int64 `json:"Percentage,omitnil,omitempty" name:"Percentage"`

	// Task progress details
	ProgressDetail *string `json:"ProgressDetail,omitnil,omitempty" name:"ProgressDetail"`

	// Console display format. Valid values: `table`, `text`.
	DisplayFormat *string `json:"DisplayFormat,omitnil,omitempty" name:"DisplayFormat"`

	// The task time in ms.
	TotalTime *int64 `json:"TotalTime,omitnil,omitempty" name:"TotalTime"`

	// Time consumed to get results
	// Note: This field may return null, indicating that no valid values can be obtained.
	QueryResultTime *float64 `json:"QueryResultTime,omitnil,omitempty" name:"QueryResultTime"`
}

type TasksInfo struct {
	// Task type. Valid values: `SQLTask` (SQL query task), `SparkSQLTask` (Spark SQL query task).
	TaskType *string `json:"TaskType,omitnil,omitempty" name:"TaskType"`

	// Fault tolerance policy. `Proceed`: continues to execute subsequent tasks after the current task fails or is canceled. `Terminate`: terminates the execution of subsequent tasks after the current task fails or is canceled, and marks all subsequent tasks as canceled.
	FailureTolerance *string `json:"FailureTolerance,omitnil,omitempty" name:"FailureTolerance"`

	// Base64-encrypted SQL statements separated by ";". Up to 50 tasks can be submitted at a time, and they will be executed strictly in sequence.
	SQL *string `json:"SQL,omitnil,omitempty" name:"SQL"`

	// Configuration information of the task. Currently, only `SparkSQLTask` tasks are supported.
	Config []*KVPair `json:"Config,omitnil,omitempty" name:"Config"`

	// User-defined parameters of the task
	Params []*KVPair `json:"Params,omitnil,omitempty" name:"Params"`
}

type TasksOverview struct {
	// The number of tasks in queue.
	TaskQueuedCount *int64 `json:"TaskQueuedCount,omitnil,omitempty" name:"TaskQueuedCount"`

	// The number of initialized tasks.
	TaskInitCount *int64 `json:"TaskInitCount,omitnil,omitempty" name:"TaskInitCount"`

	// The number of tasks in progress.
	TaskRunningCount *int64 `json:"TaskRunningCount,omitnil,omitempty" name:"TaskRunningCount"`

	// The total number of tasks in this time range.
	TotalTaskCount *int64 `json:"TotalTaskCount,omitnil,omitempty" name:"TotalTaskCount"`
}

// Predefined struct for user
type UnbindWorkGroupsFromUserRequestParams struct {
	// Association between the IDs of unbound working groups and user IDs
	AddInfo *WorkGroupIdSetOfUserId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

type UnbindWorkGroupsFromUserRequest struct {
	*tchttp.BaseRequest
	
	// Association between the IDs of unbound working groups and user IDs
	AddInfo *WorkGroupIdSetOfUserId `json:"AddInfo,omitnil,omitempty" name:"AddInfo"`
}

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

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

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

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

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

// Predefined struct for user
type UpdateDataEngineConfigRequestParams struct {
	// Engine ID
	DataEngineIds []*string `json:"DataEngineIds,omitnil,omitempty" name:"DataEngineIds"`

	// Commands of engine configuration. UpdateSparkSQLLakefsPath (updates the configuration of the native table) and UpdateSparkSQLResultPath (updates the configuration of the result path) are supported.
	DataEngineConfigCommand *string `json:"DataEngineConfigCommand,omitnil,omitempty" name:"DataEngineConfigCommand"`

	// Whether to use lakeFS as result storage
	UseLakeFs *bool `json:"UseLakeFs,omitnil,omitempty" name:"UseLakeFs"`

	// User-defined result path
	CustomResultPath *string `json:"CustomResultPath,omitnil,omitempty" name:"CustomResultPath"`
}

type UpdateDataEngineConfigRequest struct {
	*tchttp.BaseRequest
	
	// Engine ID
	DataEngineIds []*string `json:"DataEngineIds,omitnil,omitempty" name:"DataEngineIds"`

	// Commands of engine configuration. UpdateSparkSQLLakefsPath (updates the configuration of the native table) and UpdateSparkSQLResultPath (updates the configuration of the result path) are supported.
	DataEngineConfigCommand *string `json:"DataEngineConfigCommand,omitnil,omitempty" name:"DataEngineConfigCommand"`

	// Whether to use lakeFS as result storage
	UseLakeFs *bool `json:"UseLakeFs,omitnil,omitempty" name:"UseLakeFs"`

	// User-defined result path
	CustomResultPath *string `json:"CustomResultPath,omitnil,omitempty" name:"CustomResultPath"`
}

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

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

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

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

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

// Predefined struct for user
type UpdateDataEngineRequestParams struct {
	// Resource size
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// Minimum CU resource
	MinClusters *int64 `json:"MinClusters,omitnil,omitempty" name:"MinClusters"`

	// Maximum CU resource
	MaxClusters *int64 `json:"MaxClusters,omitnil,omitempty" name:"MaxClusters"`

	// Enable the auto-refresh. True means that it is enabled while false means that it is disabled (by default).
	AutoResume *bool `json:"AutoResume,omitnil,omitempty" name:"AutoResume"`

	// Data engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Related information
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// Whether to automatically suspend the cluster. False means no (by default) while true means yes.
	AutoSuspend *bool `json:"AutoSuspend,omitnil,omitempty" name:"AutoSuspend"`

	// Scheduling policy of starting and ending the cluster: 0 (by default) indicates disabling the scheduling policy; 1 indicates enabling the scheduling policy. (Note: The scheduling policy and the automatic suspension policy are mutually exclusive.)
	CrontabResumeSuspend *int64 `json:"CrontabResumeSuspend,omitnil,omitempty" name:"CrontabResumeSuspend"`

	// Scheduling policy for the start and end; the complex type includes start and end time and the cluster suspension policy.
	CrontabResumeSuspendStrategy *CrontabResumeSuspendStrategy `json:"CrontabResumeSuspendStrategy,omitnil,omitempty" name:"CrontabResumeSuspendStrategy"`

	// The maximum number of concurrent tasks for a single cluster, which is 5 by default.
	MaxConcurrency *int64 `json:"MaxConcurrency,omitnil,omitempty" name:"MaxConcurrency"`

	// Tolerable queuing time, and it is 0 by default. When the queuing time for tasks exceeds the tolerable time, it may trigger scale-out. If this parameter is 0, it means that scale-out may be triggered immediately once tasks start queuing.
	TolerableQueueTime *int64 `json:"TolerableQueueTime,omitnil,omitempty" name:"TolerableQueueTime"`

	// Cluster automatic suspension time
	AutoSuspendTime *int64 `json:"AutoSuspendTime,omitnil,omitempty" name:"AutoSuspendTime"`

	// Whether the AS of the spark jar monthly subscription cluster is enabled
	ElasticSwitch *bool `json:"ElasticSwitch,omitnil,omitempty" name:"ElasticSwitch"`

	// Upper limit of the spark jar monthly subscription cluster elastic scaling
	ElasticLimit *int64 `json:"ElasticLimit,omitnil,omitempty" name:"ElasticLimit"`

	// Session resource configuration template of Spark batch job clusters
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`
}

type UpdateDataEngineRequest struct {
	*tchttp.BaseRequest
	
	// Resource size
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// Minimum CU resource
	MinClusters *int64 `json:"MinClusters,omitnil,omitempty" name:"MinClusters"`

	// Maximum CU resource
	MaxClusters *int64 `json:"MaxClusters,omitnil,omitempty" name:"MaxClusters"`

	// Enable the auto-refresh. True means that it is enabled while false means that it is disabled (by default).
	AutoResume *bool `json:"AutoResume,omitnil,omitempty" name:"AutoResume"`

	// Data engine name
	DataEngineName *string `json:"DataEngineName,omitnil,omitempty" name:"DataEngineName"`

	// Related information
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// Whether to automatically suspend the cluster. False means no (by default) while true means yes.
	AutoSuspend *bool `json:"AutoSuspend,omitnil,omitempty" name:"AutoSuspend"`

	// Scheduling policy of starting and ending the cluster: 0 (by default) indicates disabling the scheduling policy; 1 indicates enabling the scheduling policy. (Note: The scheduling policy and the automatic suspension policy are mutually exclusive.)
	CrontabResumeSuspend *int64 `json:"CrontabResumeSuspend,omitnil,omitempty" name:"CrontabResumeSuspend"`

	// Scheduling policy for the start and end; the complex type includes start and end time and the cluster suspension policy.
	CrontabResumeSuspendStrategy *CrontabResumeSuspendStrategy `json:"CrontabResumeSuspendStrategy,omitnil,omitempty" name:"CrontabResumeSuspendStrategy"`

	// The maximum number of concurrent tasks for a single cluster, which is 5 by default.
	MaxConcurrency *int64 `json:"MaxConcurrency,omitnil,omitempty" name:"MaxConcurrency"`

	// Tolerable queuing time, and it is 0 by default. When the queuing time for tasks exceeds the tolerable time, it may trigger scale-out. If this parameter is 0, it means that scale-out may be triggered immediately once tasks start queuing.
	TolerableQueueTime *int64 `json:"TolerableQueueTime,omitnil,omitempty" name:"TolerableQueueTime"`

	// Cluster automatic suspension time
	AutoSuspendTime *int64 `json:"AutoSuspendTime,omitnil,omitempty" name:"AutoSuspendTime"`

	// Whether the AS of the spark jar monthly subscription cluster is enabled
	ElasticSwitch *bool `json:"ElasticSwitch,omitnil,omitempty" name:"ElasticSwitch"`

	// Upper limit of the spark jar monthly subscription cluster elastic scaling
	ElasticLimit *int64 `json:"ElasticLimit,omitnil,omitempty" name:"ElasticLimit"`

	// Session resource configuration template of Spark batch job clusters
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateDataEngineRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Size")
	delete(f, "MinClusters")
	delete(f, "MaxClusters")
	delete(f, "AutoResume")
	delete(f, "DataEngineName")
	delete(f, "Message")
	delete(f, "AutoSuspend")
	delete(f, "CrontabResumeSuspend")
	delete(f, "CrontabResumeSuspendStrategy")
	delete(f, "MaxConcurrency")
	delete(f, "TolerableQueueTime")
	delete(f, "AutoSuspendTime")
	delete(f, "ElasticSwitch")
	delete(f, "ElasticLimit")
	delete(f, "SessionResourceTemplate")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdateDataEngineRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type UpdateDataMaskStrategyRequestParams struct {
	// Masking policy description.
	Strategy *DataMaskStrategyInfo `json:"Strategy,omitnil,omitempty" name:"Strategy"`
}

type UpdateDataMaskStrategyRequest struct {
	*tchttp.BaseRequest
	
	// Masking policy description.
	Strategy *DataMaskStrategyInfo `json:"Strategy,omitnil,omitempty" name:"Strategy"`
}

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

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

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

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

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

// Predefined struct for user
type UpdateRowFilterRequestParams struct {
	// The ID of the row filter policy, which can be obtained using the `DescribeUserInfo` or `DescribeWorkGroupInfo` API.
	PolicyId *int64 `json:"PolicyId,omitnil,omitempty" name:"PolicyId"`

	// The new filter policy.
	Policy *Policy `json:"Policy,omitnil,omitempty" name:"Policy"`
}

type UpdateRowFilterRequest struct {
	*tchttp.BaseRequest
	
	// The ID of the row filter policy, which can be obtained using the `DescribeUserInfo` or `DescribeWorkGroupInfo` API.
	PolicyId *int64 `json:"PolicyId,omitnil,omitempty" name:"PolicyId"`

	// The new filter policy.
	Policy *Policy `json:"Policy,omitnil,omitempty" name:"Policy"`
}

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

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

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

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

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

// Predefined struct for user
type UpdateUserDataEngineConfigRequestParams struct {
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Collection of user-defined engine configuration items. This parameter needs to input all the configuration items users should add. For example, if there is a configuration item named k1:v1 while k2:v2 needs to be added, [k1:v1,k2:v2] should be passed.
	DataEngineConfigPairs []*DataEngineConfigPair `json:"DataEngineConfigPairs,omitnil,omitempty" name:"DataEngineConfigPairs"`

	// Template of the resource configuration of the job engine
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`
}

type UpdateUserDataEngineConfigRequest struct {
	*tchttp.BaseRequest
	
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`

	// Collection of user-defined engine configuration items. This parameter needs to input all the configuration items users should add. For example, if there is a configuration item named k1:v1 while k2:v2 needs to be added, [k1:v1,k2:v2] should be passed.
	DataEngineConfigPairs []*DataEngineConfigPair `json:"DataEngineConfigPairs,omitnil,omitempty" name:"DataEngineConfigPairs"`

	// Template of the resource configuration of the job engine
	SessionResourceTemplate *SessionResourceTemplate `json:"SessionResourceTemplate,omitnil,omitempty" name:"SessionResourceTemplate"`
}

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

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

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

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

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

// Predefined struct for user
type UpgradeDataEngineImageRequestParams struct {
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

type UpgradeDataEngineImageRequest struct {
	*tchttp.BaseRequest
	
	// Engine ID
	DataEngineId *string `json:"DataEngineId,omitnil,omitempty" name:"DataEngineId"`
}

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

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

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

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

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

type UserDetailInfo struct {
	// User ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Types of returned information. Group: returned information about the working group where the current user is; DataAuth: returned information about the current user's data permission; EngineAuth: returned information about the current user's engine permission
	// Note: This field may return null, indicating that no valid values can be obtained.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Types of users. ADMIN: administrators; COMMON: general users
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

	// User description
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserDescription *string `json:"UserDescription,omitnil,omitempty" name:"UserDescription"`

	// Collection of data permission information
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataPolicyInfo *Policys `json:"DataPolicyInfo,omitnil,omitempty" name:"DataPolicyInfo"`

	// Collection of engine permissions
	// Note: This field may return null, indicating that no valid values can be obtained.
	EnginePolicyInfo *Policys `json:"EnginePolicyInfo,omitnil,omitempty" name:"EnginePolicyInfo"`

	// Information about collections of working groups bound to the user
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupInfo *WorkGroups `json:"WorkGroupInfo,omitnil,omitempty" name:"WorkGroupInfo"`

	// User alias
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`

	// Collection of filtered rows
	// Note: This field may return null, indicating that no valid values can be obtained.
	RowFilterInfo *Policys `json:"RowFilterInfo,omitnil,omitempty" name:"RowFilterInfo"`
}

type UserIdSetOfWorkGroupId struct {
	// Working group IDs
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// User ID which matches the Uin on the CAM side
	UserIds []*string `json:"UserIds,omitnil,omitempty" name:"UserIds"`
}

type UserInfo struct {
	// User ID, which is the same as the sub-user UIN
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// User description, which can make it easy to identify different users.
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserDescription *string `json:"UserDescription,omitnil,omitempty" name:"UserDescription"`

	// Collection of permissions solely bound to users
	// Note: This field may return null, indicating that no valid values can be obtained.
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`

	// Creator of the current user
	Creator *string `json:"Creator,omitnil,omitempty" name:"Creator"`

	// Creation time, and the example of the format is at 16:19:32 on Jul 28, 2021.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Collection of associated working groups
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupSet []*WorkGroupMessage `json:"WorkGroupSet,omitnil,omitempty" name:"WorkGroupSet"`

	// Whether it is the root account
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsOwner *bool `json:"IsOwner,omitnil,omitempty" name:"IsOwner"`

	// Types of users. ADMIN: administrators; COMMON: general users
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

	// User alias
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`
}

type UserMessage struct {
	// User Id which matches the sub-user UIN on the CAM side
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// User description
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	UserDescription *string `json:"UserDescription,omitnil,omitempty" name:"UserDescription"`

	// The creator of the current user
	Creator *string `json:"Creator,omitnil,omitempty" name:"Creator"`

	// The creation time of the current user, e.g. 16:19:32, July 28, 2021
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// User alias
	UserAlias *string `json:"UserAlias,omitnil,omitempty" name:"UserAlias"`
}

type UserRole struct {
	// The role ID.
	RoleId *int64 `json:"RoleId,omitnil,omitempty" name:"RoleId"`

	// The user's app ID.
	AppId *string `json:"AppId,omitnil,omitempty" name:"AppId"`

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

	// The role permission.
	Arn *string `json:"Arn,omitnil,omitempty" name:"Arn"`

	// The last modified timestamp.
	ModifyTime *int64 `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`

	// The role description.
	Desc *string `json:"Desc,omitnil,omitempty" name:"Desc"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	RoleName *string `json:"RoleName,omitnil,omitempty" name:"RoleName"`

	// Note: This field may return null, indicating that no valid values can be obtained.
	Creator *string `json:"Creator,omitnil,omitempty" name:"Creator"`

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

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

type Users struct {
	// Collection of user information
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserSet []*UserMessage `json:"UserSet,omitnil,omitempty" name:"UserSet"`

	// Total users
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
}

type VpcCidrBlock struct {
	// Subnet ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	CidrId *string `json:"CidrId,omitnil,omitempty" name:"CidrId"`

	// Subnet IP range
	// Note: This field may return null, indicating that no valid values can be obtained.
	CidrAddr *string `json:"CidrAddr,omitnil,omitempty" name:"CidrAddr"`
}

type VpcInfo struct {
	// vpc Id
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// VPC subnet
	// Note: This field may return null, indicating that no valid values can be obtained.
	VpcCidrBlock *string `json:"VpcCidrBlock,omitnil,omitempty" name:"VpcCidrBlock"`

	// Rule ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	RuleId *int64 `json:"RuleId,omitnil,omitempty" name:"RuleId"`

	// Permission group ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	AccessGroupId *string `json:"AccessGroupId,omitnil,omitempty" name:"AccessGroupId"`
}

type WorkGroupDetailInfo struct {
	// Working group ID
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Working group name
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupName *string `json:"WorkGroupName,omitnil,omitempty" name:"WorkGroupName"`

	// Types of information included. User: user information; DataAuth: data permissions; EngineAuth: engine permissions
	// Note: This field may return null, indicating that no valid values can be obtained.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Collection of users bound to working groups
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserInfo *Users `json:"UserInfo,omitnil,omitempty" name:"UserInfo"`

	// Collection of data permissions
	// Note: This field may return null, indicating that no valid values can be obtained.
	DataPolicyInfo *Policys `json:"DataPolicyInfo,omitnil,omitempty" name:"DataPolicyInfo"`

	// Collection of engine permissions
	// Note: This field may return null, indicating that no valid values can be obtained.
	EnginePolicyInfo *Policys `json:"EnginePolicyInfo,omitnil,omitempty" name:"EnginePolicyInfo"`

	// Working group description
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupDescription *string `json:"WorkGroupDescription,omitnil,omitempty" name:"WorkGroupDescription"`

	// Collection of information about filtered rows
	// Note: This field may return null, indicating that no valid values can be obtained.
	RowFilterInfo *Policys `json:"RowFilterInfo,omitnil,omitempty" name:"RowFilterInfo"`
}

type WorkGroupIdSetOfUserId struct {
	// User ID, which matches Uin on the CAM side.
	UserId *string `json:"UserId,omitnil,omitempty" name:"UserId"`

	// Collections of IDs of working groups
	WorkGroupIds []*int64 `json:"WorkGroupIds,omitnil,omitempty" name:"WorkGroupIds"`
}

type WorkGroupInfo struct {
	// Unique ID of the working group that have been queried
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Working group name
	WorkGroupName *string `json:"WorkGroupName,omitnil,omitempty" name:"WorkGroupName"`

	// Working group description
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupDescription *string `json:"WorkGroupDescription,omitnil,omitempty" name:"WorkGroupDescription"`

	// Number of users associated with working groups
	UserNum *int64 `json:"UserNum,omitnil,omitempty" name:"UserNum"`

	// Collection of users associated with working groups
	// Note: This field may return null, indicating that no valid values can be obtained.
	UserSet []*UserMessage `json:"UserSet,omitnil,omitempty" name:"UserSet"`

	// Collections of permissions bound to working groups
	// Note: This field may return null, indicating that no valid values can be obtained.
	PolicySet []*Policy `json:"PolicySet,omitnil,omitempty" name:"PolicySet"`

	// Creators of working groups
	Creator *string `json:"Creator,omitnil,omitempty" name:"Creator"`

	// The creation time of the working group, e.g. at 16:19:32 on Jul 28, 2021
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type WorkGroupMessage struct {
	// Unique ID of the working group
	WorkGroupId *int64 `json:"WorkGroupId,omitnil,omitempty" name:"WorkGroupId"`

	// Working group name
	WorkGroupName *string `json:"WorkGroupName,omitnil,omitempty" name:"WorkGroupName"`

	// Working group description
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupDescription *string `json:"WorkGroupDescription,omitnil,omitempty" name:"WorkGroupDescription"`

	// Creator
	Creator *string `json:"Creator,omitnil,omitempty" name:"Creator"`

	// The creation time of the working group, e.g. at 16:19:32 on Jul 28, 2021
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type WorkGroups struct {
	// Collection of working group information
	// Note: This field may return null, indicating that no valid values can be obtained.
	WorkGroupSet []*WorkGroupMessage `json:"WorkGroupSet,omitnil,omitempty" name:"WorkGroupSet"`

	// Total working groups
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`
}

type WrittenAdvancePolicy struct {

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


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


	MinInputFiles *int64 `json:"MinInputFiles,omitnil,omitempty" name:"MinInputFiles"`


	TargetFileSizeBytes *int64 `json:"TargetFileSizeBytes,omitnil,omitempty" name:"TargetFileSizeBytes"`


	RetainLast *int64 `json:"RetainLast,omitnil,omitempty" name:"RetainLast"`


	BeforeDays *int64 `json:"BeforeDays,omitnil,omitempty" name:"BeforeDays"`


	ExpiredSnapshotsIntervalMin *int64 `json:"ExpiredSnapshotsIntervalMin,omitnil,omitempty" name:"ExpiredSnapshotsIntervalMin"`


	RemoveOrphanIntervalMin *int64 `json:"RemoveOrphanIntervalMin,omitnil,omitempty" name:"RemoveOrphanIntervalMin"`


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


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


	SortOrders []*SortOrder `json:"SortOrders,omitnil,omitempty" name:"SortOrders"`
}