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

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

// Predefined struct for user
type AbortCronJobsRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of CronJob ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`
}

type AbortCronJobsRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of CronJob ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`
}

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

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

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

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

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

// Predefined struct for user
type AbortJobRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Reason for stopping.
	AbortReason *int64 `json:"AbortReason,omitnil,omitempty" name:"AbortReason"`
}

type AbortJobRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Reason for stopping.
	AbortReason *int64 `json:"AbortReason,omitnil,omitempty" name:"AbortReason"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *AbortJobRequest) 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, "ProjectId")
	delete(f, "ScenarioId")
	delete(f, "AbortReason")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AbortJobRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type AdjustJobSpeedRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Target RPS. The value should be greater than the initial RPS and less than the maximum RPS.
	TargetRequestsPerSecond *int64 `json:"TargetRequestsPerSecond,omitnil,omitempty" name:"TargetRequestsPerSecond"`
}

type AdjustJobSpeedRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Target RPS. The value should be greater than the initial RPS and less than the maximum RPS.
	TargetRequestsPerSecond *int64 `json:"TargetRequestsPerSecond,omitnil,omitempty" name:"TargetRequestsPerSecond"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *AdjustJobSpeedRequest) 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, "TargetRequestsPerSecond")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "AdjustJobSpeedRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

type AggregationLegend struct {
	// Aggregation functions supported by the metric.
	Aggregation *string `json:"Aggregation,omitnil,omitempty" name:"Aggregation"`

	// Description after the aggregation function is applied to the metric.
	Legend *string `json:"Legend,omitnil,omitempty" name:"Legend"`

	// Metric unit after aggregation.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`
}

type AlertChannel struct {
	// Notification template ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`

	// AMP consumer ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AMPConsumerId *string `json:"AMPConsumerId,omitnil,omitempty" name:"AMPConsumerId"`
}

type AlertChannelRecord struct {
	// Notice ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`

	// Consumer ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AMPConsumerId *string `json:"AMPConsumerId,omitnil,omitempty" name:"AMPConsumerId"`

	// Project ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Status.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *uint64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Create time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// Update time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// App ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Sub account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`
}

type AlertRecord struct {
	// Alert history record ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AlertRecordId *string `json:"AlertRecordId,omitnil,omitempty" name:"AlertRecordId"`

	// Project ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Scenario ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

	// Status.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *AlertRecordStatus `json:"Status,omitnil,omitempty" name:"Status"`

	// Create time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// Update time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// Job ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// App ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Sub account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`

	// Scenario name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioName *string `json:"ScenarioName,omitnil,omitempty" name:"ScenarioName"`

	// Alert target.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Target *string `json:"Target,omitnil,omitempty" name:"Target"`

	// SLA ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	JobSLAId *string `json:"JobSLAId,omitnil,omitempty" name:"JobSLAId"`

	// SLA description.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	JobSLADescription *string `json:"JobSLADescription,omitnil,omitempty" name:"JobSLADescription"`
}

type AlertRecordStatus struct {
	// Success or failure of stopping performance test job.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AbortJob *uint64 `json:"AbortJob,omitnil,omitempty" name:"AbortJob"`

	// Success or failure of sending alert notification.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SendNotice *uint64 `json:"SendNotice,omitnil,omitempty" name:"SendNotice"`
}

type Attributes struct {
	// Response status code.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Response result code.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Result *string `json:"Result,omitnil,omitempty" name:"Result"`

	// Request service.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Service *string `json:"Service,omitnil,omitempty" name:"Service"`

	// Request method.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Method *string `json:"Method,omitnil,omitempty" name:"Method"`

	// Request duration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Duration *string `json:"Duration,omitnil,omitempty" name:"Duration"`
}

type CheckSummary struct {
	// Checkpoint name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Step name of the checkpoint.
	Step *string `json:"Step,omitnil,omitempty" name:"Step"`

	// Number of successful checks.
	SuccessCount *int64 `json:"SuccessCount,omitnil,omitempty" name:"SuccessCount"`

	// Number of failed checks.
	FailCount *int64 `json:"FailCount,omitnil,omitempty" name:"FailCount"`

	// Error ratio.
	ErrorRate *float64 `json:"ErrorRate,omitnil,omitempty" name:"ErrorRate"`
}

type Concurrency struct {
	// Array of multi-stage configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Stages []*Stage `json:"Stages,omitnil,omitempty" name:"Stages"`

	// Number of iteration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	IterationCount *int64 `json:"IterationCount,omitnil,omitempty" name:"IterationCount"`

	// Maximum rps.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MaxRequestsPerSecond *int64 `json:"MaxRequestsPerSecond,omitnil,omitempty" name:"MaxRequestsPerSecond"`

	// Graceful termination job waiting time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	GracefulStopSeconds *int64 `json:"GracefulStopSeconds,omitnil,omitempty" name:"GracefulStopSeconds"`

	// Number of resource.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Resources *int64 `json:"Resources,omitnil,omitempty" name:"Resources"`
}

// Predefined struct for user
type CopyScenarioRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`
}

type CopyScenarioRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`
}

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

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

// Predefined struct for user
type CopyScenarioResponseParams struct {
	// Newly copied scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

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

type CopyScenarioResponse struct {
	*tchttp.BaseResponse
	Response *CopyScenarioResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateAlertChannelRequestParams struct {
	// The NoticeId of alarm notification template in the monitor service, can be obtained from the Id field in the response of the DescribeAlarmNotices API of the monitor service's cloud API. (In the input parameters of the CreateAlertChannel API, either AMPConsumerId or NoticeId can be used to identify an alarm notification template.)
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`

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

	// The AMPConsumerId of alarm notification template for monitor service, can be obtained from the AMPConsumerId field in the response of the DescribeAlarmNotices API of the monitor service's cloud API. (In the input parameters of the CreateAlertChannel API, either AMPConsumerId or Noticeid can be used to identify an alarm notification template.)
	AMPConsumerId *string `json:"AMPConsumerId,omitnil,omitempty" name:"AMPConsumerId"`
}

type CreateAlertChannelRequest struct {
	*tchttp.BaseRequest
	
	// The NoticeId of alarm notification template in the monitor service, can be obtained from the Id field in the response of the DescribeAlarmNotices API of the monitor service's cloud API. (In the input parameters of the CreateAlertChannel API, either AMPConsumerId or NoticeId can be used to identify an alarm notification template.)
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`

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

	// The AMPConsumerId of alarm notification template for monitor service, can be obtained from the AMPConsumerId field in the response of the DescribeAlarmNotices API of the monitor service's cloud API. (In the input parameters of the CreateAlertChannel API, either AMPConsumerId or Noticeid can be used to identify an alarm notification template.)
	AMPConsumerId *string `json:"AMPConsumerId,omitnil,omitempty" name:"AMPConsumerId"`
}

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

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

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

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

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

// Predefined struct for user
type CreateCronJobRequestParams struct {
	// Name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

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

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

	// Execution frequency type: 1, execute once only; 2, Daily; 3, Weekly; 4, Advanced mode using cron expression.
	FrequencyType *int64 `json:"FrequencyType,omitnil,omitempty" name:"FrequencyType"`

	// Cron expression.
	CronExpression *string `json:"CronExpression,omitnil,omitempty" name:"CronExpression"`

	// Cron job initiator.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

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

	// Notice ID.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`

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

type CreateCronJobRequest struct {
	*tchttp.BaseRequest
	
	// Name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

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

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

	// Execution frequency type: 1, execute once only; 2, Daily; 3, Weekly; 4, Advanced mode using cron expression.
	FrequencyType *int64 `json:"FrequencyType,omitnil,omitempty" name:"FrequencyType"`

	// Cron expression.
	CronExpression *string `json:"CronExpression,omitnil,omitempty" name:"CronExpression"`

	// Cron job initiator.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

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

	// Notice ID.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`

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

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateCronJobRequest) 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, "ProjectId")
	delete(f, "ScenarioId")
	delete(f, "ScenarioName")
	delete(f, "FrequencyType")
	delete(f, "CronExpression")
	delete(f, "JobOwner")
	delete(f, "EndTime")
	delete(f, "NoticeId")
	delete(f, "Note")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateCronJobRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateCronJobResponseParams struct {
	// Cron job ID.
	CronJobId *string `json:"CronJobId,omitnil,omitempty" name:"CronJobId"`

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

type CreateCronJobResponse struct {
	*tchttp.BaseResponse
	Response *CreateCronJobResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateEnvironmentRequestParams struct {

}

type CreateEnvironmentRequest struct {
	*tchttp.BaseRequest
	
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateEnvironmentRequest) 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", "CreateEnvironmentRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type CreateFileRequestParams struct {
	// File ID. Its value should be the corresponding directory of the file in the COS bucket after it has been uploaded in the previous step.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`

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

	// File type. 1 represents parameter file, 2 represents protocol file, 3 represents request file.
	Kind *int64 `json:"Kind,omitnil,omitempty" name:"Kind"`

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

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

	// File type. The 'folder' represents a folder; if not specified, it represents a file.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Number of Rows.
	LineCount *int64 `json:"LineCount,omitnil,omitempty" name:"LineCount"`

	// First few rows of file.
	HeadLines []*string `json:"HeadLines,omitnil,omitempty" name:"HeadLines"`

	// Last few rows of file.
	TailLines []*string `json:"TailLines,omitnil,omitempty" name:"TailLines"`

	// Whether the header is in the file.
	HeaderInFile *bool `json:"HeaderInFile,omitnil,omitempty" name:"HeaderInFile"`

	// Header.
	HeaderColumns []*string `json:"HeaderColumns,omitnil,omitempty" name:"HeaderColumns"`

	// Files in the folder.
	FileInfos []*FileInfo `json:"FileInfos,omitnil,omitempty" name:"FileInfos"`
}

type CreateFileRequest struct {
	*tchttp.BaseRequest
	
	// File ID. Its value should be the corresponding directory of the file in the COS bucket after it has been uploaded in the previous step.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`

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

	// File type. 1 represents parameter file, 2 represents protocol file, 3 represents request file.
	Kind *int64 `json:"Kind,omitnil,omitempty" name:"Kind"`

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

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

	// File type. The 'folder' represents a folder; if not specified, it represents a file.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Number of Rows.
	LineCount *int64 `json:"LineCount,omitnil,omitempty" name:"LineCount"`

	// First few rows of file.
	HeadLines []*string `json:"HeadLines,omitnil,omitempty" name:"HeadLines"`

	// Last few rows of file.
	TailLines []*string `json:"TailLines,omitnil,omitempty" name:"TailLines"`

	// Whether the header is in the file.
	HeaderInFile *bool `json:"HeaderInFile,omitnil,omitempty" name:"HeaderInFile"`

	// Header.
	HeaderColumns []*string `json:"HeaderColumns,omitnil,omitempty" name:"HeaderColumns"`

	// Files in the folder.
	FileInfos []*FileInfo `json:"FileInfos,omitnil,omitempty" name:"FileInfos"`
}

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

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

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

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

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

// Predefined struct for user
type CreateProjectRequestParams struct {
	// Project name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

	// Array of tags.
	Tags []*TagSpec `json:"Tags,omitnil,omitempty" name:"Tags"`
}

type CreateProjectRequest struct {
	*tchttp.BaseRequest
	
	// Project name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

	// Array of tags.
	Tags []*TagSpec `json:"Tags,omitnil,omitempty" name:"Tags"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateProjectRequest) 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, "Description")
	delete(f, "Tags")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateProjectRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateProjectResponseParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

type CreateProjectResponse struct {
	*tchttp.BaseResponse
	Response *CreateProjectResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateScenarioRequestParams struct {
	// Scenario Name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Mode type of scenario. Valid values: 'pts-http' represents the simple mode, 'pts-js' represents the script mode, 'pts-jmeter' represents the JMeter mode.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

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

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

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

	// Deprecated.
	Configs []*string `json:"Configs,omitnil,omitempty" name:"Configs"`

	// Test datasets.
	Datasets []*TestData `json:"Datasets,omitnil,omitempty" name:"Datasets"`

	// Deprecated.
	Extensions []*string `json:"Extensions,omitnil,omitempty" name:"Extensions"`

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

	// Cron job ID.
	CronId *string `json:"CronId,omitnil,omitempty" name:"CronId"`

	// Deprecated,
	Scripts []*string `json:"Scripts,omitnil,omitempty" name:"Scripts"`

	// Test scripts.
	TestScripts []*ScriptInfo `json:"TestScripts,omitnil,omitempty" name:"TestScripts"`

	// Protocol files.
	Protocols []*ProtocolInfo `json:"Protocols,omitnil,omitempty" name:"Protocols"`

	// Request files.
	RequestFiles []*FileInfo `json:"RequestFiles,omitnil,omitempty" name:"RequestFiles"`

	// SLA policy.
	SLAPolicy *SLAPolicy `json:"SLAPolicy,omitnil,omitempty" name:"SLAPolicy"`

	// Extension plugin files.
	Plugins []*FileInfo `json:"Plugins,omitnil,omitempty" name:"Plugins"`

	// Domain name resolution configuration.
	DomainNameConfig *DomainNameConfig `json:"DomainNameConfig,omitnil,omitempty" name:"DomainNameConfig"`

	// Creator name.
	Owner *string `json:"Owner,omitnil,omitempty" name:"Owner"`
}

type CreateScenarioRequest struct {
	*tchttp.BaseRequest
	
	// Scenario Name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Mode type of scenario. Valid values: 'pts-http' represents the simple mode, 'pts-js' represents the script mode, 'pts-jmeter' represents the JMeter mode.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

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

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

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

	// Deprecated.
	Configs []*string `json:"Configs,omitnil,omitempty" name:"Configs"`

	// Test datasets.
	Datasets []*TestData `json:"Datasets,omitnil,omitempty" name:"Datasets"`

	// Deprecated.
	Extensions []*string `json:"Extensions,omitnil,omitempty" name:"Extensions"`

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

	// Cron job ID.
	CronId *string `json:"CronId,omitnil,omitempty" name:"CronId"`

	// Deprecated,
	Scripts []*string `json:"Scripts,omitnil,omitempty" name:"Scripts"`

	// Test scripts.
	TestScripts []*ScriptInfo `json:"TestScripts,omitnil,omitempty" name:"TestScripts"`

	// Protocol files.
	Protocols []*ProtocolInfo `json:"Protocols,omitnil,omitempty" name:"Protocols"`

	// Request files.
	RequestFiles []*FileInfo `json:"RequestFiles,omitnil,omitempty" name:"RequestFiles"`

	// SLA policy.
	SLAPolicy *SLAPolicy `json:"SLAPolicy,omitnil,omitempty" name:"SLAPolicy"`

	// Extension plugin files.
	Plugins []*FileInfo `json:"Plugins,omitnil,omitempty" name:"Plugins"`

	// Domain name resolution configuration.
	DomainNameConfig *DomainNameConfig `json:"DomainNameConfig,omitnil,omitempty" name:"DomainNameConfig"`

	// Creator name.
	Owner *string `json:"Owner,omitnil,omitempty" name:"Owner"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateScenarioRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Name")
	delete(f, "Type")
	delete(f, "ProjectId")
	delete(f, "Description")
	delete(f, "Load")
	delete(f, "Configs")
	delete(f, "Datasets")
	delete(f, "Extensions")
	delete(f, "SLAId")
	delete(f, "CronId")
	delete(f, "Scripts")
	delete(f, "TestScripts")
	delete(f, "Protocols")
	delete(f, "RequestFiles")
	delete(f, "SLAPolicy")
	delete(f, "Plugins")
	delete(f, "DomainNameConfig")
	delete(f, "Owner")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateScenarioRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateScenarioResponseParams struct {
	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

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

type CreateScenarioResponse struct {
	*tchttp.BaseResponse
	Response *CreateScenarioResponseParams `json:"Response"`
}

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

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

type Credentials struct {
	// Temporary secret ID.
	TmpSecretId *string `json:"TmpSecretId,omitnil,omitempty" name:"TmpSecretId"`

	// Temporary secret key.
	TmpSecretKey *string `json:"TmpSecretKey,omitnil,omitempty" name:"TmpSecretKey"`

	// Temporary token.
	Token *string `json:"Token,omitnil,omitempty" name:"Token"`
}

type CronJob struct {
	// Cron job ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CronJobId *string `json:"CronJobId,omitnil,omitempty" name:"CronJobId"`

	// Cron job name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Project ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Scenario ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

	// Scenario name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioName *string `json:"ScenarioName,omitnil,omitempty" name:"ScenarioName"`

	// Cron expression.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CronExpression *string `json:"CronExpression,omitnil,omitempty" name:"CronExpression"`

	// End time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Abort reason.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AbortReason *int64 `json:"AbortReason,omitnil,omitempty" name:"AbortReason"`

	// Cron job status.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Notice ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`

	// Create time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// Update time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// Execution frequency type: 1, execute once only; 2, Daily; 3, Weekly; 4, Advanced mode using cron expression.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	FrequencyType *int64 `json:"FrequencyType,omitnil,omitempty" name:"FrequencyType"`

	// Note.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Note *string `json:"Note,omitnil,omitempty" name:"Note"`

	// Cron job initiator.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

	// App ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Sub account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`
}

type CustomSample struct {
	// Metric name.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

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

	// Label filter.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Labels []*Label `json:"Labels,omitnil,omitempty" name:"Labels"`

	// Value obtained from the query.
	Value *float64 `json:"Value,omitnil,omitempty" name:"Value"`

	// Time is the number of milliseconds since the epoch (1970-01-01 00:00 UTC) excluding leap seconds.
	Timestamp *int64 `json:"Timestamp,omitnil,omitempty" name:"Timestamp"`

	// Unit corresponding to the metric, including s(second), bytes, bytes/s, reqs, reqs/s, checks, checks/s, iters, iters/s, VUs, %.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Metric name in PTS.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`
}

type CustomSampleMatrix struct {
	// Metric name.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

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

	// Metric unit.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Metric sequence array.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Streams []*SampleStream `json:"Streams,omitnil,omitempty" name:"Streams"`
}

type DNSConfig struct {
	// DNS IP list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Nameservers []*string `json:"Nameservers,omitnil,omitempty" name:"Nameservers"`
}

// Predefined struct for user
type DeleteAlertChannelRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Notice ID of the notification channel to be deleted.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`
}

type DeleteAlertChannelRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Notice ID of the notification channel to be deleted.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteCronJobsRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of CronJob ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`
}

type DeleteCronJobsRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of CronJob ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteEnvironmentsRequestParams struct {

}

type DeleteEnvironmentsRequest struct {
	*tchttp.BaseRequest
	
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DeleteEnvironmentsRequest) 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", "DeleteEnvironmentsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type DeleteFilesRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of File ID to be deleted.
	FileIds []*string `json:"FileIds,omitnil,omitempty" name:"FileIds"`
}

type DeleteFilesRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of File ID to be deleted.
	FileIds []*string `json:"FileIds,omitnil,omitempty" name:"FileIds"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteJobsRequestParams struct {
	// Array of Job ID to be deleted.
	JobIds []*string `json:"JobIds,omitnil,omitempty" name:"JobIds"`

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

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`
}

type DeleteJobsRequest struct {
	*tchttp.BaseRequest
	
	// Array of Job ID to be deleted.
	JobIds []*string `json:"JobIds,omitnil,omitempty" name:"JobIds"`

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

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteProjectsRequestParams struct {
	// Array of Project ID to be deleted.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Whether to delete project-related scenarios. The default value is false.
	DeleteScenarios *bool `json:"DeleteScenarios,omitnil,omitempty" name:"DeleteScenarios"`

	// Whether to delete project-related jobs. The default value is false.
	DeleteJobs *bool `json:"DeleteJobs,omitnil,omitempty" name:"DeleteJobs"`
}

type DeleteProjectsRequest struct {
	*tchttp.BaseRequest
	
	// Array of Project ID to be deleted.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Whether to delete project-related scenarios. The default value is false.
	DeleteScenarios *bool `json:"DeleteScenarios,omitnil,omitempty" name:"DeleteScenarios"`

	// Whether to delete project-related jobs. The default value is false.
	DeleteJobs *bool `json:"DeleteJobs,omitnil,omitempty" name:"DeleteJobs"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteScenariosRequestParams struct {
	// Array of Scenario ID to be deleted.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

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

	// Whether to delete scene-related jobs. The default value is false.
	DeleteJobs *bool `json:"DeleteJobs,omitnil,omitempty" name:"DeleteJobs"`
}

type DeleteScenariosRequest struct {
	*tchttp.BaseRequest
	
	// Array of Scenario ID to be deleted.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

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

	// Whether to delete scene-related jobs. The default value is false.
	DeleteJobs *bool `json:"DeleteJobs,omitnil,omitempty" name:"DeleteJobs"`
}

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

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

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

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

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

// Predefined struct for user
type DescribeAlertChannelsRequestParams struct {
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

	// Number of returns, default is 20, maximum is 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Notice ID.
	NoticeIds []*string `json:"NoticeIds,omitnil,omitempty" name:"NoticeIds"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`
}

type DescribeAlertChannelsRequest struct {
	*tchttp.BaseRequest
	
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

	// Number of returns, default is 20, maximum is 100.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Notice ID.
	NoticeIds []*string `json:"NoticeIds,omitnil,omitempty" name:"NoticeIds"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`
}

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

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

// Predefined struct for user
type DescribeAlertChannelsResponseParams struct {
	// Alarm recipient groups list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AlertChannelSet []*AlertChannelRecord `json:"AlertChannelSet,omitnil,omitempty" name:"AlertChannelSet"`

	// Number of alarm recipient groups.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	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 DescribeAlertChannelsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAlertChannelsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeAlertRecordsRequestParams struct {
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

	// Array of Job ID.
	JobIds []*string `json:"JobIds,omitnil,omitempty" name:"JobIds"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

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

	// Number of returns. Default value is 20, maximum is 100
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filter by Scenario names.
	ScenarioNames []*string `json:"ScenarioNames,omitnil,omitempty" name:"ScenarioNames"`
}

type DescribeAlertRecordsRequest struct {
	*tchttp.BaseRequest
	
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

	// Array of Job ID.
	JobIds []*string `json:"JobIds,omitnil,omitempty" name:"JobIds"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

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

	// Number of returns. Default value is 20, maximum is 100
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Filter by Scenario names.
	ScenarioNames []*string `json:"ScenarioNames,omitnil,omitempty" name:"ScenarioNames"`
}

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

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

// Predefined struct for user
type DescribeAlertRecordsResponseParams struct {
	// Alert records list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AlertRecordSet []*AlertRecord `json:"AlertRecordSet,omitnil,omitempty" name:"AlertRecordSet"`

	// Total number of Alert records.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	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 DescribeAlertRecordsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAlertRecordsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeAvailableMetricsRequestParams struct {

}

type DescribeAvailableMetricsRequest struct {
	*tchttp.BaseRequest
	
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeAvailableMetricsRequest) 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", "DescribeAvailableMetricsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeAvailableMetricsResponseParams struct {
	// All supported metrics of the product.
	MetricSet []*MetricInfo `json:"MetricSet,omitnil,omitempty" name:"MetricSet"`

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

type DescribeAvailableMetricsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAvailableMetricsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeCheckSummaryRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

type DescribeCheckSummaryRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeCheckSummaryRequest) 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, "ScenarioId")
	delete(f, "ProjectId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeCheckSummaryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeCheckSummaryResponseParams struct {
	// Checkpoint summary information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CheckSummarySet []*CheckSummary `json:"CheckSummarySet,omitnil,omitempty" name:"CheckSummarySet"`

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

type DescribeCheckSummaryResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCheckSummaryResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeCronJobsRequestParams struct {
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

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

	// Array of CronJob ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`

	// CronJob name, fuzzy query.
	CronJobName *string `json:"CronJobName,omitnil,omitempty" name:"CronJobName"`

	// Array of CronJob status.
	CronJobStatus []*int64 `json:"CronJobStatus,omitnil,omitempty" name:"CronJobStatus"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`
}

type DescribeCronJobsRequest struct {
	*tchttp.BaseRequest
	
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

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

	// Array of CronJob ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`

	// CronJob name, fuzzy query.
	CronJobName *string `json:"CronJobName,omitnil,omitempty" name:"CronJobName"`

	// Array of CronJob status.
	CronJobStatus []*int64 `json:"CronJobStatus,omitnil,omitempty" name:"CronJobStatus"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`
}

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

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

// Predefined struct for user
type DescribeCronJobsResponseParams struct {
	// Total number of cron jobs.
	Total *int64 `json:"Total,omitnil,omitempty" name:"Total"`

	// Cron jobs.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CronJobSet []*CronJob `json:"CronJobSet,omitnil,omitempty" name:"CronJobSet"`

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

type DescribeCronJobsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCronJobsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeEnvironmentsRequestParams struct {

}

type DescribeEnvironmentsRequest struct {
	*tchttp.BaseRequest
	
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeEnvironmentsRequest) 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", "DescribeEnvironmentsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type DescribeErrorSummaryRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Filter parameters.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeErrorSummaryRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Filter parameters.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeErrorSummaryRequest) 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, "ScenarioId")
	delete(f, "ProjectId")
	delete(f, "Filters")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeErrorSummaryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeErrorSummaryResponseParams struct {
	// Error summary information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ErrorSummarySet []*ErrorSummary `json:"ErrorSummarySet,omitnil,omitempty" name:"ErrorSummarySet"`

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

type DescribeErrorSummaryResponse struct {
	*tchttp.BaseResponse
	Response *DescribeErrorSummaryResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeFilesRequestParams struct {
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Array of File ID.
	FileIds []*string `json:"FileIds,omitnil,omitempty" name:"FileIds"`

	// Filename
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`

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

	// Number of returns. Default value is 20, maximum is 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// File type. 1 represents parameter file, 2 represents protocol file, 3 represents request file.
	Kind *int64 `json:"Kind,omitnil,omitempty" name:"Kind"`
}

type DescribeFilesRequest struct {
	*tchttp.BaseRequest
	
	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Array of File ID.
	FileIds []*string `json:"FileIds,omitnil,omitempty" name:"FileIds"`

	// Filename
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`

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

	// Number of returns. Default value is 20, maximum is 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// File type. 1 represents parameter file, 2 represents protocol file, 3 represents request file.
	Kind *int64 `json:"Kind,omitnil,omitempty" name:"Kind"`
}

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

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

// Predefined struct for user
type DescribeFilesResponseParams struct {
	// File list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	FileSet []*File `json:"FileSet,omitnil,omitempty" name:"FileSet"`

	// Total number of files.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	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 DescribeFilesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeFilesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeJobsRequestParams struct {
	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

	// Number of returns. Default value is 20, maximum is 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Job ID.
	JobIds []*string `json:"JobIds,omitnil,omitempty" name:"JobIds"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Start time of the job.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time of the job.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Whether debug jobs.
	Debug *bool `json:"Debug,omitnil,omitempty" name:"Debug"`

	// Job status.
	Status []*int64 `json:"Status,omitnil,omitempty" name:"Status"`
}

type DescribeJobsRequest struct {
	*tchttp.BaseRequest
	
	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

	// Number of returns. Default value is 20, maximum is 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Job ID.
	JobIds []*string `json:"JobIds,omitnil,omitempty" name:"JobIds"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Start time of the job.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time of the job.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Whether debug jobs.
	Debug *bool `json:"Debug,omitnil,omitempty" name:"Debug"`

	// Job status.
	Status []*int64 `json:"Status,omitnil,omitempty" name:"Status"`
}

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, "ScenarioIds")
	delete(f, "ProjectIds")
	delete(f, "Offset")
	delete(f, "Limit")
	delete(f, "JobIds")
	delete(f, "OrderBy")
	delete(f, "Ascend")
	delete(f, "StartTime")
	delete(f, "EndTime")
	delete(f, "Debug")
	delete(f, "Status")
	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 {
	// Job list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	JobSet []*Job `json:"JobSet,omitnil,omitempty" name:"JobSet"`

	// Total number of Jobs.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	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 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 DescribeLabelValuesRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Metric name. For the value range, refer to all metric names returned by the DescribeMetricLabelWithValues API.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Label name. For the value range, refer to the metrics and label names returned by the DescribeMetricLabelWithValues API.
	LabelName *string `json:"LabelName,omitnil,omitempty" name:"LabelName"`

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

type DescribeLabelValuesRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Metric name. For the value range, refer to all metric names returned by the DescribeMetricLabelWithValues API.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Label name. For the value range, refer to the metrics and label names returned by the DescribeMetricLabelWithValues API.
	LabelName *string `json:"LabelName,omitnil,omitempty" name:"LabelName"`

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

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeLabelValuesRequest) 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, "ScenarioId")
	delete(f, "Metric")
	delete(f, "LabelName")
	delete(f, "ProjectId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeLabelValuesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeLabelValuesResponseParams struct {
	// Array of label values.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LabelValueSet []*string `json:"LabelValueSet,omitnil,omitempty" name:"LabelValueSet"`

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

type DescribeLabelValuesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeLabelValuesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeMetricLabelWithValuesRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`
}

type DescribeMetricLabelWithValuesRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeMetricLabelWithValuesRequest) 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, "ProjectId")
	delete(f, "ScenarioId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeMetricLabelWithValuesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeMetricLabelWithValuesResponseParams struct {
	// All labels and values of metrics.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MetricLabelWithValuesSet []*MetricLabelWithValues `json:"MetricLabelWithValuesSet,omitnil,omitempty" name:"MetricLabelWithValuesSet"`

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

type DescribeMetricLabelWithValuesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMetricLabelWithValuesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeNormalLogsRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Context is used when loading more logs. Pass through the Context value returned last time to retrieve subsequent log content. The expiration time is 1 hour.
	Context *string `json:"Context,omitnil,omitempty" name:"Context"`

	// Log start time.
	From *string `json:"From,omitnil,omitempty" name:"From"`

	// Log end time.
	To *string `json:"To,omitnil,omitempty" name:"To"`

	// Log level, valid values are debug, info, error.
	SeverityText *string `json:"SeverityText,omitnil,omitempty" name:"SeverityText"`

	// IP of pressure engine instance.
	Instance *string `json:"Instance,omitnil,omitempty" name:"Instance"`

	// Region of pressure engine instance, such as ap-shanghai, ap-guangzhou.
	InstanceRegion *string `json:"InstanceRegion,omitnil,omitempty" name:"InstanceRegion"`

	// Type of log, in which 'console' represents user output, 'engine' represents engine output.
	LogType *string `json:"LogType,omitnil,omitempty" name:"LogType"`

	// Number of returned logs, maximum 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeNormalLogsRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Context is used when loading more logs. Pass through the Context value returned last time to retrieve subsequent log content. The expiration time is 1 hour.
	Context *string `json:"Context,omitnil,omitempty" name:"Context"`

	// Log start time.
	From *string `json:"From,omitnil,omitempty" name:"From"`

	// Log end time.
	To *string `json:"To,omitnil,omitempty" name:"To"`

	// Log level, valid values are debug, info, error.
	SeverityText *string `json:"SeverityText,omitnil,omitempty" name:"SeverityText"`

	// IP of pressure engine instance.
	Instance *string `json:"Instance,omitnil,omitempty" name:"Instance"`

	// Region of pressure engine instance, such as ap-shanghai, ap-guangzhou.
	InstanceRegion *string `json:"InstanceRegion,omitnil,omitempty" name:"InstanceRegion"`

	// Type of log, in which 'console' represents user output, 'engine' represents engine output.
	LogType *string `json:"LogType,omitnil,omitempty" name:"LogType"`

	// Number of returned logs, maximum 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

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

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

// Predefined struct for user
type DescribeNormalLogsResponseParams struct {
	// Log context, used when loading more logs. Pass through the Context value returned last time to retrieve subsequent log content. The expiration time is 1 hour.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Context *string `json:"Context,omitnil,omitempty" name:"Context"`

	// Array of logs.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NormalLogs []*NormalLog `json:"NormalLogs,omitnil,omitempty" name:"NormalLogs"`

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

type DescribeNormalLogsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeNormalLogsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeProjectsRequestParams struct {
	// Offset. Default value is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns. Default value is 20, maximum is 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Array of Tags.
	TagFilters []*TagSpec `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

type DescribeProjectsRequest struct {
	*tchttp.BaseRequest
	
	// Offset. Default value is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns. Default value is 20, maximum is 100
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

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

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Array of Tags.
	TagFilters []*TagSpec `json:"TagFilters,omitnil,omitempty" name:"TagFilters"`
}

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

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

// Predefined struct for user
type DescribeProjectsResponseParams struct {
	// Project list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectSet []*Project `json:"ProjectSet,omitnil,omitempty" name:"ProjectSet"`

	// Total number of projects.
	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 DescribeProjectsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeProjectsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeRegionsRequestParams struct {

}

type DescribeRegionsRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeRegionsResponseParams struct {
	// Array of regions.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	RegionSet []*RegionDetail `json:"RegionSet,omitnil,omitempty" name:"RegionSet"`

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

type DescribeRegionsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRegionsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeRequestSummaryRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

type DescribeRequestSummaryRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeRequestSummaryRequest) 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, "ScenarioId")
	delete(f, "ProjectId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeRequestSummaryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeRequestSummaryResponseParams struct {
	// Request summary information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	RequestSummarySet []*RequestSummary `json:"RequestSummarySet,omitnil,omitempty" name:"RequestSummarySet"`

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

type DescribeRequestSummaryResponse struct {
	*tchttp.BaseResponse
	Response *DescribeRequestSummaryResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSampleBatchQueryRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Array of queries.
	Queries []*InternalMetricQuery `json:"Queries,omitnil,omitempty" name:"Queries"`

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

type DescribeSampleBatchQueryRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Array of queries.
	Queries []*InternalMetricQuery `json:"Queries,omitnil,omitempty" name:"Queries"`

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

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSampleBatchQueryRequest) 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, "ScenarioId")
	delete(f, "Queries")
	delete(f, "ProjectId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSampleBatchQueryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSampleBatchQueryResponseParams struct {
	// Returned metric content.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MetricSampleSet []*CustomSample `json:"MetricSampleSet,omitnil,omitempty" name:"MetricSampleSet"`

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

type DescribeSampleBatchQueryResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSampleBatchQueryResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSampleLogsRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Context is used when loading more logs. Pass through the Context value returned last time to retrieve subsequent log content. The expiration time is 1 hour.
	Context *string `json:"Context,omitnil,omitempty" name:"Context"`

	// Log start time.
	From *string `json:"From,omitnil,omitempty" name:"From"`

	// Log end time.
	To *string `json:"To,omitnil,omitempty" name:"To"`

	// Log levels, such as debug, info, error.
	SeverityText *string `json:"SeverityText,omitnil,omitempty" name:"SeverityText"`

	// Region of pressure engine instance, such as ap-shanghai, ap-guangzhou.
	InstanceRegion *string `json:"InstanceRegion,omitnil,omitempty" name:"InstanceRegion"`

	// IP of pressure engine instance.
	Instance *string `json:"Instance,omitnil,omitempty" name:"Instance"`

	// Type of log, can be left empty. 'Request' represents sampling logs.
	LogType *string `json:"LogType,omitnil,omitempty" name:"LogType"`

	// Number of returned logs, maximum 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Response time range of sampling logs.
	ReactionTimeRange *ReactionTimeRange `json:"ReactionTimeRange,omitnil,omitempty" name:"ReactionTimeRange"`

	// Status code of sampling logs.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Result code of sampling logs.
	Result *string `json:"Result,omitnil,omitempty" name:"Result"`

	// Request method of sampling logs.
	Method *string `json:"Method,omitnil,omitempty" name:"Method"`

	// Request service of sampling logs.
	Service *string `json:"Service,omitnil,omitempty" name:"Service"`
}

type DescribeSampleLogsRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Context is used when loading more logs. Pass through the Context value returned last time to retrieve subsequent log content. The expiration time is 1 hour.
	Context *string `json:"Context,omitnil,omitempty" name:"Context"`

	// Log start time.
	From *string `json:"From,omitnil,omitempty" name:"From"`

	// Log end time.
	To *string `json:"To,omitnil,omitempty" name:"To"`

	// Log levels, such as debug, info, error.
	SeverityText *string `json:"SeverityText,omitnil,omitempty" name:"SeverityText"`

	// Region of pressure engine instance, such as ap-shanghai, ap-guangzhou.
	InstanceRegion *string `json:"InstanceRegion,omitnil,omitempty" name:"InstanceRegion"`

	// IP of pressure engine instance.
	Instance *string `json:"Instance,omitnil,omitempty" name:"Instance"`

	// Type of log, can be left empty. 'Request' represents sampling logs.
	LogType *string `json:"LogType,omitnil,omitempty" name:"LogType"`

	// Number of returned logs, maximum 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Response time range of sampling logs.
	ReactionTimeRange *ReactionTimeRange `json:"ReactionTimeRange,omitnil,omitempty" name:"ReactionTimeRange"`

	// Status code of sampling logs.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Result code of sampling logs.
	Result *string `json:"Result,omitnil,omitempty" name:"Result"`

	// Request method of sampling logs.
	Method *string `json:"Method,omitnil,omitempty" name:"Method"`

	// Request service of sampling logs.
	Service *string `json:"Service,omitnil,omitempty" name:"Service"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSampleLogsRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ProjectId")
	delete(f, "ScenarioId")
	delete(f, "JobId")
	delete(f, "Context")
	delete(f, "From")
	delete(f, "To")
	delete(f, "SeverityText")
	delete(f, "InstanceRegion")
	delete(f, "Instance")
	delete(f, "LogType")
	delete(f, "Limit")
	delete(f, "ReactionTimeRange")
	delete(f, "Status")
	delete(f, "Result")
	delete(f, "Method")
	delete(f, "Service")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSampleLogsRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

	// Log context, used when loading more logs. Pass through the Context value returned last time to retrieve subsequent log content. The expiration time is 1 hour.
	// Note: This field may return null, indicating that no valid value is found.
	Context *string `json:"Context,omitnil,omitempty" name:"Context"`

	// Array of request logs.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SampleLogs []*SampleLog `json:"SampleLogs,omitnil,omitempty" name:"SampleLogs"`

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

type DescribeSampleLogsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSampleLogsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSampleMatrixBatchQueryRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Query statement.
	Queries []*InternalMetricQuery `json:"Queries,omitnil,omitempty" name:"Queries"`
}

type DescribeSampleMatrixBatchQueryRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Query statement.
	Queries []*InternalMetricQuery `json:"Queries,omitnil,omitempty" name:"Queries"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSampleMatrixBatchQueryRequest) 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, "ProjectId")
	delete(f, "ScenarioId")
	delete(f, "Queries")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSampleMatrixBatchQueryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSampleMatrixBatchQueryResponseParams struct {
	// Batch metric matrices.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MetricSampleMatrixSet []*CustomSampleMatrix `json:"MetricSampleMatrixSet,omitnil,omitempty" name:"MetricSampleMatrixSet"`

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

type DescribeSampleMatrixBatchQueryResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSampleMatrixBatchQueryResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSampleMatrixQueryRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Metric name. For the value range, refer to all metric names returned by the DescribeMetricLabelWithValues API.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Aggregation function. Range of values: Rate, Count, Avg, P90, P95, P99, Gauge.
	Aggregation *string `json:"Aggregation,omitnil,omitempty" name:"Aggregation"`

	// Use label rules to filter metrics. Rules include label name, label value, and operator (0 means equal, 1 means not equal).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Labels used for grouping, similar to group by in PromQL.
	// 
	GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"`
}

type DescribeSampleMatrixQueryRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Metric name. For the value range, refer to all metric names returned by the DescribeMetricLabelWithValues API.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Aggregation function. Range of values: Rate, Count, Avg, P90, P95, P99, Gauge.
	Aggregation *string `json:"Aggregation,omitnil,omitempty" name:"Aggregation"`

	// Use label rules to filter metrics. Rules include label name, label value, and operator (0 means equal, 1 means not equal).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Labels used for grouping, similar to group by in PromQL.
	// 
	GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSampleMatrixQueryRequest) 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, "ProjectId")
	delete(f, "ScenarioId")
	delete(f, "Metric")
	delete(f, "Aggregation")
	delete(f, "Filters")
	delete(f, "GroupBy")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSampleMatrixQueryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSampleMatrixQueryResponseParams struct {
	// Metric matrix.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MetricSampleMatrix *CustomSampleMatrix `json:"MetricSampleMatrix,omitnil,omitempty" name:"MetricSampleMatrix"`

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

type DescribeSampleMatrixQueryResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSampleMatrixQueryResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSampleQueryRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Metric name. For the value range, refer to all metric names returned by the DescribeMetricLabelWithValues API.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Aggregation function. Range of values: Rate, Count, Avg, P90, P95, P99, Gauge.
	Aggregation *string `json:"Aggregation,omitnil,omitempty" name:"Aggregation"`

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

	// Label filtering condition. For supported labels, refer to all metrics and labels returned by the DescribeMetricLabelWithValues API.
	Labels []*Label `json:"Labels,omitnil,omitempty" name:"Labels"`
}

type DescribeSampleQueryRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

	// Metric name. For the value range, refer to all metric names returned by the DescribeMetricLabelWithValues API.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Aggregation function. Range of values: Rate, Count, Avg, P90, P95, P99, Gauge.
	Aggregation *string `json:"Aggregation,omitnil,omitempty" name:"Aggregation"`

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

	// Label filtering condition. For supported labels, refer to all metrics and labels returned by the DescribeMetricLabelWithValues API.
	Labels []*Label `json:"Labels,omitnil,omitempty" name:"Labels"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *DescribeSampleQueryRequest) 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, "ScenarioId")
	delete(f, "Metric")
	delete(f, "Aggregation")
	delete(f, "ProjectId")
	delete(f, "Labels")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "DescribeSampleQueryRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type DescribeSampleQueryResponseParams struct {
	// Returned metric.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MetricSample *CustomSample `json:"MetricSample,omitnil,omitempty" name:"MetricSample"`

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

type DescribeSampleQueryResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSampleQueryResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeScenarioWithJobsRequestParams struct {
	// Offset. Default value is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns. Default value is 20, maximum is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

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

	// Array of Scenario status.
	ScenarioStatus *int64 `json:"ScenarioStatus,omitnil,omitempty" name:"ScenarioStatus"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Parameters related to job.
	ScenarioRelatedJobsParams *ScenarioRelatedJobsParams `json:"ScenarioRelatedJobsParams,omitnil,omitempty" name:"ScenarioRelatedJobsParams"`

	// Whether to return the test script content of the scenario.
	IgnoreScript *bool `json:"IgnoreScript,omitnil,omitempty" name:"IgnoreScript"`

	// Whether to return test data file information of the scenario.
	IgnoreDataset *bool `json:"IgnoreDataset,omitnil,omitempty" name:"IgnoreDataset"`

	// Scenario type, such as pts-http, pts-js, pts-jmeter.
	ScenarioType *string `json:"ScenarioType,omitnil,omitempty" name:"ScenarioType"`

	// Creator.
	Owner *string `json:"Owner,omitnil,omitempty" name:"Owner"`
}

type DescribeScenarioWithJobsRequest struct {
	*tchttp.BaseRequest
	
	// Offset. Default value is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns. Default value is 20, maximum is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

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

	// Array of Scenario status.
	ScenarioStatus *int64 `json:"ScenarioStatus,omitnil,omitempty" name:"ScenarioStatus"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Parameters related to job.
	ScenarioRelatedJobsParams *ScenarioRelatedJobsParams `json:"ScenarioRelatedJobsParams,omitnil,omitempty" name:"ScenarioRelatedJobsParams"`

	// Whether to return the test script content of the scenario.
	IgnoreScript *bool `json:"IgnoreScript,omitnil,omitempty" name:"IgnoreScript"`

	// Whether to return test data file information of the scenario.
	IgnoreDataset *bool `json:"IgnoreDataset,omitnil,omitempty" name:"IgnoreDataset"`

	// Scenario type, such as pts-http, pts-js, pts-jmeter.
	ScenarioType *string `json:"ScenarioType,omitnil,omitempty" name:"ScenarioType"`

	// Creator.
	Owner *string `json:"Owner,omitnil,omitempty" name:"Owner"`
}

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

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

// Predefined struct for user
type DescribeScenarioWithJobsResponseParams struct {
	// Scenario configuration with related jobs.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioWithJobsSet []*ScenarioWithJobs `json:"ScenarioWithJobsSet,omitnil,omitempty" name:"ScenarioWithJobsSet"`

	// Total Scenarios.
	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 DescribeScenarioWithJobsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeScenarioWithJobsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeScenariosRequestParams struct {
	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

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

	// Array of Scenario status.
	ScenarioStatus []*int64 `json:"ScenarioStatus,omitnil,omitempty" name:"ScenarioStatus"`

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

	// Number of returns. Default value is 20, maximum is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Scenario type, such as pts-http, pts-js, pts-jmeter.
	ScenarioType *string `json:"ScenarioType,omitnil,omitempty" name:"ScenarioType"`
}

type DescribeScenariosRequest struct {
	*tchttp.BaseRequest
	
	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`

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

	// Array of Scenario status.
	ScenarioStatus []*int64 `json:"ScenarioStatus,omitnil,omitempty" name:"ScenarioStatus"`

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

	// Number of returns. Default value is 20, maximum is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Column for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`

	// Array of Project ID.
	ProjectIds []*string `json:"ProjectIds,omitnil,omitempty" name:"ProjectIds"`

	// Scenario type, such as pts-http, pts-js, pts-jmeter.
	ScenarioType *string `json:"ScenarioType,omitnil,omitempty" name:"ScenarioType"`
}

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

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

// Predefined struct for user
type DescribeScenariosResponseParams struct {
	// Scenario list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioSet []*Scenario `json:"ScenarioSet,omitnil,omitempty" name:"ScenarioSet"`

	// Total number of scenarios.
	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 DescribeScenariosResponse struct {
	*tchttp.BaseResponse
	Response *DescribeScenariosResponseParams `json:"Response"`
}

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

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

type DomainNameConfig struct {
	// Domain configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HostAliases []*HostAlias `json:"HostAliases,omitnil,omitempty" name:"HostAliases"`

	// DNS configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	DNSConfig *DNSConfig `json:"DNSConfig,omitnil,omitempty" name:"DNSConfig"`
}

type ErrorSummary struct {
	// Status code.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Result code.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Result *string `json:"Result,omitnil,omitempty" name:"Result"`

	// Number of error occurrences.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Error rate.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Rate *float64 `json:"Rate,omitnil,omitempty" name:"Rate"`

	// Error message.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// Request protocol type.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Proto *string `json:"Proto,omitnil,omitempty" name:"Proto"`
}

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

	// File type. 1 represents parameter file, 2 represents protocol file, 3 represents request file.
	Kind *int64 `json:"Kind,omitnil,omitempty" name:"Kind"`

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

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

	// File type. The 'folder' represents a folder; if not specified, it represents a normal file.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Update time.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// Number of file lines.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LineCount *int64 `json:"LineCount,omitnil,omitempty" name:"LineCount"`

	// First few rows of file.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HeadLines []*string `json:"HeadLines,omitnil,omitempty" name:"HeadLines"`

	// Last few rows of file.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TailLines []*string `json:"TailLines,omitnil,omitempty" name:"TailLines"`

	// Whether the header is in the file.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HeaderInFile *bool `json:"HeaderInFile,omitnil,omitempty" name:"HeaderInFile"`

	// Parameter name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HeaderColumns []*string `json:"HeaderColumns,omitnil,omitempty" name:"HeaderColumns"`

	// Files in the folder.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	FileInfos []*FileInfo `json:"FileInfos,omitnil,omitempty" name:"FileInfos"`

	// Associated scenario.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioSet []*Scenario `json:"ScenarioSet,omitnil,omitempty" name:"ScenarioSet"`

	// File status.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Create time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// Project ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AppID *int64 `json:"AppID,omitnil,omitempty" name:"AppID"`

	// Uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Sub account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`

	// App ID of user account.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`
}

type FileInfo struct {
	// Filename
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// File size
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// File type
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Update time
	// 
	// Note: This field may return null, indicating that no valid value is found.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// File ID
	// 
	// Note: This field may return null, indicating that no valid value is found.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`
}

type Filter struct {
	// Equals: 0, not equals: 1.
	Operator *int64 `json:"Operator,omitnil,omitempty" name:"Operator"`

	// Tag name, optional values include:
	// 1. method, request method name;
	// 2. proto: protocol name;
	// 3. service: service name;
	// 4. status: response status code;
	// 5.result: response details
	// 6.check: check name.
	LabelName *string `json:"LabelName,omitnil,omitempty" name:"LabelName"`

	// Tag value, optional values include:
	// 1.method: request method name, for example, GET, POST, PUT, etc.
	// 2.proto: protocol name, for example, HTTP/1.1, HTTP/2, etc.
	// 3.service: service name, for example, the request URL such as http://httpbin.org/get
	// 4.status: response status code, for example, 200, 404, 500, etc.
	// 5.result: response details, used to determine whether the request was successful or failed; if successful, the result Tag value is ok; if failed, the result Tag carries an error code and description.
	// 6.check: check name, the Tag value is the checkpoint name set by the user.
	LabelValue *string `json:"LabelValue,omitnil,omitempty" name:"LabelValue"`
}

// Predefined struct for user
type GenerateTmpKeyRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`
}

type GenerateTmpKeyRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`
}

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

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

// Predefined struct for user
type GenerateTmpKeyResponseParams struct {
	// Timestamp when the temporary access credentials are obtained (unit: seconds).
	StartTime *int64 `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Timestamp when the temporary access credentials expire (unit: seconds).
	ExpiredTime *int64 `json:"ExpiredTime,omitnil,omitempty" name:"ExpiredTime"`

	// Temporary access credentials.
	Credentials *Credentials `json:"Credentials,omitnil,omitempty" name:"Credentials"`

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

type GenerateTmpKeyResponse struct {
	*tchttp.BaseResponse
	Response *GenerateTmpKeyResponseParams `json:"Response"`
}

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

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

type GeoRegionsLoadItem struct {
	// Region ID.
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

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

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

type HostAlias struct {
	// Domain list to be bound.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HostNames []*string `json:"HostNames,omitnil,omitempty" name:"HostNames"`

	// IP address to be bound.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	IP *string `json:"IP,omitnil,omitempty" name:"IP"`
}

type InternalMetricQuery struct {
	// Metric name.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Aggregation Function, optional value including Rate, Count, Avg, P90, P95, P99, Gauge.
	Aggregation *string `json:"Aggregation,omitnil,omitempty" name:"Aggregation"`

	// Deprecated, please use 'Filters'.
	Labels []*Label `json:"Labels,omitnil,omitempty" name:"Labels"`

	// Use label filter rules to filter metrics. Rules include LabelName, LabelValue, and Operator (0 means equal, 1 means not equal).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Metric group.
	GroupBy []*string `json:"GroupBy,omitnil,omitempty" name:"GroupBy"`
}

type Job struct {
	// Job ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

	// Scenario ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

	// Load configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Load *Load `json:"Load,omitnil,omitempty" name:"Load"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Configs []*string `json:"Configs,omitnil,omitempty" name:"Configs"`

	// Test datasets.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Datasets []*TestData `json:"Datasets,omitnil,omitempty" name:"Datasets"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Extensions []*string `json:"Extensions,omitnil,omitempty" name:"Extensions"`

	// Job status, values including:
	// JobUnknown: 0, JobCreated: 1, JobPending: 2, JobPreparing: 3, JobSelectClustering: 4, JobCreateTasking: 5, JobSyncTasking: 6,
	// JobRunning:11,JobFinished:12,JobPrepareException:13,JobFinishException:14,JobAborting:15,JobAborted:16,JobAbortException:17,JobDeleted:18,
	// JobSelectClusterException:19,JobCreateTaskException:20,JobSyncTaskException:21
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Start time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// End time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Maximum VU.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MaxVirtualUserCount *int64 `json:"MaxVirtualUserCount,omitnil,omitempty" name:"MaxVirtualUserCount"`

	// Note.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Note *string `json:"Note,omitnil,omitempty" name:"Note"`

	// Error rate percentage.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ErrorRate *float64 `json:"ErrorRate,omitnil,omitempty" name:"ErrorRate"`

	// Job owner.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LoadSources *LoadSource `json:"LoadSources,omitnil,omitempty" name:"LoadSources"`

	// Job duration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Duration *int64 `json:"Duration,omitnil,omitempty" name:"Duration"`

	// Maximum requests per second.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MaxRequestsPerSecond *int64 `json:"MaxRequestsPerSecond,omitnil,omitempty" name:"MaxRequestsPerSecond"`

	// Total number of requests.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	RequestTotal *float64 `json:"RequestTotal,omitnil,omitempty" name:"RequestTotal"`

	// Average requests per second.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	RequestsPerSecond *float64 `json:"RequestsPerSecond,omitnil,omitempty" name:"RequestsPerSecond"`

	// Average response time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ResponseTimeAverage *float64 `json:"ResponseTimeAverage,omitnil,omitempty" name:"ResponseTimeAverage"`

	// 99th percentile response time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ResponseTimeP99 *float64 `json:"ResponseTimeP99,omitnil,omitempty" name:"ResponseTimeP99"`

	// 95th percentile response time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ResponseTimeP95 *float64 `json:"ResponseTimeP95,omitnil,omitempty" name:"ResponseTimeP95"`

	// 90th percentile response time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ResponseTimeP90 *float64 `json:"ResponseTimeP90,omitnil,omitempty" name:"ResponseTimeP90"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Scripts []*string `json:"Scripts,omitnil,omitempty" name:"Scripts"`

	// Maximum response time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ResponseTimeMax *float64 `json:"ResponseTimeMax,omitnil,omitempty" name:"ResponseTimeMax"`

	// Minimum response time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ResponseTimeMin *float64 `json:"ResponseTimeMin,omitnil,omitempty" name:"ResponseTimeMin"`

	// Stress machine information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LoadSourceInfos []*LoadSource `json:"LoadSourceInfos,omitnil,omitempty" name:"LoadSourceInfos"`

	// Test script information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TestScripts []*ScriptInfo `json:"TestScripts,omitnil,omitempty" name:"TestScripts"`

	// Protocol file information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Protocols []*ProtocolInfo `json:"Protocols,omitnil,omitempty" name:"Protocols"`

	// Request file information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	RequestFiles []*FileInfo `json:"RequestFiles,omitnil,omitempty" name:"RequestFiles"`

	// Extension file information.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Plugins []*FileInfo `json:"Plugins,omitnil,omitempty" name:"Plugins"`

	// Cron job ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CronId *string `json:"CronId,omitnil,omitempty" name:"CronId"`

	// Scenario type.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Domain binding configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	DomainNameConfig *DomainNameConfig `json:"DomainNameConfig,omitnil,omitempty" name:"DomainNameConfig"`

	// Whether the job is a debug job.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Debug *bool `json:"Debug,omitnil,omitempty" name:"Debug"`

	// Abort reason.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AbortReason *int64 `json:"AbortReason,omitnil,omitempty" name:"AbortReason"`

	// Create Time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// Project ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Notification event callback.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NotificationHooks []*NotificationHook `json:"NotificationHooks,omitnil,omitempty" name:"NotificationHooks"`

	// Bytes received per second.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NetworkReceiveRate *float64 `json:"NetworkReceiveRate,omitnil,omitempty" name:"NetworkReceiveRate"`

	// Bytes sent per second.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NetworkSendRate *float64 `json:"NetworkSendRate,omitnil,omitempty" name:"NetworkSendRate"`

	// Job status description.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`

	// Project name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectName *string `json:"ProjectName,omitnil,omitempty" name:"ProjectName"`

	// Scenario name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScenarioName *string `json:"ScenarioName,omitnil,omitempty" name:"ScenarioName"`

	// Billing type.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Job VUM usage.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Usage *int64 `json:"Usage,omitnil,omitempty" name:"Usage"`
}

type Label struct {
	// Label name.
	LabelName *string `json:"LabelName,omitnil,omitempty" name:"LabelName"`

	// Label value.
	LabelValue *string `json:"LabelValue,omitnil,omitempty" name:"LabelValue"`
}

type LabelWithValues struct {
	// Label Name.
	LabelName *string `json:"LabelName,omitnil,omitempty" name:"LabelName"`

	// Label values.
	LabelValues []*string `json:"LabelValues,omitnil,omitempty" name:"LabelValues"`
}

type Load struct {
	// Load configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LoadSpec *LoadSpec `json:"LoadSpec,omitnil,omitempty" name:"LoadSpec"`

	// Stress source from vpc.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	VpcLoadDistribution *VpcLoadDistribution `json:"VpcLoadDistribution,omitnil,omitempty" name:"VpcLoadDistribution"`

	// Multi-region stress distribution.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	GeoRegionsLoadDistribution []*GeoRegionsLoadItem `json:"GeoRegionsLoadDistribution,omitnil,omitempty" name:"GeoRegionsLoadDistribution"`
}

type LoadSource struct {
	// Pressure machine IP.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	IP *string `json:"IP,omitnil,omitempty" name:"IP"`

	// Pressure machine pod.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	PodName *string `json:"PodName,omitnil,omitempty" name:"PodName"`

	// Region.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`
}

type LoadSpec struct {
	// Configuration for concurrency mode.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Concurrency *Concurrency `json:"Concurrency,omitnil,omitempty" name:"Concurrency"`

	// Configuration for RPS mode.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	RequestsPerSecond *RequestsPerSecond `json:"RequestsPerSecond,omitnil,omitempty" name:"RequestsPerSecond"`

	// Built-in script mode.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ScriptOrigin *ScriptOrigin `json:"ScriptOrigin,omitnil,omitempty" name:"ScriptOrigin"`
}

type MetricInfo struct {
	// Metric name in backend.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Metric name displayed in frontend.
	Alias *string `json:"Alias,omitnil,omitempty" name:"Alias"`

	// Metric description.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Metric type.
	MetricType *string `json:"MetricType,omitnil,omitempty" name:"MetricType"`

	// Default metric unit.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Aggregation functions supported by the metric.
	Aggregations []*AggregationLegend `json:"Aggregations,omitnil,omitempty" name:"Aggregations"`

	// Whether it is an internal metric, internal metrics cannot be freely selected by users on the frontend.
	InnerMetric *bool `json:"InnerMetric,omitnil,omitempty" name:"InnerMetric"`
}

type MetricLabelWithValues struct {
	// Metric name.
	MetricName *string `json:"MetricName,omitnil,omitempty" name:"MetricName"`

	// Labels and values.
	LabelValuesSet []*LabelWithValues `json:"LabelValuesSet,omitnil,omitempty" name:"LabelValuesSet"`
}

type NormalLog struct {
	// Timestamp in milliseconds.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Timestamp *string `json:"Timestamp,omitnil,omitempty" name:"Timestamp"`

	// Log level.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SeverityText *string `json:"SeverityText,omitnil,omitempty" name:"SeverityText"`

	// Log output content.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Body *string `json:"Body,omitnil,omitempty" name:"Body"`
}

type Notification struct {
	// Event.
	Events []*string `json:"Events,omitnil,omitempty" name:"Events"`

	// Webhook URL.
	URL *string `json:"URL,omitnil,omitempty" name:"URL"`
}

type NotificationHook struct {
	// Event.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Events []*string `json:"Events,omitnil,omitempty" name:"Events"`

	// Callback URL.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	URL *string `json:"URL,omitnil,omitempty" name:"URL"`
}

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

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

	// Project description.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Tags.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Tags []*TagSpec `json:"Tags,omitnil,omitempty" name:"Tags"`

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

	// Create time.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// Update time.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// App ID.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

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

	// Sub account uin.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`
}

type ProtocolInfo struct {
	// Name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// File size.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// File type, such as 'proto'.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Update time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// File ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`
}

type ReactionTimeRange struct {
	// Minimum response time (ms).
	Min *string `json:"Min,omitnil,omitempty" name:"Min"`

	// Maximum response time (ms).
	Max *string `json:"Max,omitnil,omitempty" name:"Max"`
}

type RegionDetail struct {
	// Region code.
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

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

	// Area where the region is located.
	Area *string `json:"Area,omitnil,omitempty" name:"Area"`

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

	// Region state.
	RegionState *int64 `json:"RegionState,omitnil,omitempty" name:"RegionState"`

	// Region abbreviation.
	RegionShortName *string `json:"RegionShortName,omitnil,omitempty" name:"RegionShortName"`

	// Create time.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

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

type RequestSummary struct {
	// Request URL.
	Service *string `json:"Service,omitnil,omitempty" name:"Service"`

	// Request method.
	Method *string `json:"Method,omitnil,omitempty" name:"Method"`

	// Number of requests.
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Average request response time (seconds).
	Average *float64 `json:"Average,omitnil,omitempty" name:"Average"`

	// Request p90 latency (seconds).
	P90 *float64 `json:"P90,omitnil,omitempty" name:"P90"`

	// Request p95 latency (seconds).
	P95 *float64 `json:"P95,omitnil,omitempty" name:"P95"`

	// Minimum request latency (seconds).
	Min *float64 `json:"Min,omitnil,omitempty" name:"Min"`

	// Maximum request latency (seconds).
	Max *float64 `json:"Max,omitnil,omitempty" name:"Max"`

	// Request error rate.
	ErrorPercentage *float64 `json:"ErrorPercentage,omitnil,omitempty" name:"ErrorPercentage"`

	// Request p99 latency (seconds).
	P99 *float64 `json:"P99,omitnil,omitempty" name:"P99"`

	// Response status code.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Response details.
	Result *string `json:"Result,omitnil,omitempty" name:"Result"`

	// Request per seconds, unit req/s.
	RPS *float64 `json:"RPS,omitnil,omitempty" name:"RPS"`
}

type RequestsPerSecond struct {
	// Maximum rps.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	MaxRequestsPerSecond *int64 `json:"MaxRequestsPerSecond,omitnil,omitempty" name:"MaxRequestsPerSecond"`

	// Duration time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	DurationSeconds *int64 `json:"DurationSeconds,omitnil,omitempty" name:"DurationSeconds"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TargetVirtualUsers *int64 `json:"TargetVirtualUsers,omitnil,omitempty" name:"TargetVirtualUsers"`

	// Number of resources.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Resources *int64 `json:"Resources,omitnil,omitempty" name:"Resources"`

	// Initial rps.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	StartRequestsPerSecond *int64 `json:"StartRequestsPerSecond,omitnil,omitempty" name:"StartRequestsPerSecond"`

	// Target rps, invalid as an input parameter.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TargetRequestsPerSecond *int64 `json:"TargetRequestsPerSecond,omitnil,omitempty" name:"TargetRequestsPerSecond"`

	// Graceful shutdown waiting time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	GracefulStopSeconds *int64 `json:"GracefulStopSeconds,omitnil,omitempty" name:"GracefulStopSeconds"`
}

// Predefined struct for user
type RestartCronJobsRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of cron job ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`
}

type RestartCronJobsRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Array of cron job ID.
	CronJobIds []*string `json:"CronJobIds,omitnil,omitempty" name:"CronJobIds"`
}

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

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

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

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

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

type SLALabel struct {
	// Label name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LabelName *string `json:"LabelName,omitnil,omitempty" name:"LabelName"`

	// Label value.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LabelValue *string `json:"LabelValue,omitnil,omitempty" name:"LabelValue"`
}

type SLAPolicy struct {
	// SLA rules.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SLARules []*SLARule `json:"SLARules,omitnil,omitempty" name:"SLARules"`

	// Alert notification channel.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AlertChannel *AlertChannel `json:"AlertChannel,omitnil,omitempty" name:"AlertChannel"`
}

type SLARule struct {
	// Metric.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Metric *string `json:"Metric,omitnil,omitempty" name:"Metric"`

	// Metric aggregation method.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Aggregation *string `json:"Aggregation,omitnil,omitempty" name:"Aggregation"`

	// Condition, such as '==' '!=' '<' '<=' '>' '>='.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Condition *string `json:"Condition,omitnil,omitempty" name:"Condition"`

	// Threshold value.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Value *float64 `json:"Value,omitnil,omitempty" name:"Value"`

	// Label.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LabelFilter []*SLALabel `json:"LabelFilter,omitnil,omitempty" name:"LabelFilter"`

	// Whether to stop performance test job.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AbortFlag *bool `json:"AbortFlag,omitnil,omitempty" name:"AbortFlag"`

	// Duration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	For *string `json:"For,omitnil,omitempty" name:"For"`
}

type SampleLog struct {
	// Millisecond timestamp.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Timestamp *string `json:"Timestamp,omitnil,omitempty" name:"Timestamp"`

	// Log attributes.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Attributes *Attributes `json:"Attributes,omitnil,omitempty" name:"Attributes"`

	// Request in har format in log.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Body *string `json:"Body,omitnil,omitempty" name:"Body"`
}

type SamplePair struct {
	// Timestamp. It is the number of milliseconds since the epoch (1970-01-01 00:00 UTC) excluding leap seconds.
	Timestamp *int64 `json:"Timestamp,omitnil,omitempty" name:"Timestamp"`

	// Value of a given sample at a given time.
	Value *float64 `json:"Value,omitnil,omitempty" name:"Value"`
}

type SampleStream struct {
	// Metric labels.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Labels []*Label `json:"Labels,omitnil,omitempty" name:"Labels"`

	// Array of metric values.
	Values []*SamplePair `json:"Values,omitnil,omitempty" name:"Values"`

	// Metric name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`
}

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

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

	// Scenario description.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Type of scenario. Valid values: 'pts-http' represents the simple mode, 'pts-js' represents the script mode, 'pts-jmeter' represents the JMeter mode.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Scenario status.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// Load configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Load *Load `json:"Load,omitnil,omitempty" name:"Load"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	EncodedScripts *string `json:"EncodedScripts,omitnil,omitempty" name:"EncodedScripts"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Configs []*string `json:"Configs,omitnil,omitempty" name:"Configs"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Extensions []*string `json:"Extensions,omitnil,omitempty" name:"Extensions"`

	// Test datasets.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Datasets []*TestData `json:"Datasets,omitnil,omitempty" name:"Datasets"`

	// Deprecated.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SLAId *string `json:"SLAId,omitnil,omitempty" name:"SLAId"`

	// CronJob ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	CronId *string `json:"CronId,omitnil,omitempty" name:"CronId"`

	// Create time.
	CreatedAt *string `json:"CreatedAt,omitnil,omitempty" name:"CreatedAt"`

	// Update time.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// Project ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// App ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	AppId *int64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// Uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Uin *string `json:"Uin,omitnil,omitempty" name:"Uin"`

	// Sub account uin.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SubAccountUin *string `json:"SubAccountUin,omitnil,omitempty" name:"SubAccountUin"`

	// Test scripts.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TestScripts []*ScriptInfo `json:"TestScripts,omitnil,omitempty" name:"TestScripts"`

	// Protocol files.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Protocols []*ProtocolInfo `json:"Protocols,omitnil,omitempty" name:"Protocols"`

	// Request files.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	RequestFiles []*FileInfo `json:"RequestFiles,omitnil,omitempty" name:"RequestFiles"`

	// SLA policy.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SLAPolicy *SLAPolicy `json:"SLAPolicy,omitnil,omitempty" name:"SLAPolicy"`

	// Extension plugin files.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Plugins []*FileInfo `json:"Plugins,omitnil,omitempty" name:"Plugins"`

	// Domain name resolution configuration.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	DomainNameConfig *DomainNameConfig `json:"DomainNameConfig,omitnil,omitempty" name:"DomainNameConfig"`

	// Notification event hooks.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	NotificationHooks []*NotificationHook `json:"NotificationHooks,omitnil,omitempty" name:"NotificationHooks"`

	// Creator name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Owner *string `json:"Owner,omitnil,omitempty" name:"Owner"`

	// Project name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	ProjectName *string `json:"ProjectName,omitnil,omitempty" name:"ProjectName"`
}

type ScenarioRelatedJobsParams struct {
	// Offset, default value is 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returns. Default value is 20, maximum is 100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Field for sorting.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Whether in ascending order.
	Ascend *bool `json:"Ascend,omitnil,omitempty" name:"Ascend"`
}

type ScenarioWithJobs struct {
	// Scenario.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Scenario *Scenario `json:"Scenario,omitnil,omitempty" name:"Scenario"`

	// Job list.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Jobs []*Job `json:"Jobs,omitnil,omitempty" name:"Jobs"`
}

type ScriptInfo struct {
	// Filename.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// File size.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// File type.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Update time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// Base64-encoded file content.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	EncodedContent *string `json:"EncodedContent,omitnil,omitempty" name:"EncodedContent"`

	// Base64-encoded har structure.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	EncodedHttpArchive *string `json:"EncodedHttpArchive,omitnil,omitempty" name:"EncodedHttpArchive"`

	// Script weight, range 1-100.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LoadWeight *int64 `json:"LoadWeight,omitnil,omitempty" name:"LoadWeight"`

	// File ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`
}

type ScriptOrigin struct {
	// Machine number.
	MachineNumber *int64 `json:"MachineNumber,omitnil,omitempty" name:"MachineNumber"`

	// Machine specification.
	MachineSpecification *string `json:"MachineSpecification,omitnil,omitempty" name:"MachineSpecification"`

	// Duration.
	DurationSeconds *int64 `json:"DurationSeconds,omitnil,omitempty" name:"DurationSeconds"`
}

type Stage struct {
	// Duration time of this stage.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	DurationSeconds *int64 `json:"DurationSeconds,omitnil,omitempty" name:"DurationSeconds"`

	// Target number of virtual users.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TargetVirtualUsers *int64 `json:"TargetVirtualUsers,omitnil,omitempty" name:"TargetVirtualUsers"`
}

// Predefined struct for user
type StartJobRequestParams struct {
	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

	// Job initiator.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

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

	// If is debug mode.
	Debug *bool `json:"Debug,omitnil,omitempty" name:"Debug"`

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

type StartJobRequest struct {
	*tchttp.BaseRequest
	
	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

	// Job initiator.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

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

	// If is debug mode.
	Debug *bool `json:"Debug,omitnil,omitempty" name:"Debug"`

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

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

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

// Predefined struct for user
type StartJobResponseParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

type StartJobResponse struct {
	*tchttp.BaseResponse
	Response *StartJobResponseParams `json:"Response"`
}

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

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

type TagSpec struct {
	// Tag key.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TagKey *string `json:"TagKey,omitnil,omitempty" name:"TagKey"`

	// Tag value.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TagValue *string `json:"TagValue,omitnil,omitempty" name:"TagValue"`
}

type TestData struct {
	// File name of the test dataset.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Whether the dataset is sharded.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Split *bool `json:"Split,omitnil,omitempty" name:"Split"`

	// Whether the first row is parameter name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HeaderInFile *bool `json:"HeaderInFile,omitnil,omitempty" name:"HeaderInFile"`

	// Array of parameter name.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HeaderColumns []*string `json:"HeaderColumns,omitnil,omitempty" name:"HeaderColumns"`

	// Number of file lines.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	LineCount *int64 `json:"LineCount,omitnil,omitempty" name:"LineCount"`

	// Update time.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	UpdatedAt *string `json:"UpdatedAt,omitnil,omitempty" name:"UpdatedAt"`

	// File size.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// First few rows of dataset.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	HeadLines []*string `json:"HeadLines,omitnil,omitempty" name:"HeadLines"`

	// Last few rows of dataset.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	TailLines []*string `json:"TailLines,omitnil,omitempty" name:"TailLines"`

	// File type.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// File ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`
}

// Predefined struct for user
type UpdateCronJobRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Cron job ID.
	CronJobId *string `json:"CronJobId,omitnil,omitempty" name:"CronJobId"`

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

	// Cron expression.
	CronExpression *string `json:"CronExpression,omitnil,omitempty" name:"CronExpression"`

	// Execution frequency type: 1, execute once only; 2, Daily; 3, Weekly; 4, Advanced mode using cron expression.
	FrequencyType *int64 `json:"FrequencyType,omitnil,omitempty" name:"FrequencyType"`

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

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

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

	// Cron job Initiator.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

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

	// Notice ID.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`
}

type UpdateCronJobRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// Cron job ID.
	CronJobId *string `json:"CronJobId,omitnil,omitempty" name:"CronJobId"`

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

	// Cron expression.
	CronExpression *string `json:"CronExpression,omitnil,omitempty" name:"CronExpression"`

	// Execution frequency type: 1, execute once only; 2, Daily; 3, Weekly; 4, Advanced mode using cron expression.
	FrequencyType *int64 `json:"FrequencyType,omitnil,omitempty" name:"FrequencyType"`

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

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

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

	// Cron job Initiator.
	JobOwner *string `json:"JobOwner,omitnil,omitempty" name:"JobOwner"`

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

	// Notice ID.
	NoticeId *string `json:"NoticeId,omitnil,omitempty" name:"NoticeId"`
}

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

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

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

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

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

// Predefined struct for user
type UpdateEnvironmentRequestParams struct {

}

type UpdateEnvironmentRequest struct {
	*tchttp.BaseRequest
	
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateEnvironmentRequest) 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", "UpdateEnvironmentRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type UpdateFileScenarioRelationRequestParams struct {
	// File ID. Its value should be the corresponding directory of the file in the COS bucket after it has been uploaded in the previous step.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`

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

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`
}

type UpdateFileScenarioRelationRequest struct {
	*tchttp.BaseRequest
	
	// File ID. Its value should be the corresponding directory of the file in the COS bucket after it has been uploaded in the previous step.
	FileId *string `json:"FileId,omitnil,omitempty" name:"FileId"`

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

	// Array of Scenario ID.
	ScenarioIds []*string `json:"ScenarioIds,omitnil,omitempty" name:"ScenarioIds"`
}

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

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

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

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

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

// Predefined struct for user
type UpdateJobRequestParams struct {
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Job note.
	Note *string `json:"Note,omitnil,omitempty" name:"Note"`
}

type UpdateJobRequest struct {
	*tchttp.BaseRequest
	
	// Job ID.
	JobId *string `json:"JobId,omitnil,omitempty" name:"JobId"`

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

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

	// Job note.
	Note *string `json:"Note,omitnil,omitempty" name:"Note"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateJobRequest) 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, "ProjectId")
	delete(f, "ScenarioId")
	delete(f, "Note")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdateJobRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type UpdateProjectRequestParams struct {
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

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

	// Project status, default value 1
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

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

type UpdateProjectRequest struct {
	*tchttp.BaseRequest
	
	// Project ID.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

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

	// Project status, default value 1
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

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

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

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

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

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

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

// Predefined struct for user
type UpdateScenarioRequestParams struct {
	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

	// Scenario name. When calling this API, please include the fields in the Scenario that do not need to be modified as part of the API parameters, otherwise the scenario may become unusable.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

	// Mode type of scenario. Valid values: 'pts-http' represents the simple mode, 'pts-js' represents the script mode, 'pts-jmeter' represents the JMeter mode.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

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

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

	// Deprecated.
	Configs []*string `json:"Configs,omitnil,omitempty" name:"Configs"`

	// Test datasets.
	Datasets []*TestData `json:"Datasets,omitnil,omitempty" name:"Datasets"`

	// Deprecated.
	Extensions []*string `json:"Extensions,omitnil,omitempty" name:"Extensions"`

	// SLA rule ID.
	SLAId *string `json:"SLAId,omitnil,omitempty" name:"SLAId"`

	// Cron job ID.
	CronId *string `json:"CronId,omitnil,omitempty" name:"CronId"`

	// Scenario status (Note: This parameter is no longer required).
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

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

	// Test scripts.
	TestScripts []*ScriptInfo `json:"TestScripts,omitnil,omitempty" name:"TestScripts"`

	// Protocol.
	Protocols []*ProtocolInfo `json:"Protocols,omitnil,omitempty" name:"Protocols"`

	// Request files.
	RequestFiles []*FileInfo `json:"RequestFiles,omitnil,omitempty" name:"RequestFiles"`

	// SLA policy.
	SLAPolicy *SLAPolicy `json:"SLAPolicy,omitnil,omitempty" name:"SLAPolicy"`

	// Extension plugins.
	Plugins []*FileInfo `json:"Plugins,omitnil,omitempty" name:"Plugins"`

	// Domain name resolution configuration.
	DomainNameConfig *DomainNameConfig `json:"DomainNameConfig,omitnil,omitempty" name:"DomainNameConfig"`

	// Notification web hook configuration.
	NotificationHooks []*Notification `json:"NotificationHooks,omitnil,omitempty" name:"NotificationHooks"`

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

	// Environment ID.
	EnvId *string `json:"EnvId,omitnil,omitempty" name:"EnvId"`
}

type UpdateScenarioRequest struct {
	*tchttp.BaseRequest
	
	// Scenario ID.
	ScenarioId *string `json:"ScenarioId,omitnil,omitempty" name:"ScenarioId"`

	// Scenario name. When calling this API, please include the fields in the Scenario that do not need to be modified as part of the API parameters, otherwise the scenario may become unusable.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

	// Mode type of scenario. Valid values: 'pts-http' represents the simple mode, 'pts-js' represents the script mode, 'pts-jmeter' represents the JMeter mode.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

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

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

	// Deprecated.
	Configs []*string `json:"Configs,omitnil,omitempty" name:"Configs"`

	// Test datasets.
	Datasets []*TestData `json:"Datasets,omitnil,omitempty" name:"Datasets"`

	// Deprecated.
	Extensions []*string `json:"Extensions,omitnil,omitempty" name:"Extensions"`

	// SLA rule ID.
	SLAId *string `json:"SLAId,omitnil,omitempty" name:"SLAId"`

	// Cron job ID.
	CronId *string `json:"CronId,omitnil,omitempty" name:"CronId"`

	// Scenario status (Note: This parameter is no longer required).
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

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

	// Test scripts.
	TestScripts []*ScriptInfo `json:"TestScripts,omitnil,omitempty" name:"TestScripts"`

	// Protocol.
	Protocols []*ProtocolInfo `json:"Protocols,omitnil,omitempty" name:"Protocols"`

	// Request files.
	RequestFiles []*FileInfo `json:"RequestFiles,omitnil,omitempty" name:"RequestFiles"`

	// SLA policy.
	SLAPolicy *SLAPolicy `json:"SLAPolicy,omitnil,omitempty" name:"SLAPolicy"`

	// Extension plugins.
	Plugins []*FileInfo `json:"Plugins,omitnil,omitempty" name:"Plugins"`

	// Domain name resolution configuration.
	DomainNameConfig *DomainNameConfig `json:"DomainNameConfig,omitnil,omitempty" name:"DomainNameConfig"`

	// Notification web hook configuration.
	NotificationHooks []*Notification `json:"NotificationHooks,omitnil,omitempty" name:"NotificationHooks"`

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

	// Environment ID.
	EnvId *string `json:"EnvId,omitnil,omitempty" name:"EnvId"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *UpdateScenarioRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "ScenarioId")
	delete(f, "Name")
	delete(f, "Description")
	delete(f, "Type")
	delete(f, "Load")
	delete(f, "EncodedScripts")
	delete(f, "Configs")
	delete(f, "Datasets")
	delete(f, "Extensions")
	delete(f, "SLAId")
	delete(f, "CronId")
	delete(f, "Status")
	delete(f, "ProjectId")
	delete(f, "TestScripts")
	delete(f, "Protocols")
	delete(f, "RequestFiles")
	delete(f, "SLAPolicy")
	delete(f, "Plugins")
	delete(f, "DomainNameConfig")
	delete(f, "NotificationHooks")
	delete(f, "Owner")
	delete(f, "EnvId")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "UpdateScenarioRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

type VpcLoadDistribution struct {
	// Region ID.
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

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

	// VPC ID.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// List of subnet IDs.
	// 
	// Note: This field may return null, indicating that no valid value is found.
	SubnetIds []*string `json:"SubnetIds,omitnil,omitempty" name:"SubnetIds"`
}