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

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

type AccountInfo struct {
	// Instance ID in the format of postgres-lnp6j617
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Account
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Specifies the account remark.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Account status. valid values: 1-creating, 2-normal, 3-modifying, 4-resetting password, 5-locked, -1-deleting.
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

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

	// Last update time of the account.
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// Specifies the last modified time of the account.
	// 
	// This field will only take effect after 2025-10-31. No matter whether the password is modified before, the value will be the default value: 0000-00-00 00:00:00
	// Indicates that this field is updated only when the password is modified via the cloud API or the console.
	PasswordUpdateTime *string `json:"PasswordUpdateTime,omitnil,omitempty" name:"PasswordUpdateTime"`

	// Account type. valid values: normal, tencentDBSuper. normal references a general user, tencentDBSuper possesses the pg_tencentdb_superuser user role.
	UserType *string `json:"UserType,omitnil,omitempty" name:"UserType"`

	// Specifies whether CAM verification is enabled for the user account.
	OpenCam *bool `json:"OpenCam,omitnil,omitempty" name:"OpenCam"`
}

// Predefined struct for user
type AddDBInstanceToReadOnlyGroupRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

type AddDBInstanceToReadOnlyGroupRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

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

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

// Predefined struct for user
type AddDBInstanceToReadOnlyGroupResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type AddDBInstanceToReadOnlyGroupResponse struct {
	*tchttp.BaseResponse
	Response *AddDBInstanceToReadOnlyGroupResponseParams `json:"Response"`
}

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

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

type AnalysisItems struct {
	// The name of the database queried by the slow query statement
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// The name of the user who executes the slow query statement
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// The slow query statement whose parameter values are abstracted
	NormalQuery *string `json:"NormalQuery,omitnil,omitempty" name:"NormalQuery"`

	// The address of the client that executes the slow query statement
	ClientAddr *string `json:"ClientAddr,omitnil,omitempty" name:"ClientAddr"`

	// The number of executions of the slow query statement during the specified period of time
	CallNum *uint64 `json:"CallNum,omitnil,omitempty" name:"CallNum"`

	// Number of slow SQL statement executions within the specified time range as a percentage of all slow SQL.
	CallPercent *float64 `json:"CallPercent,omitnil,omitempty" name:"CallPercent"`

	// The total execution time of the slow query statement during the specified period of time
	CostTime *float64 `json:"CostTime,omitnil,omitempty" name:"CostTime"`

	// The ratio (in decimal form) of the total execution time of the slow query statement to that of all slow query statements during the specified period of time
	CostPercent *float64 `json:"CostPercent,omitnil,omitempty" name:"CostPercent"`

	// The shortest execution time (in ms) of the slow query statement during the specified period of time
	MinCostTime *float64 `json:"MinCostTime,omitnil,omitempty" name:"MinCostTime"`

	// The longest execution time (in ms) of the slow query statement during the specified period of time
	MaxCostTime *float64 `json:"MaxCostTime,omitnil,omitempty" name:"MaxCostTime"`

	// The average execution time (in ms) of the slow query statement during the specified period of time
	AvgCostTime *float64 `json:"AvgCostTime,omitnil,omitempty" name:"AvgCostTime"`

	// Start execution time of the first slow SQL within the specified time range.
	FirstTime *string `json:"FirstTime,omitnil,omitempty" name:"FirstTime"`

	// Start execution time of the last slow SQL within the specified time range.
	LastTime *string `json:"LastTime,omitnil,omitempty" name:"LastTime"`
}

type AuditInstanceInfo struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Enabled</p><p>Enumeration value:</p><ul><li>OFF: Off</li><li>ON: On</li></ul>
	AuditStatus *string `json:"AuditStatus,omitnil,omitempty" name:"AuditStatus"`

	// <p>Log storage validity period</p><p>Unit: day</p>
	LogExpireDay *uint64 `json:"LogExpireDay,omitnil,omitempty" name:"LogExpireDay"`

	// <p>Hot storage period</p><p>Unit: day</p>
	HotLogExpireDay *uint64 `json:"HotLogExpireDay,omitnil,omitempty" name:"HotLogExpireDay"`

	// <p>Cold storage period</p><p>Unit: day</p>
	ColdLogExpireDay *uint64 `json:"ColdLogExpireDay,omitnil,omitempty" name:"ColdLogExpireDay"`

	// <p>Hot storage size</p><p>Unit: MB</p>
	HotLogSize *float64 `json:"HotLogSize,omitnil,omitempty" name:"HotLogSize"`

	// <p>Cold storage size</p><p>Unit: MB</p>
	ColdLogSize *float64 `json:"ColdLogSize,omitnil,omitempty" name:"ColdLogSize"`

	// <p>Start time</p>
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// <p>Delivery status</p>
	Deliver *string `json:"Deliver,omitnil,omitempty" name:"Deliver"`

	// <p>Shipping information</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	DeliverSummary []*DeliverSummary `json:"DeliverSummary,omitnil,omitempty" name:"DeliverSummary"`

	// <p>Instance information</p>
	InstanceInfo *LogInstanceInfo `json:"InstanceInfo,omitnil,omitempty" name:"InstanceInfo"`
}

type AuditLog struct {
	// <p>Log time</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	Timestamp *string `json:"Timestamp,omitnil,omitempty" name:"Timestamp"`

	// <p>Number of affected rows</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	AffectRows *int64 `json:"AffectRows,omitnil,omitempty" name:"AffectRows"`

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

	// <p>Error code</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ErrCode *string `json:"ErrCode,omitnil,omitempty" name:"ErrCode"`

	// <p>Error message</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ErrorMessage *string `json:"ErrorMessage,omitnil,omitempty" name:"ErrorMessage"`

	// <p>Execution time</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ExecTime *int64 `json:"ExecTime,omitnil,omitempty" name:"ExecTime"`

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

	// <p>Instance Id</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

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

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

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

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

	// <p>thread ID</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ThreadId *string `json:"ThreadId,omitnil,omitempty" name:"ThreadId"`

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

type AuditLogFile struct {
	// <p>File name</p>
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`

	// <p>Task status.</p><p>Enumeration values: </p><ul><li>success: Success, </li><li>running: Creating, </li><li>failed: Failure.</li></ul>
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// <p>File size</p><p>Unit: MB</p>
	FileSize *uint64 `json:"FileSize,omitnil,omitempty" name:"FileSize"`

	// <p>Creation time.</p>
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// <p>Download link</p>
	DownloadUrl *string `json:"DownloadUrl,omitnil,omitempty" name:"DownloadUrl"`

	// <p>Error message</p>
	ErrMsg *string `json:"ErrMsg,omitnil,omitempty" name:"ErrMsg"`

	// <p>Download progress</p>
	Progress *uint64 `json:"Progress,omitnil,omitempty" name:"Progress"`

	// <p>Completion time.</p>
	FinishTime *string `json:"FinishTime,omitnil,omitempty" name:"FinishTime"`
}

type AuditLogFilter struct {
	// <p>Impact function</p>
	AffectRows *uint64 `json:"AffectRows,omitnil,omitempty" name:"AffectRows"`

	// <p>Database name</p>
	DBName []*string `json:"DBName,omitnil,omitempty" name:"DBName"`

	// <p>Execution time</p>
	ExecTime *uint64 `json:"ExecTime,omitnil,omitempty" name:"ExecTime"`

	// <p>Host</p>
	Host []*string `json:"Host,omitnil,omitempty" name:"Host"`

	// <p>sql statement</p>
	Sql *string `json:"Sql,omitnil,omitempty" name:"Sql"`

	// <p>Login name</p>
	User []*string `json:"User,omitnil,omitempty" name:"User"`

	// <p>Audit type</p>
	SqlType []*string `json:"SqlType,omitnil,omitempty" name:"SqlType"`
}

type BackupDownloadRestriction struct {
	// Backup file download limit type. valid values: NONE (unlimited, allows download from both private and public networks), INTRANET (only allows private network download), CUSTOMIZE (custom limits for download by vpc or ip). when the parameter value is CUSTOMIZE, at least one item must be filled in for vpc or ip information.
	RestrictionType *string `json:"RestrictionType,omitnil,omitempty" name:"RestrictionType"`

	// Whether VPC is allowed. Valid values: `ALLOW` (allow), `DENY` (deny).
	VpcRestrictionEffect *string `json:"VpcRestrictionEffect,omitnil,omitempty" name:"VpcRestrictionEffect"`

	// Whether it is allowed to download the VPC ID list of the backup files.
	VpcIdSet []*string `json:"VpcIdSet,omitnil,omitempty" name:"VpcIdSet"`

	// Whether IP is allowed. Valid values: `ALLOW` (allow), `DENY` (deny).
	IpRestrictionEffect *string `json:"IpRestrictionEffect,omitnil,omitempty" name:"IpRestrictionEffect"`

	// Whether it is allowed to download IP list of the backup files.
	IpSet []*string `json:"IpSet,omitnil,omitempty" name:"IpSet"`
}

type BackupPlan struct {
	// Backup cycle
	BackupPeriod *string `json:"BackupPeriod,omitnil,omitempty" name:"BackupPeriod"`

	// Specifies the data backup retention duration in days.
	BaseBackupRetentionPeriod *uint64 `json:"BaseBackupRetentionPeriod,omitnil,omitempty" name:"BaseBackupRetentionPeriod"`

	// The earliest time to start a backup
	MinBackupStartTime *string `json:"MinBackupStartTime,omitnil,omitempty" name:"MinBackupStartTime"`

	// The latest time to start a backup
	MaxBackupStartTime *string `json:"MaxBackupStartTime,omitnil,omitempty" name:"MaxBackupStartTime"`

	// Backup plan ID.
	PlanId *string `json:"PlanId,omitnil,omitempty" name:"PlanId"`

	// Specifies the custom name of the backup plan.
	PlanName *string `json:"PlanName,omitnil,omitempty" name:"PlanName"`

	// Specifies the log backup retention period in days.
	LogBackupRetentionPeriod *uint64 `json:"LogBackupRetentionPeriod,omitnil,omitempty" name:"LogBackupRetentionPeriod"`

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

	// Last modification time.
	UpdatedTime *string `json:"UpdatedTime,omitnil,omitempty" name:"UpdatedTime"`

	// Backup plan type. valid values: default (created by system), custom.
	PlanType *string `json:"PlanType,omitnil,omitempty" name:"PlanType"`

	// Backup cycle type. valid values: week, month.
	BackupPeriodType *string `json:"BackupPeriodType,omitnil,omitempty" name:"BackupPeriodType"`
}

type BackupSummary struct {
	// Instance ID
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Number of log backups of an instance
	LogBackupCount *uint64 `json:"LogBackupCount,omitnil,omitempty" name:"LogBackupCount"`

	// Size of log backups of an instance
	LogBackupSize *uint64 `json:"LogBackupSize,omitnil,omitempty" name:"LogBackupSize"`

	// Number of manually created instance data backups.
	ManualBaseBackupCount *uint64 `json:"ManualBaseBackupCount,omitnil,omitempty" name:"ManualBaseBackupCount"`

	// Size of manually created instance data backups.
	ManualBaseBackupSize *uint64 `json:"ManualBaseBackupSize,omitnil,omitempty" name:"ManualBaseBackupSize"`

	// Number of automatically created instance data backups.
	AutoBaseBackupCount *uint64 `json:"AutoBaseBackupCount,omitnil,omitempty" name:"AutoBaseBackupCount"`

	// Size of automatically created instance data backups.
	AutoBaseBackupSize *uint64 `json:"AutoBaseBackupSize,omitnil,omitempty" name:"AutoBaseBackupSize"`

	// Total number of backups
	TotalBackupCount *uint64 `json:"TotalBackupCount,omitnil,omitempty" name:"TotalBackupCount"`

	// Total backup size
	TotalBackupSize *uint64 `json:"TotalBackupSize,omitnil,omitempty" name:"TotalBackupSize"`
}

type BaseBackup struct {
	// Instance ID
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Unique ID of a backup file
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`

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

	// Specifies the backup method: physical - physical backup, logical - logical backup.
	BackupMethod *string `json:"BackupMethod,omitnil,omitempty" name:"BackupMethod"`

	// Backup mode: automatic - automatic backup, manual - manual backup.
	BackupMode *string `json:"BackupMode,omitnil,omitempty" name:"BackupMode"`

	// Backup task status. valid values: init, running, finished, failed, canceled.
	State *string `json:"State,omitnil,omitempty" name:"State"`

	// Backup set size in bytes
	Size *uint64 `json:"Size,omitnil,omitempty" name:"Size"`

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

	// Backup end time
	FinishTime *string `json:"FinishTime,omitnil,omitempty" name:"FinishTime"`

	// Backup expiration time
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
}

type ClassInfo struct {
	// <p>Specification ID.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>CPU cores.</p>
	CPU *uint64 `json:"CPU,omitnil,omitempty" name:"CPU"`

	// <p>Memory size, in MB.</p>
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// <p>Maximum storage capacity supported by this specification, in GB.</p>
	MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`

	// <p>Minimum storage capacity supported by this specification, in GB.</p>
	MinStorage *uint64 `json:"MinStorage,omitnil,omitempty" name:"MinStorage"`

	// <p>Estimated QPS of the specification.</p>
	QPS *uint64 `json:"QPS,omitnil,omitempty" name:"QPS"`
}

// Predefined struct for user
type CloneDBInstanceRequestParams struct {
	// The source instance ID to be cloned. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Purchasable code, which can be obtained from the `SpecCode` field in the return value of the [DescribeClasses](https://intl.cloud.tencent.com/document/api/409/89019?from_cn_redirect=1) API.
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// Instance disk capacity size. set step size to 10. unit: GB.
	Storage *int64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// Purchase duration, in months.
	// 
	// - Prepaid: Supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.
	// - Pay-as-you-go: Only supports `1`.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Specifies the auto-renewal flag. this parameter is valid only when the billing mode is prepaid.
	// Valid values:.
	// 
	// - `0`: specifies manual renewal.
	// -`1`: specifies auto-renewal.
	// 
	// Default value: 0
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// VPC ID in the format of `vpc-xxxxxxx`, which can be obtained in the console or from the `unVpcId` field in the return value of the DescribeVpcEx API.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// VPC subnet ID in the format of `subnet-xxxxxxxx`, which can be obtained in the console or from the `unSubnetId` field in the return value of the [DescribeSubnets](https://intl.cloud.tencent.com/document/api/215/15784?from_cn_redirect=1) API.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Specifies the instance name for new purchase, only supports chinese/english/digits/"_"/"-" with length less than 60. displays "source instance name-Copy" by default if no instance name is specified.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Instance billing type, which currently supports:
	// 
	// - PREPAID: Prepaid, i.e., yearly/monthly subscription
	// - POSTPAID_BY_HOUR: Pay-as-you-go, i.e., pay by consumption
	// 
	// Default value: PREPAID
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// Security group to which an instance belongs. obtain this parameter by calling the SecurityGroupId field in the return value of [DescribeSecurityGroups](https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1). if not specified, the default security group is bound.
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// Project ID. default value is 0, which means it belongs to the default project.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// The information of tags to be bound with the instance, which is left empty by default. This parameter can be obtained from the `Tags` field in the return value of the [DescribeTags](https://intl.cloud.tencent.com/document/api/651/35316?from_cn_redirect=1) API.
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Deployment information of instance nodes. the availability zone of primary and secondary nodes is required. when multi-availability zone deployment is supported, the availability zone information for each node must be specified.
	// AZ information can be obtained by calling the DescribeZones api (https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1) and checking the Zone field in the returned value.
	DBNodeSet []*DBNode `json:"DBNodeSet,omitnil,omitempty" name:"DBNodeSet"`

	// Whether to automatically use coupons:
	// 
	// - 0: No
	// - 1: Yes
	// 
	// Default value: 0
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Voucher ID list.
	VoucherIds *string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// Campaign ID.
	ActivityId *int64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// Basic backup set ID. either `BackupSetId` or `RecoveryTargetTime` must be provided, and cannot include both.
	BackupSetId *string `json:"BackupSetId,omitnil,omitempty" name:"BackupSetId"`

	// Specifies the recovery time point. either `BackupSetId` or `RecoveryTargetTime` must be provided, and cannot include both.
	RecoveryTargetTime *string `json:"RecoveryTargetTime,omitnil,omitempty" name:"RecoveryTargetTime"`

	// Primary-standby sync mode, which supports:
	// <li>Semi-sync: Semi-sync</li>
	// <li>Async: Asynchronous</li>
	// Default value for the primary instance: Semi-sync
	// Default value for the read-only instance: Async
	SyncMode *string `json:"SyncMode,omitnil,omitempty" name:"SyncMode"`

	// Specifies whether to enable deletion protection for the instance. valid values: true (enable deletion protection), false (disable deletion protection).
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`
}

type CloneDBInstanceRequest struct {
	*tchttp.BaseRequest
	
	// The source instance ID to be cloned. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Purchasable code, which can be obtained from the `SpecCode` field in the return value of the [DescribeClasses](https://intl.cloud.tencent.com/document/api/409/89019?from_cn_redirect=1) API.
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// Instance disk capacity size. set step size to 10. unit: GB.
	Storage *int64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// Purchase duration, in months.
	// 
	// - Prepaid: Supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.
	// - Pay-as-you-go: Only supports `1`.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Specifies the auto-renewal flag. this parameter is valid only when the billing mode is prepaid.
	// Valid values:.
	// 
	// - `0`: specifies manual renewal.
	// -`1`: specifies auto-renewal.
	// 
	// Default value: 0
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// VPC ID in the format of `vpc-xxxxxxx`, which can be obtained in the console or from the `unVpcId` field in the return value of the DescribeVpcEx API.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// VPC subnet ID in the format of `subnet-xxxxxxxx`, which can be obtained in the console or from the `unSubnetId` field in the return value of the [DescribeSubnets](https://intl.cloud.tencent.com/document/api/215/15784?from_cn_redirect=1) API.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Specifies the instance name for new purchase, only supports chinese/english/digits/"_"/"-" with length less than 60. displays "source instance name-Copy" by default if no instance name is specified.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Instance billing type, which currently supports:
	// 
	// - PREPAID: Prepaid, i.e., yearly/monthly subscription
	// - POSTPAID_BY_HOUR: Pay-as-you-go, i.e., pay by consumption
	// 
	// Default value: PREPAID
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// Security group to which an instance belongs. obtain this parameter by calling the SecurityGroupId field in the return value of [DescribeSecurityGroups](https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1). if not specified, the default security group is bound.
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// Project ID. default value is 0, which means it belongs to the default project.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// The information of tags to be bound with the instance, which is left empty by default. This parameter can be obtained from the `Tags` field in the return value of the [DescribeTags](https://intl.cloud.tencent.com/document/api/651/35316?from_cn_redirect=1) API.
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// Deployment information of instance nodes. the availability zone of primary and secondary nodes is required. when multi-availability zone deployment is supported, the availability zone information for each node must be specified.
	// AZ information can be obtained by calling the DescribeZones api (https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1) and checking the Zone field in the returned value.
	DBNodeSet []*DBNode `json:"DBNodeSet,omitnil,omitempty" name:"DBNodeSet"`

	// Whether to automatically use coupons:
	// 
	// - 0: No
	// - 1: Yes
	// 
	// Default value: 0
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Voucher ID list.
	VoucherIds *string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// Campaign ID.
	ActivityId *int64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// Basic backup set ID. either `BackupSetId` or `RecoveryTargetTime` must be provided, and cannot include both.
	BackupSetId *string `json:"BackupSetId,omitnil,omitempty" name:"BackupSetId"`

	// Specifies the recovery time point. either `BackupSetId` or `RecoveryTargetTime` must be provided, and cannot include both.
	RecoveryTargetTime *string `json:"RecoveryTargetTime,omitnil,omitempty" name:"RecoveryTargetTime"`

	// Primary-standby sync mode, which supports:
	// <li>Semi-sync: Semi-sync</li>
	// <li>Async: Asynchronous</li>
	// Default value for the primary instance: Semi-sync
	// Default value for the read-only instance: Async
	SyncMode *string `json:"SyncMode,omitnil,omitempty" name:"SyncMode"`

	// Specifies whether to enable deletion protection for the instance. valid values: true (enable deletion protection), false (disable deletion protection).
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CloneDBInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "DBInstanceId")
	delete(f, "SpecCode")
	delete(f, "Storage")
	delete(f, "Period")
	delete(f, "AutoRenewFlag")
	delete(f, "VpcId")
	delete(f, "SubnetId")
	delete(f, "Name")
	delete(f, "InstanceChargeType")
	delete(f, "SecurityGroupIds")
	delete(f, "ProjectId")
	delete(f, "TagList")
	delete(f, "DBNodeSet")
	delete(f, "AutoVoucher")
	delete(f, "VoucherIds")
	delete(f, "ActivityId")
	delete(f, "BackupSetId")
	delete(f, "RecoveryTargetTime")
	delete(f, "SyncMode")
	delete(f, "DeletionProtection")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CloneDBInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CloneDBInstanceResponseParams struct {
	// Order number.
	DealName *string `json:"DealName,omitnil,omitempty" name:"DealName"`

	// Order transaction number.
	BillId *string `json:"BillId,omitnil,omitempty" name:"BillId"`

	// Specifies the instance ID of the cloned instance. only support postpaid return this value.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

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

type CloneDBInstanceResponse struct {
	*tchttp.BaseResponse
	Response *CloneDBInstanceResponseParams `json:"Response"`
}

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

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

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

	// Account name of the CAM service to be disabled.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Specifies the new password necessary to log on to this account after CAM is disabled.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Indicates whether the password is encrypted.
	PasswordEncrypt *bool `json:"PasswordEncrypt,omitnil,omitempty" name:"PasswordEncrypt"`
}

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

	// Account name of the CAM service to be disabled.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Specifies the new password necessary to log on to this account after CAM is disabled.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Indicates whether the password is encrypted.
	PasswordEncrypt *bool `json:"PasswordEncrypt,omitnil,omitempty" name:"PasswordEncrypt"`
}

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

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

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

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

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

// Predefined struct for user
type CloseAuditServiceRequestParams struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`
}

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

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`
}

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

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

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

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

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

// Predefined struct for user
type CloseDBExtranetAccessRequestParams struct {
	// Specifies the instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en). such as postgres-6r233v55.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies whether to close public network Ipv6. 1: yes. 0: no. default value: 0.
	IsIpv6 *int64 `json:"IsIpv6,omitnil,omitempty" name:"IsIpv6"`
}

type CloseDBExtranetAccessRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en). such as postgres-6r233v55.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies whether to close public network Ipv6. 1: yes. 0: no. default value: 0.
	IsIpv6 *int64 `json:"IsIpv6,omitnil,omitempty" name:"IsIpv6"`
}

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

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

// Predefined struct for user
type CloseDBExtranetAccessResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type CloseDBExtranetAccessResponse struct {
	*tchttp.BaseResponse
	Response *CloseDBExtranetAccessResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateAccountRequestParams struct {
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// The name of the account created. Consists of letters (a-z, A-Z), numbers (0-9), underscores (_), starts with a letter or (_), up to 63 characters. Cannot use system reserved keywords, cannot be postgres, and cannot begin with pg_or tencentdb_
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Account type. currently supported: normal, tencentDBSuper. normal references a general user, tencentDBSuper is an account that possesses the pg_tencentdb_superuser role.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Specifies the corresponding password for the account. the password rules are as follows:.
	// <Li>Specifies a length of 8 to 32 characters. a password of more than 12 characters is recommended.</li>.
	// <Li>Cannot start with "/".</li>.
	// <Li>Specifies the following four items must be included.</li>.
	// 
	// Valid values: a to z (lowercase letters).           
	// Uppercase letters: A - Z.
	// Valid values: 0 - 9.
	// Special symbols: ()`~!@#$%^&*-+=_|{}[]:<>,.?/.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Account remark. only allow english letters, digits, underscore, hyphen, and chinese characters, limited to 60 characters.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies whether CAM verification is enabled for the account.
	OpenCam *bool `json:"OpenCam,omitnil,omitempty" name:"OpenCam"`
}

type CreateAccountRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// The name of the account created. Consists of letters (a-z, A-Z), numbers (0-9), underscores (_), starts with a letter or (_), up to 63 characters. Cannot use system reserved keywords, cannot be postgres, and cannot begin with pg_or tencentdb_
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Account type. currently supported: normal, tencentDBSuper. normal references a general user, tencentDBSuper is an account that possesses the pg_tencentdb_superuser role.
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// Specifies the corresponding password for the account. the password rules are as follows:.
	// <Li>Specifies a length of 8 to 32 characters. a password of more than 12 characters is recommended.</li>.
	// <Li>Cannot start with "/".</li>.
	// <Li>Specifies the following four items must be included.</li>.
	// 
	// Valid values: a to z (lowercase letters).           
	// Uppercase letters: A - Z.
	// Valid values: 0 - 9.
	// Special symbols: ()`~!@#$%^&*-+=_|{}[]:<>,.?/.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`

	// Account remark. only allow english letters, digits, underscore, hyphen, and chinese characters, limited to 60 characters.
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`

	// Specifies whether CAM verification is enabled for the account.
	OpenCam *bool `json:"OpenCam,omitnil,omitempty" name:"OpenCam"`
}

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

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

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

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

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

// Predefined struct for user
type CreateAuditLogFileRequestParams struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Start time</p><p>Parameter format: 2026-03-25 00:00:00</p>
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// <p>End time</p><p>Parameter format: 2026-03-25 01:00:00</p>
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Filter criteria</p>
	Filter *AuditLogFilter `json:"Filter,omitnil,omitempty" name:"Filter"`
}

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

	// <p>Start time</p><p>Parameter format: 2026-03-25 00:00:00</p>
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// <p>End time</p><p>Parameter format: 2026-03-25 01:00:00</p>
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Filter criteria</p>
	Filter *AuditLogFilter `json:"Filter,omitnil,omitempty" name:"Filter"`
}

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

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

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

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

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

// Predefined struct for user
type CreateBackupPlanRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the name of the backup plan.
	PlanName *string `json:"PlanName,omitnil,omitempty" name:"PlanName"`

	// Specifies the schedule type of the backup created. currently only support month.
	BackupPeriodType *string `json:"BackupPeriodType,omitnil,omitempty" name:"BackupPeriodType"`

	// Backup date. example: enable backup on the 2nd of every month.
	BackupPeriod []*string `json:"BackupPeriod,omitnil,omitempty" name:"BackupPeriod"`

	// Specifies the backup start time. if not passed, it follows the default backup plan.
	MinBackupStartTime *string `json:"MinBackupStartTime,omitnil,omitempty" name:"MinBackupStartTime"`

	// Backup end time. follows the default plan if not specified.
	MaxBackupStartTime *string `json:"MaxBackupStartTime,omitnil,omitempty" name:"MaxBackupStartTime"`

	// Specifies the data backup retention duration in days. value range: [0,30000).
	// BackupPeriodType defaults to 7 when set to week and 31 when set to month.
	BaseBackupRetentionPeriod *uint64 `json:"BaseBackupRetentionPeriod,omitnil,omitempty" name:"BaseBackupRetentionPeriod"`
}

type CreateBackupPlanRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the name of the backup plan.
	PlanName *string `json:"PlanName,omitnil,omitempty" name:"PlanName"`

	// Specifies the schedule type of the backup created. currently only support month.
	BackupPeriodType *string `json:"BackupPeriodType,omitnil,omitempty" name:"BackupPeriodType"`

	// Backup date. example: enable backup on the 2nd of every month.
	BackupPeriod []*string `json:"BackupPeriod,omitnil,omitempty" name:"BackupPeriod"`

	// Specifies the backup start time. if not passed, it follows the default backup plan.
	MinBackupStartTime *string `json:"MinBackupStartTime,omitnil,omitempty" name:"MinBackupStartTime"`

	// Backup end time. follows the default plan if not specified.
	MaxBackupStartTime *string `json:"MaxBackupStartTime,omitnil,omitempty" name:"MaxBackupStartTime"`

	// Specifies the data backup retention duration in days. value range: [0,30000).
	// BackupPeriodType defaults to 7 when set to week and 31 when set to month.
	BaseBackupRetentionPeriod *uint64 `json:"BaseBackupRetentionPeriod,omitnil,omitempty" name:"BaseBackupRetentionPeriod"`
}

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

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

// Predefined struct for user
type CreateBackupPlanResponseParams struct {
	// Backup policy ID.
	PlanId *string `json:"PlanId,omitnil,omitempty" name:"PlanId"`

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

type CreateBackupPlanResponse struct {
	*tchttp.BaseResponse
	Response *CreateBackupPlanResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateBaseBackupRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type CreateBaseBackupRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type CreateBaseBackupResponseParams struct {
	// Data backup set ID
	BaseBackupId *string `json:"BaseBackupId,omitnil,omitempty" name:"BaseBackupId"`

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

type CreateBaseBackupResponse struct {
	*tchttp.BaseResponse
	Response *CreateBaseBackupResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateDBInstanceNetworkAccessRequestParams struct {
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Unified VPC ID.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

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

	// Whether to manually assign the VIP. Valid values: `true` (manually assign), `false` (automatically assign).
	IsAssignVip *bool `json:"IsAssignVip,omitnil,omitempty" name:"IsAssignVip"`

	// Target VIP address. when this parameter is not specified and IsAssignVip is true, the system automatically assigns a VIP by default.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

type CreateDBInstanceNetworkAccessRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Unified VPC ID.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

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

	// Whether to manually assign the VIP. Valid values: `true` (manually assign), `false` (automatically assign).
	IsAssignVip *bool `json:"IsAssignVip,omitnil,omitempty" name:"IsAssignVip"`

	// Target VIP address. when this parameter is not specified and IsAssignVip is true, the system automatically assigns a VIP by default.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

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

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

// Predefined struct for user
type CreateDBInstanceNetworkAccessResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type CreateDBInstanceNetworkAccessResponse struct {
	*tchttp.BaseResponse
	Response *CreateDBInstanceNetworkAccessResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateDatabaseRequestParams struct {
	// Specifies the instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the user-created database name.
	// Name specification: consists of letters (a-z, a-z), digits (0-9), and underscores (_), starting with a letter or underscore (_), up to 63 characters. system reserved keywords cannot be used, and 'postgres' is not allowed.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Owner of the database. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	DatabaseOwner *string `json:"DatabaseOwner,omitnil,omitempty" name:"DatabaseOwner"`

	// Specifies the character encoding of the database.
	// Supported character sets include UTF8, LATIN1, LATIN2, WIN1250, WIN1251, WIN1252, KOI8R, EUC_JP, and EUC_KR.
	// Default value: UTF8.
	Encoding *string `json:"Encoding,omitnil,omitempty" name:"Encoding"`

	// Specifies the database sorting rule.
	Collate *string `json:"Collate,omitnil,omitempty" name:"Collate"`

	// Specifies the character category of the database.
	Ctype *string `json:"Ctype,omitnil,omitempty" name:"Ctype"`
}

type CreateDatabaseRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the user-created database name.
	// Name specification: consists of letters (a-z, a-z), digits (0-9), and underscores (_), starting with a letter or underscore (_), up to 63 characters. system reserved keywords cannot be used, and 'postgres' is not allowed.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Owner of the database. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	DatabaseOwner *string `json:"DatabaseOwner,omitnil,omitempty" name:"DatabaseOwner"`

	// Specifies the character encoding of the database.
	// Supported character sets include UTF8, LATIN1, LATIN2, WIN1250, WIN1251, WIN1252, KOI8R, EUC_JP, and EUC_KR.
	// Default value: UTF8.
	Encoding *string `json:"Encoding,omitnil,omitempty" name:"Encoding"`

	// Specifies the database sorting rule.
	Collate *string `json:"Collate,omitnil,omitempty" name:"Collate"`

	// Specifies the character category of the database.
	Ctype *string `json:"Ctype,omitnil,omitempty" name:"Ctype"`
}

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

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

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

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

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

// Predefined struct for user
type CreateInstancesRequestParams struct {
	// <p>Purchasable specification code. Obtain this parameter by calling the `SpecCode` field in the return value of <a href="https://www.tencentcloud.com/document/api/409/89019?from_cn_redirect=1">DescribeClasses</a>.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>Instance disk capacity size, unit: GB. The step length for parameter settings is 10.</p>
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// <p>Number of instances to purchase, value ranges from 1 to 10. Single transaction supports a maximum quantity of 10. If exceeding this quantity, multiple calls can be performed to purchase.</p>
	InstanceCount *uint64 `json:"InstanceCount,omitnil,omitempty" name:"InstanceCount"`

	// <p>Purchase duration, unit: month.</p><li>Prepaid: Supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.</li><li>Postpaid: Supports only `1`.</li>
	Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>Instance character set, which currently supports only:</p><li>UTF8</li><li>LATIN1</li>
	Charset *string `json:"Charset,omitnil,omitempty" name:"Charset"`

	// <p>Username of the instance root account. Specific specifications are as follows:</p><li>The username must consist of 1-16 characters, which can only be letters, digits, or underscores.</li><li>Cannot be postgres.</li><li>Cannot begin with digits or pg_.</li><li>All rules are case-insensitive.</li>
	AdminName *string `json:"AdminName,omitnil,omitempty" name:"AdminName"`

	// <p>Password for the instance root account username, with a length of 8-32 characters. It is recommended to use a password of more than 12 characters and it cannot start with "/".<br>Must contain the following four character types:</p><li>Lowercase letter: [a-z]</li><li>Uppercase letter: [a-z]</li><li>Number: 0-9</li><li>Special character: ()`~!@#$%^&*-+=_|{}[]:;'<>,.?/</li>
	AdminPassword *string `json:"AdminPassword,omitnil,omitempty" name:"AdminPassword"`

	// <p>The primary availability zone of the instance, for example: ap-guangzhou-3. If needed to support multiple AZs, add primary and secondary AZ information in the DBNodeSet.N field.<br>AZ information can be obtained by calling the <a href="https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1">DescribeZones</a> api and checking the Zone field in the returned value.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>PostgreSQL major version number (this parameter is currently required). Version information can be obtained from <a href="https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1">DescribeDBVersions</a>. Currently supports major versions 10, 11, 12, 13, 14, and 15. For details, see <a href="https://www.tencentcloud.com/document/product/409/67018?from_cn_redirect=1">kernel version overview</a>.<br>When this parameter is entered, an instance running the latest kernel version of the latest minor version will be created based on this major version number.</p>
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// <p>PostgreSQL community major version + minor version number.<br>It's generally not recommended to pass in this parameter. If needed, only the latest minor version number under the current major version can be passed.</p>
	DBVersion *string `json:"DBVersion,omitnil,omitempty" name:"DBVersion"`

	// <p>PostgreSQL kernel version number.<br>It's generally not recommended to pass in this parameter. If needed, only the latest kernel version number under the current major version can be passed.</p>
	DBKernelVersion *string `json:"DBKernelVersion,omitnil,omitempty" name:"DBKernelVersion"`

	// <p>Instance billing type. Currently supports:</p><li>PREPAID: Prepayment, i.e., yearly/monthly subscription</li><li>POSTPAID_BY_HOUR: Postpaid, i.e., pay-as-you-go</li>Default value: PREPAID
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// <p>VPC ID, such as vpc-xxxxxxxx (this parameter is currently required). A valid VPC ID can be obtained by logging in to the console to query or by calling the API DescribeVpcEx and acquiring the unVpcId field in the API return.</p>
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// <p>VPC subnet ID, such as subnet-xxxxxxxx (this parameter is currently required). Effective VPC subnet IDs can be queried by logging in to the console or by calling the API <a href="https://www.tencentcloud.com/document/api/215/15784?from_cn_redirect=1">DescribeSubnets</a> and acquiring the unSubnetId field in the API return.</p>
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// <p>Instance node deployment information. When multi-availability zone deployment is supported, it requires specifying the AZ information for each node.<br>AZ information can be obtained from the Zone field in the returned value by calling the <a href="https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	DBNodeSet []*DBNode `json:"DBNodeSet,omitnil,omitempty" name:"DBNodeSet"`

	// <p>Auto-renewal flag:</p><li>0: Manual renewal</li><li>1: Auto renewal</li>Default value: 0
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// <p>Whether to automatically use a voucher:</p><li>0: No</li><li>1: Yes</li>Default value: 0
	AutoVoucher *uint64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// <p>Voucher ID list. Currently only support specifying one voucher.</p>
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// <p>Project ID. The default value is 0, which means it belongs to the default project.</p>
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// <p>Activity ID.</p>
	ActivityId *int64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// <p>Instance name only supports Chinese/English/number/"_"/"-" with length less than 60. If no instance name is specified, "unnamed" is displayed by default.</p>
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// <p>Tag information that should be bound to the instance is empty by default. You can get it by calling <a href="https://www.tencentcloud.com/document/api/651/35316?from_cn_redirect=1">DescribeTags</a> and checking the Tags field in the return value.</p>
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// <p>Security group to which an instance belongs. Obtain this parameter by calling the sgId field in the returned value of <a href="https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1">DescribeSecurityGroups</a>. If not specified, the default security group is bound.</p>
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// <p>Whether data transparent encryption is required:</p><li>0: No</li><li>1: Yes</li>Default value: 0. See [Overview of Data Transparent Encryption](https://www.tencentcloud.com/document/product/409/71748?from_cn_redirect=1).
	NeedSupportTDE *uint64 `json:"NeedSupportTDE,omitnil,omitempty" name:"NeedSupportTDE"`

	// <p>The KeyId of the custom key. If you select custom key encryption, you need to input the KeyId of the custom key. KeyId is the unique identifier of CMK.<br>For related reference on KeyId creation and retrieval, see <a href="https://www.tencentcloud.com/document/product/409/71749?from_cn_redirect=1">Enable Transparent Data Encryption</a></p>
	KMSKeyId *string `json:"KMSKeyId,omitnil,omitempty" name:"KMSKeyId"`

	// <p>For regions using the KMS service, KMSRegion is empty by default and the local region KMS is used. If the local region is not supported, select another KMS supported region.<br>For details about KMSRegion, see <a href="https://www.tencentcloud.com/document/product/409/71749?from_cn_redirect=1">enable transparent data encryption</a></p>
	KMSRegion *string `json:"KMSRegion,omitnil,omitempty" name:"KMSRegion"`

	// <p>Designate the service cluster for KMS. If KMSClusterId is empty, use the KMS of the Default Cluster. To select the specified KMS cluster, require the input of KMSClusterId. For details about KMSClusterId, see enable transparent data encryption.</p>
	KMSClusterId *string `json:"KMSClusterId,omitnil,omitempty" name:"KMSClusterId"`

	// <p>Database engine, support:</p><li>`postgresql`: TencentDB for PostgreSQL</li><li>`mssql_compatible`: MSSQL compatible - TencentDB for PostgreSQL</li>Default value: postgresql
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Configuration information for the database engine. The configuration format is as follows:<br>{&quot;$key1&quot;:&quot;$value1&quot;, &quot;$key2&quot;:&quot;$value2&quot;}<br>Supported engines:<br>mssql_compatible engine:</p><li>migrationMode: Database schema, optional parameter. Valid values: single-db (single-database mode), multi-db (multi-database mode). Default is single-db.</li><li>defaultLocale: Sorting area rule, optional parameter, cannot be modified after initialization. Default is en_US. Valid values include: "af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN".</li><li>serverCollationName: Collation name, optional parameter, cannot be modified after initialization. Default is sql_latin1_general_cp1_ci_as. Valid values include: "bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as".</li>
	DBEngineConfig *string `json:"DBEngineConfig,omitnil,omitempty" name:"DBEngineConfig"`

	// <p>Primary-standby sync mode, supports: </p><li>Semi-sync: semi-synchronous</li><li>Async: asynchronous</li>Default value for the primary instance: Semi-syncDefault value for the read-only instance: Async
	SyncMode *string `json:"SyncMode,omitnil,omitempty" name:"SyncMode"`

	// <p>Whether required to support Ipv6:</p><li>0: No</li><li>1: Yes</li>Default value: 0
	NeedSupportIpv6 *uint64 `json:"NeedSupportIpv6,omitnil,omitempty" name:"NeedSupportIpv6"`

	// <p>Whether to enable deletion protection for the instance: true-enable deletion protection; false-disable deletion protection.</p>
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`

	// <p>Instance storage type. Available values: PHYSICAL_LOCAL_SSD: LOCAL SSD hard disk of PHYSICAL machine; CLOUD_PREMIUM: high-performance CLOUD block storage; CLOUD_SSD: SSD CLOUD disk; CLOUD_HSSD: enhanced SSD CLOUD disk.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

type CreateInstancesRequest struct {
	*tchttp.BaseRequest
	
	// <p>Purchasable specification code. Obtain this parameter by calling the `SpecCode` field in the return value of <a href="https://www.tencentcloud.com/document/api/409/89019?from_cn_redirect=1">DescribeClasses</a>.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>Instance disk capacity size, unit: GB. The step length for parameter settings is 10.</p>
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// <p>Number of instances to purchase, value ranges from 1 to 10. Single transaction supports a maximum quantity of 10. If exceeding this quantity, multiple calls can be performed to purchase.</p>
	InstanceCount *uint64 `json:"InstanceCount,omitnil,omitempty" name:"InstanceCount"`

	// <p>Purchase duration, unit: month.</p><li>Prepaid: Supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.</li><li>Postpaid: Supports only `1`.</li>
	Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>Instance character set, which currently supports only:</p><li>UTF8</li><li>LATIN1</li>
	Charset *string `json:"Charset,omitnil,omitempty" name:"Charset"`

	// <p>Username of the instance root account. Specific specifications are as follows:</p><li>The username must consist of 1-16 characters, which can only be letters, digits, or underscores.</li><li>Cannot be postgres.</li><li>Cannot begin with digits or pg_.</li><li>All rules are case-insensitive.</li>
	AdminName *string `json:"AdminName,omitnil,omitempty" name:"AdminName"`

	// <p>Password for the instance root account username, with a length of 8-32 characters. It is recommended to use a password of more than 12 characters and it cannot start with "/".<br>Must contain the following four character types:</p><li>Lowercase letter: [a-z]</li><li>Uppercase letter: [a-z]</li><li>Number: 0-9</li><li>Special character: ()`~!@#$%^&*-+=_|{}[]:;'<>,.?/</li>
	AdminPassword *string `json:"AdminPassword,omitnil,omitempty" name:"AdminPassword"`

	// <p>The primary availability zone of the instance, for example: ap-guangzhou-3. If needed to support multiple AZs, add primary and secondary AZ information in the DBNodeSet.N field.<br>AZ information can be obtained by calling the <a href="https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1">DescribeZones</a> api and checking the Zone field in the returned value.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>PostgreSQL major version number (this parameter is currently required). Version information can be obtained from <a href="https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1">DescribeDBVersions</a>. Currently supports major versions 10, 11, 12, 13, 14, and 15. For details, see <a href="https://www.tencentcloud.com/document/product/409/67018?from_cn_redirect=1">kernel version overview</a>.<br>When this parameter is entered, an instance running the latest kernel version of the latest minor version will be created based on this major version number.</p>
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// <p>PostgreSQL community major version + minor version number.<br>It's generally not recommended to pass in this parameter. If needed, only the latest minor version number under the current major version can be passed.</p>
	DBVersion *string `json:"DBVersion,omitnil,omitempty" name:"DBVersion"`

	// <p>PostgreSQL kernel version number.<br>It's generally not recommended to pass in this parameter. If needed, only the latest kernel version number under the current major version can be passed.</p>
	DBKernelVersion *string `json:"DBKernelVersion,omitnil,omitempty" name:"DBKernelVersion"`

	// <p>Instance billing type. Currently supports:</p><li>PREPAID: Prepayment, i.e., yearly/monthly subscription</li><li>POSTPAID_BY_HOUR: Postpaid, i.e., pay-as-you-go</li>Default value: PREPAID
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// <p>VPC ID, such as vpc-xxxxxxxx (this parameter is currently required). A valid VPC ID can be obtained by logging in to the console to query or by calling the API DescribeVpcEx and acquiring the unVpcId field in the API return.</p>
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// <p>VPC subnet ID, such as subnet-xxxxxxxx (this parameter is currently required). Effective VPC subnet IDs can be queried by logging in to the console or by calling the API <a href="https://www.tencentcloud.com/document/api/215/15784?from_cn_redirect=1">DescribeSubnets</a> and acquiring the unSubnetId field in the API return.</p>
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// <p>Instance node deployment information. When multi-availability zone deployment is supported, it requires specifying the AZ information for each node.<br>AZ information can be obtained from the Zone field in the returned value by calling the <a href="https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	DBNodeSet []*DBNode `json:"DBNodeSet,omitnil,omitempty" name:"DBNodeSet"`

	// <p>Auto-renewal flag:</p><li>0: Manual renewal</li><li>1: Auto renewal</li>Default value: 0
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// <p>Whether to automatically use a voucher:</p><li>0: No</li><li>1: Yes</li>Default value: 0
	AutoVoucher *uint64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// <p>Voucher ID list. Currently only support specifying one voucher.</p>
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// <p>Project ID. The default value is 0, which means it belongs to the default project.</p>
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// <p>Activity ID.</p>
	ActivityId *int64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// <p>Instance name only supports Chinese/English/number/"_"/"-" with length less than 60. If no instance name is specified, "unnamed" is displayed by default.</p>
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// <p>Tag information that should be bound to the instance is empty by default. You can get it by calling <a href="https://www.tencentcloud.com/document/api/651/35316?from_cn_redirect=1">DescribeTags</a> and checking the Tags field in the return value.</p>
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// <p>Security group to which an instance belongs. Obtain this parameter by calling the sgId field in the returned value of <a href="https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1">DescribeSecurityGroups</a>. If not specified, the default security group is bound.</p>
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// <p>Whether data transparent encryption is required:</p><li>0: No</li><li>1: Yes</li>Default value: 0. See [Overview of Data Transparent Encryption](https://www.tencentcloud.com/document/product/409/71748?from_cn_redirect=1).
	NeedSupportTDE *uint64 `json:"NeedSupportTDE,omitnil,omitempty" name:"NeedSupportTDE"`

	// <p>The KeyId of the custom key. If you select custom key encryption, you need to input the KeyId of the custom key. KeyId is the unique identifier of CMK.<br>For related reference on KeyId creation and retrieval, see <a href="https://www.tencentcloud.com/document/product/409/71749?from_cn_redirect=1">Enable Transparent Data Encryption</a></p>
	KMSKeyId *string `json:"KMSKeyId,omitnil,omitempty" name:"KMSKeyId"`

	// <p>For regions using the KMS service, KMSRegion is empty by default and the local region KMS is used. If the local region is not supported, select another KMS supported region.<br>For details about KMSRegion, see <a href="https://www.tencentcloud.com/document/product/409/71749?from_cn_redirect=1">enable transparent data encryption</a></p>
	KMSRegion *string `json:"KMSRegion,omitnil,omitempty" name:"KMSRegion"`

	// <p>Designate the service cluster for KMS. If KMSClusterId is empty, use the KMS of the Default Cluster. To select the specified KMS cluster, require the input of KMSClusterId. For details about KMSClusterId, see enable transparent data encryption.</p>
	KMSClusterId *string `json:"KMSClusterId,omitnil,omitempty" name:"KMSClusterId"`

	// <p>Database engine, support:</p><li>`postgresql`: TencentDB for PostgreSQL</li><li>`mssql_compatible`: MSSQL compatible - TencentDB for PostgreSQL</li>Default value: postgresql
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Configuration information for the database engine. The configuration format is as follows:<br>{&quot;$key1&quot;:&quot;$value1&quot;, &quot;$key2&quot;:&quot;$value2&quot;}<br>Supported engines:<br>mssql_compatible engine:</p><li>migrationMode: Database schema, optional parameter. Valid values: single-db (single-database mode), multi-db (multi-database mode). Default is single-db.</li><li>defaultLocale: Sorting area rule, optional parameter, cannot be modified after initialization. Default is en_US. Valid values include: "af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN".</li><li>serverCollationName: Collation name, optional parameter, cannot be modified after initialization. Default is sql_latin1_general_cp1_ci_as. Valid values include: "bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as".</li>
	DBEngineConfig *string `json:"DBEngineConfig,omitnil,omitempty" name:"DBEngineConfig"`

	// <p>Primary-standby sync mode, supports: </p><li>Semi-sync: semi-synchronous</li><li>Async: asynchronous</li>Default value for the primary instance: Semi-syncDefault value for the read-only instance: Async
	SyncMode *string `json:"SyncMode,omitnil,omitempty" name:"SyncMode"`

	// <p>Whether required to support Ipv6:</p><li>0: No</li><li>1: Yes</li>Default value: 0
	NeedSupportIpv6 *uint64 `json:"NeedSupportIpv6,omitnil,omitempty" name:"NeedSupportIpv6"`

	// <p>Whether to enable deletion protection for the instance: true-enable deletion protection; false-disable deletion protection.</p>
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`

	// <p>Instance storage type. Available values: PHYSICAL_LOCAL_SSD: LOCAL SSD hard disk of PHYSICAL machine; CLOUD_PREMIUM: high-performance CLOUD block storage; CLOUD_SSD: SSD CLOUD disk; CLOUD_HSSD: enhanced SSD CLOUD disk.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateInstancesRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SpecCode")
	delete(f, "Storage")
	delete(f, "InstanceCount")
	delete(f, "Period")
	delete(f, "Charset")
	delete(f, "AdminName")
	delete(f, "AdminPassword")
	delete(f, "Zone")
	delete(f, "DBMajorVersion")
	delete(f, "DBVersion")
	delete(f, "DBKernelVersion")
	delete(f, "InstanceChargeType")
	delete(f, "VpcId")
	delete(f, "SubnetId")
	delete(f, "DBNodeSet")
	delete(f, "AutoRenewFlag")
	delete(f, "AutoVoucher")
	delete(f, "VoucherIds")
	delete(f, "ProjectId")
	delete(f, "ActivityId")
	delete(f, "Name")
	delete(f, "TagList")
	delete(f, "SecurityGroupIds")
	delete(f, "NeedSupportTDE")
	delete(f, "KMSKeyId")
	delete(f, "KMSRegion")
	delete(f, "KMSClusterId")
	delete(f, "DBEngine")
	delete(f, "DBEngineConfig")
	delete(f, "SyncMode")
	delete(f, "NeedSupportIpv6")
	delete(f, "DeletionProtection")
	delete(f, "StorageType")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateInstancesRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateInstancesResponseParams struct {
	// <p>Order number list. Each instance corresponds to an order number.</p>
	DealNames []*string `json:"DealNames,omitnil,omitempty" name:"DealNames"`

	// <p>Frozen transaction ID.</p>
	BillId *string `json:"BillId,omitnil,omitempty" name:"BillId"`

	// <p>ID set of successfully created instances. Return value is available only in pay scenarios.</p>
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

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

type CreateInstancesResponse struct {
	*tchttp.BaseResponse
	Response *CreateInstancesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateParameterTemplateRequestParams struct {
	// Template name, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@).
	TemplateName *string `json:"TemplateName,omitnil,omitempty" name:"TemplateName"`

	// Specifies the major version of database, such as 11, 12, 13. can be obtained through the [DescribeDBVersions](https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1) api.
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// Database engine, such as postgresql, mssql_compatible.
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// Parameter template description, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@).
	TemplateDescription *string `json:"TemplateDescription,omitnil,omitempty" name:"TemplateDescription"`
}

type CreateParameterTemplateRequest struct {
	*tchttp.BaseRequest
	
	// Template name, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@).
	TemplateName *string `json:"TemplateName,omitnil,omitempty" name:"TemplateName"`

	// Specifies the major version of database, such as 11, 12, 13. can be obtained through the [DescribeDBVersions](https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1) api.
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// Database engine, such as postgresql, mssql_compatible.
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// Parameter template description, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@).
	TemplateDescription *string `json:"TemplateDescription,omitnil,omitempty" name:"TemplateDescription"`
}

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

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

// Predefined struct for user
type CreateParameterTemplateResponseParams struct {
	// Parameter template ID, which uniquely identifies a parameter template.
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`

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

type CreateParameterTemplateResponse struct {
	*tchttp.BaseResponse
	Response *CreateParameterTemplateResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateReadOnlyDBInstanceRequestParams struct {
	// <p>Primary availability zone of the instance, such as: ap-guangzhou-3.<br>The availability zone can be obtained from the returned Zone field of the <a href="https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Primary instance ID of the read-only instance, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API.</p>
	MasterDBInstanceId *string `json:"MasterDBInstanceId,omitnil,omitempty" name:"MasterDBInstanceId"`

	// <p>Purchasable specification code. The value of this parameter can be obtained from the returned SpecCode field of the <a href="https://www.tencentcloud.com/document/api/409/89019?from_cn_redirect=1">DescribeClasses</a> API.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>Instance disk capacity, in GB. The value for this parameter must be set in increments of 10.</p>
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// <p>Number of instances to purchase. Value range: [1-6]. The maximum allowed number is 6.</p>
	InstanceCount *uint64 `json:"InstanceCount,omitnil,omitempty" name:"InstanceCount"`

	// <p>Purchase duration, in months.</p><li>Prepaid: supports 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, and 36.</li><li>Postpaid: supports only 1.</li>
	Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>VPC ID, such as vpc-xxxxxxxx (this parameter is required). A valid VPC ID can be queried by logging in to the console. You can also call the DescribeVpcEx API to obtain it from the unVpcId field in the return value.</p>
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// <p>VPC subnet ID, such as subnet-xxxxxxxx (this parameter is required). A valid VPC subnet ID can be queried by logging in to the console. You can also call the <a href="https://www.tencentcloud.com/document/api/215/15784?from_cn_redirect=1">DescribeSubnets</a> API and obtain it from the unSubnetId field in the return value.</p>
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// <p>Instance billing type. Valid values:</p><li>PREPAID: prepaid (yearly/monthly subscription).</li><li>POSTPAID_BY_HOUR: postpaid (pay-as-you-go).</li>Default value: PREPAID. If the primary instance is postpaid, the read-only instance must also be postpaid.
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// <p>Indicates whether to use vouchers automatically:</p><li>0: No.</li><li>1: Yes.</li>Default value: 0.
	AutoVoucher *uint64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// <p>Voucher ID list. Only one voucher can be specified.</p>
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// <p>Renewal flag:</p><li>0: manual renewal.</li><li>1: auto-renewal.</li>Default value: 0.
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// <p>Project ID. The default value is 0, which means it belongs to the default project.</p>
	ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// <p>Discount offer ID.</p>
	ActivityId *int64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// <p>Read-only group ID.</p>
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// <p>Tags to be bound to the instance. This is empty by default. Tags can be obtained from the returned Tags field of the <a href="https://www.tencentcloud.com/document/api/651/35316?from_cn_redirect=1">DescribeTags</a> API.</p>
	TagList *Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// <p>Security group to which the instance belongs. The value of this parameter can be obtained from the returned sgId field of the <a href="https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1">DescribeSecurityGroups</a> API. If this parameter is not specified, the default security group is bound.</p>
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// <p>Indicates whether to support IPv6:</p><li>0: No.</li><li>1: Yes.</li>Default value: 0.
	NeedSupportIpv6 *uint64 `json:"NeedSupportIpv6,omitnil,omitempty" name:"NeedSupportIpv6"`

	// <p>Instance name. The name can contain only Chinese characters, letters, digits, underscores (&quot;_&quot;), and hyphens (&quot;-&quot;), with a length of less than 60.</p>
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// <p>Not required anymore. The kernel version is consistent with that of the primary instance.</p>
	//
	// Deprecated: DBVersion is deprecated.
	DBVersion *string `json:"DBVersion,omitnil,omitempty" name:"DBVersion"`

	// <p>Dedicated cluster ID.</p>
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// <p>Indicates whether to enable deletion protection for the instance: true - enables deletion protection. false - disables deletion protection.</p>
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`
}

type CreateReadOnlyDBInstanceRequest struct {
	*tchttp.BaseRequest
	
	// <p>Primary availability zone of the instance, such as: ap-guangzhou-3.<br>The availability zone can be obtained from the returned Zone field of the <a href="https://www.tencentcloud.com/document/api/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Primary instance ID of the read-only instance, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API.</p>
	MasterDBInstanceId *string `json:"MasterDBInstanceId,omitnil,omitempty" name:"MasterDBInstanceId"`

	// <p>Purchasable specification code. The value of this parameter can be obtained from the returned SpecCode field of the <a href="https://www.tencentcloud.com/document/api/409/89019?from_cn_redirect=1">DescribeClasses</a> API.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>Instance disk capacity, in GB. The value for this parameter must be set in increments of 10.</p>
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// <p>Number of instances to purchase. Value range: [1-6]. The maximum allowed number is 6.</p>
	InstanceCount *uint64 `json:"InstanceCount,omitnil,omitempty" name:"InstanceCount"`

	// <p>Purchase duration, in months.</p><li>Prepaid: supports 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, and 36.</li><li>Postpaid: supports only 1.</li>
	Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>VPC ID, such as vpc-xxxxxxxx (this parameter is required). A valid VPC ID can be queried by logging in to the console. You can also call the DescribeVpcEx API to obtain it from the unVpcId field in the return value.</p>
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// <p>VPC subnet ID, such as subnet-xxxxxxxx (this parameter is required). A valid VPC subnet ID can be queried by logging in to the console. You can also call the <a href="https://www.tencentcloud.com/document/api/215/15784?from_cn_redirect=1">DescribeSubnets</a> API and obtain it from the unSubnetId field in the return value.</p>
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// <p>Instance billing type. Valid values:</p><li>PREPAID: prepaid (yearly/monthly subscription).</li><li>POSTPAID_BY_HOUR: postpaid (pay-as-you-go).</li>Default value: PREPAID. If the primary instance is postpaid, the read-only instance must also be postpaid.
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// <p>Indicates whether to use vouchers automatically:</p><li>0: No.</li><li>1: Yes.</li>Default value: 0.
	AutoVoucher *uint64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// <p>Voucher ID list. Only one voucher can be specified.</p>
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// <p>Renewal flag:</p><li>0: manual renewal.</li><li>1: auto-renewal.</li>Default value: 0.
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// <p>Project ID. The default value is 0, which means it belongs to the default project.</p>
	ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// <p>Discount offer ID.</p>
	ActivityId *int64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// <p>Read-only group ID.</p>
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// <p>Tags to be bound to the instance. This is empty by default. Tags can be obtained from the returned Tags field of the <a href="https://www.tencentcloud.com/document/api/651/35316?from_cn_redirect=1">DescribeTags</a> API.</p>
	TagList *Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// <p>Security group to which the instance belongs. The value of this parameter can be obtained from the returned sgId field of the <a href="https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1">DescribeSecurityGroups</a> API. If this parameter is not specified, the default security group is bound.</p>
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`

	// <p>Indicates whether to support IPv6:</p><li>0: No.</li><li>1: Yes.</li>Default value: 0.
	NeedSupportIpv6 *uint64 `json:"NeedSupportIpv6,omitnil,omitempty" name:"NeedSupportIpv6"`

	// <p>Instance name. The name can contain only Chinese characters, letters, digits, underscores (&quot;_&quot;), and hyphens (&quot;-&quot;), with a length of less than 60.</p>
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// <p>Not required anymore. The kernel version is consistent with that of the primary instance.</p>
	DBVersion *string `json:"DBVersion,omitnil,omitempty" name:"DBVersion"`

	// <p>Dedicated cluster ID.</p>
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// <p>Indicates whether to enable deletion protection for the instance: true - enables deletion protection. false - disables deletion protection.</p>
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateReadOnlyDBInstanceRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Zone")
	delete(f, "MasterDBInstanceId")
	delete(f, "SpecCode")
	delete(f, "Storage")
	delete(f, "InstanceCount")
	delete(f, "Period")
	delete(f, "VpcId")
	delete(f, "SubnetId")
	delete(f, "InstanceChargeType")
	delete(f, "AutoVoucher")
	delete(f, "VoucherIds")
	delete(f, "AutoRenewFlag")
	delete(f, "ProjectId")
	delete(f, "ActivityId")
	delete(f, "ReadOnlyGroupId")
	delete(f, "TagList")
	delete(f, "SecurityGroupIds")
	delete(f, "NeedSupportIpv6")
	delete(f, "Name")
	delete(f, "DBVersion")
	delete(f, "DedicatedClusterId")
	delete(f, "DeletionProtection")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateReadOnlyDBInstanceRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateReadOnlyDBInstanceResponseParams struct {
	// <p>Order number list. Each instance corresponds to an order number.</p>
	DealNames []*string `json:"DealNames,omitnil,omitempty" name:"DealNames"`

	// <p>Frozen bill ID.</p>
	BillId *string `json:"BillId,omitnil,omitempty" name:"BillId"`

	// <p>ID set of successfully created instances. The return value is available only in postpaid scenarios.</p>
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

	// <p>The output parameter has a value only when the input parameter BillingParameters has a value. The value is the parameters for product order placement.</p>
	BillingParameters *string `json:"BillingParameters,omitnil,omitempty" name:"BillingParameters"`

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

type CreateReadOnlyDBInstanceResponse struct {
	*tchttp.BaseResponse
	Response *CreateReadOnlyDBInstanceResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateReadOnlyGroupNetworkAccessRequestParams struct {
	// ROGroupId specifies the read-only group ID in the format of pgrogrp-4t9c6g7k. it can be obtained through the DescribeReadOnlyGroups api (https://www.tencentcloud.com/document/product/409/39725?lang=en).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Unified VPC ID.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

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

	// Whether to manually assign the VIP. Valid values: `true` (manually assign), `false` (automatically assign).
	IsAssignVip *bool `json:"IsAssignVip,omitnil,omitempty" name:"IsAssignVip"`

	// Target VIP address. when this parameter is not specified and IsAssignVip is true, the system automatically assigns a VIP by default.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

type CreateReadOnlyGroupNetworkAccessRequest struct {
	*tchttp.BaseRequest
	
	// ROGroupId specifies the read-only group ID in the format of pgrogrp-4t9c6g7k. it can be obtained through the DescribeReadOnlyGroups api (https://www.tencentcloud.com/document/product/409/39725?lang=en).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Unified VPC ID.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

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

	// Whether to manually assign the VIP. Valid values: `true` (manually assign), `false` (automatically assign).
	IsAssignVip *bool `json:"IsAssignVip,omitnil,omitempty" name:"IsAssignVip"`

	// Target VIP address. when this parameter is not specified and IsAssignVip is true, the system automatically assigns a VIP by default.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

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

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

// Predefined struct for user
type CreateReadOnlyGroupNetworkAccessResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type CreateReadOnlyGroupNetworkAccessResponse struct {
	*tchttp.BaseResponse
	Response *CreateReadOnlyGroupNetworkAccessResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateReadOnlyGroupRequestParams struct {
	// Primary instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	MasterDBInstanceId *string `json:"MasterDBInstanceId,omitnil,omitempty" name:"MasterDBInstanceId"`

	// Read-Only group name. only supports chinese, english, digits, "_", or "-" with length less than 60.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Project ID. default value is 0, means it belongs to the default project.
	ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// VPC ID. note: uses classic networks by default. currently, basic networks are not supported, so this parameter is required.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID. note: uses classic networks by default. currently, basic networks are not supported, so this parameter is required.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Delay time size switch: 0 for off, 1 for on. this parameter is required.
	ReplayLagEliminate *uint64 `json:"ReplayLagEliminate,omitnil,omitempty" name:"ReplayLagEliminate"`

	// Delay space size switch: 0 for off, 1 for on. this parameter must match ReplayLagEliminate.
	ReplayLatencyEliminate *uint64 `json:"ReplayLatencyEliminate,omitnil,omitempty" name:"ReplayLatencyEliminate"`

	// The size threshold of the delay time, a positive integer with unit: s. this parameter is required when ReplayLagEliminate is 1 and must be set to 0 when ReplayLagEliminate is 0.
	MaxReplayLag *uint64 `json:"MaxReplayLag,omitnil,omitempty" name:"MaxReplayLag"`

	// Delay threshold for space size, a positive integer in MB. this parameter is required when ReplayLatencyEliminate is 1 and must be set to 0 when ReplayLatencyEliminate is 0.
	MaxReplayLatency *uint64 `json:"MaxReplayLatency,omitnil,omitempty" name:"MaxReplayLatency"`

	// Specifies the minimum number of instances to retain with delay removal. value range [0,100]. this parameter is required when ReplayLatencyEliminate is 1 and invalid when ReplayLagEliminate is 0.
	MinDelayEliminateReserve *uint64 `json:"MinDelayEliminateReserve,omitnil,omitempty" name:"MinDelayEliminateReserve"`

	// Security group ID
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`
}

type CreateReadOnlyGroupRequest struct {
	*tchttp.BaseRequest
	
	// Primary instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	MasterDBInstanceId *string `json:"MasterDBInstanceId,omitnil,omitempty" name:"MasterDBInstanceId"`

	// Read-Only group name. only supports chinese, english, digits, "_", or "-" with length less than 60.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Project ID. default value is 0, means it belongs to the default project.
	ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// VPC ID. note: uses classic networks by default. currently, basic networks are not supported, so this parameter is required.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID. note: uses classic networks by default. currently, basic networks are not supported, so this parameter is required.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Delay time size switch: 0 for off, 1 for on. this parameter is required.
	ReplayLagEliminate *uint64 `json:"ReplayLagEliminate,omitnil,omitempty" name:"ReplayLagEliminate"`

	// Delay space size switch: 0 for off, 1 for on. this parameter must match ReplayLagEliminate.
	ReplayLatencyEliminate *uint64 `json:"ReplayLatencyEliminate,omitnil,omitempty" name:"ReplayLatencyEliminate"`

	// The size threshold of the delay time, a positive integer with unit: s. this parameter is required when ReplayLagEliminate is 1 and must be set to 0 when ReplayLagEliminate is 0.
	MaxReplayLag *uint64 `json:"MaxReplayLag,omitnil,omitempty" name:"MaxReplayLag"`

	// Delay threshold for space size, a positive integer in MB. this parameter is required when ReplayLatencyEliminate is 1 and must be set to 0 when ReplayLatencyEliminate is 0.
	MaxReplayLatency *uint64 `json:"MaxReplayLatency,omitnil,omitempty" name:"MaxReplayLatency"`

	// Specifies the minimum number of instances to retain with delay removal. value range [0,100]. this parameter is required when ReplayLatencyEliminate is 1 and invalid when ReplayLagEliminate is 0.
	MinDelayEliminateReserve *uint64 `json:"MinDelayEliminateReserve,omitnil,omitempty" name:"MinDelayEliminateReserve"`

	// Security group ID
	SecurityGroupIds []*string `json:"SecurityGroupIds,omitnil,omitempty" name:"SecurityGroupIds"`
}

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

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

// Predefined struct for user
type CreateReadOnlyGroupResponseParams struct {
	// RO group ID
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type CreateReadOnlyGroupResponse struct {
	*tchttp.BaseResponse
	Response *CreateReadOnlyGroupResponseParams `json:"Response"`
}

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

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

type DBBackup struct {
	// Unique backup file ID
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// File generation start time
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// File generation end time
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

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

	// Policy (0: instance backup, 1: multi-database backup)
	Strategy *int64 `json:"Strategy,omitnil,omitempty" name:"Strategy"`

	// Type (0: scheduled)
	Way *int64 `json:"Way,omitnil,omitempty" name:"Way"`

	// Backup mode (1: full)
	Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Status (1: creating, 2: success, 3: failure)
	Status *int64 `json:"Status,omitnil,omitempty" name:"Status"`

	// DB list
	DbList []*string `json:"DbList,omitnil,omitempty" name:"DbList"`

	// Download address on private network
	InternalAddr *string `json:"InternalAddr,omitnil,omitempty" name:"InternalAddr"`

	// Download address on public network
	ExternalAddr *string `json:"ExternalAddr,omitnil,omitempty" name:"ExternalAddr"`

	// Backup set ID.
	SetId *string `json:"SetId,omitnil,omitempty" name:"SetId"`
}

type DBInstance struct {
	// <p>Region of the instance, for example: ap-guangzhou, corresponds to the region field in RegionSet.</p>
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// <p>Availability zone to which the instance belongs, for example: ap-guangzhou-3, corresponds to the Zone field in ZoneSet.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>VPC ID, such as vpc-e6w23k31. A valid VPC ID can be obtained by logging in to the console to query or by calling the API <a href="https://www.tencentcloud.com/document/api/215/15778?from_cn_redirect=1">DescribeVpcs</a> and acquiring the unVpcId field in API return.</p>
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// <p>VPC subnet ID, such as subnet-51lcif9y. An effective VPC subnet ID can be obtained by logging in to the console to query. You can also call API <a href="https://www.tencentcloud.com/document/api/215/15784?from_cn_redirect=1">DescribeSubnets</a> and get it from the unSubnetId field in API return.</p>
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// <p>Instance ID.</p>
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// <p>Instance name.</p>
	DBInstanceName *string `json:"DBInstanceName,omitnil,omitempty" name:"DBInstanceName"`

	// <p>Instance status, including: `applying` (applying), `init` (to be initialized), `initing` (initializing), `running` (running), `limited run` (restricted operation), `isolating` (isolating), `isolated` (isolated), `disisolating` (de-isolating), `recycling` (recycling), `recycled` (recycled), `job running` (task executing), `offline` (offline), `migrating` (migrating), `expanding` (scaling out), `waitSwitch` (waiting to switch), `switching` (switching), `readonly` (readonly), `restarting` (restarting), `network changing` (network modification in progress), `upgrading` (kernel version upgrading), `audit-switching` (audit status changing), `primary-switching` (primary-secondary switching), `offlining` (offline), `deployment changing` (modify AZ), `cloning` (recovering data), `parameter modifying` (parameter modification in progress), `log-switching` (log status change), `restoring` (recovering), and `expanding` (scaling out)</p>
	DBInstanceStatus *string `json:"DBInstanceStatus,omitnil,omitempty" name:"DBInstanceStatus"`

	// <p>Memory size allocated to the instance, measurement unit: GB</p>
	DBInstanceMemory *uint64 `json:"DBInstanceMemory,omitnil,omitempty" name:"DBInstanceMemory"`

	// <p>Storage space size allocated to the instance, measurement unit: GB</p>
	DBInstanceStorage *uint64 `json:"DBInstanceStorage,omitnil,omitempty" name:"DBInstanceStorage"`

	// <p>Number of CPUs allocated to the instance, unit: piece</p>
	DBInstanceCpu *uint64 `json:"DBInstanceCpu,omitnil,omitempty" name:"DBInstanceCpu"`

	// <p>Purchasable specification ID.</p>
	DBInstanceClass *string `json:"DBInstanceClass,omitnil,omitempty" name:"DBInstanceClass"`

	// <p>PostgreSQL major version number. Version information can be obtained from <a href="https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1">DescribeDBVersions</a>. Currently supports major versions 10, 11, 12, 13, 14, and 15.</p>
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// <p>PostgreSQL community major version + minor version number, such as 12.4. Version information can be obtained from <a href="https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1">DescribeDBVersions</a>.</p>
	DBVersion *string `json:"DBVersion,omitnil,omitempty" name:"DBVersion"`

	// <p>PostgreSQL Kernel Version, for example v12.7_r1.8. Version information can be obtained from <a href="https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1">DescribeDBVersions</a>.</p>
	DBKernelVersion *string `json:"DBKernelVersion,omitnil,omitempty" name:"DBKernelVersion"`

	// <p>Instance types:</p><li>primary: Primary instance</li><li>readonly: Read-only instance</li><li>guard: Disaster recovery instance</li><li>temp: Temporary instance</li>
	DBInstanceType *string `json:"DBInstanceType,omitnil,omitempty" name:"DBInstanceType"`

	// <p>Instance version currently only supports standard (dual-server high-availability edition, one master and one slave).</p>
	DBInstanceVersion *string `json:"DBInstanceVersion,omitnil,omitempty" name:"DBInstanceVersion"`

	// <p>Instance character set, which currently supports only:</p><li>UTF8</li><li>LATIN1</li>
	DBCharset *string `json:"DBCharset,omitnil,omitempty" name:"DBCharset"`

	// <p>Instance creation time.</p>
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// <p>The time when the instance executed the last update.</p>
	UpdateTime *string `json:"UpdateTime,omitnil,omitempty" name:"UpdateTime"`

	// <p>Instance expiration time.</p>
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`

	// <p>Instance isolation time.</p>
	IsolatedTime *string `json:"IsolatedTime,omitnil,omitempty" name:"IsolatedTime"`

	// <p>Billing mode:</p><li>prepaid: Yearly/monthly subscription, prepayment</li><li>postpaid: Pay-as-you-go, postpaid</li>
	PayType *string `json:"PayType,omitnil,omitempty" name:"PayType"`

	// <p>Auto-renewal or not:</p><li>0: Manual renewal</li><li>1: Auto renewal</li>Default value: 0
	AutoRenew *uint64 `json:"AutoRenew,omitnil,omitempty" name:"AutoRenew"`

	// <p>Instance network connection information.</p>
	DBInstanceNetInfo []*DBInstanceNetInfo `json:"DBInstanceNetInfo,omitnil,omitempty" name:"DBInstanceNetInfo"`

	// <p>Machine type.</p>
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// <p>User's app id.</p>
	AppId *uint64 `json:"AppId,omitnil,omitempty" name:"AppId"`

	// <p>Uid of the instance.</p>
	Uid *uint64 `json:"Uid,omitnil,omitempty" name:"Uid"`

	// <p>Project ID.</p>
	ProjectId *uint64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// <p>Tag information associated with the instance.</p>
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

	// <p>Primary instance information. Returned only when the instance is a read-only instance.</p>
	MasterDBInstanceId *string `json:"MasterDBInstanceId,omitnil,omitempty" name:"MasterDBInstanceId"`

	// <p>Number of read-only instances.</p>
	ReadOnlyInstanceNum *int64 `json:"ReadOnlyInstanceNum,omitnil,omitempty" name:"ReadOnlyInstanceNum"`

	// <p>State of the read-only instance in the read-only group.</p>
	StatusInReadonlyGroup *string `json:"StatusInReadonlyGroup,omitnil,omitempty" name:"StatusInReadonlyGroup"`

	// <p>Offline time.</p>
	OfflineTime *string `json:"OfflineTime,omitnil,omitempty" name:"OfflineTime"`

	// <p>Instance node information.</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	DBNodeSet []*DBNode `json:"DBNodeSet,omitnil,omitempty" name:"DBNodeSet"`

	// <p>Whether the instance supports TDE data encryption:</p><li>0: Not supported</li><li>1: Supported</li>Default value: 0. For TDE data encryption, see [Overview of Data Transparent Encryption](https://www.tencentcloud.com/document/product/409/71748?from_cn_redirect=1).
	IsSupportTDE *int64 `json:"IsSupportTDE,omitnil,omitempty" name:"IsSupportTDE"`

	// <p>Database engine, support:</p><li>`postgresql`: TencentDB for PostgreSQL</li><li>`mssql_compatible`: MSSQL compatible - TencentDB for PostgreSQL</li>Default value: postgresql
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Configuration information for the database engine. The configuration format is as follows:<br>{&quot;$key1&quot;:&quot;$value1&quot;, &quot;$key2&quot;:&quot;$value2&quot;}<br>Supported engines:<br>mssql_compatible engine:</p><li>migrationMode: Database schema, optional parameter. Valid values: single-db (single-database mode), multi-db (multi-database mode). Default is single-db.</li><li>defaultLocale: Sorting area rule, optional parameter, cannot be modified after initialization. Default is en_US. Valid values include: "af_ZA", "sq_AL", "ar_DZ", "ar_BH", "ar_EG", "ar_IQ", "ar_JO", "ar_KW", "ar_LB", "ar_LY", "ar_MA", "ar_OM", "ar_QA", "ar_SA", "ar_SY", "ar_TN", "ar_AE", "ar_YE", "hy_AM", "az_Cyrl_AZ", "az_Latn_AZ", "eu_ES", "be_BY", "bg_BG", "ca_ES", "zh_HK", "zh_MO", "zh_CN", "zh_SG", "zh_TW", "hr_HR", "cs_CZ", "da_DK", "nl_BE", "nl_NL", "en_AU", "en_BZ", "en_CA", "en_IE", "en_JM", "en_NZ", "en_PH", "en_ZA", "en_TT", "en_GB", "en_US", "en_ZW", "et_EE", "fo_FO", "fa_IR", "fi_FI", "fr_BE", "fr_CA", "fr_FR", "fr_LU", "fr_MC", "fr_CH", "mk_MK", "ka_GE", "de_AT", "de_DE", "de_LI", "de_LU", "de_CH", "el_GR", "gu_IN", "he_IL", "hi_IN", "hu_HU", "is_IS", "id_ID", "it_IT", "it_CH", "ja_JP", "kn_IN", "kok_IN", "ko_KR", "ky_KG", "lv_LV", "lt_LT", "ms_BN", "ms_MY", "mr_IN", "mn_MN", "nb_NO", "nn_NO", "pl_PL", "pt_BR", "pt_PT", "pa_IN", "ro_RO", "ru_RU", "sa_IN", "sr_Cyrl_RS", "sr_Latn_RS", "sk_SK", "sl_SI", "es_AR", "es_BO", "es_CL", "es_CO", "es_CR", "es_DO", "es_EC", "es_SV", "es_GT", "es_HN", "es_MX", "es_NI", "es_PA", "es_PY","es_PE", "es_PR", "es_ES", "es_TRADITIONAL", "es_UY", "es_VE", "sw_KE", "sv_FI", "sv_SE", "tt_RU", "te_IN", "th_TH", "tr_TR", "uk_UA", "ur_IN", "ur_PK", "uz_Cyrl_UZ", "uz_Latn_UZ", "vi_VN".</li><li>serverCollationName: Collation name, optional parameter, cannot be modified after initialization. Default is sql_latin1_general_cp1_ci_as. Valid values include: "bbf_unicode_general_ci_as", "bbf_unicode_cp1_ci_as", "bbf_unicode_CP1250_ci_as", "bbf_unicode_CP1251_ci_as", "bbf_unicode_cp1253_ci_as", "bbf_unicode_cp1254_ci_as", "bbf_unicode_cp1255_ci_as", "bbf_unicode_cp1256_ci_as", "bbf_unicode_cp1257_ci_as", "bbf_unicode_cp1258_ci_as", "bbf_unicode_cp874_ci_as", "sql_latin1_general_cp1250_ci_as", "sql_latin1_general_cp1251_ci_as", "sql_latin1_general_cp1_ci_as", "sql_latin1_general_cp1253_ci_as", "sql_latin1_general_cp1254_ci_as", "sql_latin1_general_cp1255_ci_as","sql_latin1_general_cp1256_ci_as", "sql_latin1_general_cp1257_ci_as", "sql_latin1_general_cp1258_ci_as", "chinese_prc_ci_as", "cyrillic_general_ci_as", "finnish_swedish_ci_as", "french_ci_as", "japanese_ci_as", "korean_wansung_ci_as", "latin1_general_ci_as", "modern_spanish_ci_as", "polish_ci_as", "thai_ci_as", "traditional_spanish_ci_as", "turkish_ci_as", "ukrainian_ci_as", "vietnamese_ci_as".</li>
	DBEngineConfig *string `json:"DBEngineConfig,omitnil,omitempty" name:"DBEngineConfig"`

	// <p>Instance network information list (deprecated)</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	NetworkAccessList []*NetworkAccess `json:"NetworkAccessList,omitnil,omitempty" name:"NetworkAccessList"`

	// <p>Whether the instance supports Ipv6:</p><li>0: No</li><li>1: Yes</li>Default value: 0
	SupportIpv6 *uint64 `json:"SupportIpv6,omitnil,omitempty" name:"SupportIpv6"`

	// <p>Number of cpu cores that have been elastically scaled out for the instance</p>
	ExpandedCpu *uint64 `json:"ExpandedCpu,omitnil,omitempty" name:"ExpandedCpu"`

	// <p>Whether to enable deletion protection for the instance, values as follows:</p><ul><li>true: enable deletion protection</li><li>false: disable deletion protection</li></ul>
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`

	// <p>Instance storage type. Available values: PHYSICAL_LOCAL_SSD: LOCAL SSD hard disk of PHYSICAL machine; CLOUD_PREMIUM: high-performance CLOUD block storage; CLOUD_SSD: SSD CLOUD disk; CLOUD_HSSD: enhanced SSD CLOUD disk.</p>
	DBInstanceStorageType *string `json:"DBInstanceStorageType,omitnil,omitempty" name:"DBInstanceStorageType"`
}

type DBInstanceNetInfo struct {
	// DNS domain name
	Address *string `json:"Address,omitnil,omitempty" name:"Address"`

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

	// Connection port address
	Port *uint64 `json:"Port,omitnil,omitempty" name:"Port"`

	// Network type. 1: inner (private network address), 2: public (public network address)
	NetType *string `json:"NetType,omitnil,omitempty" name:"NetType"`

	// Network connection status. Valid values: `initing` (never enabled before), `opened` (enabled), `closed` (disabled), `opening` (enabling), `closing` (disabling)
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// VPC ID. specifies the ID of the virtual private cloud.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

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

	// Specifies the protocol type to connect to the database. currently supported: postgresql, mssql (mssql compatible syntax).
	ProtocolType *string `json:"ProtocolType,omitnil,omitempty" name:"ProtocolType"`
}

type DBNode struct {
	// Node type. Valid values:
	// `Primary`;
	// `Standby`.
	Role *string `json:"Role,omitnil,omitempty" name:"Role"`

	// AZ where the node resides, such as ap-guangzhou-1.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// CDC ID.
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}

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

	// Specifies the database owner.
	DatabaseOwner *string `json:"DatabaseOwner,omitnil,omitempty" name:"DatabaseOwner"`

	// Specifies the database character encoding.
	Encoding *string `json:"Encoding,omitnil,omitempty" name:"Encoding"`

	// Specifies the database sorting rule.
	Collate *string `json:"Collate,omitnil,omitempty" name:"Collate"`

	// Specifies the character category of the database.
	Ctype *string `json:"Ctype,omitnil,omitempty" name:"Ctype"`

	// Specifies whether the database allows connections.
	AllowConn *bool `json:"AllowConn,omitnil,omitempty" name:"AllowConn"`

	// Maximum number of connections for the database. -1 indicates unlimited.
	ConnLimit *int64 `json:"ConnLimit,omitnil,omitempty" name:"ConnLimit"`

	// Specifies the database permission list.
	Privileges *string `json:"Privileges,omitnil,omitempty" name:"Privileges"`
}

type DatabaseObject struct {
	// Specifies the supported object types in the database: account, database, schema, sequence, procedure, type, function, table, view, matview, column.
	ObjectType *string `json:"ObjectType,omitnil,omitempty" name:"ObjectType"`

	// Specifies the database object name.
	ObjectName *string `json:"ObjectName,omitnil,omitempty" name:"ObjectName"`

	// Describes the database object and the database name it belongs to. this parameter is required when the description object type is not database.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Specifies the schema name of the database object to describe. this parameter is required when the description object is not database or schema.
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Specifies the database object to describe and the table name it belongs to. this parameter is required when the object type is column.
	TableName *string `json:"TableName,omitnil,omitempty" name:"TableName"`
}

type DatabasePrivilege struct {
	// The database object. when ObjectType is database, DatabaseName/SchemaName/TableName can be empty. when ObjectType is schema, SchemaName/TableName can be empty. when ObjectType is column, TableName cannot be empty. other cases can be empty.
	// Note: This field may return null, indicating that no valid values can be obtained.
	Object *DatabaseObject `json:"Object,omitnil,omitempty" name:"Object"`

	// Specifies the permission list of the specified account for the database object.
	// Note: This field may return null, indicating that no valid values can be obtained.
	PrivilegeSet []*string `json:"PrivilegeSet,omitnil,omitempty" name:"PrivilegeSet"`
}

type DedicatedCluster struct {
	// CDC ID.
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

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

	// Specifies the AZ of the exclusive cluster.
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Disaster recovery cluster.
	StandbyDedicatedClusterSet []*string `json:"StandbyDedicatedClusterSet,omitnil,omitempty" name:"StandbyDedicatedClusterSet"`

	// Specifies the instance count.
	InstanceCount *int64 `json:"InstanceCount,omitnil,omitempty" name:"InstanceCount"`

	// Total number of cpus.
	CpuTotal *int64 `json:"CpuTotal,omitnil,omitempty" name:"CpuTotal"`

	// Specifies the available amount of Cpu.
	CpuAvailable *int64 `json:"CpuAvailable,omitnil,omitempty" name:"CpuAvailable"`

	// Total memory capacity in GB.
	MemTotal *int64 `json:"MemTotal,omitnil,omitempty" name:"MemTotal"`

	// Available memory in GB.
	MemAvailable *int64 `json:"MemAvailable,omitnil,omitempty" name:"MemAvailable"`

	// Total disk capacity (unit: GB).
	DiskTotal *int64 `json:"DiskTotal,omitnil,omitempty" name:"DiskTotal"`

	// Disk availability (unit: GB).
	DiskAvailable *int64 `json:"DiskAvailable,omitnil,omitempty" name:"DiskAvailable"`
}

// Predefined struct for user
type DeleteAccountRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Account name to be deleted. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`
}

type DeleteAccountRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Account name to be deleted. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteAuditLogFileRequestParams struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Product name, fixed value: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Audit log file name</p>
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`
}

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

	// <p>Product name, fixed value: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Audit log file name</p>
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteBackupPlanRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Backup plan ID. obtain through the api [DescribeBackupPlans](https://www.tencentcloud.com/document/product/409/45151?lang=en).
	PlanId *string `json:"PlanId,omitnil,omitempty" name:"PlanId"`
}

type DeleteBackupPlanRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Backup plan ID. obtain through the api [DescribeBackupPlans](https://www.tencentcloud.com/document/product/409/45151?lang=en).
	PlanId *string `json:"PlanId,omitnil,omitempty" name:"PlanId"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteBaseBackupRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Data backup ID. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343?lang=en). automatic backup sets cannot be deleted within 7 days.
	BaseBackupId *string `json:"BaseBackupId,omitnil,omitempty" name:"BaseBackupId"`
}

type DeleteBaseBackupRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Data backup ID. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343?lang=en). automatic backup sets cannot be deleted within 7 days.
	BaseBackupId *string `json:"BaseBackupId,omitnil,omitempty" name:"BaseBackupId"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteDBInstanceNetworkAccessRequestParams struct {
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Unified VPC ID. If you want to delete the classic network, set the parameter to `0`.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID. If you want to delete the classic network, set the parameter to `0`.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Target VIP.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

type DeleteDBInstanceNetworkAccessRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Unified VPC ID. If you want to delete the classic network, set the parameter to `0`.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID. If you want to delete the classic network, set the parameter to `0`.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Target VIP.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

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

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

// Predefined struct for user
type DeleteDBInstanceNetworkAccessResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type DeleteDBInstanceNetworkAccessResponse struct {
	*tchttp.BaseResponse
	Response *DeleteDBInstanceNetworkAccessResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DeleteLogBackupRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Log backup ID. obtain through the api [DescribeLogBackups](https://www.tencentcloud.com/document/api/409/89021?from_cn_redirect=1). note: automatic backup sets cannot be deleted within 7 days.
	LogBackupId *string `json:"LogBackupId,omitnil,omitempty" name:"LogBackupId"`
}

type DeleteLogBackupRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Log backup ID. obtain through the api [DescribeLogBackups](https://www.tencentcloud.com/document/api/409/89021?from_cn_redirect=1). note: automatic backup sets cannot be deleted within 7 days.
	LogBackupId *string `json:"LogBackupId,omitnil,omitempty" name:"LogBackupId"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteParameterTemplateRequestParams struct {
	// Specifies the parameter template ID, which uniquely identifies the parameter template to be operated. it can be obtained through the api [DescribeParameterTemplates](https://www.tencentcloud.com/document/api/409/84067?from_cn_redirect=1).
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`
}

type DeleteParameterTemplateRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the parameter template ID, which uniquely identifies the parameter template to be operated. it can be obtained through the api [DescribeParameterTemplates](https://www.tencentcloud.com/document/api/409/84067?from_cn_redirect=1).
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteReadOnlyGroupNetworkAccessRequestParams struct {
	// ROGroupId specifies the read-only group ID in the format of pgrogrp-4t9c6g7k. it can be obtained through the DescribeReadOnlyGroups api (https://www.tencentcloud.com/document/api/409/52599?from_cn_redirect=1).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Unified VPC ID. If you want to delete the classic network, set the parameter to `0`.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID. If you want to delete the classic network, set the parameter to `0`.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Target VIP.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

type DeleteReadOnlyGroupNetworkAccessRequest struct {
	*tchttp.BaseRequest
	
	// ROGroupId specifies the read-only group ID in the format of pgrogrp-4t9c6g7k. it can be obtained through the DescribeReadOnlyGroups api (https://www.tencentcloud.com/document/api/409/52599?from_cn_redirect=1).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Unified VPC ID. If you want to delete the classic network, set the parameter to `0`.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// Subnet ID. If you want to delete the classic network, set the parameter to `0`.
	SubnetId *string `json:"SubnetId,omitnil,omitempty" name:"SubnetId"`

	// Target VIP.
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`
}

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

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

// Predefined struct for user
type DeleteReadOnlyGroupNetworkAccessResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type DeleteReadOnlyGroupNetworkAccessResponse struct {
	*tchttp.BaseResponse
	Response *DeleteReadOnlyGroupNetworkAccessResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DeleteReadOnlyGroupRequestParams struct {
	// ID of the RO group to be deleted
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

type DeleteReadOnlyGroupRequest struct {
	*tchttp.BaseRequest
	
	// ID of the RO group to be deleted
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

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

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

// Predefined struct for user
type DeleteReadOnlyGroupResponseParams struct {
	// Process ID
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

type DeleteReadOnlyGroupResponse struct {
	*tchttp.BaseResponse
	Response *DeleteReadOnlyGroupResponseParams `json:"Response"`
}

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

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

type DeliverSummary struct {
	// <p>Delivery consumers currently only support CLS</p>
	DeliverConsumer *string `json:"DeliverConsumer,omitnil,omitempty" name:"DeliverConsumer"`

	// <p>Consumer name submission, currently only support CLS</p>
	DeliverConsumerName *string `json:"DeliverConsumerName,omitnil,omitempty" name:"DeliverConsumerName"`

	// <p>Currently only support mq for the delivery type</p>
	DeliverType *string `json:"DeliverType,omitnil,omitempty" name:"DeliverType"`

	// <p>Delivery subtype, currently only support CLS</p>
	DeliverSubType *string `json:"DeliverSubType,omitnil,omitempty" name:"DeliverSubType"`

	// <p>Delivery error</p>
	DeliverError *string `json:"DeliverError,omitnil,omitempty" name:"DeliverError"`
}

// Predefined struct for user
type DescribeAccountPrivilegesRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Describes the permissions owned by this account for a database object. the account name can be obtained through the [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109?lang=en) api.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Specifies the database object information to query.
	DatabaseObjectSet []*DatabaseObject `json:"DatabaseObjectSet,omitnil,omitempty" name:"DatabaseObjectSet"`
}

type DescribeAccountPrivilegesRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Describes the permissions owned by this account for a database object. the account name can be obtained through the [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109?lang=en) api.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Specifies the database object information to query.
	DatabaseObjectSet []*DatabaseObject `json:"DatabaseObjectSet,omitnil,omitempty" name:"DatabaseObjectSet"`
}

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

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

// Predefined struct for user
type DescribeAccountPrivilegesResponseParams struct {
	// Specifies that the user has CREATE, CONNECT, and TEMPORARY permissions on the database user_database.
	PrivilegeSet []*DatabasePrivilege `json:"PrivilegeSet,omitnil,omitempty" name:"PrivilegeSet"`

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

type DescribeAccountPrivilegesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAccountPrivilegesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeAccountsRequestParams struct {
	// Instance ID, such as postgres-6fego161. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Pagination return. maximum return per page. default 20. value range 1-100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Return data is sorted by creation time or username. valid values: createTime, name, updateTime. createTime - sort by creation time; name - sort by username; updateTime - sort by update time.
	// Default value: createTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Specifies whether the returned results are in ascending or descending order. valid values: desc or asc. desc - descending order; asc - ascending order.
	// Default value: desc.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeAccountsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID, such as postgres-6fego161. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Pagination return. maximum return per page. default 20. value range 1-100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Return data is sorted by creation time or username. valid values: createTime, name, updateTime. createTime - sort by creation time; name - sort by username; updateTime - sort by update time.
	// Default value: createTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Specifies whether the returned results are in ascending or descending order. valid values: desc or asc. desc - descending order; asc - ascending order.
	// Default value: desc.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeAccountsResponseParams struct {
	// Number of date entries returned for this API call.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Detailed account list information. when the CreateTime field is 0000-00-00 00:00:00, it means the corresponding account is created by direct connection database, not through the CreateAccount api.
	Details []*AccountInfo `json:"Details,omitnil,omitempty" name:"Details"`

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

type DescribeAccountsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAccountsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeAuditInstanceListRequestParams struct {
	// <p>Product name: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Whether to enable</p><p>Enumeration value:</p><ul><li>0: Not enabled</li><li>1: Enabled</li></ul>
	AuditSwitch *uint64 `json:"AuditSwitch,omitnil,omitempty" name:"AuditSwitch"`

	// <p>Pagination limit</p>
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Page offset amount</p>
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// <p>Instance filtering parameters</p><p>Input parameter limitation: Supported filter criteria: InstanceId-instance ID, InstanceName-instance name</p>
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeAuditInstanceListRequest struct {
	*tchttp.BaseRequest
	
	// <p>Product name: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Whether to enable</p><p>Enumeration value:</p><ul><li>0: Not enabled</li><li>1: Enabled</li></ul>
	AuditSwitch *uint64 `json:"AuditSwitch,omitnil,omitempty" name:"AuditSwitch"`

	// <p>Pagination limit</p>
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Page offset amount</p>
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// <p>Instance filtering parameters</p><p>Input parameter limitation: Supported filter criteria: InstanceId-instance ID, InstanceName-instance name</p>
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

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

// Predefined struct for user
type DescribeAuditInstanceListResponseParams struct {
	// <p>Instance count</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// <p>Instance log information</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	Items []*AuditInstanceInfo `json:"Items,omitnil,omitempty" name:"Items"`

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

type DescribeAuditInstanceListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAuditInstanceListResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeAuditLogFilesRequestParams struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Log file name</p>
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`

	// <p>Query limit</p><p>Value range: [1, 300]</p>
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Offset</p><p>Value range: [0, 1000]</p>
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Log file name</p>
	FileName *string `json:"FileName,omitnil,omitempty" name:"FileName"`

	// <p>Query limit</p><p>Value range: [1, 300]</p>
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Offset</p><p>Value range: [0, 1000]</p>
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

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

// Predefined struct for user
type DescribeAuditLogFilesResponseParams struct {
	// <p>Total number of queries</p>
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// <p>Audit log file list</p>
	Items []*AuditLogFile `json:"Items,omitnil,omitempty" name:"Items"`

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

type DescribeAuditLogFilesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAuditLogFilesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeAuditLogsRequestParams struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Start time</p><p>Parameter format: 2026-03-25 00:00:00</p>
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// <p>End time</p><p>Parameter format: 2026-03-25 01:00:00</p>
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// <p>Query limit</p><p>Value range: [1, 100]</p>
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Product name</p><p>Parameter format: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Offset</p><p>Value range: [0, 10000]</p>
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// <p>Sorting method</p><p>Input parameter limitation: Timestamp,AffectRows,ExecTime</p>
	Order *string `json:"Order,omitnil,omitempty" name:"Order"`

	// <p>Sorting field</p><p>Input limit: ASC, DESC</p>
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// <p>Filter criteria</p>
	Filter *AuditLogFilter `json:"Filter,omitnil,omitempty" name:"Filter"`
}

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

	// <p>Start time</p><p>Parameter format: 2026-03-25 00:00:00</p>
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// <p>End time</p><p>Parameter format: 2026-03-25 01:00:00</p>
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// <p>Query limit</p><p>Value range: [1, 100]</p>
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Product name</p><p>Parameter format: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`

	// <p>Offset</p><p>Value range: [0, 10000]</p>
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// <p>Sorting method</p><p>Input parameter limitation: Timestamp,AffectRows,ExecTime</p>
	Order *string `json:"Order,omitnil,omitempty" name:"Order"`

	// <p>Sorting field</p><p>Input limit: ASC, DESC</p>
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// <p>Filter criteria</p>
	Filter *AuditLogFilter `json:"Filter,omitnil,omitempty" name:"Filter"`
}

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

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

// Predefined struct for user
type DescribeAuditLogsResponseParams struct {
	// <p>log count</p>
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// <p>log details</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	Items []*AuditLog `json:"Items,omitnil,omitempty" name:"Items"`

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

type DescribeAuditLogsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAuditLogsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeAvailableRecoveryTimeRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeAvailableRecoveryTimeRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeAvailableRecoveryTimeResponseParams struct {
	// The earliest restoration time (UTC+8).
	RecoveryBeginTime *string `json:"RecoveryBeginTime,omitnil,omitempty" name:"RecoveryBeginTime"`

	// The latest restoration time (UTC+8).
	RecoveryEndTime *string `json:"RecoveryEndTime,omitnil,omitempty" name:"RecoveryEndTime"`

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

type DescribeAvailableRecoveryTimeResponse struct {
	*tchttp.BaseResponse
	Response *DescribeAvailableRecoveryTimeResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeBackupDownloadRestrictionRequestParams struct {

}

type DescribeBackupDownloadRestrictionRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeBackupDownloadRestrictionResponseParams struct {
	// Type of the network restrictions for downloading a backup file. Valid values: `NONE` (backups can be downloaded over both private and public networks), `INTRANET` (backups can only be downloaded over the private network), `CUSTOMIZE` (backups can be downloaded over specified VPCs or at specified IPs).
	RestrictionType *string `json:"RestrictionType,omitnil,omitempty" name:"RestrictionType"`

	// Specifies the vpc limit effectiveness. valid values: ALLOW (permission), DENY (DENY).
	VpcRestrictionEffect *string `json:"VpcRestrictionEffect,omitnil,omitempty" name:"VpcRestrictionEffect"`

	// Specifies the vpc id list to allow or deny downloading backup files.
	VpcIdSet []*string `json:"VpcIdSet,omitnil,omitempty" name:"VpcIdSet"`

	// ip limit effectiveness. valid values: ALLOW (permission), DENY (DENY).
	IpRestrictionEffect *string `json:"IpRestrictionEffect,omitnil,omitempty" name:"IpRestrictionEffect"`

	// Specifies the ip list to allow or deny downloading the backup file.
	IpSet []*string `json:"IpSet,omitnil,omitempty" name:"IpSet"`

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

type DescribeBackupDownloadRestrictionResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBackupDownloadRestrictionResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeBackupDownloadURLRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Backup type. Valid values: `LogBackup`, `BaseBackup`.
	BackupType *string `json:"BackupType,omitnil,omitempty" name:"BackupType"`

	// Unique backup ID.
	BackupId *string `json:"BackupId,omitnil,omitempty" name:"BackupId"`

	// Validity time of the connection. value range: [0,36]. default value: 12 hours.
	URLExpireTime *uint64 `json:"URLExpireTime,omitnil,omitempty" name:"URLExpireTime"`

	// Backup download restriction
	BackupDownloadRestriction *BackupDownloadRestriction `json:"BackupDownloadRestriction,omitnil,omitempty" name:"BackupDownloadRestriction"`
}

type DescribeBackupDownloadURLRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Backup type. Valid values: `LogBackup`, `BaseBackup`.
	BackupType *string `json:"BackupType,omitnil,omitempty" name:"BackupType"`

	// Unique backup ID.
	BackupId *string `json:"BackupId,omitnil,omitempty" name:"BackupId"`

	// Validity time of the connection. value range: [0,36]. default value: 12 hours.
	URLExpireTime *uint64 `json:"URLExpireTime,omitnil,omitempty" name:"URLExpireTime"`

	// Backup download restriction
	BackupDownloadRestriction *BackupDownloadRestriction `json:"BackupDownloadRestriction,omitnil,omitempty" name:"BackupDownloadRestriction"`
}

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

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

// Predefined struct for user
type DescribeBackupDownloadURLResponseParams struct {
	// Backup download URL
	BackupDownloadURL *string `json:"BackupDownloadURL,omitnil,omitempty" name:"BackupDownloadURL"`

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

type DescribeBackupDownloadURLResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBackupDownloadURLResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeBackupOverviewRequestParams struct {

}

type DescribeBackupOverviewRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeBackupOverviewResponseParams struct {
	// Total free space size in bytes
	TotalFreeSize *uint64 `json:"TotalFreeSize,omitnil,omitempty" name:"TotalFreeSize"`

	// Used free space size in bytes
	UsedFreeSize *uint64 `json:"UsedFreeSize,omitnil,omitempty" name:"UsedFreeSize"`

	// Used paid space size in bytes
	UsedBillingSize *uint64 `json:"UsedBillingSize,omitnil,omitempty" name:"UsedBillingSize"`

	// Number of log backups
	LogBackupCount *uint64 `json:"LogBackupCount,omitnil,omitempty" name:"LogBackupCount"`

	// Log backup size in bytes
	LogBackupSize *uint64 `json:"LogBackupSize,omitnil,omitempty" name:"LogBackupSize"`

	// Number of manually created full backups
	ManualBaseBackupCount *uint64 `json:"ManualBaseBackupCount,omitnil,omitempty" name:"ManualBaseBackupCount"`

	// Size of manually created full backups in bytes
	ManualBaseBackupSize *uint64 `json:"ManualBaseBackupSize,omitnil,omitempty" name:"ManualBaseBackupSize"`

	// Number of automatically created full backups
	AutoBaseBackupCount *uint64 `json:"AutoBaseBackupCount,omitnil,omitempty" name:"AutoBaseBackupCount"`

	// Size of automatically created full backups in bytes
	AutoBaseBackupSize *uint64 `json:"AutoBaseBackupSize,omitnil,omitempty" name:"AutoBaseBackupSize"`

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

type DescribeBackupOverviewResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBackupOverviewResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeBackupPlansRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeBackupPlansRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeBackupPlansResponseParams struct {
	// The set of instance backup plans
	Plans []*BackupPlan `json:"Plans,omitnil,omitempty" name:"Plans"`

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

type DescribeBackupPlansResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBackupPlansResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeBackupSummariesRequestParams struct {
	// The maximum number of results returned per page. Value range: 1-100. Default: `10`
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: filter by instance id (string type).
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-instance-ip: specifies the instance VPC ip for filtering (string type).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting field, supports TotalBackupSize - total size of backups, LogBackupSize - size of backup logs, ManualBaseBackupSize - size of manual backup data, AutoBaseBackupSize - size of automatic data backup. if this parameter is not input, no sorting is performed by default.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `asc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeBackupSummariesRequest struct {
	*tchttp.BaseRequest
	
	// The maximum number of results returned per page. Value range: 1-100. Default: `10`
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: filter by instance id (string type).
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-instance-ip: specifies the instance VPC ip for filtering (string type).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Sorting field, supports TotalBackupSize - total size of backups, LogBackupSize - size of backup logs, ManualBaseBackupSize - size of manual backup data, AutoBaseBackupSize - size of automatic data backup. if this parameter is not input, no sorting is performed by default.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `asc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeBackupSummariesResponseParams struct {
	// Backup statistics list.
	BackupSummarySet []*BackupSummary `json:"BackupSummarySet,omitnil,omitempty" name:"BackupSummarySet"`

	// Number of all queried backups.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeBackupSummariesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBackupSummariesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeBaseBackupsRequestParams struct {
	// Minimum end time of a backup in the format of `2018-01-01 00:00:00`. It is 7 days ago by default.
	MinFinishTime *string `json:"MinFinishTime,omitnil,omitempty" name:"MinFinishTime"`

	// Maximum end time of a backup in the format of `2018-01-01 00:00:00`. It is the current time by default.
	MaxFinishTime *string `json:"MaxFinishTime,omitnil,omitempty" name:"MaxFinishTime"`

	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: filter by instance id (string type).
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-instance-ip: specifies the instance VPC ip for filtering (string type).
	// base-backup-id: filter by backup set id (in string format).
	// db-instance-status: filter by instance status (in string format). valid values refer to the DBInstanceStatus field in the DBInstance structure (https://www.tencentcloud.com/document/product/409/16778#dbinstance).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of results returned per page. Value range: 1-100. Default: `10`
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Specifies the sorting field, supports StartTime, FinishTime, and Size. default value: StartTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeBaseBackupsRequest struct {
	*tchttp.BaseRequest
	
	// Minimum end time of a backup in the format of `2018-01-01 00:00:00`. It is 7 days ago by default.
	MinFinishTime *string `json:"MinFinishTime,omitnil,omitempty" name:"MinFinishTime"`

	// Maximum end time of a backup in the format of `2018-01-01 00:00:00`. It is the current time by default.
	MaxFinishTime *string `json:"MaxFinishTime,omitnil,omitempty" name:"MaxFinishTime"`

	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: filter by instance id (string type).
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-instance-ip: specifies the instance VPC ip for filtering (string type).
	// base-backup-id: filter by backup set id (in string format).
	// db-instance-status: filter by instance status (in string format). valid values refer to the DBInstanceStatus field in the DBInstance structure (https://www.tencentcloud.com/document/product/409/16778#dbinstance).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of results returned per page. Value range: 1-100. Default: `10`
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Specifies the sorting field, supports StartTime, FinishTime, and Size. default value: StartTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeBaseBackupsResponseParams struct {
	// Number of queried data backups.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Detailed data backup information list.
	BaseBackupSet []*BaseBackup `json:"BaseBackupSet,omitnil,omitempty" name:"BaseBackupSet"`

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

type DescribeBaseBackupsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeBaseBackupsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeClassesRequestParams struct {
	// <p>Availability zone name, which can be obtained through the <a href="https://www.tencentcloud.com/document/product/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Database engine. Valid values:<br>1. postgresql (TencentDB for PostgreSQL).<br>2. mssql_compatible (MSSQL compatible - TencentDB for PostgreSQL).</p>
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Database major version number, such as 12 or 13, which can be obtained through the <a href="https://www.tencentcloud.com/document/product/409/89018?from_cn_redirect=1">DescribeDBVersions</a> API.</p>
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// <p>Instance storage type. The supported specifications are returned based on the storage type.</p><p>Enumeration values:</p><ul><li>PHYSICAL_LOCAL_SSD: local SSD of physical machine.</li><li>CLOUD_PREMIUM: Premium Disk.</li><li>CLOUD_SSD: Cloud SSD.</li><li>CLOUD_HSSD: Enhanced SSD.</li></ul><p>Default value: PHYSICAL_LOCAL_SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

type DescribeClassesRequest struct {
	*tchttp.BaseRequest
	
	// <p>Availability zone name, which can be obtained through the <a href="https://www.tencentcloud.com/document/product/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Database engine. Valid values:<br>1. postgresql (TencentDB for PostgreSQL).<br>2. mssql_compatible (MSSQL compatible - TencentDB for PostgreSQL).</p>
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Database major version number, such as 12 or 13, which can be obtained through the <a href="https://www.tencentcloud.com/document/product/409/89018?from_cn_redirect=1">DescribeDBVersions</a> API.</p>
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// <p>Instance storage type. The supported specifications are returned based on the storage type.</p><p>Enumeration values:</p><ul><li>PHYSICAL_LOCAL_SSD: local SSD of physical machine.</li><li>CLOUD_PREMIUM: Premium Disk.</li><li>CLOUD_SSD: Cloud SSD.</li><li>CLOUD_HSSD: Enhanced SSD.</li></ul><p>Default value: PHYSICAL_LOCAL_SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

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

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

// Predefined struct for user
type DescribeClassesResponseParams struct {
	// <p>Database specification list.</p>
	ClassInfoSet []*ClassInfo `json:"ClassInfoSet,omitnil,omitempty" name:"ClassInfoSet"`

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

type DescribeClassesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeClassesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeCloneDBInstanceSpecRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Basic backup set ID. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343?lang=en). this parameter and RecoveryTargetTime must be selected. if set simultaneously with RecoveryTargetTime, this parameter takes precedence.
	BackupSetId *string `json:"BackupSetId,omitnil,omitempty" name:"BackupSetId"`

	// Restoration time (UTC+8). Either this parameter or `BackupSetId` must be passed in.
	RecoveryTargetTime *string `json:"RecoveryTargetTime,omitnil,omitempty" name:"RecoveryTargetTime"`
}

type DescribeCloneDBInstanceSpecRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Basic backup set ID. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343?lang=en). this parameter and RecoveryTargetTime must be selected. if set simultaneously with RecoveryTargetTime, this parameter takes precedence.
	BackupSetId *string `json:"BackupSetId,omitnil,omitempty" name:"BackupSetId"`

	// Restoration time (UTC+8). Either this parameter or `BackupSetId` must be passed in.
	RecoveryTargetTime *string `json:"RecoveryTargetTime,omitnil,omitempty" name:"RecoveryTargetTime"`
}

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

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

// Predefined struct for user
type DescribeCloneDBInstanceSpecResponseParams struct {
	// Code of the minimum specification available for purchase.
	MinSpecCode *string `json:"MinSpecCode,omitnil,omitempty" name:"MinSpecCode"`

	// The minimum disk capacity in GB available for purchase.
	MinStorage *int64 `json:"MinStorage,omitnil,omitempty" name:"MinStorage"`

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

type DescribeCloneDBInstanceSpecResponse struct {
	*tchttp.BaseResponse
	Response *DescribeCloneDBInstanceSpecResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBBackupsRequestParams struct {
	// Instance ID in the format of postgres-4wdeb0zv.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Backup mode (1: full). Currently, only full backup is supported. The value is 1.
	Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Query start time in the format of 2018-06-10 17:06:38, which cannot be more than 7 days ago
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time in the format of 2018-06-10 17:06:38
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Number of entries to be returned per page for backup list. Default value: 20. Minimum value: 1. Maximum value: 100. (If this parameter is left empty or 0, the default value will be used)
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Page number for data return in paged query. Pagination starts from 0. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeDBBackupsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID in the format of postgres-4wdeb0zv.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Backup mode (1: full). Currently, only full backup is supported. The value is 1.
	Type *int64 `json:"Type,omitnil,omitempty" name:"Type"`

	// Query start time in the format of 2018-06-10 17:06:38, which cannot be more than 7 days ago
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time in the format of 2018-06-10 17:06:38
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Number of entries to be returned per page for backup list. Default value: 20. Minimum value: 1. Maximum value: 100. (If this parameter is left empty or 0, the default value will be used)
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Page number for data return in paged query. Pagination starts from 0. Default value: 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

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

// Predefined struct for user
type DescribeDBBackupsResponseParams struct {
	// Number of backup files in the returned backup list
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Backup list
	BackupList []*DBBackup `json:"BackupList,omitnil,omitempty" name:"BackupList"`

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

type DescribeDBBackupsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBBackupsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBErrlogsRequestParams struct {
	// <p>Instance ID. It can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API.</p>
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// <p>Query start time, such as 2018-01-01 00:00:00. Log retention time defaults to 7 days. Start time cannot exceed the retention period.</p>
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// <p>Query end time, in the format of 2018-01-01 00:00:00.</p>
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// <p>Database name</p>
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// <p>Search keywords.</p>
	SearchKeys []*string `json:"SearchKeys,omitnil,omitempty" name:"SearchKeys"`

	// <p>Number of results returned per page, with a value range of 1-100. The default value is `50`.</p>
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Data offset, which starts from 0. The default value is 0.</p>
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// <p>Log filter criteria. Format is [{Type: "ApplicationName", Compare: "INC", Value: ["123"]}].</p>
	LogFilters []*LogFilter `json:"LogFilters,omitnil,omitempty" name:"LogFilters"`
}

type DescribeDBErrlogsRequest struct {
	*tchttp.BaseRequest
	
	// <p>Instance ID. It can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API.</p>
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// <p>Query start time, such as 2018-01-01 00:00:00. Log retention time defaults to 7 days. Start time cannot exceed the retention period.</p>
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// <p>Query end time, in the format of 2018-01-01 00:00:00.</p>
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// <p>Database name</p>
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// <p>Search keywords.</p>
	SearchKeys []*string `json:"SearchKeys,omitnil,omitempty" name:"SearchKeys"`

	// <p>Number of results returned per page, with a value range of 1-100. The default value is `50`.</p>
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// <p>Data offset, which starts from 0. The default value is 0.</p>
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// <p>Log filter criteria. Format is [{Type: "ApplicationName", Compare: "INC", Value: ["123"]}].</p>
	LogFilters []*LogFilter `json:"LogFilters,omitnil,omitempty" name:"LogFilters"`
}

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

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

// Predefined struct for user
type DescribeDBErrlogsResponseParams struct {
	// <p>The number of logs queried. Maximum value is 10,000.</p>
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// <p>Error log details collection.</p>
	Details []*ErrLogDetail `json:"Details,omitnil,omitempty" name:"Details"`

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

type DescribeDBErrlogsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBErrlogsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceAttributeRequestParams struct {
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeDBInstanceAttributeRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceAttributeResponseParams struct {
	// Instance details.
	DBInstance *DBInstance `json:"DBInstance,omitnil,omitempty" name:"DBInstance"`

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

type DescribeDBInstanceAttributeResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBInstanceAttributeResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceHAConfigRequestParams struct {
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeDBInstanceHAConfigRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceHAConfigResponseParams struct {
	// Primary-Standby sync mode.
	// <Li>Semi-Sync: semi-sync</li>.
	// <Li>Async: asynchronous</li>.
	SyncMode *string `json:"SyncMode,omitnil,omitempty" name:"SyncMode"`

	// Specifies the maximum delayed data volume of the high-availability standby server. the backup node can switchover to the primary node when its latency data volume is less than or equal to this value and its delay time is less than or equal to MaxStandbyLag.
	// <Li>Unit: byte</li>.
	// <Li>Value range: [1073741824, 322122547200]</li>.
	MaxStandbyLatency *uint64 `json:"MaxStandbyLatency,omitnil,omitempty" name:"MaxStandbyLatency"`

	// Maximum delay time of the high-availability standby server. the secondary node can be switched to the primary node when the backup node latency is less than or equal to this value and the delayed data volume is less than or equal to MaxStandbyLatency.
	// <Li>Specifies the unit in seconds.</li>.
	// <Li>Parameter range: [5, 10].</li>.
	MaxStandbyLag *uint64 `json:"MaxStandbyLag,omitnil,omitempty" name:"MaxStandbyLag"`

	// Maximum data sync lag for standby server. If data lag of the standby node and the delay time are both less than or equals to the values of `MaxSyncStandbyLatency` and `MaxSyncStandbyLag` respectively, the standby server adopts semi-sync replication; if not, it adopts async replication.
	// This value is only valid for the instance with `SyncMode` set to `Semi-sync`.
	// This field returns null for async instance
	// and semi-sync (non-downgradable to async) instance.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxSyncStandbyLatency *uint64 `json:"MaxSyncStandbyLatency,omitnil,omitempty" name:"MaxSyncStandbyLatency"`

	// Maximum sync delay time for standby server. If the delay time for standby server and the data lag are both less than or equals to the values of `MaxSyncStandbyLag` and `MaxSyncStandbyLatency` respectively, the standby server adopts sync replication mode; if not, it adopts async replication.
	// This value is only valid for the instance with `SyncMode` set to `Semi-sync`.
	// This field will not return for async instance
	// and semi-sync (non-downgradable to async) instance.
	// Note: This field may return null, indicating that no valid values can be obtained.
	MaxSyncStandbyLag *uint64 `json:"MaxSyncStandbyLag,omitnil,omitempty" name:"MaxSyncStandbyLag"`

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

type DescribeDBInstanceHAConfigResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBInstanceHAConfigResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceParametersRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Name of the parameter to be queried. If `ParamName` is left empty or not passed in, the list of all parameters will be returned.
	ParamName *string `json:"ParamName,omitnil,omitempty" name:"ParamName"`
}

type DescribeDBInstanceParametersRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Name of the parameter to be queried. If `ParamName` is left empty or not passed in, the list of all parameters will be returned.
	ParamName *string `json:"ParamName,omitnil,omitempty" name:"ParamName"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceParametersResponseParams struct {
	// Total number of the parameters in the returned list
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Details of the returned parameter list
	Detail []*ParamInfo `json:"Detail,omitnil,omitempty" name:"Detail"`

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

type DescribeDBInstanceParametersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBInstanceParametersResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceSSLConfigRequestParams struct {
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeDBInstanceSSLConfigRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceSSLConfigResponseParams struct {
	// true represents enabled. false represents not enabled.
	SSLEnabled *bool `json:"SSLEnabled,omitnil,omitempty" name:"SSLEnabled"`

	// Certificate download url for the cloud root certificate.
	CAUrl *string `json:"CAUrl,omitnil,omitempty" name:"CAUrl"`

	// Specifies the intranet or public network connection address in the server certificate.
	ConnectAddress *string `json:"ConnectAddress,omitnil,omitempty" name:"ConnectAddress"`

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

type DescribeDBInstanceSSLConfigResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBInstanceSSLConfigResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceSecurityGroupsRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en). specify either DBInstanceId or ReadOnlyGroupId. if both are provided, ReadOnlyGroupId is ignored.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725?lang=en). valid values: DBInstanceId and ReadOnlyGroupId (at least one is required). if you need to query the associated security group of the read-only group, only ReadOnlyGroupId is required.
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

type DescribeDBInstanceSecurityGroupsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en). specify either DBInstanceId or ReadOnlyGroupId. if both are provided, ReadOnlyGroupId is ignored.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725?lang=en). valid values: DBInstanceId and ReadOnlyGroupId (at least one is required). if you need to query the associated security group of the read-only group, only ReadOnlyGroupId is required.
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

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

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

// Predefined struct for user
type DescribeDBInstanceSecurityGroupsResponseParams struct {
	// Information of security groups in array
	SecurityGroupSet []*SecurityGroup `json:"SecurityGroupSet,omitnil,omitempty" name:"SecurityGroupSet"`

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

type DescribeDBInstanceSecurityGroupsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBInstanceSecurityGroupsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBInstancesRequestParams struct {
	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: Filter by instance ID, type string
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-project-id: Filter by project ID, type integer
	// db-pay-mode: filter by instance billing mode (prepaid - prepayment; postpaid - postpayment). string type.
	// db-tag-key: specifies the tag key to filter by (string type).
	// db-private-ip: Filter by instance Private Cloud IP, type string
	// db-public-address: filter by instance public network address (in string format)
	// db-dedicated-cluster-id: Filter by private cluster Id, type string
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of results displayed per page. value range: 0-100. input 0 to use the default configuration. default is 10.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Specifies the sorting index, such as instance Name and creation time. supports DBInstanceId, CreateTime, Name, and EndTime. default value: CreateTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `asc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeDBInstancesRequest struct {
	*tchttp.BaseRequest
	
	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: Filter by instance ID, type string
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-project-id: Filter by project ID, type integer
	// db-pay-mode: filter by instance billing mode (prepaid - prepayment; postpaid - postpayment). string type.
	// db-tag-key: specifies the tag key to filter by (string type).
	// db-private-ip: Filter by instance Private Cloud IP, type string
	// db-public-address: filter by instance public network address (in string format)
	// db-dedicated-cluster-id: Filter by private cluster Id, type string
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Number of results displayed per page. value range: 0-100. input 0 to use the default configuration. default is 10.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Specifies the sorting index, such as instance Name and creation time. supports DBInstanceId, CreateTime, Name, and EndTime. default value: CreateTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `asc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeDBInstancesResponseParams struct {
	// Number of instances found.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Instance details set.
	DBInstanceSet []*DBInstance `json:"DBInstanceSet,omitnil,omitempty" name:"DBInstanceSet"`

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

type DescribeDBInstancesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBInstancesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBVersionsRequestParams struct {
	// <p>Instance storage type. The supported versions are returned based on the disk type.</p><p>Enumeration values:</p><ul><li>PHYSICAL_LOCAL_SSD: local SSD of physical machine.</li><li>CLOUD_PREMIUM: Premium Disk.</li><li>CLOUD_SSD: Cloud SSD.</li><li>CLOUD_HSSD: Enhanced SSD.</li></ul><p>Default value: PHYSICAL_LOCAL_SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

type DescribeDBVersionsRequest struct {
	*tchttp.BaseRequest
	
	// <p>Instance storage type. The supported versions are returned based on the disk type.</p><p>Enumeration values:</p><ul><li>PHYSICAL_LOCAL_SSD: local SSD of physical machine.</li><li>CLOUD_PREMIUM: Premium Disk.</li><li>CLOUD_SSD: Cloud SSD.</li><li>CLOUD_HSSD: Enhanced SSD.</li></ul><p>Default value: PHYSICAL_LOCAL_SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

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

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

// Predefined struct for user
type DescribeDBVersionsResponseParams struct {
	// <p>Database version information list.</p>
	VersionSet []*Version `json:"VersionSet,omitnil,omitempty" name:"VersionSet"`

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

type DescribeDBVersionsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBVersionsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDBXlogsRequestParams struct {
	// Instance ID. for example, postgres-4wdeb0zv.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query start time, such as 2018-06-10 17:06:38. start time should not be less than 7 days ago.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, in the format of 2018-06-10 17:06:38.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Pagination return indicates which page of entries to return. counting begins from page 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination return indicates how many items per page. value range: 1-100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeDBXlogsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. for example, postgres-4wdeb0zv.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query start time, such as 2018-06-10 17:06:38. start time should not be less than 7 days ago.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, in the format of 2018-06-10 17:06:38.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Pagination return indicates which page of entries to return. counting begins from page 0.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Pagination return indicates how many items per page. value range: 1-100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

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

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

// Predefined struct for user
type DescribeDBXlogsResponseParams struct {
	// Indicates how many data entries are returned.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Xlog list.
	XlogList []*Xlog `json:"XlogList,omitnil,omitempty" name:"XlogList"`

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

type DescribeDBXlogsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDBXlogsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDatabaseObjectsRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the object type for querying. supported objects: database, schema, sequence, procedure, type, function, table, view, matview, column.
	ObjectType *string `json:"ObjectType,omitnil,omitempty" name:"ObjectType"`

	// Number of items displayed at a time. default 20. value range 0-100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

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

	// Describes the database the query object belongs to. this parameter is required when the query object type is not database.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Specifies the mode belonging to the query object. this parameter is required when the query object type is not database or schema.
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Specifies the table belonging to the query object. this parameter is required when the query object type is column.
	TableName *string `json:"TableName,omitnil,omitempty" name:"TableName"`
}

type DescribeDatabaseObjectsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the object type for querying. supported objects: database, schema, sequence, procedure, type, function, table, view, matview, column.
	ObjectType *string `json:"ObjectType,omitnil,omitempty" name:"ObjectType"`

	// Number of items displayed at a time. default 20. value range 0-100.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

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

	// Describes the database the query object belongs to. this parameter is required when the query object type is not database.
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// Specifies the mode belonging to the query object. this parameter is required when the query object type is not database or schema.
	SchemaName *string `json:"SchemaName,omitnil,omitempty" name:"SchemaName"`

	// Specifies the table belonging to the query object. this parameter is required when the query object type is column.
	TableName *string `json:"TableName,omitnil,omitempty" name:"TableName"`
}

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

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

// Predefined struct for user
type DescribeDatabaseObjectsResponseParams struct {
	// Query object list.
	// Note: This field may return null, indicating that no valid values can be obtained.
	ObjectSet []*string `json:"ObjectSet,omitnil,omitempty" name:"ObjectSet"`

	// Specifies the total number of objects.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeDatabaseObjectsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDatabaseObjectsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDatabasesRequestParams struct {
	// Instance ID. obtain through the API [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query using one or more filter criteria. Filter criteria currently supported include: database-name: filter by database name (in string format). Fuzzy matching is used to search for databases that meet the criteria.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of items displayed at a time. the maximum value is recommended to be 100.
	// Default value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeDatabasesRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the API [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query using one or more filter criteria. Filter criteria currently supported include: database-name: filter by database name (in string format). Fuzzy matching is used to search for databases that meet the criteria.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of items displayed at a time. the maximum value is recommended to be 100.
	// Default value: 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

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

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

// Predefined struct for user
type DescribeDatabasesResponseParams struct {
	// Database information
	Items []*string `json:"Items,omitnil,omitempty" name:"Items"`

	// Total number of databases
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Specifies the database details list.
	Databases []*Database `json:"Databases,omitnil,omitempty" name:"Databases"`

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

type DescribeDatabasesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDatabasesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClustersRequestParams struct {
	// Query using one or more filter criteria. filter criteria currently supported include:.
	// dedicated-cluster-id: filters by dedicated cluster id. string type.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

type DescribeDedicatedClustersRequest struct {
	*tchttp.BaseRequest
	
	// Query using one or more filter criteria. filter criteria currently supported include:.
	// dedicated-cluster-id: filters by dedicated cluster id. string type.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClustersResponseParams struct {
	// Exclusive cluster information.
	DedicatedClusterSet []*DedicatedCluster `json:"DedicatedClusterSet,omitnil,omitempty" name:"DedicatedClusterSet"`

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

type DescribeDedicatedClustersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedClustersResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDefaultParametersRequestParams struct {
	// Database version. specifies the major version number, such as 11, 12, 13. can be obtained from the [DescribeDBVersions](https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1) api.
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// Database engine, such as postgresql, mssql_compatible.
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`
}

type DescribeDefaultParametersRequest struct {
	*tchttp.BaseRequest
	
	// Database version. specifies the major version number, such as 11, 12, 13. can be obtained from the [DescribeDBVersions](https://www.tencentcloud.com/document/api/409/89018?from_cn_redirect=1) api.
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// Database engine, such as postgresql, mssql_compatible.
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`
}

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

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

// Predefined struct for user
type DescribeDefaultParametersResponseParams struct {
	// Number of parameters
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

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

type DescribeDefaultParametersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDefaultParametersResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeEncryptionKeysRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeEncryptionKeysRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeEncryptionKeysResponseParams struct {
	// Specifies the key information list of the instance.
	EncryptionKeys []*EncryptionKey `json:"EncryptionKeys,omitnil,omitempty" name:"EncryptionKeys"`

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

type DescribeEncryptionKeysResponse struct {
	*tchttp.BaseResponse
	Response *DescribeEncryptionKeysResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeLogBackupsRequestParams struct {
	// Minimum end time of a backup in the format of `2018-01-01 00:00:00`. It is 7 days ago by default.
	MinFinishTime *string `json:"MinFinishTime,omitnil,omitempty" name:"MinFinishTime"`

	// Maximum end time of a backup in the format of `2018-01-01 00:00:00`. It is the current time by default.
	MaxFinishTime *string `json:"MaxFinishTime,omitnil,omitempty" name:"MaxFinishTime"`

	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: filter by instance id (string type).
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-instance-ip: specifies the instance VPC ip for filtering (string type).
	// db-instance-status: filter by instance status (in string format). valid values refer to the DBInstanceStatus field in the DBInstance structure (https://www.tencentcloud.com/document/api/409/16778?from_cn_redirect=1#DBInstance).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of results returned per page. Value range: 1-100. Default: `10`.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting field, supports StartTime, FinishTime, and Size. default value: StartTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeLogBackupsRequest struct {
	*tchttp.BaseRequest
	
	// Minimum end time of a backup in the format of `2018-01-01 00:00:00`. It is 7 days ago by default.
	MinFinishTime *string `json:"MinFinishTime,omitnil,omitempty" name:"MinFinishTime"`

	// Maximum end time of a backup in the format of `2018-01-01 00:00:00`. It is the current time by default.
	MaxFinishTime *string `json:"MaxFinishTime,omitnil,omitempty" name:"MaxFinishTime"`

	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-instance-id: filter by instance id (string type).
	// db-instance-name: specifies the instance name to filter by, supports fuzzy matching (string type).
	// db-instance-ip: specifies the instance VPC ip for filtering (string type).
	// db-instance-status: filter by instance status (in string format). valid values refer to the DBInstanceStatus field in the DBInstance structure (https://www.tencentcloud.com/document/api/409/16778?from_cn_redirect=1#DBInstance).
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of results returned per page. Value range: 1-100. Default: `10`.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting field, supports StartTime, FinishTime, and Size. default value: StartTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. the default value is `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeLogBackupsResponseParams struct {
	// Number of queried log backups
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// List of log backup details
	LogBackupSet []*LogBackup `json:"LogBackupSet,omitnil,omitempty" name:"LogBackupSet"`

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

type DescribeLogBackupsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeLogBackupsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeMaintainTimeWindowRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeMaintainTimeWindowRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeMaintainTimeWindowResponseParams struct {
	// Instance ID
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Maintenance start time. time zone is UTC+8.
	MaintainStartTime *string `json:"MaintainStartTime,omitnil,omitempty" name:"MaintainStartTime"`

	// Maintenance duration. unit: hr.
	MaintainDuration *uint64 `json:"MaintainDuration,omitnil,omitempty" name:"MaintainDuration"`

	// Specifies the maintenance period.
	MaintainWeekDays []*string `json:"MaintainWeekDays,omitnil,omitempty" name:"MaintainWeekDays"`

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

type DescribeMaintainTimeWindowResponse struct {
	*tchttp.BaseResponse
	Response *DescribeMaintainTimeWindowResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeOrdersRequestParams struct {
	// Order name set
	DealNames []*string `json:"DealNames,omitnil,omitempty" name:"DealNames"`
}

type DescribeOrdersRequest struct {
	*tchttp.BaseRequest
	
	// Order name set
	DealNames []*string `json:"DealNames,omitnil,omitempty" name:"DealNames"`
}

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

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

// Predefined struct for user
type DescribeOrdersResponseParams struct {
	// Number of orders
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Order array
	Deals []*PgDeal `json:"Deals,omitnil,omitempty" name:"Deals"`

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

type DescribeOrdersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeOrdersResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeParameterTemplateAttributesRequestParams struct {
	// Specifies the parameter template ID, which can be obtained through the api [DescribeParameterTemplates](https://www.tencentcloud.com/document/api/409/84067?from_cn_redirect=1).
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`
}

type DescribeParameterTemplateAttributesRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the parameter template ID, which can be obtained through the api [DescribeParameterTemplates](https://www.tencentcloud.com/document/api/409/84067?from_cn_redirect=1).
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`
}

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

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

// Predefined struct for user
type DescribeParameterTemplateAttributesResponseParams struct {
	// Specifies the parameter template ID.
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`

	// Specifies the number of parameters in the parameter template.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Parameter information contained in the parameter template
	// Note: This field may return null, indicating that no valid values can be obtained.
	ParamInfoSet []*ParamInfo `json:"ParamInfoSet,omitnil,omitempty" name:"ParamInfoSet"`

	// Parameter template name
	TemplateName *string `json:"TemplateName,omitnil,omitempty" name:"TemplateName"`

	// Specifies the database version the parameter template applies to.
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// Specifies the database engine the parameter template applies to.
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// Parameter template description
	TemplateDescription *string `json:"TemplateDescription,omitnil,omitempty" name:"TemplateDescription"`

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

type DescribeParameterTemplateAttributesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeParameterTemplateAttributesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeParameterTemplatesRequestParams struct {
	// Filter criteria currently supported: TemplateName, TemplateId, DBMajorVersion, DBEngine. fuzzy matching is not supported for TemplateName.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of results returned per page. Value range: 0-100. Default: `20`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting metric, enumeration value, supports: CreateTime, TemplateName, DBMajorVersion. if this parameter is not set, it defaults to sorting by the parameter template number in reverse order, which means that newly added parameter templates appear at the top.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, enumeration value, supports: `asc` (ascending) and `desc` (descending). the default value is `asc`. when OrderBy is not specified, this parameter becomes invalid, at which point the sorting method follows the default sorting order provided in the OrderBy parameter description.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeParameterTemplatesRequest struct {
	*tchttp.BaseRequest
	
	// Filter criteria currently supported: TemplateName, TemplateId, DBMajorVersion, DBEngine. fuzzy matching is not supported for TemplateName.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// The maximum number of results returned per page. Value range: 0-100. Default: `20`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting metric, enumeration value, supports: CreateTime, TemplateName, DBMajorVersion. if this parameter is not set, it defaults to sorting by the parameter template number in reverse order, which means that newly added parameter templates appear at the top.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, enumeration value, supports: `asc` (ascending) and `desc` (descending). the default value is `asc`. when OrderBy is not specified, this parameter becomes invalid, at which point the sorting method follows the default sorting order provided in the OrderBy parameter description.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeParameterTemplatesResponseParams struct {
	// The total number of eligible parameter templates
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Parameter template list
	ParameterTemplateSet []*ParameterTemplate `json:"ParameterTemplateSet,omitnil,omitempty" name:"ParameterTemplateSet"`

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

type DescribeParameterTemplatesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeParameterTemplatesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeParamsEventRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DescribeParamsEventRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type DescribeParamsEventResponseParams struct {
	// Total number of modified parameters
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Details of parameter modification events
	EventItems []*EventItem `json:"EventItems,omitnil,omitempty" name:"EventItems"`

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

type DescribeParamsEventResponse struct {
	*tchttp.BaseResponse
	Response *DescribeParamsEventResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeProductConfigRequestParams struct {
	// <p>Availability zone name.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Database engine. Valid values:<br>1. postgresql (TencentDB for PostgreSQL).<br>2. mssql_compatible (MSSQL compatible - TencentDB for PostgreSQL).<br>If this parameter is not specified, the default value is postgresql.</p>
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Instance storage type. The supported versions and specifications are returned based on the storage type.</p><p>Enumeration values:</p><ul><li>PHYSICAL_LOCAL_SSD: local SSD of physical machine.</li><li>CLOUD_PREMIUM: Premium Disk.</li><li>CLOUD_SSD: Cloud SSD.</li><li>CLOUD_HSSD: Enhanced SSD.</li></ul><p>Default value: PHYSICAL_LOCAL_SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

type DescribeProductConfigRequest struct {
	*tchttp.BaseRequest
	
	// <p>Availability zone name.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Database engine. Valid values:<br>1. postgresql (TencentDB for PostgreSQL).<br>2. mssql_compatible (MSSQL compatible - TencentDB for PostgreSQL).<br>If this parameter is not specified, the default value is postgresql.</p>
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Instance storage type. The supported versions and specifications are returned based on the storage type.</p><p>Enumeration values:</p><ul><li>PHYSICAL_LOCAL_SSD: local SSD of physical machine.</li><li>CLOUD_PREMIUM: Premium Disk.</li><li>CLOUD_SSD: Cloud SSD.</li><li>CLOUD_HSSD: Enhanced SSD.</li></ul><p>Default value: PHYSICAL_LOCAL_SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

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

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

// Predefined struct for user
type DescribeProductConfigResponseParams struct {
	// <p>Purchasable specification list.</p>
	SpecInfoList []*SpecInfo `json:"SpecInfoList,omitnil,omitempty" name:"SpecInfoList"`

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

type DescribeProductConfigResponse struct {
	*tchttp.BaseResponse
	Response *DescribeProductConfigResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeReadOnlyGroupsRequestParams struct {
	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-master-instance-id: specifies the primary instance to filter by (in string format).
	// read-only-group-id: Filter by read-only group ID, type string.
	// Note: in the filter criteria of this parameter, db-master-instance-id must be specified.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Specifies the number of items per page. default value: 10. maximum value: 99.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Specify which page is displayed. Default value: 1 (the first page).
	PageNumber *int64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Specifies the sorting basis for queries. currently supports: ROGroupId, CreateTime, Name. default value: CreateTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Specifies the sorting basis type for queries. currently supports: desc, asc. default value: asc.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeReadOnlyGroupsRequest struct {
	*tchttp.BaseRequest
	
	// Query using one or more filter criteria. filter criteria currently supported include:.
	// db-master-instance-id: specifies the primary instance to filter by (in string format).
	// read-only-group-id: Filter by read-only group ID, type string.
	// Note: in the filter criteria of this parameter, db-master-instance-id must be specified.
	Filters []*Filter `json:"Filters,omitnil,omitempty" name:"Filters"`

	// Specifies the number of items per page. default value: 10. maximum value: 99.
	PageSize *int64 `json:"PageSize,omitnil,omitempty" name:"PageSize"`

	// Specify which page is displayed. Default value: 1 (the first page).
	PageNumber *int64 `json:"PageNumber,omitnil,omitempty" name:"PageNumber"`

	// Specifies the sorting basis for queries. currently supports: ROGroupId, CreateTime, Name. default value: CreateTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Specifies the sorting basis type for queries. currently supports: desc, asc. default value: asc.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeReadOnlyGroupsResponseParams struct {
	// RO group list
	ReadOnlyGroupList []*ReadOnlyGroup `json:"ReadOnlyGroupList,omitnil,omitempty" name:"ReadOnlyGroupList"`

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

type DescribeReadOnlyGroupsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeReadOnlyGroupsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeRegionsRequestParams struct {

}

type DescribeRegionsRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeRegionsResponseParams struct {
	// Number of returned results.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

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

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

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

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

// Predefined struct for user
type DescribeSlowQueryAnalysisRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query start time, in the format of 2018-01-01 00:00:00. The log is retained for seven days by default, so the start time must fall within the retention period.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, in the format of 2018-01-01 00:00:00.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

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

	// Sorting field, with valid values `[CallNum, CostTime, AvgCostTime]`. The default value is `CallNum`.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. The default value is `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Number of results returned per page, with a value range of 1-100. The default value is `50`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0. The default value is `0`.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeSlowQueryAnalysisRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query start time, in the format of 2018-01-01 00:00:00. The log is retained for seven days by default, so the start time must fall within the retention period.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, in the format of 2018-01-01 00:00:00.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

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

	// Sorting field, with valid values `[CallNum, CostTime, AvgCostTime]`. The default value is `CallNum`.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Sorting method, including ascending: `asc` and descending: `desc`. The default value is `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Number of results returned per page, with a value range of 1-100. The default value is `50`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0. The default value is `0`.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

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

// Predefined struct for user
type DescribeSlowQueryAnalysisResponseParams struct {
	// Total number found, with a maximum of 10,000 entries.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Collection of detailed information on slow SQL statistical analysis found.
	Detail *Detail `json:"Detail,omitnil,omitempty" name:"Detail"`

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

type DescribeSlowQueryAnalysisResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSlowQueryAnalysisResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSlowQueryListRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query start time, in the format of 2018-01-01 00:00:00. The log is retained for seven days by default, so the start time must fall within the retention period.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, in the format of 2018-01-01 00:00:00.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

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

	// Sorting method, including ascending: `asc` and descending: `desc`. The default value is `desc`.	
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Sorting field, with a value range of `[SessionStartTime, Duration]`. The default value is `SessionStartTime`.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Number of results returned per page, with a value range of 1-100. The default value is `50`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0. The default value is `0`.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

type DescribeSlowQueryListRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Query start time, in the format of 2018-01-01 00:00:00. The log is retained for seven days by default, so the start time must fall within the retention period.
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// Query end time, in the format of 2018-01-01 00:00:00.
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

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

	// Sorting method, including ascending: `asc` and descending: `desc`. The default value is `desc`.	
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`

	// Sorting field, with a value range of `[SessionStartTime, Duration]`. The default value is `SessionStartTime`.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Number of results returned per page, with a value range of 1-100. The default value is `50`.
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, which starts from 0. The default value is `0`.
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`
}

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

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

// Predefined struct for user
type DescribeSlowQueryListResponseParams struct {
	// Number of slow logs found, with a maximum of 10,000 entries.	
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Describes the segmented analysis results of the duration of the queried slow logs.
	DurationAnalysis []*DurationAnalysis `json:"DurationAnalysis,omitnil,omitempty" name:"DurationAnalysis"`

	// Collection of detailed information on slow logs found.
	RawSlowQueryList []*RawSlowQuery `json:"RawSlowQueryList,omitnil,omitempty" name:"RawSlowQueryList"`

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

type DescribeSlowQueryListResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSlowQueryListResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeTasksRequestParams struct {
	// Query by task ID. the FlowId and TaskId returned in other cloud apis are equivalent.
	TaskId *uint64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Query by database instance ID.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Earliest start time of the task, such as 2024-08-23 00:00:00. default shows data within the last 180 days.
	MinStartTime *string `json:"MinStartTime,omitnil,omitempty" name:"MinStartTime"`

	// Latest start time of the task, such as 2024-08-23 00:00:00, defaults to the current time.
	MaxStartTime *string `json:"MaxStartTime,omitnil,omitempty" name:"MaxStartTime"`

	// Number of results displayed per page. value range 1-100. default 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, starting from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting field, supports StartTime and EndTime. defaults to StartTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Specifies the sorting method, including ascending: `asc` and descending: `desc`. defaults to `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

type DescribeTasksRequest struct {
	*tchttp.BaseRequest
	
	// Query by task ID. the FlowId and TaskId returned in other cloud apis are equivalent.
	TaskId *uint64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Query by database instance ID.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Earliest start time of the task, such as 2024-08-23 00:00:00. default shows data within the last 180 days.
	MinStartTime *string `json:"MinStartTime,omitnil,omitempty" name:"MinStartTime"`

	// Latest start time of the task, such as 2024-08-23 00:00:00, defaults to the current time.
	MaxStartTime *string `json:"MaxStartTime,omitnil,omitempty" name:"MaxStartTime"`

	// Number of results displayed per page. value range 1-100. default 20.
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Data offset, starting from 0.
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Sorting field, supports StartTime and EndTime. defaults to StartTime.
	OrderBy *string `json:"OrderBy,omitnil,omitempty" name:"OrderBy"`

	// Specifies the sorting method, including ascending: `asc` and descending: `desc`. defaults to `desc`.
	OrderByType *string `json:"OrderByType,omitnil,omitempty" name:"OrderByType"`
}

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

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

// Predefined struct for user
type DescribeTasksResponseParams struct {
	// Number of queried tasks.
	TotalCount *uint64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// Task Information List
	TaskSet []*TaskSet `json:"TaskSet,omitnil,omitempty" name:"TaskSet"`

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

type DescribeTasksResponse struct {
	*tchttp.BaseResponse
	Response *DescribeTasksResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeZonesRequestParams struct {

}

type DescribeZonesRequest struct {
	*tchttp.BaseRequest
	
}

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

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

// Predefined struct for user
type DescribeZonesResponseParams struct {
	// Number of returned results.
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

	// AZ information set.
	ZoneSet []*ZoneInfo `json:"ZoneSet,omitnil,omitempty" name:"ZoneSet"`

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

type DescribeZonesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeZonesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DestroyDBInstanceRequestParams struct {
	// <p>ID of the instance to be shut down</p>
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type DestroyDBInstanceRequest struct {
	*tchttp.BaseRequest
	
	// <p>ID of the instance to be shut down</p>
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

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

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

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

type Detail struct {
	// The total execution time (in ms) of all slow query statements during the specified period of time
	TotalTime *float64 `json:"TotalTime,omitnil,omitempty" name:"TotalTime"`

	// The total number of all slow query statements during the specified period of time
	TotalCallNum *uint64 `json:"TotalCallNum,omitnil,omitempty" name:"TotalCallNum"`

	// List of slow SQL statistical analysis.
	AnalysisItems []*AnalysisItems `json:"AnalysisItems,omitnil,omitempty" name:"AnalysisItems"`
}

// Predefined struct for user
type DisIsolateDBInstancesRequestParams struct {
	// <p>Instance ID list, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API. Supports simultaneous de-isolation of multiple instances.</p>
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

	// <p>Purchase duration, in months.</p><li>Prepaid: supports 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, and 36.</li><li>Postpaid: this parameter does not take effect.</li>
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>Whether to use a voucher:</p><li>true: Use</li><li>false: Non-use</li>Default value: false
	AutoVoucher *bool `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// <p>Voucher id list.</p>
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`
}

type DisIsolateDBInstancesRequest struct {
	*tchttp.BaseRequest
	
	// <p>Instance ID list, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API. Supports simultaneous de-isolation of multiple instances.</p>
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

	// <p>Purchase duration, in months.</p><li>Prepaid: supports 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, and 36.</li><li>Postpaid: this parameter does not take effect.</li>
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>Whether to use a voucher:</p><li>true: Use</li><li>false: Non-use</li>Default value: false
	AutoVoucher *bool `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// <p>Voucher id list.</p>
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`
}

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

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

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

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

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

type DurationAnalysis struct {
	// Time range
	TimeSegment *string `json:"TimeSegment,omitnil,omitempty" name:"TimeSegment"`

	// The number of slow query statements whose execution time falls within the time range
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`
}

type EncryptionKey struct {
	// Specifies the KeyId for KMS instance encryption.
	KeyId *string `json:"KeyId,omitnil,omitempty" name:"KeyId"`

	// Alias name of the KMS instance encryption Key.
	KeyAlias *string `json:"KeyAlias,omitnil,omitempty" name:"KeyAlias"`

	// Specifies the ciphertext of the instance encryption key DEK.
	DEKCipherTextBlob *string `json:"DEKCipherTextBlob,omitnil,omitempty" name:"DEKCipherTextBlob"`

	// Whether the key is enabled. valid values: 1 (enabled), 0 (disabled).
	IsEnabled *int64 `json:"IsEnabled,omitnil,omitempty" name:"IsEnabled"`

	// Specifies the region of the KMS key.
	KeyRegion *string `json:"KeyRegion,omitnil,omitempty" name:"KeyRegion"`

	// Creation time of the DEK key.
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`

	// Specifies the Id of the KMS service cluster where the key resides. being empty indicates the key is in the default KMS cluster. a non-empty value indicates the key is in the specified KMS service cluster.
	KMSClusterId *string `json:"KMSClusterId,omitnil,omitempty" name:"KMSClusterId"`
}

type ErrLogDetail struct {
	// <p>userName</p>
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// <p>Database name</p>
	Database *string `json:"Database,omitnil,omitempty" name:"Database"`

	// <p>Error occurrence time</p>
	ErrTime *string `json:"ErrTime,omitnil,omitempty" name:"ErrTime"`

	// <p>Error message</p>
	ErrMsg *string `json:"ErrMsg,omitnil,omitempty" name:"ErrMsg"`

	// <p>Process ID</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProcessId *int64 `json:"ProcessId,omitnil,omitempty" name:"ProcessId"`

	// <p>client address</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ClientAddr *string `json:"ClientAddr,omitnil,omitempty" name:"ClientAddr"`

	// <p>Session ID</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// <p>Session start time</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	SessionStartTime *string `json:"SessionStartTime,omitnil,omitempty" name:"SessionStartTime"`

	// <p>Virtual transaction ID</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	VirtualTransactionId *string `json:"VirtualTransactionId,omitnil,omitempty" name:"VirtualTransactionId"`

	// <p>SQLSTATE error code</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	SqlStateCode *string `json:"SqlStateCode,omitnil,omitempty" name:"SqlStateCode"`

	// <p>client application name</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ApplicationName *string `json:"ApplicationName,omitnil,omitempty" name:"ApplicationName"`
}

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

	// Original parameter value.
	OldValue *string `json:"OldValue,omitnil,omitempty" name:"OldValue"`

	// This modification specifies the expected parameter value.
	NewValue *string `json:"NewValue,omitnil,omitempty" name:"NewValue"`

	// Specifies the start time for backend parameter modification.
	ModifyTime *string `json:"ModifyTime,omitnil,omitempty" name:"ModifyTime"`

	// Specifies the start of effective time for the backend parameter.
	EffectiveTime *string `json:"EffectiveTime,omitnil,omitempty" name:"EffectiveTime"`

	// Modification status. valid values: in progress, success, paused.
	State *string `json:"State,omitnil,omitempty" name:"State"`

	// Operator (normal: user sub UIN).
	Operator *string `json:"Operator,omitnil,omitempty" name:"Operator"`

	// Time log.
	EventLog *string `json:"EventLog,omitnil,omitempty" name:"EventLog"`
}

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

	// Number of modified events.
	EventCount *int64 `json:"EventCount,omitnil,omitempty" name:"EventCount"`

	// Last modification time.
	EventDetail []*EventInfo `json:"EventDetail,omitnil,omitempty" name:"EventDetail"`
}

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

	// One or more filter values.
	Values []*string `json:"Values,omitnil,omitempty" name:"Values"`
}

// Predefined struct for user
type InquiryPriceCreateDBInstancesRequestParams struct {
	// <p>Availability zone name. The value of this parameter can be obtained from the returned Zone field of the <a href="https://www.tencentcloud.com/document/product/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Specification ID. The value of this parameter can be obtained from the returned SpecCode field of the <a href="https://www.tencentcloud.com/document/product/409/89019?from_cn_redirect=1">DescribeClasses</a> API.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>Storage capacity, in GB. The value for this parameter must be set in increments of 10.</p>
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// <p>Instance quantity. The maximum allowed quantity is no more than 100. If you need to create more instances at a time, please contact customer service.</p>
	InstanceCount *uint64 `json:"InstanceCount,omitnil,omitempty" name:"InstanceCount"`

	// <p>Purchased duration, in months. Only 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, and 36 are supported.</p>
	Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>[Deprecated and no longer effective] Billing ID. The value of this parameter can be obtained from the returned Pid field of the DescribeProductConfig API.</p>
	Pid *uint64 `json:"Pid,omitnil,omitempty" name:"Pid"`

	// <p>Instance billing type. Valid values: PREPAID (prepaid, also known as yearly/monthly subscription) and POSTPAID (pay-as-you-go).<br>Default value: PREPAID.</p>
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// <p>Instance type. The default value is primary. Valid values:<br>primary (dual-server high availability (one primary and one standby)).<br>readonly (read-only instance).</p>
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// <p>Database engine. The default value is postgresql. Valid values:<br>postgresql (TencentDB for PostgreSQL).<br>mssql_compatible (MSSQL compatible - TencentDB for PostgreSQL).</p>
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Instance storage type. Valid values: PHYSICAL_LOCAL_SSD: local SSD of physical machine. CLOUD_PREMIUM: Premium Disk. CLOUD_SSD: Cloud SSD. CLOUD_HSSD: Enhanced SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

type InquiryPriceCreateDBInstancesRequest struct {
	*tchttp.BaseRequest
	
	// <p>Availability zone name. The value of this parameter can be obtained from the returned Zone field of the <a href="https://www.tencentcloud.com/document/product/409/16769?from_cn_redirect=1">DescribeZones</a> API.</p>
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// <p>Specification ID. The value of this parameter can be obtained from the returned SpecCode field of the <a href="https://www.tencentcloud.com/document/product/409/89019?from_cn_redirect=1">DescribeClasses</a> API.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>Storage capacity, in GB. The value for this parameter must be set in increments of 10.</p>
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// <p>Instance quantity. The maximum allowed quantity is no more than 100. If you need to create more instances at a time, please contact customer service.</p>
	InstanceCount *uint64 `json:"InstanceCount,omitnil,omitempty" name:"InstanceCount"`

	// <p>Purchased duration, in months. Only 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, and 36 are supported.</p>
	Period *uint64 `json:"Period,omitnil,omitempty" name:"Period"`

	// <p>[Deprecated and no longer effective] Billing ID. The value of this parameter can be obtained from the returned Pid field of the DescribeProductConfig API.</p>
	Pid *uint64 `json:"Pid,omitnil,omitempty" name:"Pid"`

	// <p>Instance billing type. Valid values: PREPAID (prepaid, also known as yearly/monthly subscription) and POSTPAID (pay-as-you-go).<br>Default value: PREPAID.</p>
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// <p>Instance type. The default value is primary. Valid values:<br>primary (dual-server high availability (one primary and one standby)).<br>readonly (read-only instance).</p>
	InstanceType *string `json:"InstanceType,omitnil,omitempty" name:"InstanceType"`

	// <p>Database engine. The default value is postgresql. Valid values:<br>postgresql (TencentDB for PostgreSQL).<br>mssql_compatible (MSSQL compatible - TencentDB for PostgreSQL).</p>
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// <p>Instance storage type. Valid values: PHYSICAL_LOCAL_SSD: local SSD of physical machine. CLOUD_PREMIUM: Premium Disk. CLOUD_SSD: Cloud SSD. CLOUD_HSSD: Enhanced SSD.</p>
	StorageType *string `json:"StorageType,omitnil,omitempty" name:"StorageType"`
}

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

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

// Predefined struct for user
type InquiryPriceCreateDBInstancesResponseParams struct {
	// <p>List price, in cents.</p>
	OriginalPrice *uint64 `json:"OriginalPrice,omitnil,omitempty" name:"OriginalPrice"`

	// <p>Actual payment amount after discount, in cents.</p>
	Price *uint64 `json:"Price,omitnil,omitempty" name:"Price"`

	// Currency, such as USD.
	Currency *string `json:"Currency,omitnil,omitempty" name:"Currency"`

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

type InquiryPriceCreateDBInstancesResponse struct {
	*tchttp.BaseResponse
	Response *InquiryPriceCreateDBInstancesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type InquiryPriceRenewDBInstanceRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	// This API only supports prepaid instance queries.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Renewal period, calculated on a monthly basis.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`
}

type InquiryPriceRenewDBInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	// This API only supports prepaid instance queries.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Renewal period, calculated on a monthly basis.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`
}

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

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

// Predefined struct for user
type InquiryPriceRenewDBInstanceResponseParams struct {
	// Published price in cents. For example, 24650 indicates 246.5 USD.
	OriginalPrice *int64 `json:"OriginalPrice,omitnil,omitempty" name:"OriginalPrice"`

	// Discounted total amount. For example, 24650 indicates 246.5 USD.
	Price *int64 `json:"Price,omitnil,omitempty" name:"Price"`

	// Currency, such as USD.
	Currency *string `json:"Currency,omitnil,omitempty" name:"Currency"`

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

type InquiryPriceRenewDBInstanceResponse struct {
	*tchttp.BaseResponse
	Response *InquiryPriceRenewDBInstanceResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type InquiryPriceUpgradeDBInstanceRequestParams struct {
	// Instance disk size in GB
	Storage *int64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// Instance memory size in GB
	Memory *int64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Specifies the instance ID, such as postgres-hez4fh0v. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance billing type. Valid value: `POSTPAID_BY_HOUR` (pay-as-you-go hourly)
	//
	// Deprecated: InstanceChargeType is deprecated.
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// Specifies the instance Cpu size in unit Core.
	// If this parameter is not input, the Cpu is set based on the corresponding sales specification determined by Memory. for example, if Memory is 2 and the supported sales specification is 1-core 2GiB, the Cpu defaults to 1 when not input.
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`
}

type InquiryPriceUpgradeDBInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Instance disk size in GB
	Storage *int64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// Instance memory size in GB
	Memory *int64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Specifies the instance ID, such as postgres-hez4fh0v. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance billing type. Valid value: `POSTPAID_BY_HOUR` (pay-as-you-go hourly)
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// Specifies the instance Cpu size in unit Core.
	// If this parameter is not input, the Cpu is set based on the corresponding sales specification determined by Memory. for example, if Memory is 2 and the supported sales specification is 1-core 2GiB, the Cpu defaults to 1 when not input.
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`
}

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

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

// Predefined struct for user
type InquiryPriceUpgradeDBInstanceResponseParams struct {
	// Total cost before discount.
	OriginalPrice *int64 `json:"OriginalPrice,omitnil,omitempty" name:"OriginalPrice"`

	// Discounted total amount
	Price *int64 `json:"Price,omitnil,omitempty" name:"Price"`

	// Currency, such as USD.
	Currency *string `json:"Currency,omitnil,omitempty" name:"Currency"`

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

type InquiryPriceUpgradeDBInstanceResponse struct {
	*tchttp.BaseResponse
	Response *InquiryPriceUpgradeDBInstanceResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type IsolateDBInstancesRequestParams struct {
	// <p>Instance ID collection, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API. Note: Simultaneous isolation of multiple instances is not recommended. It is advisable to import a single instance ID per operation.</p>
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`
}

type IsolateDBInstancesRequest struct {
	*tchttp.BaseRequest
	
	// <p>Instance ID collection, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API. Note: Simultaneous isolation of multiple instances is not recommended. It is advisable to import a single instance ID per operation.</p>
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

type LogBackup struct {
	// Instance ID
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Unique ID of a backup file
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`

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

	// Specifies the backup method. valid values: physical - physical backup, logical - logical backup.
	BackupMethod *string `json:"BackupMethod,omitnil,omitempty" name:"BackupMethod"`

	// Backup mode. enumeration value, manual - manual backup; automatic - automatic backup.
	BackupMode *string `json:"BackupMode,omitnil,omitempty" name:"BackupMode"`

	// Backup task status. valid values: init, running, finished, failed, canceled.
	State *string `json:"State,omitnil,omitempty" name:"State"`

	// Backup set size in bytes
	Size *uint64 `json:"Size,omitnil,omitempty" name:"Size"`

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

	// Backup end time
	FinishTime *string `json:"FinishTime,omitnil,omitempty" name:"FinishTime"`

	// Backup expiration time
	ExpireTime *string `json:"ExpireTime,omitnil,omitempty" name:"ExpireTime"`
}

type LogFilter struct {
	// <p>Filter criterion name.</p><p>For example: sql - SQL command details</p><p>host – client IP;<br>user – database account.</p>
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// <p>Filter condition match type. Supported values:<br>INC – Including (multiple values are in a || relationship with each other);<br>EXC – Excluding (multiple values are in a && relationship with each other);<br>EQS – Equal (multiple values are in a || relationship with each other);<br>NEQ – Not equal (multiple values are in a && relationship with each other);<br>RG – Range.</p>
	Compare *string `json:"Compare,omitnil,omitempty" name:"Compare"`

	// <p>Matching value of the filter condition. When Compare=RG, for example: ["1-100","200-300"]</p>
	Value []*string `json:"Value,omitnil,omitempty" name:"Value"`
}

type LogInstanceInfo struct {
	// <p>Instance name</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`

	// <p>Project ID</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

	// <p>Instance Tag</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	TagList []*Tag `json:"TagList,omitnil,omitempty" name:"TagList"`

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

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

	// <p>Instance status</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	InstanceStatus *string `json:"InstanceStatus,omitnil,omitempty" name:"InstanceStatus"`

	// <p>Whether audit is supported. 1 means support, 0 means not supported.</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	IsSupportAudit *int64 `json:"IsSupportAudit,omitnil,omitempty" name:"IsSupportAudit"`

	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Log type</p><p>Enumeration value:</p><ul><li>complex: Granular audit</li><li>simple: Fast Audit</li></ul>
	AuditType *string `json:"AuditType,omitnil,omitempty" name:"AuditType"`
}

// Predefined struct for user
type ModifyAccountPrivilegesRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Modify the permission of this account for a database object. obtain through the [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109) api.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Permission information to modify. supports batch modification. the maximum number of modifications per batch is 50.
	ModifyPrivilegeSet []*ModifyPrivilege `json:"ModifyPrivilegeSet,omitnil,omitempty" name:"ModifyPrivilegeSet"`
}

type ModifyAccountPrivilegesRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Modify the permission of this account for a database object. obtain through the [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109) api.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Permission information to modify. supports batch modification. the maximum number of modifications per batch is 50.
	ModifyPrivilegeSet []*ModifyPrivilege `json:"ModifyPrivilegeSet,omitnil,omitempty" name:"ModifyPrivilegeSet"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyAccountRemarkRequestParams struct {
	// Instance ID in the format of postgres-4wdeb0zv
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance username
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// New remarks corresponding to user `UserName`
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

type ModifyAccountRemarkRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID in the format of postgres-4wdeb0zv
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance username
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// New remarks corresponding to user `UserName`
	Remark *string `json:"Remark,omitnil,omitempty" name:"Remark"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyAuditServiceRequestParams struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Log retention duration (days)</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	LogExpireDay *uint64 `json:"LogExpireDay,omitnil,omitempty" name:"LogExpireDay"`

	// <p>High-frequency storage duration (days)</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	HotLogExpireDay *uint64 `json:"HotLogExpireDay,omitnil,omitempty" name:"HotLogExpireDay"`

	// <p>Audit type</p><p>Enumeration value:</p><ul><li>complex: Granular audit. The audit log is more comprehensive, including object types and objects. Once enabled, it has a certain impact on performance.</li><li>simple: Fast Audit. The audit log covers most fields. When enabled, it has a smaller impact on performance.</li></ul>
	AuditType *string `json:"AuditType,omitnil,omitempty" name:"AuditType"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`
}

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

	// <p>Log retention duration (days)</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	LogExpireDay *uint64 `json:"LogExpireDay,omitnil,omitempty" name:"LogExpireDay"`

	// <p>High-frequency storage duration (days)</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	HotLogExpireDay *uint64 `json:"HotLogExpireDay,omitnil,omitempty" name:"HotLogExpireDay"`

	// <p>Audit type</p><p>Enumeration value:</p><ul><li>complex: Granular audit. The audit log is more comprehensive, including object types and objects. Once enabled, it has a certain impact on performance.</li><li>simple: Fast Audit. The audit log covers most fields. When enabled, it has a smaller impact on performance.</li></ul>
	AuditType *string `json:"AuditType,omitnil,omitempty" name:"AuditType"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyBackupDownloadRestrictionRequestParams struct {
	// Backup file download restriction type. valid values: NONE (unlimited, allows download from both private and public networks), INTRANET (only allows private network download), CUSTOMIZE (custom limits for download by vpc or ip). when the parameter value is CUSTOMIZE, at least one item must be filled in for vpc restriction and ip restriction.
	RestrictionType *string `json:"RestrictionType,omitnil,omitempty" name:"RestrictionType"`

	// Whether VPC is allowed. Valid values: `ALLOW` (allow), `DENY` (deny).
	VpcRestrictionEffect *string `json:"VpcRestrictionEffect,omitnil,omitempty" name:"VpcRestrictionEffect"`

	// Specifies the vpc id list to allow or deny downloading backup files.
	// **Note:** This input parameter performs a full replacement on all existing collections but not an incremental update. To modify it, import the expected full collections.
	VpcIdSet []*string `json:"VpcIdSet,omitnil,omitempty" name:"VpcIdSet"`

	// Whether IP is allowed. Valid values: `ALLOW` (allow), `DENY` (deny).
	IpRestrictionEffect *string `json:"IpRestrictionEffect,omitnil,omitempty" name:"IpRestrictionEffect"`

	// Specifies the ip list to allow or deny downloading backup files.
	// **Note:** This input parameter performs a full replacement on all existing collections but not an incremental update. To modify it, import the expected full collections.
	IpSet []*string `json:"IpSet,omitnil,omitempty" name:"IpSet"`
}

type ModifyBackupDownloadRestrictionRequest struct {
	*tchttp.BaseRequest
	
	// Backup file download restriction type. valid values: NONE (unlimited, allows download from both private and public networks), INTRANET (only allows private network download), CUSTOMIZE (custom limits for download by vpc or ip). when the parameter value is CUSTOMIZE, at least one item must be filled in for vpc restriction and ip restriction.
	RestrictionType *string `json:"RestrictionType,omitnil,omitempty" name:"RestrictionType"`

	// Whether VPC is allowed. Valid values: `ALLOW` (allow), `DENY` (deny).
	VpcRestrictionEffect *string `json:"VpcRestrictionEffect,omitnil,omitempty" name:"VpcRestrictionEffect"`

	// Specifies the vpc id list to allow or deny downloading backup files.
	// **Note:** This input parameter performs a full replacement on all existing collections but not an incremental update. To modify it, import the expected full collections.
	VpcIdSet []*string `json:"VpcIdSet,omitnil,omitempty" name:"VpcIdSet"`

	// Whether IP is allowed. Valid values: `ALLOW` (allow), `DENY` (deny).
	IpRestrictionEffect *string `json:"IpRestrictionEffect,omitnil,omitempty" name:"IpRestrictionEffect"`

	// Specifies the ip list to allow or deny downloading backup files.
	// **Note:** This input parameter performs a full replacement on all existing collections but not an incremental update. To modify it, import the expected full collections.
	IpSet []*string `json:"IpSet,omitnil,omitempty" name:"IpSet"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyBackupPlanRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// The earliest time to start a backup
	MinBackupStartTime *string `json:"MinBackupStartTime,omitnil,omitempty" name:"MinBackupStartTime"`

	// The latest time to start a backup
	MaxBackupStartTime *string `json:"MaxBackupStartTime,omitnil,omitempty" name:"MaxBackupStartTime"`

	// Backup retention period in days. Value range: 7-1830
	BaseBackupRetentionPeriod *uint64 `json:"BaseBackupRetentionPeriod,omitnil,omitempty" name:"BaseBackupRetentionPeriod"`

	// Instance backup period. if by week, format is lowercase english word of week and set at least two days for backup. if by month, format is digits such as ["1","2"].
	BackupPeriod []*string `json:"BackupPeriod,omitnil,omitempty" name:"BackupPeriod"`

	// Instance log backup retention duration, with a value range of 7-1830 and a unit of day
	LogBackupRetentionPeriod *uint64 `json:"LogBackupRetentionPeriod,omitnil,omitempty" name:"LogBackupRetentionPeriod"`

	// Backup plan ID. specifies which backup plan to modify. if left empty, the default backup plan will be modified.
	PlanId *string `json:"PlanId,omitnil,omitempty" name:"PlanId"`

	// Specifies the name of the backup plan to modify.
	PlanName *string `json:"PlanName,omitnil,omitempty" name:"PlanName"`
}

type ModifyBackupPlanRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// The earliest time to start a backup
	MinBackupStartTime *string `json:"MinBackupStartTime,omitnil,omitempty" name:"MinBackupStartTime"`

	// The latest time to start a backup
	MaxBackupStartTime *string `json:"MaxBackupStartTime,omitnil,omitempty" name:"MaxBackupStartTime"`

	// Backup retention period in days. Value range: 7-1830
	BaseBackupRetentionPeriod *uint64 `json:"BaseBackupRetentionPeriod,omitnil,omitempty" name:"BaseBackupRetentionPeriod"`

	// Instance backup period. if by week, format is lowercase english word of week and set at least two days for backup. if by month, format is digits such as ["1","2"].
	BackupPeriod []*string `json:"BackupPeriod,omitnil,omitempty" name:"BackupPeriod"`

	// Instance log backup retention duration, with a value range of 7-1830 and a unit of day
	LogBackupRetentionPeriod *uint64 `json:"LogBackupRetentionPeriod,omitnil,omitempty" name:"LogBackupRetentionPeriod"`

	// Backup plan ID. specifies which backup plan to modify. if left empty, the default backup plan will be modified.
	PlanId *string `json:"PlanId,omitnil,omitempty" name:"PlanId"`

	// Specifies the name of the backup plan to modify.
	PlanName *string `json:"PlanName,omitnil,omitempty" name:"PlanName"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyBaseBackupExpireTimeRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Data backup ID. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343?lang=en).
	BaseBackupId *string `json:"BaseBackupId,omitnil,omitempty" name:"BaseBackupId"`

	// New expiration time
	NewExpireTime *string `json:"NewExpireTime,omitnil,omitempty" name:"NewExpireTime"`
}

type ModifyBaseBackupExpireTimeRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Data backup ID. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343?lang=en).
	BaseBackupId *string `json:"BaseBackupId,omitnil,omitempty" name:"BaseBackupId"`

	// New expiration time
	NewExpireTime *string `json:"NewExpireTime,omitnil,omitempty" name:"NewExpireTime"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyDBInstanceChargeTypeRequestParams struct {
	// Specifies the instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance billing type, which currently supports:.
	// <Li>PREPAID: prepaid, i.e., yearly/monthly subscription</li>.
	// <Li>POSTPAID_BY_HOUR: pay-as-you-go, i.e., pay by consumption.</li>.
	// Default value: PREPAID
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// Purchase duration, in months.
	// <Li>Prepaid: supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.</li>.
	// <li>Pay-as-you-go: Only supports `1`.</li>
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Specifies the auto-renewal flag.
	// <Li>`0`: manual renewal.</li>.
	// <Li>`1`: auto-renewal</li>.
	// Default value: 0
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Specifies whether to automatically use a voucher.
	// <Li>0: no.</li>.
	// <Li>`1`: yes.</li>.
	// Default value: 0
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`
}

type ModifyDBInstanceChargeTypeRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance billing type, which currently supports:.
	// <Li>PREPAID: prepaid, i.e., yearly/monthly subscription</li>.
	// <Li>POSTPAID_BY_HOUR: pay-as-you-go, i.e., pay by consumption.</li>.
	// Default value: PREPAID
	InstanceChargeType *string `json:"InstanceChargeType,omitnil,omitempty" name:"InstanceChargeType"`

	// Purchase duration, in months.
	// <Li>Prepaid: supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.</li>.
	// <li>Pay-as-you-go: Only supports `1`.</li>
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Specifies the auto-renewal flag.
	// <Li>`0`: manual renewal.</li>.
	// <Li>`1`: auto-renewal</li>.
	// Default value: 0
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`

	// Specifies whether to automatically use a voucher.
	// <Li>0: no.</li>.
	// <Li>`1`: yes.</li>.
	// Default value: 0
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceChargeTypeResponseParams struct {
	// Order name
	DealName *string `json:"DealName,omitnil,omitempty" name:"DealName"`

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

type ModifyDBInstanceChargeTypeResponse struct {
	*tchttp.BaseResponse
	Response *ModifyDBInstanceChargeTypeResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceDeletionProtectionRequestParams struct {
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies whether to enable instance deletion protection. valid values: true (enable), false (disable).
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`
}

type ModifyDBInstanceDeletionProtectionRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. can be obtained through the DescribeDBInstances api (https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies whether to enable instance deletion protection. valid values: true (enable), false (disable).
	DeletionProtection *bool `json:"DeletionProtection,omitnil,omitempty" name:"DeletionProtection"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyDBInstanceDeploymentRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Deployment information of the instance node, which will display the information of each AZ when the instance node is deployed across multiple AZs.
	// The information of AZ can be obtained from the `Zone` field in the returned value of the [DescribeZones](https://intl.cloud.tencent.com/document/api/409/16769?from_cn_redirect=1) API.
	DBNodeSet []*DBNode `json:"DBNodeSet,omitnil,omitempty" name:"DBNodeSet"`

	// Specifies the switch time after instance configuration change.
	// <Li>0: switch immediately</li>.
	// <Li>1: switch at specified time</li>.
	// <Li>2: switch during maintenance time window.</li>.
	SwitchTag *int64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// Switch start time in the format of `HH:MM:SS`, such as 01:00:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// Switch end time in the format of `HH:MM:SS`, such as 01:30:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`
}

type ModifyDBInstanceDeploymentRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Deployment information of the instance node, which will display the information of each AZ when the instance node is deployed across multiple AZs.
	// The information of AZ can be obtained from the `Zone` field in the returned value of the [DescribeZones](https://intl.cloud.tencent.com/document/api/409/16769?from_cn_redirect=1) API.
	DBNodeSet []*DBNode `json:"DBNodeSet,omitnil,omitempty" name:"DBNodeSet"`

	// Specifies the switch time after instance configuration change.
	// <Li>0: switch immediately</li>.
	// <Li>1: switch at specified time</li>.
	// <Li>2: switch during maintenance time window.</li>.
	SwitchTag *int64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// Switch start time in the format of `HH:MM:SS`, such as 01:00:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// Switch end time in the format of `HH:MM:SS`, such as 01:30:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceDeploymentResponseParams struct {
	// Task ID.
	TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type ModifyDBInstanceDeploymentResponse struct {
	*tchttp.BaseResponse
	Response *ModifyDBInstanceDeploymentResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceHAConfigRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Primary-Standby sync mode.
	// <Li>Semi-Sync: semi-sync</li>.
	// <Li>Async: asynchronous</li>.
	SyncMode *string `json:"SyncMode,omitnil,omitempty" name:"SyncMode"`

	// Maximum delayed data volume for high-availability standby server. switchover to primary node is allowed when backup node latency is less than or equal to this value and standby lag time is less than or equal to MaxStandbyLag.
	// <Li>Unit: byte.</li>.
	// <Li>Value range: [1073741824, 322122547200]</li>.
	MaxStandbyLatency *uint64 `json:"MaxStandbyLatency,omitnil,omitempty" name:"MaxStandbyLatency"`

	// Maximum delay time for high-availability standby servers. a backup node can switchover to the primary node when its latency is less than or equal to this value and its data volume is less than or equal to MaxStandbyLatency.
	// <Li>Unit: s.</li>.
	// <Li>Value range: [5, 10]</li>.
	MaxStandbyLag *uint64 `json:"MaxStandbyLag,omitnil,omitempty" name:"MaxStandbyLag"`

	// Maximum data sync lag for standby server. If data lag of the standby node and the delay ime are both less than or equals to the values of `MaxSyncStandbyLatency` and `MaxSyncStandbyLag`, the standby server adopts semi-sync replication; if not, it adopts async replication.
	// This value is only valid for the instance with `SyncMode` set to `Semi-sync`.
	// When the semi-sync replication mode of the instance is not allowed to downgrade to async replication, `MaxSyncStandbyLatency` and `MaxSyncStandbyLag` are not required.
	// When the semi-sync instance is allowed to downgrade to async replication, `MaxSyncStandbyLatency` is required and `MaxSyncStandbyLag` must be left empty for PostgreSQL 9; `MaxSyncStandbyLatency` and MaxSyncStandbyLag` are required for PostgreSQL 10 and later.
	MaxSyncStandbyLatency *uint64 `json:"MaxSyncStandbyLatency,omitnil,omitempty" name:"MaxSyncStandbyLatency"`

	// Maximum delay for sync standby server. If the delay time for standby server and the data lag are both less than or equals to the value of `MaxSyncStandbyLag` and `MaxSyncStandbyLatency` respectively, the standby server adopts sync replication mode; if not, it adopts async replication.
	// This value is only valid for the instance with `SyncMode` set to `Semi-sync`.
	// When the semi-sync replication mode of the instance is not allowed to downgrade to async replication, `MaxSyncStandbyLatency` and `MaxSyncStandbyLag` are not required.
	// When the semi-sync instance is allowed to downgrade to async replication, `MaxSyncStandbyLatency` is required and `MaxSyncStandbyLag` must be left empty for PostgreSQL 9; `MaxSyncStandbyLatency` and MaxSyncStandbyLag` are required for PostgreSQL 10 and later.
	MaxSyncStandbyLag *uint64 `json:"MaxSyncStandbyLag,omitnil,omitempty" name:"MaxSyncStandbyLag"`
}

type ModifyDBInstanceHAConfigRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Primary-Standby sync mode.
	// <Li>Semi-Sync: semi-sync</li>.
	// <Li>Async: asynchronous</li>.
	SyncMode *string `json:"SyncMode,omitnil,omitempty" name:"SyncMode"`

	// Maximum delayed data volume for high-availability standby server. switchover to primary node is allowed when backup node latency is less than or equal to this value and standby lag time is less than or equal to MaxStandbyLag.
	// <Li>Unit: byte.</li>.
	// <Li>Value range: [1073741824, 322122547200]</li>.
	MaxStandbyLatency *uint64 `json:"MaxStandbyLatency,omitnil,omitempty" name:"MaxStandbyLatency"`

	// Maximum delay time for high-availability standby servers. a backup node can switchover to the primary node when its latency is less than or equal to this value and its data volume is less than or equal to MaxStandbyLatency.
	// <Li>Unit: s.</li>.
	// <Li>Value range: [5, 10]</li>.
	MaxStandbyLag *uint64 `json:"MaxStandbyLag,omitnil,omitempty" name:"MaxStandbyLag"`

	// Maximum data sync lag for standby server. If data lag of the standby node and the delay ime are both less than or equals to the values of `MaxSyncStandbyLatency` and `MaxSyncStandbyLag`, the standby server adopts semi-sync replication; if not, it adopts async replication.
	// This value is only valid for the instance with `SyncMode` set to `Semi-sync`.
	// When the semi-sync replication mode of the instance is not allowed to downgrade to async replication, `MaxSyncStandbyLatency` and `MaxSyncStandbyLag` are not required.
	// When the semi-sync instance is allowed to downgrade to async replication, `MaxSyncStandbyLatency` is required and `MaxSyncStandbyLag` must be left empty for PostgreSQL 9; `MaxSyncStandbyLatency` and MaxSyncStandbyLag` are required for PostgreSQL 10 and later.
	MaxSyncStandbyLatency *uint64 `json:"MaxSyncStandbyLatency,omitnil,omitempty" name:"MaxSyncStandbyLatency"`

	// Maximum delay for sync standby server. If the delay time for standby server and the data lag are both less than or equals to the value of `MaxSyncStandbyLag` and `MaxSyncStandbyLatency` respectively, the standby server adopts sync replication mode; if not, it adopts async replication.
	// This value is only valid for the instance with `SyncMode` set to `Semi-sync`.
	// When the semi-sync replication mode of the instance is not allowed to downgrade to async replication, `MaxSyncStandbyLatency` and `MaxSyncStandbyLag` are not required.
	// When the semi-sync instance is allowed to downgrade to async replication, `MaxSyncStandbyLatency` is required and `MaxSyncStandbyLag` must be left empty for PostgreSQL 9; `MaxSyncStandbyLatency` and MaxSyncStandbyLag` are required for PostgreSQL 10 and later.
	MaxSyncStandbyLag *uint64 `json:"MaxSyncStandbyLag,omitnil,omitempty" name:"MaxSyncStandbyLag"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyDBInstanceNameRequestParams struct {
	// Specifies the database instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance name. only supports chinese, english, digits, "_", or "-" with length less than 60.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`
}

type ModifyDBInstanceNameRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the database instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance name. only supports chinese, english, digits, "_", or "-" with length less than 60.
	InstanceName *string `json:"InstanceName,omitnil,omitempty" name:"InstanceName"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyDBInstanceParametersRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Parameters to be modified and expected values.
	ParamList []*ParamEntry `json:"ParamList,omitnil,omitempty" name:"ParamList"`
}

type ModifyDBInstanceParametersRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Parameters to be modified and expected values.
	ParamList []*ParamEntry `json:"ParamList,omitnil,omitempty" name:"ParamList"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceParametersResponseParams struct {
	// Task ID.
	TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type ModifyDBInstanceParametersResponse struct {
	*tchttp.BaseResponse
	Response *ModifyDBInstanceParametersResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceReadOnlyGroupRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ID of the RO group to which the read-only replica belongs
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// ID of the new RO group into which the read-only replica will move
	NewReadOnlyGroupId *string `json:"NewReadOnlyGroupId,omitnil,omitempty" name:"NewReadOnlyGroupId"`
}

type ModifyDBInstanceReadOnlyGroupRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ID of the RO group to which the read-only replica belongs
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// ID of the new RO group into which the read-only replica will move
	NewReadOnlyGroupId *string `json:"NewReadOnlyGroupId,omitnil,omitempty" name:"NewReadOnlyGroupId"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceReadOnlyGroupResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type ModifyDBInstanceReadOnlyGroupResponse struct {
	*tchttp.BaseResponse
	Response *ModifyDBInstanceReadOnlyGroupResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceSSLConfigRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Turn on or off SSL. true - turn on; false - turn off.
	SSLEnabled *bool `json:"SSLEnabled,omitnil,omitempty" name:"SSLEnabled"`

	// The unique connection address protected by an SSL certificate. for a primary instance, it can be set to private and public IP addresses. for a read-only instance, it can be set to the instance IP or read-only group IP. this parameter is required when enabling SSL or modifying the SSL-protected connection address. it will be ignored when disabling SSL.
	ConnectAddress *string `json:"ConnectAddress,omitnil,omitempty" name:"ConnectAddress"`
}

type ModifyDBInstanceSSLConfigRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Turn on or off SSL. true - turn on; false - turn off.
	SSLEnabled *bool `json:"SSLEnabled,omitnil,omitempty" name:"SSLEnabled"`

	// The unique connection address protected by an SSL certificate. for a primary instance, it can be set to private and public IP addresses. for a read-only instance, it can be set to the instance IP or read-only group IP. this parameter is required when enabling SSL or modifying the SSL-protected connection address. it will be ignored when disabling SSL.
	ConnectAddress *string `json:"ConnectAddress,omitnil,omitempty" name:"ConnectAddress"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceSSLConfigResponseParams struct {
	// Task ID
	TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type ModifyDBInstanceSSLConfigResponse struct {
	*tchttp.BaseResponse
	Response *ModifyDBInstanceSSLConfigResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceSecurityGroupsRequestParams struct {
	// Specifies the security group list to bind to the instance or read-only group.
	// Security group information can be queried by calling the sgId field in the return value of [DescribeSecurityGroups](https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1).
	// **Note:** This input parameter performs a full replacement on all existing collections but not an incremental update. To modify it, import the expected full collections.
	SecurityGroupIdSet []*string `json:"SecurityGroupIdSet,omitnil,omitempty" name:"SecurityGroupIdSet"`

	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). specify either DBInstanceId or ReadOnlyGroupId. if both are provided, ReadOnlyGroupId is ignored.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725). valid values: DBInstanceId and ReadOnlyGroupId (at least one is required). if you need to modify the associated security group of the read-only group, only ReadOnlyGroupId is required.
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

type ModifyDBInstanceSecurityGroupsRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the security group list to bind to the instance or read-only group.
	// Security group information can be queried by calling the sgId field in the return value of [DescribeSecurityGroups](https://www.tencentcloud.com/document/api/215/15808?from_cn_redirect=1).
	// **Note:** This input parameter performs a full replacement on all existing collections but not an incremental update. To modify it, import the expected full collections.
	SecurityGroupIdSet []*string `json:"SecurityGroupIdSet,omitnil,omitempty" name:"SecurityGroupIdSet"`

	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). specify either DBInstanceId or ReadOnlyGroupId. if both are provided, ReadOnlyGroupId is ignored.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725). valid values: DBInstanceId and ReadOnlyGroupId (at least one is required). if you need to modify the associated security group of the read-only group, only ReadOnlyGroupId is required.
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyDBInstanceSpecRequestParams struct {
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance memory size in GiB after modification.
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Instance disk size after modification in GiB. specifies the step length for parameter settings as 10.
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// Whether to automatically use coupons:
	// <li>`0`: no</li>
	// <li>`1`: yes</li>
	// Default value: 0
	AutoVoucher *uint64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Voucher ID list. Currently, you can specify only one voucher.
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// Campaign ID.
	ActivityId *uint64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// Switch time after instance configurations are modified.
	// <li>0: Switch immediately</li>
	// <li>1: Switch at specified time</li>
	// <li>2: Switch during maintenance time window</li>
	// Default value: 0
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// Switch start time in the format of `HH:MM:SS`, such as 01:00:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// Switch end time in the format of `HH:MM:SS`, such as 01:30:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`

	// Instance CPU size in cores after modification. if this parameter is not specified, the CPU size is determined based on Memory by default. for example, if Memory is 2 and the supported specifications include 1 Core 2 GiB, the default CPU value is 1 when not imported.
	Cpu *uint64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`
}

type ModifyDBInstanceSpecRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6bwgamo3. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance memory size in GiB after modification.
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Instance disk size after modification in GiB. specifies the step length for parameter settings as 10.
	Storage *uint64 `json:"Storage,omitnil,omitempty" name:"Storage"`

	// Whether to automatically use coupons:
	// <li>`0`: no</li>
	// <li>`1`: yes</li>
	// Default value: 0
	AutoVoucher *uint64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Voucher ID list. Currently, you can specify only one voucher.
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`

	// Campaign ID.
	ActivityId *uint64 `json:"ActivityId,omitnil,omitempty" name:"ActivityId"`

	// Switch time after instance configurations are modified.
	// <li>0: Switch immediately</li>
	// <li>1: Switch at specified time</li>
	// <li>2: Switch during maintenance time window</li>
	// Default value: 0
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// Switch start time in the format of `HH:MM:SS`, such as 01:00:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// Switch end time in the format of `HH:MM:SS`, such as 01:30:00. When `SwitchTag` is 0 or 2, this parameter becomes invalid.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`

	// Instance CPU size in cores after modification. if this parameter is not specified, the CPU size is determined based on Memory by default. for example, if Memory is 2 and the supported specifications include 1 Core 2 GiB, the default CPU value is 1 when not imported.
	Cpu *uint64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`
}

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

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

// Predefined struct for user
type ModifyDBInstanceSpecResponseParams struct {
	// Order ID.
	DealName *string `json:"DealName,omitnil,omitempty" name:"DealName"`

	// Bill ID of frozen fees.
	BillId *string `json:"BillId,omitnil,omitempty" name:"BillId"`

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

type ModifyDBInstanceSpecResponse struct {
	*tchttp.BaseResponse
	Response *ModifyDBInstanceSpecResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ModifyDBInstancesProjectRequestParams struct {
	// Specifies the instance ID set. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). supports operating multiple instances simultaneously.
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

	// ID of the new project it belongs to. obtain through the [DescribeProjects](https://www.tencentcloud.com/document/api/651/78725?from_cn_redirect=1) api.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`
}

type ModifyDBInstancesProjectRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID set. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). supports operating multiple instances simultaneously.
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

	// ID of the new project it belongs to. obtain through the [DescribeProjects](https://www.tencentcloud.com/document/api/651/78725?from_cn_redirect=1) api.
	ProjectId *string `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`
}

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

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

// Predefined struct for user
type ModifyDBInstancesProjectResponseParams struct {
	// Number of successfully transferred instances
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

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

type ModifyDBInstancesProjectResponse struct {
	*tchttp.BaseResponse
	Response *ModifyDBInstancesProjectResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ModifyDatabaseOwnerRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Database name. obtain through the api [DescribeDatabases](https://www.tencentcloud.com/document/product/409/37118).
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// New owner of the database. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	DatabaseOwner *string `json:"DatabaseOwner,omitnil,omitempty" name:"DatabaseOwner"`
}

type ModifyDatabaseOwnerRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Database name. obtain through the api [DescribeDatabases](https://www.tencentcloud.com/document/product/409/37118).
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// New owner of the database. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	DatabaseOwner *string `json:"DatabaseOwner,omitnil,omitempty" name:"DatabaseOwner"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyMaintainTimeWindowRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Maintenance start time. time zone is UTC+8.
	MaintainStartTime *string `json:"MaintainStartTime,omitnil,omitempty" name:"MaintainStartTime"`

	// Maintenance duration. unit: hr. value range: [1,4].
	MaintainDuration *uint64 `json:"MaintainDuration,omitnil,omitempty" name:"MaintainDuration"`

	// Specifies the maintenance period.
	MaintainWeekDays []*string `json:"MaintainWeekDays,omitnil,omitempty" name:"MaintainWeekDays"`
}

type ModifyMaintainTimeWindowRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Maintenance start time. time zone is UTC+8.
	MaintainStartTime *string `json:"MaintainStartTime,omitnil,omitempty" name:"MaintainStartTime"`

	// Maintenance duration. unit: hr. value range: [1,4].
	MaintainDuration *uint64 `json:"MaintainDuration,omitnil,omitempty" name:"MaintainDuration"`

	// Specifies the maintenance period.
	MaintainWeekDays []*string `json:"MaintainWeekDays,omitnil,omitempty" name:"MaintainWeekDays"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyParameterTemplateRequestParams struct {
	// Specifies the parameter template ID, which uniquely identifies the parameter template and cannot be modified. it can be obtained through the api [DescribeParameterTemplates](https://www.tencentcloud.com/document/product/409/52651?lang=en).
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`

	// Parameter template name, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@). If this field is empty, the original parameter template name will be used.
	TemplateName *string `json:"TemplateName,omitnil,omitempty" name:"TemplateName"`

	// Parameter template description, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@). If this parameter is not passed in, the original parameter template description will be used.
	TemplateDescription *string `json:"TemplateDescription,omitnil,omitempty" name:"TemplateDescription"`

	// The set of parameters to be modified or added. A parameter cannot be put to `ModifyParamEntrySet` and `DeleteParamSet` at the same time, that is, it cannot be modified/added and deleted at the same time.
	ModifyParamEntrySet []*ParamEntry `json:"ModifyParamEntrySet,omitnil,omitempty" name:"ModifyParamEntrySet"`

	// The set of parameters to be deleted in the template. A parameter cannot be put to `ModifyParamEntrySet` and `DeleteParamSet` at the same time, that is, it cannot be modified/added and deleted at the same time.
	DeleteParamSet []*string `json:"DeleteParamSet,omitnil,omitempty" name:"DeleteParamSet"`
}

type ModifyParameterTemplateRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the parameter template ID, which uniquely identifies the parameter template and cannot be modified. it can be obtained through the api [DescribeParameterTemplates](https://www.tencentcloud.com/document/product/409/52651?lang=en).
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`

	// Parameter template name, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@). If this field is empty, the original parameter template name will be used.
	TemplateName *string `json:"TemplateName,omitnil,omitempty" name:"TemplateName"`

	// Parameter template description, which can contain 1-60 letters, digits, and symbols (-_./()[]()+=:@). If this parameter is not passed in, the original parameter template description will be used.
	TemplateDescription *string `json:"TemplateDescription,omitnil,omitempty" name:"TemplateDescription"`

	// The set of parameters to be modified or added. A parameter cannot be put to `ModifyParamEntrySet` and `DeleteParamSet` at the same time, that is, it cannot be modified/added and deleted at the same time.
	ModifyParamEntrySet []*ParamEntry `json:"ModifyParamEntrySet,omitnil,omitempty" name:"ModifyParamEntrySet"`

	// The set of parameters to be deleted in the template. A parameter cannot be put to `ModifyParamEntrySet` and `DeleteParamSet` at the same time, that is, it cannot be modified/added and deleted at the same time.
	DeleteParamSet []*string `json:"DeleteParamSet,omitnil,omitempty" name:"DeleteParamSet"`
}

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

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

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

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

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

type ModifyPrivilege struct {
	// Specifies the database object and permission list to be modified.
	DatabasePrivilege *DatabasePrivilege `json:"DatabasePrivilege,omitnil,omitempty" name:"DatabasePrivilege"`

	// Modifies via grantObject, revokeObject, or alterRole. grantObject represents authorization, revokeObject represents withdraw, alterRole represents modify account type.
	ModifyType *string `json:"ModifyType,omitnil,omitempty" name:"ModifyType"`

	// This parameter is required only when ModifyType is revokeObject. when set to true, the permission will be revoked with cascading effect. default false.
	IsCascade *bool `json:"IsCascade,omitnil,omitempty" name:"IsCascade"`
}

// Predefined struct for user
type ModifyReadOnlyDBInstanceWeightRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725?lang=en).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Specifies the traffic weight of the read-only instance in the read-only group. valid values: 1-50.
	Weight *int64 `json:"Weight,omitnil,omitempty" name:"Weight"`
}

type ModifyReadOnlyDBInstanceWeightRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725?lang=en).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Specifies the traffic weight of the read-only instance in the read-only group. valid values: 1-50.
	Weight *int64 `json:"Weight,omitnil,omitempty" name:"Weight"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyReadOnlyGroupConfigRequestParams struct {
	// Read-Only group ID.
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Read-Only group name. only supports chinese, english, digits, "_", or "-" with length less than 60.
	ReadOnlyGroupName *string `json:"ReadOnlyGroupName,omitnil,omitempty" name:"ReadOnlyGroupName"`

	// Whether to remove a read-only replica from an RO group if the delay between the read-only replica and the primary instance exceeds the threshold. Valid values: `0` (no), `1` (yes).
	ReplayLagEliminate *uint64 `json:"ReplayLagEliminate,omitnil,omitempty" name:"ReplayLagEliminate"`

	// Whether to remove a read-only replica from an RO group if the sync log size difference between the read-only replica and the primary instance exceeds the threshold. Valid values: `0` (no), `1` (yes).
	ReplayLatencyEliminate *uint64 `json:"ReplayLatencyEliminate,omitnil,omitempty" name:"ReplayLatencyEliminate"`

	// Delay log size threshold in MB. specifies a positive integer when enabling the delay log size configuration.
	MaxReplayLatency *uint64 `json:"MaxReplayLatency,omitnil,omitempty" name:"MaxReplayLatency"`

	// Delay time size threshold, unit: s. when enabling the delay time configuration, manually input a positive integer.
	MaxReplayLag *uint64 `json:"MaxReplayLag,omitnil,omitempty" name:"MaxReplayLag"`

	// Whether to enable automatic load balancing. Valid values: `0` (disable), `1` (enable).
	Rebalance *uint64 `json:"Rebalance,omitnil,omitempty" name:"Rebalance"`

	// Specifies the minimum number of instances to retain with delay removal. value range [0,100].
	MinDelayEliminateReserve *uint64 `json:"MinDelayEliminateReserve,omitnil,omitempty" name:"MinDelayEliminateReserve"`
}

type ModifyReadOnlyGroupConfigRequest struct {
	*tchttp.BaseRequest
	
	// Read-Only group ID.
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Read-Only group name. only supports chinese, english, digits, "_", or "-" with length less than 60.
	ReadOnlyGroupName *string `json:"ReadOnlyGroupName,omitnil,omitempty" name:"ReadOnlyGroupName"`

	// Whether to remove a read-only replica from an RO group if the delay between the read-only replica and the primary instance exceeds the threshold. Valid values: `0` (no), `1` (yes).
	ReplayLagEliminate *uint64 `json:"ReplayLagEliminate,omitnil,omitempty" name:"ReplayLagEliminate"`

	// Whether to remove a read-only replica from an RO group if the sync log size difference between the read-only replica and the primary instance exceeds the threshold. Valid values: `0` (no), `1` (yes).
	ReplayLatencyEliminate *uint64 `json:"ReplayLatencyEliminate,omitnil,omitempty" name:"ReplayLatencyEliminate"`

	// Delay log size threshold in MB. specifies a positive integer when enabling the delay log size configuration.
	MaxReplayLatency *uint64 `json:"MaxReplayLatency,omitnil,omitempty" name:"MaxReplayLatency"`

	// Delay time size threshold, unit: s. when enabling the delay time configuration, manually input a positive integer.
	MaxReplayLag *uint64 `json:"MaxReplayLag,omitnil,omitempty" name:"MaxReplayLag"`

	// Whether to enable automatic load balancing. Valid values: `0` (disable), `1` (enable).
	Rebalance *uint64 `json:"Rebalance,omitnil,omitempty" name:"Rebalance"`

	// Specifies the minimum number of instances to retain with delay removal. value range [0,100].
	MinDelayEliminateReserve *uint64 `json:"MinDelayEliminateReserve,omitnil,omitempty" name:"MinDelayEliminateReserve"`
}

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

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

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

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

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

// Predefined struct for user
type ModifySwitchTimePeriodRequestParams struct {
	// <p>ID of the instance that is waiting for a switch, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API.</p>
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// <p>If the value of the input parameter is 0, it indicates to switch immediately.</p>
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`
}

type ModifySwitchTimePeriodRequest struct {
	*tchttp.BaseRequest
	
	// <p>ID of the instance that is waiting for a switch, which can be obtained through the <a href="https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1">DescribeDBInstances</a> API.</p>
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// <p>If the value of the input parameter is 0, it indicates to switch immediately.</p>
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`
}

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

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

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

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

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

type NetworkAccess struct {
	// Network resource id, instance id, or RO group id.
	ResourceId *string `json:"ResourceId,omitnil,omitempty" name:"ResourceId"`

	// Resource type. valid values: 1 (instance), 2 (RO group).
	ResourceType *uint64 `json:"ResourceType,omitnil,omitempty" name:"ResourceType"`

	// VPC ID. specifies the ID of the virtual private cloud.
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

	// IPv4 Address
	Vip *string `json:"Vip,omitnil,omitempty" name:"Vip"`

	// IPv6 Address
	Vip6 *string `json:"Vip6,omitnil,omitempty" name:"Vip6"`

	// Specifies the access port.
	Vport *int64 `json:"Vport,omitnil,omitempty" name:"Vport"`

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

	// Network status. valid values: 1-applying, 2-active, 3-deleting, 4-deleted.
	VpcStatus *int64 `json:"VpcStatus,omitnil,omitempty" name:"VpcStatus"`
}

// Predefined struct for user
type OpenAccountCAMRequestParams struct {
	// Database instance ID.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Account name that requires enabling the CAM service.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`
}

type OpenAccountCAMRequest struct {
	*tchttp.BaseRequest
	
	// Database instance ID.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Account name that requires enabling the CAM service.
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`
}

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

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

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

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

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

// Predefined struct for user
type OpenAuditServiceRequestParams struct {
	// <p>Instance ID</p>
	InstanceId *string `json:"InstanceId,omitnil,omitempty" name:"InstanceId"`

	// <p>Log retention duration</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	LogExpireDay *uint64 `json:"LogExpireDay,omitnil,omitempty" name:"LogExpireDay"`

	// <p>High-frequency storage duration</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	HotLogExpireDay *uint64 `json:"HotLogExpireDay,omitnil,omitempty" name:"HotLogExpireDay"`

	// <p>Audit type</p><p>Enumeration value:</p><ul><li>complex: Granular audit. The audit log is more comprehensive, including object types and objects. Once enabled, it has a certain impact on performance.</li><li>simple: Fast Audit. The audit log covers most fields. When enabled, it has a smaller impact on performance.</li></ul>
	AuditType *string `json:"AuditType,omitnil,omitempty" name:"AuditType"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`
}

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

	// <p>Log retention duration</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	LogExpireDay *uint64 `json:"LogExpireDay,omitnil,omitempty" name:"LogExpireDay"`

	// <p>High-frequency storage duration</p><p>Enumeration value:</p><ul><li>7: 7 days</li><li>30: 30 days</li><li>90: 90 days</li><li>180: 180 days</li><li>365: 365 days</li><li>1095: 1095 days</li><li>1825: 1825 days</li></ul>
	HotLogExpireDay *uint64 `json:"HotLogExpireDay,omitnil,omitempty" name:"HotLogExpireDay"`

	// <p>Audit type</p><p>Enumeration value:</p><ul><li>complex: Granular audit. The audit log is more comprehensive, including object types and objects. Once enabled, it has a certain impact on performance.</li><li>simple: Fast Audit. The audit log covers most fields. When enabled, it has a smaller impact on performance.</li></ul>
	AuditType *string `json:"AuditType,omitnil,omitempty" name:"AuditType"`

	// <p>Product name</p><p>Input parameter limit: postgres</p>
	Product *string `json:"Product,omitnil,omitempty" name:"Product"`
}

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

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

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

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

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

// Predefined struct for user
type OpenDBExtranetAccessRequestParams struct {
	// Specifies the instance ID, such as postgres-hez4fh0v. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies whether to enable public network Ipv6. valid values: 1 (yes), 0 (no).
	// Default value: 0
	IsIpv6 *int64 `json:"IsIpv6,omitnil,omitempty" name:"IsIpv6"`
}

type OpenDBExtranetAccessRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-hez4fh0v. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/product/409/16773?lang=en).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies whether to enable public network Ipv6. valid values: 1 (yes), 0 (no).
	// Default value: 0
	IsIpv6 *int64 `json:"IsIpv6,omitnil,omitempty" name:"IsIpv6"`
}

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

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

// Predefined struct for user
type OpenDBExtranetAccessResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type OpenDBExtranetAccessResponse struct {
	*tchttp.BaseResponse
	Response *OpenDBExtranetAccessResponseParams `json:"Response"`
}

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

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

type ParamEntry struct {
	// Parameter name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// The new value to which the parameter will be modified. When this parameter is used as an input parameter, its value must be a string, such as `0.1` (decimal), `1000` (integer), and `replica` (enum).
	ExpectedValue *string `json:"ExpectedValue,omitnil,omitempty" name:"ExpectedValue"`
}

type ParamInfo struct {
	// Parameter ID
	ID *int64 `json:"ID,omitnil,omitempty" name:"ID"`

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

	// Parameter value type: integer, real, bool, enum, mutil_enum.
	// When the parameter type is integer or real (floating-point), the value range is determined based on the Max and Min of the return value. 
	// When the parameter type is boolean, the valid values are true or false. 
	// When the parameter type is enum (enumeration type) or mutil_enum (multi-enum type), the valid values are determined by EnumValue in the return value.
	ParamValueType *string `json:"ParamValueType,omitnil,omitempty" name:"ParamValueType"`

	// Parameter value unit. returns null if the parameter has no units.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Default parameter value. returns in string form.
	DefaultValue *string `json:"DefaultValue,omitnil,omitempty" name:"DefaultValue"`

	// Specifies the current value in string form.
	CurrentValue *string `json:"CurrentValue,omitnil,omitempty" name:"CurrentValue"`

	// Specifies the numerical type (integer, real) parameter and its lower bound.
	Max *float64 `json:"Max,omitnil,omitempty" name:"Max"`

	// Value range of the enum parameter
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	EnumValue []*string `json:"EnumValue,omitnil,omitempty" name:"EnumValue"`

	// Numerical type (integer, real) parameter specifies the upper bound.
	Min *float64 `json:"Min,omitnil,omitempty" name:"Min"`

	// Chinese description.
	ParamDescriptionCH *string `json:"ParamDescriptionCH,omitnil,omitempty" name:"ParamDescriptionCH"`

	// Specifies the english description of the parameter.
	ParamDescriptionEN *string `json:"ParamDescriptionEN,omitnil,omitempty" name:"ParamDescriptionEN"`

	// Specifies whether a restart is required for parameter modification (true indicates required, false indicates not required).
	NeedReboot *bool `json:"NeedReboot,omitnil,omitempty" name:"NeedReboot"`

	// Parameter chinese category.
	ClassificationCN *string `json:"ClassificationCN,omitnil,omitempty" name:"ClassificationCN"`

	// Parameter english category.
	ClassificationEN *string `json:"ClassificationEN,omitnil,omitempty" name:"ClassificationEN"`

	// Specifies whether it is related to the specification (true for related, false for unrelated).
	SpecRelated *bool `json:"SpecRelated,omitnil,omitempty" name:"SpecRelated"`

	// Indicates whether it is a key parameter (true means it is a key parameter, modification requires special attention and may affect instance performance).
	Advanced *bool `json:"Advanced,omitnil,omitempty" name:"Advanced"`

	// Specifies the last modified time.
	LastModifyTime *string `json:"LastModifyTime,omitnil,omitempty" name:"LastModifyTime"`

	// Parameter primary-secondary constraints. `0`: no constraint between primary and standby. `1`: standby parameter value > primary machine parameter value. `2`: primary parameter value must be greater than that of the standby machine.
	StandbyRelated *int64 `json:"StandbyRelated,omitnil,omitempty" name:"StandbyRelated"`

	// Parameter version association information, containing detailed parameter information for the respective kernel version
	// Note: This field may return null, indicating that no valid values can be obtained.
	VersionRelationSet []*ParamVersionRelation `json:"VersionRelationSet,omitnil,omitempty" name:"VersionRelationSet"`

	// Parameter specification association information, containing detailed parameter information for the respective specification
	// Note: This field may return null, indicating that no valid values can be obtained.
	SpecRelationSet []*ParamSpecRelation `json:"SpecRelationSet,omitnil,omitempty" name:"SpecRelationSet"`
}

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

	// Parameter information belonging to specification.
	Memory *string `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Default value of the parameter for this specification.
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`

	// Parameter value unit. returns null if the parameter has no units.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Numerical type (integer, real) parameter specifies the upper bound.
	Max *float64 `json:"Max,omitnil,omitempty" name:"Max"`

	// Specifies the numerical type (integer, real) parameter and its lower bound.
	Min *float64 `json:"Min,omitnil,omitempty" name:"Min"`

	// Value range of the enum parameter
	// Note: This field may return null, indicating that no valid values can be obtained.
	EnumValue []*string `json:"EnumValue,omitnil,omitempty" name:"EnumValue"`
}

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

	// Parameter information belonging to kernel version.
	DBKernelVersion *string `json:"DBKernelVersion,omitnil,omitempty" name:"DBKernelVersion"`

	// Default value of the parameter for this version and specification.
	Value *string `json:"Value,omitnil,omitempty" name:"Value"`

	// Parameter value unit. returns null if the parameter has no units.
	Unit *string `json:"Unit,omitnil,omitempty" name:"Unit"`

	// Numerical type (integer, real) parameter specifies the upper bound.
	Max *float64 `json:"Max,omitnil,omitempty" name:"Max"`

	// Specifies the numerical type (integer, real) parameter and its lower bound.
	Min *float64 `json:"Min,omitnil,omitempty" name:"Min"`

	// Value range of the enum parameter
	// Note: This field may return null, indicating that no valid values can be obtained.
	EnumValue []*string `json:"EnumValue,omitnil,omitempty" name:"EnumValue"`
}

type ParameterTemplate struct {
	// Parameter template ID
	TemplateId *string `json:"TemplateId,omitnil,omitempty" name:"TemplateId"`

	// Parameter template name
	TemplateName *string `json:"TemplateName,omitnil,omitempty" name:"TemplateName"`

	// Database version applicable to a parameter template
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// Database engine applicable to a parameter template
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// Parameter template description
	TemplateDescription *string `json:"TemplateDescription,omitnil,omitempty" name:"TemplateDescription"`
}

type PgDeal struct {
	// Order name
	DealName *string `json:"DealName,omitnil,omitempty" name:"DealName"`

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

	// Number of instances involved in order
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Billing mode. 0: pay-as-you-go
	PayMode *int64 `json:"PayMode,omitnil,omitempty" name:"PayMode"`

	// Async task flow ID
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

	// Instance ID array
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`
}

type PolicyRule struct {
	// Policy, Valid values: `ACCEPT`, `DROP`.
	Action *string `json:"Action,omitnil,omitempty" name:"Action"`

	// Source or destination IP or IP range, such as 172.16.0.0/12.
	CidrIp *string `json:"CidrIp,omitnil,omitempty" name:"CidrIp"`

	// Port
	PortRange *string `json:"PortRange,omitnil,omitempty" name:"PortRange"`

	// Network protocol. UDP and TCP are supported.
	IpProtocol *string `json:"IpProtocol,omitnil,omitempty" name:"IpProtocol"`

	// The rule description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`
}

type RawSlowQuery struct {
	// <p>Slow SQL statement</p>
	RawQuery *string `json:"RawQuery,omitnil,omitempty" name:"RawQuery"`

	// <p>Database for slow SQL queries</p>
	DatabaseName *string `json:"DatabaseName,omitnil,omitempty" name:"DatabaseName"`

	// <p>Slow SQL execution duration</p>
	Duration *float64 `json:"Duration,omitnil,omitempty" name:"Duration"`

	// <p>Client that executes Slow SQL</p>
	ClientAddr *string `json:"ClientAddr,omitnil,omitempty" name:"ClientAddr"`

	// <p>userName that executes slow SQL</p>
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// <p>Start time of Slow SQL execution</p>
	SessionStartTime *string `json:"SessionStartTime,omitnil,omitempty" name:"SessionStartTime"`

	// <p>Process ID of the slow SQL being executed</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ProcessId *int64 `json:"ProcessId,omitnil,omitempty" name:"ProcessId"`

	// <p>Session ID that executes slow SQL.</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	SessionId *string `json:"SessionId,omitnil,omitempty" name:"SessionId"`

	// <p>Transaction ID of the executed slow SQL</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	VirtualTransactionId *string `json:"VirtualTransactionId,omitnil,omitempty" name:"VirtualTransactionId"`

	// <p>Status code for executing slow SQL</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	SqlStateCode *string `json:"SqlStateCode,omitnil,omitempty" name:"SqlStateCode"`

	// <p>client name that executes slow SQL</p>
	// Note: This field may return null, indicating that no valid values can be obtained.
	ApplicationName *string `json:"ApplicationName,omitnil,omitempty" name:"ApplicationName"`
}

type ReadOnlyGroup struct {
	// RO group identifier.
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`

	// Specifies the read-only group name.
	ReadOnlyGroupName *string `json:"ReadOnlyGroupName,omitnil,omitempty" name:"ReadOnlyGroupName"`

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

	// Primary instance id.
	MasterDBInstanceId *string `json:"MasterDBInstanceId,omitnil,omitempty" name:"MasterDBInstanceId"`

	// Specifies the minimum number of instances to retain.
	MinDelayEliminateReserve *int64 `json:"MinDelayEliminateReserve,omitnil,omitempty" name:"MinDelayEliminateReserve"`

	// Specifies the delay threshold for space size in MB.
	MaxReplayLatency *int64 `json:"MaxReplayLatency,omitnil,omitempty" name:"MaxReplayLatency"`

	// Specifies the delay size switch. valid values: 0 - turn off; 1 - turn on.
	ReplayLatencyEliminate *int64 `json:"ReplayLatencyEliminate,omitnil,omitempty" name:"ReplayLatencyEliminate"`

	// Delay time size threshold, in seconds.
	MaxReplayLag *float64 `json:"MaxReplayLag,omitnil,omitempty" name:"MaxReplayLag"`

	// Delay time switch. 0 - turn off. 1 - turn on.
	ReplayLagEliminate *int64 `json:"ReplayLagEliminate,omitnil,omitempty" name:"ReplayLagEliminate"`

	// VPC ID
	VpcId *string `json:"VpcId,omitnil,omitempty" name:"VpcId"`

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

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

	// Availability zone ID
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Status. valid values: creating, ok, modifying, deleting, deleted.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Instance details
	ReadOnlyDBInstanceList []*DBInstance `json:"ReadOnlyDBInstanceList,omitnil,omitempty" name:"ReadOnlyDBInstanceList"`

	// Whether to enable automatic load balancing
	Rebalance *int64 `json:"Rebalance,omitnil,omitempty" name:"Rebalance"`

	// Network information
	DBInstanceNetInfo []*DBInstanceNetInfo `json:"DBInstanceNetInfo,omitnil,omitempty" name:"DBInstanceNetInfo"`

	// Network access list of the RO group (this field has been deprecated)
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	NetworkAccessList []*NetworkAccess `json:"NetworkAccessList,omitnil,omitempty" name:"NetworkAccessList"`
}

// Predefined struct for user
type RebalanceReadOnlyGroupRequestParams struct {
	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

type RebalanceReadOnlyGroupRequest struct {
	*tchttp.BaseRequest
	
	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/document/product/409/39725).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

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

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

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

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

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

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

	// Account name
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`
}

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

	// Account name
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`
}

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

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

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

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

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

type RegionInfo struct {
	// Region abbreviation
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

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

	// Region number
	RegionId *uint64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

	// Availability status. UNAVAILABLE: unavailable, AVAILABLE: available
	RegionState *string `json:"RegionState,omitnil,omitempty" name:"RegionState"`

	// Whether the international site is supported in this region. valid values: 0 (no support), 1 (support).
	SupportInternational *uint64 `json:"SupportInternational,omitnil,omitempty" name:"SupportInternational"`
}

// Predefined struct for user
type RemoveDBInstanceFromReadOnlyGroupRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/zh/document/product/409/39725).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

type RemoveDBInstanceFromReadOnlyGroupRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// ReadOnlyGroupId. specifies the read-only group ID, which can be obtained through the api [DescribeReadOnlyGroups](https://www.tencentcloud.com/zh/document/product/409/39725).
	ReadOnlyGroupId *string `json:"ReadOnlyGroupId,omitnil,omitempty" name:"ReadOnlyGroupId"`
}

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

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

// Predefined struct for user
type RemoveDBInstanceFromReadOnlyGroupResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type RemoveDBInstanceFromReadOnlyGroupResponse struct {
	*tchttp.BaseResponse
	Response *RemoveDBInstanceFromReadOnlyGroupResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type RenewInstanceRequestParams struct {
	// Specifies the instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). only supports prepaid (annual/monthly subscription) instances.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Purchase duration, in months.
	// <Li>Prepaid: supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.</li>.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Specifies whether to automatically use a voucher.
	// <Li>0: no.</li>.
	// <Li>`1`: yes.</li>.
	// Default value: 0
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Voucher ID list (only one voucher can be specified currently)
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`
}

type RenewInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6fego161. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). only supports prepaid (annual/monthly subscription) instances.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Purchase duration, in months.
	// <Li>Prepaid: supports `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, and `36`.</li>.
	Period *int64 `json:"Period,omitnil,omitempty" name:"Period"`

	// Specifies whether to automatically use a voucher.
	// <Li>0: no.</li>.
	// <Li>`1`: yes.</li>.
	// Default value: 0
	AutoVoucher *int64 `json:"AutoVoucher,omitnil,omitempty" name:"AutoVoucher"`

	// Voucher ID list (only one voucher can be specified currently)
	VoucherIds []*string `json:"VoucherIds,omitnil,omitempty" name:"VoucherIds"`
}

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

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

// Predefined struct for user
type RenewInstanceResponseParams struct {
	// Order name
	DealName *string `json:"DealName,omitnil,omitempty" name:"DealName"`

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

type RenewInstanceResponse struct {
	*tchttp.BaseResponse
	Response *RenewInstanceResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type ResetAccountPasswordRequestParams struct {
	// Specifies the instance ID, such as postgres-4wdeb0zv. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance account name. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Specifies the new password for the UserName account.
	// Password settings rule specifies the following:.
	// - valid values: 8 to 32 characters. a password with more than 12 characters is recommended.
	// - Must not start with "/".
	// - Must include the following four items:.
	// Lowercase letters a - z.
	// Uppercase letters: A - Z.
	// Digits: 0-9.
	// Special symbols: ()`~!@#$%^&*-+=_|{}[]:<>,.?/.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`
}

type ResetAccountPasswordRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-4wdeb0zv. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Instance account name. obtain through the api [DescribeAccounts](https://www.tencentcloud.com/document/product/409/18109).
	UserName *string `json:"UserName,omitnil,omitempty" name:"UserName"`

	// Specifies the new password for the UserName account.
	// Password settings rule specifies the following:.
	// - valid values: 8 to 32 characters. a password with more than 12 characters is recommended.
	// - Must not start with "/".
	// - Must include the following four items:.
	// Lowercase letters a - z.
	// Uppercase letters: A - Z.
	// Digits: 0-9.
	// Special symbols: ()`~!@#$%^&*-+=_|{}[]:<>,.?/.
	Password *string `json:"Password,omitnil,omitempty" name:"Password"`
}

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

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

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

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

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

// Predefined struct for user
type RestartDBInstanceRequestParams struct {
	// Specifies the instance ID, such as postgres-6r233v55. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

type RestartDBInstanceRequest struct {
	*tchttp.BaseRequest
	
	// Specifies the instance ID, such as postgres-6r233v55. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`
}

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

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

// Predefined struct for user
type RestartDBInstanceResponseParams struct {
	// Process ID. FlowId is equivalent to TaskId.
	FlowId *int64 `json:"FlowId,omitnil,omitempty" name:"FlowId"`

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

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

type RestartDBInstanceResponse struct {
	*tchttp.BaseResponse
	Response *RestartDBInstanceResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type RestoreDBInstanceObjectsRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// List of objects to be restored. if the object to be restored is named user, the restored name is user_bak_${LinuxTime}. ${LinuxTime} cannot be specified and is set by the system based on the linux time at task initiation.
	RestoreObjects []*string `json:"RestoreObjects,omitnil,omitempty" name:"RestoreObjects"`

	// Backup set used for recovery. either `BackupSetId` or `RestoreTargetTime` must be provided, and only one can be passed. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343).
	BackupSetId *string `json:"BackupSetId,omitnil,omitempty" name:"BackupSetId"`

	// Recovery target time, Beijing Time (UTC+8). Either `BackupSetId` or `RestoreTargetTime` must be provided, and only one can be passed.
	RestoreTargetTime *string `json:"RestoreTargetTime,omitnil,omitempty" name:"RestoreTargetTime"`
}

type RestoreDBInstanceObjectsRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// List of objects to be restored. if the object to be restored is named user, the restored name is user_bak_${LinuxTime}. ${LinuxTime} cannot be specified and is set by the system based on the linux time at task initiation.
	RestoreObjects []*string `json:"RestoreObjects,omitnil,omitempty" name:"RestoreObjects"`

	// Backup set used for recovery. either `BackupSetId` or `RestoreTargetTime` must be provided, and only one can be passed. obtain through the api [DescribeBaseBackups](https://www.tencentcloud.com/document/product/409/54343).
	BackupSetId *string `json:"BackupSetId,omitnil,omitempty" name:"BackupSetId"`

	// Recovery target time, Beijing Time (UTC+8). Either `BackupSetId` or `RestoreTargetTime` must be provided, and only one can be passed.
	RestoreTargetTime *string `json:"RestoreTargetTime,omitnil,omitempty" name:"RestoreTargetTime"`
}

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

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

// Predefined struct for user
type RestoreDBInstanceObjectsResponseParams struct {
	// Task ID.
	TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type RestoreDBInstanceObjectsResponse struct {
	*tchttp.BaseResponse
	Response *RestoreDBInstanceObjectsResponseParams `json:"Response"`
}

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

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

type SecurityGroup struct {
	// Project ID
	ProjectId *int64 `json:"ProjectId,omitnil,omitempty" name:"ProjectId"`

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

	// Inbound rule
	Inbound []*PolicyRule `json:"Inbound,omitnil,omitempty" name:"Inbound"`

	// Outbound rule
	Outbound []*PolicyRule `json:"Outbound,omitnil,omitempty" name:"Outbound"`

	// Security group ID
	SecurityGroupId *string `json:"SecurityGroupId,omitnil,omitempty" name:"SecurityGroupId"`

	// Security group name
	SecurityGroupName *string `json:"SecurityGroupName,omitnil,omitempty" name:"SecurityGroupName"`

	// Security group remarks
	SecurityGroupDescription *string `json:"SecurityGroupDescription,omitnil,omitempty" name:"SecurityGroupDescription"`
}

// Predefined struct for user
type SetAutoRenewFlagRequestParams struct {
	// Instance ID set. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). only supports prepaid (annual/monthly subscription) instances. supports operating multiple instances simultaneously.
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

	// Renewal flag. 0: normal renewal, 1: auto-renewal, 2: no renewal upon expiration
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`
}

type SetAutoRenewFlagRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID set. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1). only supports prepaid (annual/monthly subscription) instances. supports operating multiple instances simultaneously.
	DBInstanceIdSet []*string `json:"DBInstanceIdSet,omitnil,omitempty" name:"DBInstanceIdSet"`

	// Renewal flag. 0: normal renewal, 1: auto-renewal, 2: no renewal upon expiration
	AutoRenewFlag *int64 `json:"AutoRenewFlag,omitnil,omitempty" name:"AutoRenewFlag"`
}

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

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

// Predefined struct for user
type SetAutoRenewFlagResponseParams struct {
	// Number of successfully set instances
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

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

type SetAutoRenewFlagResponse struct {
	*tchttp.BaseResponse
	Response *SetAutoRenewFlagResponseParams `json:"Response"`
}

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

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

type SpecInfo struct {
	// Region abbreviation, which corresponds to the `Region` field of `RegionSet`
	Region *string `json:"Region,omitnil,omitempty" name:"Region"`

	// AZ abbreviate, which corresponds to the `Zone` field of `ZoneSet`
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// Specification details list
	SpecItemInfoList []*SpecItemInfo `json:"SpecItemInfoList,omitnil,omitempty" name:"SpecItemInfoList"`

	// Specifies the region that supports KMS.
	SupportKMSRegions []*string `json:"SupportKMSRegions,omitnil,omitempty" name:"SupportKMSRegions"`
}

type SpecItemInfo struct {
	// <p>Specification ID.</p>
	SpecCode *string `json:"SpecCode,omitnil,omitempty" name:"SpecCode"`

	// <p>PostgreSQL version number.</p>
	Version *string `json:"Version,omitnil,omitempty" name:"Version"`

	// <p>Full version name of the kernel number.</p>
	VersionName *string `json:"VersionName,omitnil,omitempty" name:"VersionName"`

	// <p>CPU cores.</p>
	Cpu *uint64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// <p>Memory size, in MB.</p>
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// <p>Maximum storage capacity supported by this specification, in GB.</p>
	MaxStorage *uint64 `json:"MaxStorage,omitnil,omitempty" name:"MaxStorage"`

	// <p>Minimum storage capacity supported by this specification, in GB.</p>
	MinStorage *uint64 `json:"MinStorage,omitnil,omitempty" name:"MinStorage"`

	// <p>Estimated QPS of the specification.</p>
	Qps *uint64 `json:"Qps,omitnil,omitempty" name:"Qps"`

	// <p>[Deprecated field].</p>
	Pid *uint64 `json:"Pid,omitnil,omitempty" name:"Pid"`

	// <p>Machine type.</p>
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`

	// <p>PostgreSQL major version number.</p>
	MajorVersion *string `json:"MajorVersion,omitnil,omitempty" name:"MajorVersion"`

	// <p>PostgreSQL kernel version number.</p>
	KernelVersion *string `json:"KernelVersion,omitnil,omitempty" name:"KernelVersion"`

	// <p>Indicates whether the TDE data encryption feature is supported. 0 - not supported. 1 - supported.</p>
	IsSupportTDE *int64 `json:"IsSupportTDE,omitnil,omitempty" name:"IsSupportTDE"`
}

// Predefined struct for user
type SwitchDBInstancePrimaryRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Whether to force a switch. forced switching initiates a switch as long as the secondary node is accessible, regardless of the primary/secondary delay. only when SwitchTag is 0 can you use switch immediately.
	// <Li>Default: false</li>.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`

	// Specifies the switch time after instance configuration change.
	// <Li>0: switch immediately</li>.
	// <Li>1: switch at specified time</li>.
	// <Li>2: switch during maintenance time window.</li>.
	// Default value: 0  
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// The earliest time to start a switch in the format of "HH:MM:SS", such as "01:00:00". This parameter is invalid when `SwitchTag` is `0` or `2`.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// The latest time to start a switch in the format of "HH:MM:SS", such as "01:30:00". This parameter is invalid when `SwitchTag` is `0` or `2`. The difference between `SwitchStartTime` and `SwitchEndTime` cannot be less than 30 minutes.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`
}

type SwitchDBInstancePrimaryRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Whether to force a switch. forced switching initiates a switch as long as the secondary node is accessible, regardless of the primary/secondary delay. only when SwitchTag is 0 can you use switch immediately.
	// <Li>Default: false</li>.
	Force *bool `json:"Force,omitnil,omitempty" name:"Force"`

	// Specifies the switch time after instance configuration change.
	// <Li>0: switch immediately</li>.
	// <Li>1: switch at specified time</li>.
	// <Li>2: switch during maintenance time window.</li>.
	// Default value: 0  
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// The earliest time to start a switch in the format of "HH:MM:SS", such as "01:00:00". This parameter is invalid when `SwitchTag` is `0` or `2`.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// The latest time to start a switch in the format of "HH:MM:SS", such as "01:30:00". This parameter is invalid when `SwitchTag` is `0` or `2`. The difference between `SwitchStartTime` and `SwitchEndTime` cannot be less than 30 minutes.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`
}

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

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

// Predefined struct for user
type SwitchDBInstancePrimaryResponseParams struct {
	// Task ID.
	TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type SwitchDBInstancePrimaryResponse struct {
	*tchttp.BaseResponse
	Response *SwitchDBInstancePrimaryResponseParams `json:"Response"`
}

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

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

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

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

type TaskDetail struct {
	// Current task step name.
	CurrentStep *string `json:"CurrentStep,omitnil,omitempty" name:"CurrentStep"`

	// Describes the step description of the current task you own.
	AllSteps *string `json:"AllSteps,omitnil,omitempty" name:"AllSteps"`

	// Input of the task.
	Input *string `json:"Input,omitnil,omitempty" name:"Input"`

	// Output parameter of the task.
	Output *string `json:"Output,omitnil,omitempty" name:"Output"`

	// Specifies the switch time after instance configurations are modified. default value: 0.
	// This task does not require switching.
	// Switch immediately.
	// 2: switch at specified time.
	// 3: switch during maintenance time window.
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// Specifies the switch time.
	SwitchTime *string `json:"SwitchTime,omitnil,omitempty" name:"SwitchTime"`

	// Note of the task.
	Message *string `json:"Message,omitnil,omitempty" name:"Message"`
}

type TaskSet struct {
	// Task ID.
	TaskId *uint64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

	// Specifies the task type.
	TaskType *string `json:"TaskType,omitnil,omitempty" name:"TaskType"`

	// Specifies the instance ID of the task instance.
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

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

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

	// Specifies the task Running status, including Running, Success, WaitSwitch, Fail, Pause.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Indicates the progress of task execution, with a value range of 0-100.
	Progress *uint64 `json:"Progress,omitnil,omitempty" name:"Progress"`

	// Specifies the task details.
	TaskDetail *TaskDetail `json:"TaskDetail,omitnil,omitempty" name:"TaskDetail"`
}

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

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

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

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

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

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

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

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

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

// Predefined struct for user
type UpgradeDBInstanceKernelVersionRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Target kernel version, which can be obtained in the `AvailableUpgradeTarget` field in the returned value of the [DescribeDBVersions](https://intl.cloud.tencent.com/document/api/409/89018?from_cn_redirect=1) API.
	TargetDBKernelVersion *string `json:"TargetDBKernelVersion,omitnil,omitempty" name:"TargetDBKernelVersion"`

	// Specifies the switch time after upgrading the kernel for the specified instance. valid values:.
	// <Li>0: switch immediately.</li>.
	// <Li>1: switch at specified time</li>.
	// <Li>2: switch during maintenance time window.</li>.
	// Default value: 0  
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// Switch start time in the format of `HH:MM:SS`, such as 01:00:00. When `SwitchTag` is `0` or `2`, this parameter is invalid.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// Switch end time in the format of `HH:MM:SS`, such as 01:30:00. When `SwitchTag` is `0` or `2`, this parameter is invalid. The difference between `SwitchStartTime` and `SwitchEndTime` cannot be less than 30 minutes.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`

	// Specifies whether to perform a pre-check for the instance kernel version upgrade operation this time.
	// <li>true: performs a pre-check without upgrading the kernel. check items include request parameters, kernel version compatibility, and instance parameters.</li>.
	// <li>false: send a normal request (default value). after passing the check, directly upgrade the kernel.</li>.
	// Default value: `false`.
	DryRun *bool `json:"DryRun,omitnil,omitempty" name:"DryRun"`
}

type UpgradeDBInstanceKernelVersionRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Target kernel version, which can be obtained in the `AvailableUpgradeTarget` field in the returned value of the [DescribeDBVersions](https://intl.cloud.tencent.com/document/api/409/89018?from_cn_redirect=1) API.
	TargetDBKernelVersion *string `json:"TargetDBKernelVersion,omitnil,omitempty" name:"TargetDBKernelVersion"`

	// Specifies the switch time after upgrading the kernel for the specified instance. valid values:.
	// <Li>0: switch immediately.</li>.
	// <Li>1: switch at specified time</li>.
	// <Li>2: switch during maintenance time window.</li>.
	// Default value: 0  
	SwitchTag *uint64 `json:"SwitchTag,omitnil,omitempty" name:"SwitchTag"`

	// Switch start time in the format of `HH:MM:SS`, such as 01:00:00. When `SwitchTag` is `0` or `2`, this parameter is invalid.
	SwitchStartTime *string `json:"SwitchStartTime,omitnil,omitempty" name:"SwitchStartTime"`

	// Switch end time in the format of `HH:MM:SS`, such as 01:30:00. When `SwitchTag` is `0` or `2`, this parameter is invalid. The difference between `SwitchStartTime` and `SwitchEndTime` cannot be less than 30 minutes.
	SwitchEndTime *string `json:"SwitchEndTime,omitnil,omitempty" name:"SwitchEndTime"`

	// Specifies whether to perform a pre-check for the instance kernel version upgrade operation this time.
	// <li>true: performs a pre-check without upgrading the kernel. check items include request parameters, kernel version compatibility, and instance parameters.</li>.
	// <li>false: send a normal request (default value). after passing the check, directly upgrade the kernel.</li>.
	// Default value: `false`.
	DryRun *bool `json:"DryRun,omitnil,omitempty" name:"DryRun"`
}

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

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

// Predefined struct for user
type UpgradeDBInstanceKernelVersionResponseParams struct {
	// Task ID.
	TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type UpgradeDBInstanceKernelVersionResponse struct {
	*tchttp.BaseResponse
	Response *UpgradeDBInstanceKernelVersionResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type UpgradeDBInstanceMajorVersionRequestParams struct {
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the target kernel version number, where upgradeable target kernel version numbers can be obtained through API [DescribeDBVersions](https://www.tencentcloud.com/document/product/409/89018?from_cn_redirect=1).
	TargetDBKernelVersion *string `json:"TargetDBKernelVersion,omitnil,omitempty" name:"TargetDBKernelVersion"`

	// Whether it is verification mode: if UpgradeCheck is True, it means only kernel version compatibility check will be conducted, without actual upgrade operations, and there will be no affect on the original instance. The check results can be viewed through the upgrade logs.
	UpgradeCheck *bool `json:"UpgradeCheck,omitnil,omitempty" name:"UpgradeCheck"`

	// Pre-upgrade backup option: True means a full backup is required before upgrade, and False means a full backup is not required before upgrade. If there is an existing backup set that can restore the instance to its pre-upgrade state, False can be selected; otherwise, True should be specified. This parameter is invalid when UpgradeCheck is True.
	BackupBeforeUpgrade *bool `json:"BackupBeforeUpgrade,omitnil,omitempty" name:"BackupBeforeUpgrade"`

	// Statistics collection option, which is used to run ANALYZE on the primary instance to update system statistics after the upgrade. Valid values include:
	// 0: No statistics collection required;
	// 1: Collect statistics before instance recovery write;
	// 3: Collect statistics after instance recovery write.
	// This parameter is invalid when UpgradeCheck is True.
	StatisticsRefreshOption *int64 `json:"StatisticsRefreshOption,omitnil,omitempty" name:"StatisticsRefreshOption"`

	// Plugin upgrade option. pg_upgrade does not upgrade any plugins, and "ALTER EXTENSION UPDATE" needs to be executed on the database where the plugins were created after the upgrade. When initiating a major version upgrade of an instance, you can specify whether the upgrade task automatically upgrades the plugin version before/after the instance recovery write. Valid values include:
	// 0: No automatic plugin upgrade required;
	// 1: Upgrade plugins before recovery write;
	// 2: Upgrade plugins after recovery write.
	// This parameter is invalid when UpgradeCheck is True.
	ExtensionUpgradeOption *int64 `json:"ExtensionUpgradeOption,omitnil,omitempty" name:"ExtensionUpgradeOption"`

	// Upgrade time option. During the upgrade process, there will be a period when the instance is read-only, and there will be a second-level flash disconnection. When initiating an upgrade, you need to choose the time window for this impact. Valid values include:
	// 0: Execute automatically, no specific time window required;
	// 1: Specify the time window for this upgrade task, which is set via UpgradeTimeBegin and UpgradeTimeEnd parameters;
	// 2: Execute during the instance operation and maintenance time window.
	// This parameter is invalid when UpgradeCheck is True.
	UpgradeTimeOption *int64 `json:"UpgradeTimeOption,omitnil,omitempty" name:"UpgradeTimeOption"`

	// Upgrade window start time, and the time format is HH:MM:SS, for example: 01:00:00. This parameter is valid when UpgradeTimeOption is set to `1`.
	// This parameter is invalid when UpgradeCheck is True.
	UpgradeTimeBegin *string `json:"UpgradeTimeBegin,omitnil,omitempty" name:"UpgradeTimeBegin"`

	// Upgrade window end time, and the time format is HH:MM:SS, for example: 2:00:00 AM. This parameter is valid when UpgradeTimeOption is set to `1`.
	// This parameter is invalid when UpgradeCheck is True.
	UpgradeTimeEnd *string `json:"UpgradeTimeEnd,omitnil,omitempty" name:"UpgradeTimeEnd"`
}

type UpgradeDBInstanceMajorVersionRequest struct {
	*tchttp.BaseRequest
	
	// Instance ID. obtain through the api [DescribeDBInstances](https://www.tencentcloud.com/document/api/409/16773?from_cn_redirect=1).
	DBInstanceId *string `json:"DBInstanceId,omitnil,omitempty" name:"DBInstanceId"`

	// Specifies the target kernel version number, where upgradeable target kernel version numbers can be obtained through API [DescribeDBVersions](https://www.tencentcloud.com/document/product/409/89018?from_cn_redirect=1).
	TargetDBKernelVersion *string `json:"TargetDBKernelVersion,omitnil,omitempty" name:"TargetDBKernelVersion"`

	// Whether it is verification mode: if UpgradeCheck is True, it means only kernel version compatibility check will be conducted, without actual upgrade operations, and there will be no affect on the original instance. The check results can be viewed through the upgrade logs.
	UpgradeCheck *bool `json:"UpgradeCheck,omitnil,omitempty" name:"UpgradeCheck"`

	// Pre-upgrade backup option: True means a full backup is required before upgrade, and False means a full backup is not required before upgrade. If there is an existing backup set that can restore the instance to its pre-upgrade state, False can be selected; otherwise, True should be specified. This parameter is invalid when UpgradeCheck is True.
	BackupBeforeUpgrade *bool `json:"BackupBeforeUpgrade,omitnil,omitempty" name:"BackupBeforeUpgrade"`

	// Statistics collection option, which is used to run ANALYZE on the primary instance to update system statistics after the upgrade. Valid values include:
	// 0: No statistics collection required;
	// 1: Collect statistics before instance recovery write;
	// 3: Collect statistics after instance recovery write.
	// This parameter is invalid when UpgradeCheck is True.
	StatisticsRefreshOption *int64 `json:"StatisticsRefreshOption,omitnil,omitempty" name:"StatisticsRefreshOption"`

	// Plugin upgrade option. pg_upgrade does not upgrade any plugins, and "ALTER EXTENSION UPDATE" needs to be executed on the database where the plugins were created after the upgrade. When initiating a major version upgrade of an instance, you can specify whether the upgrade task automatically upgrades the plugin version before/after the instance recovery write. Valid values include:
	// 0: No automatic plugin upgrade required;
	// 1: Upgrade plugins before recovery write;
	// 2: Upgrade plugins after recovery write.
	// This parameter is invalid when UpgradeCheck is True.
	ExtensionUpgradeOption *int64 `json:"ExtensionUpgradeOption,omitnil,omitempty" name:"ExtensionUpgradeOption"`

	// Upgrade time option. During the upgrade process, there will be a period when the instance is read-only, and there will be a second-level flash disconnection. When initiating an upgrade, you need to choose the time window for this impact. Valid values include:
	// 0: Execute automatically, no specific time window required;
	// 1: Specify the time window for this upgrade task, which is set via UpgradeTimeBegin and UpgradeTimeEnd parameters;
	// 2: Execute during the instance operation and maintenance time window.
	// This parameter is invalid when UpgradeCheck is True.
	UpgradeTimeOption *int64 `json:"UpgradeTimeOption,omitnil,omitempty" name:"UpgradeTimeOption"`

	// Upgrade window start time, and the time format is HH:MM:SS, for example: 01:00:00. This parameter is valid when UpgradeTimeOption is set to `1`.
	// This parameter is invalid when UpgradeCheck is True.
	UpgradeTimeBegin *string `json:"UpgradeTimeBegin,omitnil,omitempty" name:"UpgradeTimeBegin"`

	// Upgrade window end time, and the time format is HH:MM:SS, for example: 2:00:00 AM. This parameter is valid when UpgradeTimeOption is set to `1`.
	// This parameter is invalid when UpgradeCheck is True.
	UpgradeTimeEnd *string `json:"UpgradeTimeEnd,omitnil,omitempty" name:"UpgradeTimeEnd"`
}

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

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

// Predefined struct for user
type UpgradeDBInstanceMajorVersionResponseParams struct {
	// Task ID.
	TaskId *int64 `json:"TaskId,omitnil,omitempty" name:"TaskId"`

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

type UpgradeDBInstanceMajorVersionResponse struct {
	*tchttp.BaseResponse
	Response *UpgradeDBInstanceMajorVersionResponseParams `json:"Response"`
}

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

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

type Version struct {
	// Database engines. Valid values:
	// 1. `postgresql` (TencentDB for PostgreSQL)
	// 2. `mssql_compatible` (MSSQL compatible-TencentDB for PostgreSQL)
	DBEngine *string `json:"DBEngine,omitnil,omitempty" name:"DBEngine"`

	// Database version, such as 12.4.
	DBVersion *string `json:"DBVersion,omitnil,omitempty" name:"DBVersion"`

	// Database major version, such as 12.
	DBMajorVersion *string `json:"DBMajorVersion,omitnil,omitempty" name:"DBMajorVersion"`

	// Database kernel version, such as v12.4_r1.3.
	DBKernelVersion *string `json:"DBKernelVersion,omitnil,omitempty" name:"DBKernelVersion"`

	// List of features supported by the database kernel, such as:
	// TDE: Supports data encryption.
	SupportedFeatureNames []*string `json:"SupportedFeatureNames,omitnil,omitempty" name:"SupportedFeatureNames"`

	// Database version status, including:.
	// AVAILABLE: available.
	// UPGRADE_ONLY: specifies that creation is not allowed. this version is only available for upgrade to a higher version.
	// DEPRECATED.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// List of versions to which this database version (`DBKernelVersion`) can be upgraded, including minor and major version numbers available for upgrade (complete kernel version format example: v15.1_v1.6).
	AvailableUpgradeTarget []*string `json:"AvailableUpgradeTarget,omitnil,omitempty" name:"AvailableUpgradeTarget"`
}

type Xlog struct {
	// Unique backup file ID
	Id *int64 `json:"Id,omitnil,omitempty" name:"Id"`

	// File generation start time
	StartTime *string `json:"StartTime,omitnil,omitempty" name:"StartTime"`

	// File generation end time
	EndTime *string `json:"EndTime,omitnil,omitempty" name:"EndTime"`

	// Download address on private network
	InternalAddr *string `json:"InternalAddr,omitnil,omitempty" name:"InternalAddr"`

	// Download address on public network
	ExternalAddr *string `json:"ExternalAddr,omitnil,omitempty" name:"ExternalAddr"`

	// Backup file size
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`
}

type ZoneInfo struct {
	// AZ abbreviation
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// AZ name
	ZoneName *string `json:"ZoneName,omitnil,omitempty" name:"ZoneName"`

	// AZ number
	ZoneId *uint64 `json:"ZoneId,omitnil,omitempty" name:"ZoneId"`

	// Availability status. Valid values:
	// `UNAVAILABLE`.
	// `AVAILABLE`.
	// `SELLOUT`.
	// `SUPPORTMODIFYONLY` (supports configuration adjustment).
	ZoneState *string `json:"ZoneState,omitnil,omitempty" name:"ZoneState"`

	// Whether the AZ supports IPv6 address access
	ZoneSupportIpv6 *uint64 `json:"ZoneSupportIpv6,omitnil,omitempty" name:"ZoneSupportIpv6"`

	// AZs that can be used as standby when this AZ is primary
	// Note: this field may return `null`, indicating that no valid values can be obtained.
	StandbyZoneSet []*string `json:"StandbyZoneSet,omitnil,omitempty" name:"StandbyZoneSet"`
}