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

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 CbsInfo struct {
	// CBS storage size, in TB
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// CBS storage type, SSD by default
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`
}

type CosCapacity struct {
	// Total capacity, in GB
	TotalCapacity *float64 `json:"TotalCapacity,omitnil,omitempty" name:"TotalCapacity"`

	// Available capacity, in GB
	TotalFreeCapacity *float64 `json:"TotalFreeCapacity,omitnil,omitempty" name:"TotalFreeCapacity"`

	// Used capacity, in GB
	TotalUsedCapacity *float64 `json:"TotalUsedCapacity,omitnil,omitempty" name:"TotalUsedCapacity"`
}

type CosInfo struct {
	// COS size, in TB
	Size *int64 `json:"Size,omitnil,omitempty" name:"Size"`

	// COS type, COS by default
	Type *string `json:"Type,omitnil,omitempty" name:"Type"`
}

// Predefined struct for user
type CreateDedicatedClusterOrderRequestParams struct {
	// CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// Array of order-related CDC types
	DedicatedClusterTypes []*DedicatedClusterTypeInfo `json:"DedicatedClusterTypes,omitnil,omitempty" name:"DedicatedClusterTypes"`

	// Order-related COS storage information
	CosInfo *CosInfo `json:"CosInfo,omitnil,omitempty" name:"CosInfo"`

	// Order-related CBS storage information
	CbsInfo *CbsInfo `json:"CbsInfo,omitnil,omitempty" name:"CbsInfo"`

	// Purchase source, cloudApi by default
	PurchaseSource *string `json:"PurchaseSource,omitnil,omitempty" name:"PurchaseSource"`

	// DedicatedClusterOrderId needs to be submitted when API is invoked to submit an order.
	DedicatedClusterOrderId *string `json:"DedicatedClusterOrderId,omitnil,omitempty" name:"DedicatedClusterOrderId"`
}

type CreateDedicatedClusterOrderRequest struct {
	*tchttp.BaseRequest
	
	// CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// Array of order-related CDC types
	DedicatedClusterTypes []*DedicatedClusterTypeInfo `json:"DedicatedClusterTypes,omitnil,omitempty" name:"DedicatedClusterTypes"`

	// Order-related COS storage information
	CosInfo *CosInfo `json:"CosInfo,omitnil,omitempty" name:"CosInfo"`

	// Order-related CBS storage information
	CbsInfo *CbsInfo `json:"CbsInfo,omitnil,omitempty" name:"CbsInfo"`

	// Purchase source, cloudApi by default
	PurchaseSource *string `json:"PurchaseSource,omitnil,omitempty" name:"PurchaseSource"`

	// DedicatedClusterOrderId needs to be submitted when API is invoked to submit an order.
	DedicatedClusterOrderId *string `json:"DedicatedClusterOrderId,omitnil,omitempty" name:"DedicatedClusterOrderId"`
}

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

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

// Predefined struct for user
type CreateDedicatedClusterOrderResponseParams struct {
	// CDC order id 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	DedicatedClusterOrderId *string `json:"DedicatedClusterOrderId,omitnil,omitempty" name:"DedicatedClusterOrderId"`

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

type CreateDedicatedClusterOrderResponse struct {
	*tchttp.BaseResponse
	Response *CreateDedicatedClusterOrderResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type CreateDedicatedClusterRequestParams struct {
	// SiteId to which the CDC belongs
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

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

	// AZ to which the CDC belongs
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// CDC description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`
}

type CreateDedicatedClusterRequest struct {
	*tchttp.BaseRequest
	
	// SiteId to which the CDC belongs
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

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

	// AZ to which the CDC belongs
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// CDC description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`
}

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

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

// Predefined struct for user
type CreateDedicatedClusterResponseParams struct {
	// Created CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

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

type CreateDedicatedClusterResponse struct {
	*tchttp.BaseResponse
	Response *CreateDedicatedClusterResponseParams `json:"Response"`
}

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

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

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

	// Country where the site is located
	Country *string `json:"Country,omitnil,omitempty" name:"Country"`

	// Province where the site is located
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// City where the site is located
	City *string `json:"City,omitnil,omitempty" name:"City"`

	// Detailed address of the site
	AddressLine *string `json:"AddressLine,omitnil,omitempty" name:"AddressLine"`

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

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

	// You are using optical fiber type to connect the CDC device to the network Single-mode or multi-mode fibers are available.
	FiberType *string `json:"FiberType,omitnil,omitempty" name:"FiberType"`

	// Optical standard used to connect the CDC device to the network This field depends on the uplink speed, optical fiber type, and distance to upstream equipment.
	OpticalStandard *string `json:"OpticalStandard,omitnil,omitempty" name:"OpticalStandard"`

	// Type of power connector
	PowerConnectors *string `json:"PowerConnectors,omitnil,omitempty" name:"PowerConnectors"`

	// Whether power is supplied from above or below the rack
	PowerFeedDrop *string `json:"PowerFeedDrop,omitnil,omitempty" name:"PowerFeedDrop"`

	// Maximum weight capacity (KG)
	MaxWeight *int64 `json:"MaxWeight,omitnil,omitempty" name:"MaxWeight"`

	// Power consumption (KW)
	PowerDrawKva *int64 `json:"PowerDrawKva,omitnil,omitempty" name:"PowerDrawKva"`

	// Uplink speed from the network to Tencent Cloud Region
	UplinkSpeedGbps *int64 `json:"UplinkSpeedGbps,omitnil,omitempty" name:"UplinkSpeedGbps"`

	// Number of uplinks used by each CDC device (2 devices per rack) when connected to the network
	UplinkCount *int64 `json:"UplinkCount,omitnil,omitempty" name:"UplinkCount"`

	// Whether the following environmental conditions are met: 
	// 1. There are no material requirements or the acceptance standard on site that will affect the delivery and installation of the CDC device. 
	// 2. The following conditions are met for finalized rack positions: 
	// Temperature ranges from 41 to 104°F (5 to 40°C). 
	// Humidity ranges from 10°F (-12°C) to 70°F (21°C) and relative humidity ranges from 8% RH to 80% RH. 
	// Air flows from front to back at the rack position and there is sufficient air in CFM (cubic feet per minute). The air quantity in CFM must be 145.8 times the power consumption (in KVA) of CDC.
	ConditionRequirement *bool `json:"ConditionRequirement,omitnil,omitempty" name:"ConditionRequirement"`

	// Whether the following dimension conditions are met: 
	// Your loading dock can accommodate one rack container (H x W x D = 94" x 54" x 48"). 
	// You can provide a clear route from the delivery point of your rack (H x W x D = 80" x 24" x 48") to its final installation location. You should consider platforms, corridors, doors, turns, ramps, freight elevators as well as other access restrictions when measuring the depth. 
	// There shall be a 48" or greater front clearance and a 24" or greater rear clearance where the CDC is finally installed.
	DimensionRequirement *bool `json:"DimensionRequirement,omitnil,omitempty" name:"DimensionRequirement"`

	// Whether redundant upstream equipment (switch or router) is provided so that both network devices can be connected to the network.
	RedundantNetworking *bool `json:"RedundantNetworking,omitnil,omitempty" name:"RedundantNetworking"`

	// Postal code of the site area
	PostalCode *int64 `json:"PostalCode,omitnil,omitempty" name:"PostalCode"`

	// Detailed address of the site area (to be added)
	OptionalAddressLine *string `json:"OptionalAddressLine,omitnil,omitempty" name:"OptionalAddressLine"`

	// Whether you need help from Tencent Cloud for rack installation?
	NeedHelp *bool `json:"NeedHelp,omitnil,omitempty" name:"NeedHelp"`

	// Whether there is power redundancy?
	RedundantPower *bool `json:"RedundantPower,omitnil,omitempty" name:"RedundantPower"`

	// Whether there is an upstream circuit breaker?
	BreakerRequirement *bool `json:"BreakerRequirement,omitnil,omitempty" name:"BreakerRequirement"`
}

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

	// Country where the site is located
	Country *string `json:"Country,omitnil,omitempty" name:"Country"`

	// Province where the site is located
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// City where the site is located
	City *string `json:"City,omitnil,omitempty" name:"City"`

	// Detailed address of the site
	AddressLine *string `json:"AddressLine,omitnil,omitempty" name:"AddressLine"`

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

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

	// You are using optical fiber type to connect the CDC device to the network Single-mode or multi-mode fibers are available.
	FiberType *string `json:"FiberType,omitnil,omitempty" name:"FiberType"`

	// Optical standard used to connect the CDC device to the network This field depends on the uplink speed, optical fiber type, and distance to upstream equipment.
	OpticalStandard *string `json:"OpticalStandard,omitnil,omitempty" name:"OpticalStandard"`

	// Type of power connector
	PowerConnectors *string `json:"PowerConnectors,omitnil,omitempty" name:"PowerConnectors"`

	// Whether power is supplied from above or below the rack
	PowerFeedDrop *string `json:"PowerFeedDrop,omitnil,omitempty" name:"PowerFeedDrop"`

	// Maximum weight capacity (KG)
	MaxWeight *int64 `json:"MaxWeight,omitnil,omitempty" name:"MaxWeight"`

	// Power consumption (KW)
	PowerDrawKva *int64 `json:"PowerDrawKva,omitnil,omitempty" name:"PowerDrawKva"`

	// Uplink speed from the network to Tencent Cloud Region
	UplinkSpeedGbps *int64 `json:"UplinkSpeedGbps,omitnil,omitempty" name:"UplinkSpeedGbps"`

	// Number of uplinks used by each CDC device (2 devices per rack) when connected to the network
	UplinkCount *int64 `json:"UplinkCount,omitnil,omitempty" name:"UplinkCount"`

	// Whether the following environmental conditions are met: 
	// 1. There are no material requirements or the acceptance standard on site that will affect the delivery and installation of the CDC device. 
	// 2. The following conditions are met for finalized rack positions: 
	// Temperature ranges from 41 to 104°F (5 to 40°C). 
	// Humidity ranges from 10°F (-12°C) to 70°F (21°C) and relative humidity ranges from 8% RH to 80% RH. 
	// Air flows from front to back at the rack position and there is sufficient air in CFM (cubic feet per minute). The air quantity in CFM must be 145.8 times the power consumption (in KVA) of CDC.
	ConditionRequirement *bool `json:"ConditionRequirement,omitnil,omitempty" name:"ConditionRequirement"`

	// Whether the following dimension conditions are met: 
	// Your loading dock can accommodate one rack container (H x W x D = 94" x 54" x 48"). 
	// You can provide a clear route from the delivery point of your rack (H x W x D = 80" x 24" x 48") to its final installation location. You should consider platforms, corridors, doors, turns, ramps, freight elevators as well as other access restrictions when measuring the depth. 
	// There shall be a 48" or greater front clearance and a 24" or greater rear clearance where the CDC is finally installed.
	DimensionRequirement *bool `json:"DimensionRequirement,omitnil,omitempty" name:"DimensionRequirement"`

	// Whether redundant upstream equipment (switch or router) is provided so that both network devices can be connected to the network.
	RedundantNetworking *bool `json:"RedundantNetworking,omitnil,omitempty" name:"RedundantNetworking"`

	// Postal code of the site area
	PostalCode *int64 `json:"PostalCode,omitnil,omitempty" name:"PostalCode"`

	// Detailed address of the site area (to be added)
	OptionalAddressLine *string `json:"OptionalAddressLine,omitnil,omitempty" name:"OptionalAddressLine"`

	// Whether you need help from Tencent Cloud for rack installation?
	NeedHelp *bool `json:"NeedHelp,omitnil,omitempty" name:"NeedHelp"`

	// Whether there is power redundancy?
	RedundantPower *bool `json:"RedundantPower,omitnil,omitempty" name:"RedundantPower"`

	// Whether there is an upstream circuit breaker?
	BreakerRequirement *bool `json:"BreakerRequirement,omitnil,omitempty" name:"BreakerRequirement"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *CreateSiteRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "Name")
	delete(f, "Country")
	delete(f, "Province")
	delete(f, "City")
	delete(f, "AddressLine")
	delete(f, "Description")
	delete(f, "Note")
	delete(f, "FiberType")
	delete(f, "OpticalStandard")
	delete(f, "PowerConnectors")
	delete(f, "PowerFeedDrop")
	delete(f, "MaxWeight")
	delete(f, "PowerDrawKva")
	delete(f, "UplinkSpeedGbps")
	delete(f, "UplinkCount")
	delete(f, "ConditionRequirement")
	delete(f, "DimensionRequirement")
	delete(f, "RedundantNetworking")
	delete(f, "PostalCode")
	delete(f, "OptionalAddressLine")
	delete(f, "NeedHelp")
	delete(f, "RedundantPower")
	delete(f, "BreakerRequirement")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "CreateSiteRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

// Predefined struct for user
type CreateSiteResponseParams struct {
	// Created Site id
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

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

type CreateSiteResponse struct {
	*tchttp.BaseResponse
	Response *CreateSiteResponseParams `json:"Response"`
}

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

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

type DedicatedCluster struct {
	// CDC id, e.g., cluster-xxxxx.
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// Name of AZ to which the CDC belongs
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

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

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

	// Life cycle of the CDC, e.g., PENDING.
	LifecycleStatus *string `json:"LifecycleStatus,omitnil,omitempty" name:"LifecycleStatus"`

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

	// Site id to which the CDC belongs
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`
}

type DedicatedClusterInstanceType struct {
	// AZ
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

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

	// NIC type, e.g., 25 represents a 25 GB NIC.
	NetworkCard *int64 `json:"NetworkCard,omitnil,omitempty" name:"NetworkCard"`

	// Number of CPU cores of instance, in cores
	Cpu *int64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// Memory capacity of instance, in GB
	Memory *int64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Instance family
	InstanceFamily *string `json:"InstanceFamily,omitnil,omitempty" name:"InstanceFamily"`

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

	// Local storage block count
	StorageBlockAmount *int64 `json:"StorageBlockAmount,omitnil,omitempty" name:"StorageBlockAmount"`

	// LAN bandwidth, in GB/s
	InstanceBandwidth *float64 `json:"InstanceBandwidth,omitnil,omitempty" name:"InstanceBandwidth"`

	// Network packet receiving/sending capacity, in 10,000 PPS
	InstancePps *int64 `json:"InstancePps,omitnil,omitempty" name:"InstancePps"`

	// Processor type
	CpuType *string `json:"CpuType,omitnil,omitempty" name:"CpuType"`

	// Number of GPUs of instance
	Gpu *int64 `json:"Gpu,omitnil,omitempty" name:"Gpu"`

	// Number of FPGAs of instance.
	Fpga *int64 `json:"Fpga,omitnil,omitempty" name:"Fpga"`

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

	// Whether the instance is for sale? Value values: <br><li>SELL: Indicates that the instance is for sale. <br><li>SOLD_OUT: Indicates that the instance has been sold out.
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`
}

type DedicatedClusterOrder struct {
	// CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// CDC type id (moved to the next level, obsolete and will be deleted later)
	DedicatedClusterTypeId *string `json:"DedicatedClusterTypeId,omitnil,omitempty" name:"DedicatedClusterTypeId"`

	// List of supported storage types (moved to the next level, obsolete and will be deleted later)
	SupportedStorageType []*string `json:"SupportedStorageType,omitnil,omitempty" name:"SupportedStorageType"`

	// Supported uplink switch transmission rate (GiB) (moved to the next level, obsolete and will be deleted later)
	SupportedUplinkSpeed []*int64 `json:"SupportedUplinkSpeed,omitnil,omitempty" name:"SupportedUplinkSpeed"`

	// List of supported instance families (moved to the next level, obsolete and will be deleted later)
	SupportedInstanceFamily []*string `json:"SupportedInstanceFamily,omitnil,omitempty" name:"SupportedInstanceFamily"`

	// Floor weight capacity (KG)
	Weight *int64 `json:"Weight,omitnil,omitempty" name:"Weight"`

	// Power requirements (KW)
	PowerDraw *float64 `json:"PowerDraw,omitnil,omitempty" name:"PowerDraw"`

	// Order status
	OrderStatus *string `json:"OrderStatus,omitnil,omitempty" name:"OrderStatus"`

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

	// Large order ID
	DedicatedClusterOrderId *string `json:"DedicatedClusterOrderId,omitnil,omitempty" name:"DedicatedClusterOrderId"`

	// Order type, CREATE or EXTEND
	Action *string `json:"Action,omitnil,omitempty" name:"Action"`

	// List of sub-order details 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	DedicatedClusterOrderItems []*DedicatedClusterOrderItem `json:"DedicatedClusterOrderItems,omitnil,omitempty" name:"DedicatedClusterOrderItems"`

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

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

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

	// 0 for unpaid, 1 for paid 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	PayStatus *int64 `json:"PayStatus,omitnil,omitempty" name:"PayStatus"`

	// Payment method: lump-sum, monthly, and annually 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	PayType *string `json:"PayType,omitnil,omitempty" name:"PayType"`

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

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

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

	// Acceptance Status
	CheckStatus *string `json:"CheckStatus,omitnil,omitempty" name:"CheckStatus"`

	// Expected Delivery Time
	DeliverExpectTime *string `json:"DeliverExpectTime,omitnil,omitempty" name:"DeliverExpectTime"`

	// Actual Delivery Completion Time
	DeliverFinishTime *string `json:"DeliverFinishTime,omitnil,omitempty" name:"DeliverFinishTime"`

	// Expected Acceptance Time
	CheckExpectTime *string `json:"CheckExpectTime,omitnil,omitempty" name:"CheckExpectTime"`

	// Actual Acceptance Completion Time
	CheckFinishTime *string `json:"CheckFinishTime,omitnil,omitempty" name:"CheckFinishTime"`

	// Order SLA
	OrderSLA *string `json:"OrderSLA,omitnil,omitempty" name:"OrderSLA"`

	// Order Payment Plan
	OrderPayPlan *string `json:"OrderPayPlan,omitnil,omitempty" name:"OrderPayPlan"`
}

type DedicatedClusterOrderItem struct {
	// CDC type id
	DedicatedClusterTypeId *string `json:"DedicatedClusterTypeId,omitnil,omitempty" name:"DedicatedClusterTypeId"`

	// List of supported storage types
	SupportedStorageType []*string `json:"SupportedStorageType,omitnil,omitempty" name:"SupportedStorageType"`

	// Supported uplink switch transmission rate (GiB)
	SupportedUplinkSpeed []*int64 `json:"SupportedUplinkSpeed,omitnil,omitempty" name:"SupportedUplinkSpeed"`

	// List of supported instance families
	SupportedInstanceFamily []*string `json:"SupportedInstanceFamily,omitnil,omitempty" name:"SupportedInstanceFamily"`

	// Floor weight capacity (KG)
	Weight *int64 `json:"Weight,omitnil,omitempty" name:"Weight"`

	// Power requirements (KW)
	PowerDraw *float64 `json:"PowerDraw,omitnil,omitempty" name:"PowerDraw"`

	// Order status
	SubOrderStatus *string `json:"SubOrderStatus,omitnil,omitempty" name:"SubOrderStatus"`

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

	// Sub-order ID
	SubOrderId *string `json:"SubOrderId,omitnil,omitempty" name:"SubOrderId"`

	// Number of linked cluster types
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Brief description of type
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Detailed description of type
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Number of CPUs
	TotalCpu *int64 `json:"TotalCpu,omitnil,omitempty" name:"TotalCpu"`

	// Number of memories
	TotalMem *int64 `json:"TotalMem,omitnil,omitempty" name:"TotalMem"`

	// Total GPUs
	TotalGpu *int64 `json:"TotalGpu,omitnil,omitempty" name:"TotalGpu"`

	// English type name
	TypeName *string `json:"TypeName,omitnil,omitempty" name:"TypeName"`

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

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

	// 0 for unpaid, 1 for paid 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	SubOrderPayStatus *int64 `json:"SubOrderPayStatus,omitnil,omitempty" name:"SubOrderPayStatus"`
}

type DedicatedClusterType struct {
	// Configuration id
	DedicatedClusterTypeId *string `json:"DedicatedClusterTypeId,omitnil,omitempty" name:"DedicatedClusterTypeId"`

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

	// Configuration name, corresponding to computing resource type
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

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

	// List of supported storage types
	SupportedStorageType []*string `json:"SupportedStorageType,omitnil,omitempty" name:"SupportedStorageType"`

	// Supported uplink switch transmission rate
	SupportedUplinkGiB []*int64 `json:"SupportedUplinkGiB,omitnil,omitempty" name:"SupportedUplinkGiB"`

	// List of supported instance families
	SupportedInstanceFamily []*string `json:"SupportedInstanceFamily,omitnil,omitempty" name:"SupportedInstanceFamily"`

	// Floor weight capacity (KG)
	Weight *int64 `json:"Weight,omitnil,omitempty" name:"Weight"`

	// Power requirements (KW)
	PowerDrawKva *float64 `json:"PowerDrawKva,omitnil,omitempty" name:"PowerDrawKva"`

	// Displays the details of computing resource types, and does not display resources such as storage; corresponding to type
	ComputeFormatDesc *string `json:"ComputeFormatDesc,omitnil,omitempty" name:"ComputeFormatDesc"`
}

type DedicatedClusterTypeInfo struct {
	// Cluster type id
	Id *string `json:"Id,omitnil,omitempty" name:"Id"`

	// Cluster type count
	Count *int64 `json:"Count,omitnil,omitempty" name:"Count"`
}

// Predefined struct for user
type DeleteDedicatedClustersRequestParams struct {
	// CDC id to be deleted
	DedicatedClusterIds []*string `json:"DedicatedClusterIds,omitnil,omitempty" name:"DedicatedClusterIds"`
}

type DeleteDedicatedClustersRequest struct {
	*tchttp.BaseRequest
	
	// CDC id to be deleted
	DedicatedClusterIds []*string `json:"DedicatedClusterIds,omitnil,omitempty" name:"DedicatedClusterIds"`
}

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

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

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

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

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

// Predefined struct for user
type DeleteSitesRequestParams struct {
	// List of site ids to be deleted
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`
}

type DeleteSitesRequest struct {
	*tchttp.BaseRequest
	
	// List of site ids to be deleted
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`
}

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

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

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

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

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

// Predefined struct for user
type DescribeDedicatedClusterCosCapacityRequestParams struct {
	// Queried CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}

type DescribeDedicatedClusterCosCapacityRequest struct {
	*tchttp.BaseRequest
	
	// Queried CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterCosCapacityResponseParams struct {
	// Cluster COS capacity, in GB
	CosCapacity *CosCapacity `json:"CosCapacity,omitnil,omitempty" name:"CosCapacity"`

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

type DescribeDedicatedClusterCosCapacityResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedClusterCosCapacityResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterHostStatisticsRequestParams struct {
	// Queried CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// Host id
	HostId *string `json:"HostId,omitnil,omitempty" name:"HostId"`

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

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

	// Time range accuracy, 1 min/5 min
	Period *string `json:"Period,omitnil,omitempty" name:"Period"`
}

type DescribeDedicatedClusterHostStatisticsRequest struct {
	*tchttp.BaseRequest
	
	// Queried CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// Host id
	HostId *string `json:"HostId,omitnil,omitempty" name:"HostId"`

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

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

	// Time range accuracy, 1 min/5 min
	Period *string `json:"Period,omitnil,omitempty" name:"Period"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterHostStatisticsResponseParams struct {
	// List of statistic information of the cluster host
	HostStatisticSet []*HostStatistic `json:"HostStatisticSet,omitnil,omitempty" name:"HostStatisticSet"`

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

type DescribeDedicatedClusterHostStatisticsResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedClusterHostStatisticsResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterHostsRequestParams struct {
	// Cluster id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// Offset, 0 by default
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeDedicatedClusterHostsRequest struct {
	*tchttp.BaseRequest
	
	// Cluster id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

	// Offset, 0 by default
	Offset *uint64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default
	Limit *uint64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterHostsResponseParams struct {
	// Host information 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	HostInfoSet []*HostInfo `json:"HostInfoSet,omitnil,omitempty" name:"HostInfoSet"`

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

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

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

// Predefined struct for user
type DescribeDedicatedClusterInstanceTypesRequestParams struct {
	// Queried CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}

type DescribeDedicatedClusterInstanceTypesRequest struct {
	*tchttp.BaseRequest
	
	// Queried CDC id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterInstanceTypesResponseParams struct {
	// List of supported instance types
	DedicatedClusterInstanceTypeSet []*DedicatedClusterInstanceType `json:"DedicatedClusterInstanceTypeSet,omitnil,omitempty" name:"DedicatedClusterInstanceTypeSet"`

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

type DescribeDedicatedClusterInstanceTypesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedClusterInstanceTypesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterOrdersRequestParams struct {
	// Filter by CDC id.
	DedicatedClusterIds []*string `json:"DedicatedClusterIds,omitnil,omitempty" name:"DedicatedClusterIds"`

	// Filter by CDC order id.
	DedicatedClusterOrderIds *string `json:"DedicatedClusterOrderIds,omitnil,omitempty" name:"DedicatedClusterOrderIds"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// The order status is the filter condition: PENDING INCONSTRUCTION DELIVERING DELIVERED EXPIRED CANCELLED OFFLINE
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The order type is the filter condition: CREATE EXTEND
	ActionType *string `json:"ActionType,omitnil,omitempty" name:"ActionType"`

	// Order Type List
	OrderTypes []*string `json:"OrderTypes,omitnil,omitempty" name:"OrderTypes"`
}

type DescribeDedicatedClusterOrdersRequest struct {
	*tchttp.BaseRequest
	
	// Filter by CDC id.
	DedicatedClusterIds []*string `json:"DedicatedClusterIds,omitnil,omitempty" name:"DedicatedClusterIds"`

	// Filter by CDC order id.
	DedicatedClusterOrderIds *string `json:"DedicatedClusterOrderIds,omitnil,omitempty" name:"DedicatedClusterOrderIds"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// The order status is the filter condition: PENDING INCONSTRUCTION DELIVERING DELIVERED EXPIRED CANCELLED OFFLINE
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// The order type is the filter condition: CREATE EXTEND
	ActionType *string `json:"ActionType,omitnil,omitempty" name:"ActionType"`

	// Order Type List
	OrderTypes []*string `json:"OrderTypes,omitnil,omitempty" name:"OrderTypes"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterOrdersResponseParams struct {
	// List of CDC orders
	DedicatedClusterOrderSet []*DedicatedClusterOrder `json:"DedicatedClusterOrderSet,omitnil,omitempty" name:"DedicatedClusterOrderSet"`

	// Total number of CDC orders that meet the conditions
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeDedicatedClusterOrdersResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedClusterOrdersResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterOverviewRequestParams struct {
	// Cluster id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}

type DescribeDedicatedClusterOverviewRequest struct {
	*tchttp.BaseRequest
	
	// Cluster id
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterOverviewResponseParams struct {
	// Number of CVMs
	CvmCount *uint64 `json:"CvmCount,omitnil,omitempty" name:"CvmCount"`

	// Number of hosts
	HostCount *uint64 `json:"HostCount,omitnil,omitempty" name:"HostCount"`

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

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

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

	// VPN gateway channel monitoring data 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	VpnConnectionBandwidthData []*VpngwBandwidthData `json:"VpnConnectionBandwidthData,omitnil,omitempty" name:"VpnConnectionBandwidthData"`


	HostDetailInfo []*HostDetailInfo `json:"HostDetailInfo,omitnil,omitempty" name:"HostDetailInfo"`


	HostStandbyCount *uint64 `json:"HostStandbyCount,omitnil,omitempty" name:"HostStandbyCount"`


	HostNormalCount *uint64 `json:"HostNormalCount,omitnil,omitempty" name:"HostNormalCount"`

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

type DescribeDedicatedClusterOverviewResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedClusterOverviewResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterTypesRequestParams struct {
	// Name of fuzzy matching CDC configuration
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// List of CDC configuration ids to be queried
	DedicatedClusterTypeIds []*string `json:"DedicatedClusterTypeIds,omitnil,omitempty" name:"DedicatedClusterTypeIds"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Whether to query only the computing type?
	IsCompute *bool `json:"IsCompute,omitnil,omitempty" name:"IsCompute"`
}

type DescribeDedicatedClusterTypesRequest struct {
	*tchttp.BaseRequest
	
	// Name of fuzzy matching CDC configuration
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// List of CDC configuration ids to be queried
	DedicatedClusterTypeIds []*string `json:"DedicatedClusterTypeIds,omitnil,omitempty" name:"DedicatedClusterTypeIds"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Whether to query only the computing type?
	IsCompute *bool `json:"IsCompute,omitnil,omitempty" name:"IsCompute"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClusterTypesResponseParams struct {
	// List of CDC configurations
	DedicatedClusterTypeSet []*DedicatedClusterType `json:"DedicatedClusterTypeSet,omitnil,omitempty" name:"DedicatedClusterTypeSet"`

	// Number of records that meet the conditions
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeDedicatedClusterTypesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedClusterTypesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeDedicatedClustersRequestParams struct {
	// Query by one or more instance IDs. Example of instance ID: cluster-xxxxxxxx
	DedicatedClusterIds []*string `json:"DedicatedClusterIds,omitnil,omitempty" name:"DedicatedClusterIds"`

	// Filter by AZ name.
	Zones []*string `json:"Zones,omitnil,omitempty" name:"Zones"`

	// Filter by site id.
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`

	// Filter by CDC life cycle.
	LifecycleStatuses []*string `json:"LifecycleStatuses,omitnil,omitempty" name:"LifecycleStatuses"`

	// Name of fuzzy matching CDC
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeDedicatedClustersRequest struct {
	*tchttp.BaseRequest
	
	// Query by one or more instance IDs. Example of instance ID: cluster-xxxxxxxx
	DedicatedClusterIds []*string `json:"DedicatedClusterIds,omitnil,omitempty" name:"DedicatedClusterIds"`

	// Filter by AZ name.
	Zones []*string `json:"Zones,omitnil,omitempty" name:"Zones"`

	// Filter by site id.
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`

	// Filter by CDC life cycle.
	LifecycleStatuses []*string `json:"LifecycleStatuses,omitnil,omitempty" name:"LifecycleStatuses"`

	// Name of fuzzy matching CDC
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

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, "DedicatedClusterIds")
	delete(f, "Zones")
	delete(f, "SiteIds")
	delete(f, "LifecycleStatuses")
	delete(f, "Name")
	delete(f, "Offset")
	delete(f, "Limit")
	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 {
	// List of CDCs that meet the conditions
	DedicatedClusterSet []*DedicatedCluster `json:"DedicatedClusterSet,omitnil,omitempty" name:"DedicatedClusterSet"`

	// Total number of CDCs that meet the conditions
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type 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 DescribeDedicatedSupportedZonesRequestParams struct {
	// List of input regions
	Regions []*int64 `json:"Regions,omitnil,omitempty" name:"Regions"`
}

type DescribeDedicatedSupportedZonesRequest struct {
	*tchttp.BaseRequest
	
	// List of input regions
	Regions []*int64 `json:"Regions,omitnil,omitempty" name:"Regions"`
}

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

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

// Predefined struct for user
type DescribeDedicatedSupportedZonesResponseParams struct {
	// List of supported AZs
	ZoneSet []*RegionZoneInfo `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 DescribeDedicatedSupportedZonesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeDedicatedSupportedZonesResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSitesDetailRequestParams struct {
	// Filter by site id.
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy match by site name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`
}

type DescribeSitesDetailRequest struct {
	*tchttp.BaseRequest
	
	// Filter by site id.
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`

	// Fuzzy match by site name.
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`
}

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

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

// Predefined struct for user
type DescribeSitesDetailResponseParams struct {
	// Site details
	SiteDetailSet []*SiteDetail `json:"SiteDetailSet,omitnil,omitempty" name:"SiteDetailSet"`

	// Total number of sites that meet the conditions
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeSitesDetailResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSitesDetailResponseParams `json:"Response"`
}

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

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

// Predefined struct for user
type DescribeSitesRequestParams struct {
	// Filter by site id.
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`

	// Name of fuzzy matching site
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

type DescribeSitesRequest struct {
	*tchttp.BaseRequest
	
	// Filter by site id.
	SiteIds []*string `json:"SiteIds,omitnil,omitempty" name:"SiteIds"`

	// Name of fuzzy matching site
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Offset, 0 by default For further information on Offset, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Offset *int64 `json:"Offset,omitnil,omitempty" name:"Offset"`

	// Number of returned pieces, 20 by default and can be up to 100. For further information on Limit, please refer to relevant sections in API [Overview] (https://intl.cloud.tencent.com/document/api/213/15688?from_cn_redirect=1).
	Limit *int64 `json:"Limit,omitnil,omitempty" name:"Limit"`
}

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

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

// Predefined struct for user
type DescribeSitesResponseParams struct {
	// List of sites that meet the query conditions
	SiteSet []*Site `json:"SiteSet,omitnil,omitempty" name:"SiteSet"`

	// Number of sites that meet the conditions
	TotalCount *int64 `json:"TotalCount,omitnil,omitempty" name:"TotalCount"`

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

type DescribeSitesResponse struct {
	*tchttp.BaseResponse
	Response *DescribeSitesResponseParams `json:"Response"`
}

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

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

type DetailData struct {
	// Timestamp 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Timestamps []*float64 `json:"Timestamps,omitnil,omitempty" name:"Timestamps"`

	// Corresponding value 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Values []*float64 `json:"Values,omitnil,omitempty" name:"Values"`
}

type HostDetailInfo struct {
	// Type Family
	HostTypeFamily *string `json:"HostTypeFamily,omitnil,omitempty" name:"HostTypeFamily"`

	// Total CPU
	CpuTotal *float64 `json:"CpuTotal,omitnil,omitempty" name:"CpuTotal"`

	// Available CPU
	CpuAvailable *float64 `json:"CpuAvailable,omitnil,omitempty" name:"CpuAvailable"`

	// Total Memory
	MemTotal *float64 `json:"MemTotal,omitnil,omitempty" name:"MemTotal"`

	// Available Memory
	MemAvailable *float64 `json:"MemAvailable,omitnil,omitempty" name:"MemAvailable"`
}

type HostInfo struct {
	// Host IP
	HostIp *string `json:"HostIp,omitnil,omitempty" name:"HostIp"`

	// Cloud service type
	ServiceType *string `json:"ServiceType,omitnil,omitempty" name:"ServiceType"`

	// Host running status
	HostStatus *string `json:"HostStatus,omitnil,omitempty" name:"HostStatus"`

	// Host type
	HostType *string `json:"HostType,omitnil,omitempty" name:"HostType"`

	// Number of available CPUs
	CpuAvailable *uint64 `json:"CpuAvailable,omitnil,omitempty" name:"CpuAvailable"`

	// Total CPUs
	CpuTotal *uint64 `json:"CpuTotal,omitnil,omitempty" name:"CpuTotal"`

	// Available memories
	MemAvailable *uint64 `json:"MemAvailable,omitnil,omitempty" name:"MemAvailable"`

	// Total memories
	MemTotal *uint64 `json:"MemTotal,omitnil,omitempty" name:"MemTotal"`

	// Running time
	RunTime *string `json:"RunTime,omitnil,omitempty" name:"RunTime"`

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

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

type HostStatistic struct {
	// Host type
	HostType *string `json:"HostType,omitnil,omitempty" name:"HostType"`

	// Host model family
	HostFamily *string `json:"HostFamily,omitnil,omitempty" name:"HostFamily"`

	// Number of CPU cores of host, in cores
	Cpu *uint64 `json:"Cpu,omitnil,omitempty" name:"Cpu"`

	// Host memory, in GB
	Memory *uint64 `json:"Memory,omitnil,omitempty" name:"Memory"`

	// Number of hosts of this type
	Count *uint64 `json:"Count,omitnil,omitempty" name:"Count"`

	// Average CPU load percentage 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	CpuAverage *float64 `json:"CpuAverage,omitnil,omitempty" name:"CpuAverage"`

	// Average memory usage percentage 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	MemAverage *float64 `json:"MemAverage,omitnil,omitempty" name:"MemAverage"`

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

	// Detailed CPU monitoring data 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	CpuDetailData *DetailData `json:"CpuDetailData,omitnil,omitempty" name:"CpuDetailData"`

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

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

	// Network packet details 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	NetPacketDetailData *DetailData `json:"NetPacketDetailData,omitnil,omitempty" name:"NetPacketDetailData"`
}

type InBandwidth struct {
	// Timestamp 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Timestamps []*float64 `json:"Timestamps,omitnil,omitempty" name:"Timestamps"`

	// Time-specific value 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Values []*float64 `json:"Values,omitnil,omitempty" name:"Values"`
}

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

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

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

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

// Predefined struct for user
type ModifyDedicatedClusterInfoRequestParams struct {
	// CDC ID
	DedicatedClusterId *string `json:"DedicatedClusterId,omitnil,omitempty" name:"DedicatedClusterId"`

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

	// New cluster AZ
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// New cluster description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Site where the cluster resides
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`
}

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

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

	// New cluster AZ
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// New cluster description
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// Site where the cluster resides
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`
}

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

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

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

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

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

// Predefined struct for user
type ModifyOrderStatusRequestParams struct {
	// Status to be updated
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Large order ID
	DedicatedClusterOrderId *string `json:"DedicatedClusterOrderId,omitnil,omitempty" name:"DedicatedClusterOrderId"`

	// Small order ID
	SubOrderIds []*string `json:"SubOrderIds,omitnil,omitempty" name:"SubOrderIds"`
}

type ModifyOrderStatusRequest struct {
	*tchttp.BaseRequest
	
	// Status to be updated
	Status *string `json:"Status,omitnil,omitempty" name:"Status"`

	// Large order ID
	DedicatedClusterOrderId *string `json:"DedicatedClusterOrderId,omitnil,omitempty" name:"DedicatedClusterOrderId"`

	// Small order ID
	SubOrderIds []*string `json:"SubOrderIds,omitnil,omitempty" name:"SubOrderIds"`
}

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

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

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

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

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

// Predefined struct for user
type ModifySiteDeviceInfoRequestParams struct {
	// Equipment room ID
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

	// You are using optical fiber type to connect the CDC device to the network Single-mode or multi-mode fibers are available.
	FiberType *string `json:"FiberType,omitnil,omitempty" name:"FiberType"`

	// Optical standard used to connect the CDC device to the network This field depends on the uplink speed, optical fiber type, and distance to upstream equipment.
	OpticalStandard *string `json:"OpticalStandard,omitnil,omitempty" name:"OpticalStandard"`

	// Type of power connector
	PowerConnectors *string `json:"PowerConnectors,omitnil,omitempty" name:"PowerConnectors"`

	// Whether power is supplied from above or below the rack
	PowerFeedDrop *string `json:"PowerFeedDrop,omitnil,omitempty" name:"PowerFeedDrop"`

	// Maximum weight capacity (KG)
	MaxWeight *int64 `json:"MaxWeight,omitnil,omitempty" name:"MaxWeight"`

	// Power consumption (KW)
	PowerDrawKva *int64 `json:"PowerDrawKva,omitnil,omitempty" name:"PowerDrawKva"`

	// Uplink speed from the network to Tencent Cloud Region
	UplinkSpeedGbps *int64 `json:"UplinkSpeedGbps,omitnil,omitempty" name:"UplinkSpeedGbps"`

	// Number of uplinks used by each CDC device (2 devices per rack) when connected to the network
	UplinkCount *int64 `json:"UplinkCount,omitnil,omitempty" name:"UplinkCount"`

	// Whether the following environmental conditions are met: 
	// 1. There are no material requirements or the acceptance standard on site that will affect the delivery and installation of the CDC device. 
	// 2. The following conditions are met for finalized rack positions: 
	// Temperature ranges from 41 to 104°F (5 to 40°C). 
	// Humidity ranges from 10°F (-12°C) to 70°F (21°C) and relative humidity ranges from 8% RH to 80% RH. 
	// Air flows from front to back at the rack position and there is sufficient air in CFM (cubic feet per minute). The air quantity in CFM must be 145.8 times the power consumption (in KVA) of CDC.
	ConditionRequirement *bool `json:"ConditionRequirement,omitnil,omitempty" name:"ConditionRequirement"`

	// Whether the following dimension conditions are met: 
	// Your loading dock can accommodate one rack container (H x W x D = 94" x 54" x 48"). 
	// You can provide a clear route from the delivery point of your rack (H x W x D = 80" x 24" x 48") to its final installation location. You should consider platforms, corridors, doors, turns, ramps, freight elevators as well as other access restrictions when measuring the depth. 
	// There shall be a 48" or greater front clearance and a 24" or greater rear clearance where the CDC is finally installed.
	DimensionRequirement *bool `json:"DimensionRequirement,omitnil,omitempty" name:"DimensionRequirement"`

	// Whether redundant upstream equipment (switch or router) is provided so that both network devices can be connected to the network.
	RedundantNetworking *bool `json:"RedundantNetworking,omitnil,omitempty" name:"RedundantNetworking"`

	// Whether you need help from Tencent Cloud for rack installation?
	NeedHelp *bool `json:"NeedHelp,omitnil,omitempty" name:"NeedHelp"`

	// Whether there is power redundancy?
	RedundantPower *bool `json:"RedundantPower,omitnil,omitempty" name:"RedundantPower"`

	// Whether there is an upstream circuit breaker?
	BreakerRequirement *bool `json:"BreakerRequirement,omitnil,omitempty" name:"BreakerRequirement"`
}

type ModifySiteDeviceInfoRequest struct {
	*tchttp.BaseRequest
	
	// Equipment room ID
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

	// You are using optical fiber type to connect the CDC device to the network Single-mode or multi-mode fibers are available.
	FiberType *string `json:"FiberType,omitnil,omitempty" name:"FiberType"`

	// Optical standard used to connect the CDC device to the network This field depends on the uplink speed, optical fiber type, and distance to upstream equipment.
	OpticalStandard *string `json:"OpticalStandard,omitnil,omitempty" name:"OpticalStandard"`

	// Type of power connector
	PowerConnectors *string `json:"PowerConnectors,omitnil,omitempty" name:"PowerConnectors"`

	// Whether power is supplied from above or below the rack
	PowerFeedDrop *string `json:"PowerFeedDrop,omitnil,omitempty" name:"PowerFeedDrop"`

	// Maximum weight capacity (KG)
	MaxWeight *int64 `json:"MaxWeight,omitnil,omitempty" name:"MaxWeight"`

	// Power consumption (KW)
	PowerDrawKva *int64 `json:"PowerDrawKva,omitnil,omitempty" name:"PowerDrawKva"`

	// Uplink speed from the network to Tencent Cloud Region
	UplinkSpeedGbps *int64 `json:"UplinkSpeedGbps,omitnil,omitempty" name:"UplinkSpeedGbps"`

	// Number of uplinks used by each CDC device (2 devices per rack) when connected to the network
	UplinkCount *int64 `json:"UplinkCount,omitnil,omitempty" name:"UplinkCount"`

	// Whether the following environmental conditions are met: 
	// 1. There are no material requirements or the acceptance standard on site that will affect the delivery and installation of the CDC device. 
	// 2. The following conditions are met for finalized rack positions: 
	// Temperature ranges from 41 to 104°F (5 to 40°C). 
	// Humidity ranges from 10°F (-12°C) to 70°F (21°C) and relative humidity ranges from 8% RH to 80% RH. 
	// Air flows from front to back at the rack position and there is sufficient air in CFM (cubic feet per minute). The air quantity in CFM must be 145.8 times the power consumption (in KVA) of CDC.
	ConditionRequirement *bool `json:"ConditionRequirement,omitnil,omitempty" name:"ConditionRequirement"`

	// Whether the following dimension conditions are met: 
	// Your loading dock can accommodate one rack container (H x W x D = 94" x 54" x 48"). 
	// You can provide a clear route from the delivery point of your rack (H x W x D = 80" x 24" x 48") to its final installation location. You should consider platforms, corridors, doors, turns, ramps, freight elevators as well as other access restrictions when measuring the depth. 
	// There shall be a 48" or greater front clearance and a 24" or greater rear clearance where the CDC is finally installed.
	DimensionRequirement *bool `json:"DimensionRequirement,omitnil,omitempty" name:"DimensionRequirement"`

	// Whether redundant upstream equipment (switch or router) is provided so that both network devices can be connected to the network.
	RedundantNetworking *bool `json:"RedundantNetworking,omitnil,omitempty" name:"RedundantNetworking"`

	// Whether you need help from Tencent Cloud for rack installation?
	NeedHelp *bool `json:"NeedHelp,omitnil,omitempty" name:"NeedHelp"`

	// Whether there is power redundancy?
	RedundantPower *bool `json:"RedundantPower,omitnil,omitempty" name:"RedundantPower"`

	// Whether there is an upstream circuit breaker?
	BreakerRequirement *bool `json:"BreakerRequirement,omitnil,omitempty" name:"BreakerRequirement"`
}

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

// FromJsonString It is highly **NOT** recommended to use this function
// because it has no param check, nor strict type check
func (r *ModifySiteDeviceInfoRequest) FromJsonString(s string) error {
	f := make(map[string]interface{})
	if err := json.Unmarshal([]byte(s), &f); err != nil {
		return err
	}
	delete(f, "SiteId")
	delete(f, "FiberType")
	delete(f, "OpticalStandard")
	delete(f, "PowerConnectors")
	delete(f, "PowerFeedDrop")
	delete(f, "MaxWeight")
	delete(f, "PowerDrawKva")
	delete(f, "UplinkSpeedGbps")
	delete(f, "UplinkCount")
	delete(f, "ConditionRequirement")
	delete(f, "DimensionRequirement")
	delete(f, "RedundantNetworking")
	delete(f, "NeedHelp")
	delete(f, "RedundantPower")
	delete(f, "BreakerRequirement")
	if len(f) > 0 {
		return tcerr.NewTencentCloudSDKError("ClientError.BuildRequestError", "ModifySiteDeviceInfoRequest has unknown keys!", "")
	}
	return json.Unmarshal([]byte(s), &r)
}

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

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

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

// Predefined struct for user
type ModifySiteInfoRequestParams struct {
	// Equipment room ID
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

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

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

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

	// Country where the site is located
	Country *string `json:"Country,omitnil,omitempty" name:"Country"`

	// Province where the site is located
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// City where the site is located
	City *string `json:"City,omitnil,omitempty" name:"City"`

	// Postal code of the site area
	PostalCode *string `json:"PostalCode,omitnil,omitempty" name:"PostalCode"`

	// Detailed address of the site
	AddressLine *string `json:"AddressLine,omitnil,omitempty" name:"AddressLine"`
}

type ModifySiteInfoRequest struct {
	*tchttp.BaseRequest
	
	// Equipment room ID
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

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

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

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

	// Country where the site is located
	Country *string `json:"Country,omitnil,omitempty" name:"Country"`

	// Province where the site is located
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// City where the site is located
	City *string `json:"City,omitnil,omitempty" name:"City"`

	// Postal code of the site area
	PostalCode *string `json:"PostalCode,omitnil,omitempty" name:"PostalCode"`

	// Detailed address of the site
	AddressLine *string `json:"AddressLine,omitnil,omitempty" name:"AddressLine"`
}

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

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

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

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

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

type OutBandwidth struct {
	// Timestamp 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Timestamps []*float64 `json:"Timestamps,omitnil,omitempty" name:"Timestamps"`

	// Time-specific value 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	Values []*float64 `json:"Values,omitnil,omitempty" name:"Values"`
}

type RegionZoneInfo struct {
	// Region id
	RegionId *int64 `json:"RegionId,omitnil,omitempty" name:"RegionId"`

	// ZoneInfo array
	Zones []*ZoneInfo `json:"Zones,omitnil,omitempty" name:"Zones"`
}

type Site struct {
	// Site name
	Name *string `json:"Name,omitnil,omitempty" name:"Name"`

	// Site id
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

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

	// Site creation time
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type SiteDetail struct {
	// Site id
	SiteId *string `json:"SiteId,omitnil,omitempty" name:"SiteId"`

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

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

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

	// Optical fiber type
	FiberType *string `json:"FiberType,omitnil,omitempty" name:"FiberType"`

	// Uplink speed from the network to Tencent Cloud Region
	UplinkSpeedGbps *int64 `json:"UplinkSpeedGbps,omitnil,omitempty" name:"UplinkSpeedGbps"`

	// Number of uplinks used by each CDC device (2 devices per rack) when connected to the network
	UplinkCount *int64 `json:"UplinkCount,omitnil,omitempty" name:"UplinkCount"`

	// Optical standard used to connect the CDC device to the network
	OpticalStandard *string `json:"OpticalStandard,omitnil,omitempty" name:"OpticalStandard"`

	// Whether redundant upstream equipment (switch or router) is provided so that both network devices can be connected to the network.
	RedundantNetworking *bool `json:"RedundantNetworking,omitnil,omitempty" name:"RedundantNetworking"`

	// Type of power connector
	PowerConnectors *string `json:"PowerConnectors,omitnil,omitempty" name:"PowerConnectors"`

	// Whether power is supplied from above or below the rack
	PowerFeedDrop *string `json:"PowerFeedDrop,omitnil,omitempty" name:"PowerFeedDrop"`

	// Power consumption (KW)
	PowerDrawKva *float64 `json:"PowerDrawKva,omitnil,omitempty" name:"PowerDrawKva"`

	// Whether the following environmental conditions are met: 
	// 1. There are no material requirements or the acceptance standard on site that will affect the delivery and installation of the CDC device. 
	// 2. The following conditions are met for finalized rack positions: 
	// Temperature ranges from 41 to 104°F (5 to 40°C). 
	// Humidity ranges from 10°F (-12°C) to 70°F (21°C) and relative humidity ranges from 8% RH to 80% RH. 
	// Air flows from front to back at the rack position and there is sufficient air in CFM (cubic feet per minute). The air quantity in CFM must be 145.8 times the power consumption (in KVA) of CDC.
	ConditionRequirement *bool `json:"ConditionRequirement,omitnil,omitempty" name:"ConditionRequirement"`

	// Whether the following dimension conditions are met: 
	// Your loading dock can accommodate one rack container (H x W x D = 94" x 54" x 48"). 
	// You can provide a clear route from the delivery point of your rack (H x W x D = 80" x 24" x 48") to its final installation location. You should consider platforms, corridors, doors, turns, ramps, freight elevators as well as other access restrictions when measuring the depth. 
	// There shall be a 48" or greater front clearance and a 24" or greater rear clearance where the CDC is finally installed.
	DimensionRequirement *bool `json:"DimensionRequirement,omitnil,omitempty" name:"DimensionRequirement"`

	// Maximum weight capacity (KG)
	MaxWeight *int64 `json:"MaxWeight,omitnil,omitempty" name:"MaxWeight"`

	// Site address
	AddressLine *string `json:"AddressLine,omitnil,omitempty" name:"AddressLine"`

	// Detailed address of the site area (to be added)
	OptionalAddressLine *string `json:"OptionalAddressLine,omitnil,omitempty" name:"OptionalAddressLine"`

	// Whether you need help from Tencent Cloud for rack installation?
	NeedHelp *bool `json:"NeedHelp,omitnil,omitempty" name:"NeedHelp"`

	// Whether there is an upstream circuit breaker?
	BreakerRequirement *bool `json:"BreakerRequirement,omitnil,omitempty" name:"BreakerRequirement"`

	// Whether there is power redundancy?
	RedundantPower *bool `json:"RedundantPower,omitnil,omitempty" name:"RedundantPower"`

	// Country where the site is located
	Country *string `json:"Country,omitnil,omitempty" name:"Country"`

	// Province where the site is located
	Province *string `json:"Province,omitnil,omitempty" name:"Province"`

	// City where the site is located
	City *string `json:"City,omitnil,omitempty" name:"City"`

	// Postal code of the site area
	PostalCode *int64 `json:"PostalCode,omitnil,omitempty" name:"PostalCode"`
}

type VpngwBandwidthData struct {
	// Outbound bandwidth traffic 
	// Note: The returned value of this field may be null, indicating that no valid value is obtained.
	OutBandwidth *OutBandwidth `json:"OutBandwidth,omitnil,omitempty" name:"OutBandwidth"`

	// Inbound bandwidth traffic
	InBandwidth *InBandwidth `json:"InBandwidth,omitnil,omitempty" name:"InBandwidth"`
}

type ZoneInfo struct {
	// AZ name
	Zone *string `json:"Zone,omitnil,omitempty" name:"Zone"`

	// AZ description
	ZoneName *string `json:"ZoneName,omitnil,omitempty" name:"ZoneName"`

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

	// AZ status: AVAILABLE or UNAVAILABLE AVAILABLE means the AZ is available while UNAVAILABLE means the AZ is unavailable.
	ZoneState *string `json:"ZoneState,omitnil,omitempty" name:"ZoneState"`
}