// Code Generated by gadget/xsdk, DO NOT EDIT

package dns

type BatchDeleteCustomLineRequest struct {
	Lines []string `form:"Lines" json:"Lines,omitempty"`
}

type BatchDeleteCustomLineResponse struct {
	TotalCount *int64 `form:"TotalCount" json:"TotalCount,omitempty"`
}

type CreateCustomLineRequest struct {
	IpSegments []string `form:"IpSegments" json:"IpSegments,omitempty"`
	NameCN     *string  `form:"NameCN" json:"NameCN,omitempty"`
	Remark     *string  `form:"Remark" json:"Remark,omitempty"`
}

type CreateCustomLineResponse struct {
	Line *string `form:"Line" json:"Line,omitempty"`
}

type ListCustomLinesRequest struct {
	IPSegment  *string `form:"-" json:"-"`
	Line       *string `form:"-" json:"-"`
	NameCN     *string `form:"-" json:"-"`
	PageNumber *string `form:"-" json:"-"`
	PageSize   *string `form:"-" json:"-"`
	Remark     *string `form:"-" json:"-"`
	SearchMode *string `form:"-" json:"-"`
}

type ListCustomLinesResponse struct {
	CustomerLines  []CustomerLine `form:"CustomerLines" json:"CustomerLines,omitempty"`
	IPSegmentCount *int64         `form:"IPSegmentCount" json:"IPSegmentCount,omitempty"`
	PageNumber     *int64         `form:"PageNumber" json:"PageNumber,omitempty"`
	PageSize       *int64         `form:"PageSize" json:"PageSize,omitempty"`
	TotalCount     *int64         `form:"TotalCount" json:"TotalCount,omitempty"`
}

type ListRecordDigestByLineRequest struct {
	Line *string `form:"Line" json:"Line,omitempty"`
}

type ListRecordDigestByLineResponse struct {
	Line          *string        `form:"Line" json:"Line,omitempty"`
	RecordDigests []RecordDigest `form:"RecordDigests" json:"RecordDigests,omitempty"`
}

type UpdateCustomLineRequest struct {
	IpSegments []string `form:"IpSegments" json:"IpSegments,omitempty"`
	Line       *string  `form:"Line" json:"Line,omitempty"`
	NameCN     *string  `form:"NameCN" json:"NameCN,omitempty"`
	Remark     *string  `form:"Remark" json:"Remark,omitempty"`
}

type UpdateCustomLineResponse struct {
	Line *string `form:"Line" json:"Line,omitempty"`
}

type ListLinesRequest struct {
	Hierarchy  *string `form:"-" json:"-"`
	PageNumber *string `form:"-" json:"-"`
	PageSize   *string `form:"-" json:"-"`
	Type       *string `form:"-" json:"-"`
	ZID        *string `form:"-" json:"-"`
}

type ListLinesResponse struct {
	Lines      []TopLineResponse `form:"Lines" json:"Lines,omitempty"`
	PageNumber *int64            `form:"PageNumber" json:"PageNumber,omitempty"`
	PageSize   *int64            `form:"PageSize" json:"PageSize,omitempty"`
	TotalCount *int64            `form:"TotalCount" json:"TotalCount,omitempty"`
}

type ListRecordAttributesRequest struct {
	ZID *string `form:"-" json:"-"`
}

type ListRecordAttributesResponse struct {
	BackupSchedules       []int64  `form:"BackupSchedules" json:"BackupSchedules,omitempty"`
	LineLevelLimit        []int64  `form:"LineLevelLimit" json:"LineLevelLimit,omitempty"`
	LoadBalancerLimit     *int64   `form:"LoadBalancerLimit" json:"LoadBalancerLimit,omitempty"`
	RecordStatisticsLimit *bool    `form:"RecordStatisticsLimit" json:"RecordStatisticsLimit,omitempty"`
	RecordTierLimit       *int64   `form:"RecordTierLimit" json:"RecordTierLimit,omitempty"`
	TTLs                  []int64  `form:"TTLs" json:"TTLs,omitempty"`
	Types                 []string `form:"Types" json:"Types,omitempty"`
	WeightLimit           *int64   `form:"WeightLimit" json:"WeightLimit,omitempty"`
}

type CreateRecordRequest struct {
	Host   *string `form:"Host" json:"Host,omitempty"`
	Line   *string `form:"Line" json:"Line,omitempty"`
	Remark *string `form:"Remark" json:"Remark,omitempty"`
	TTL    *int64  `form:"TTL" json:"TTL,omitempty"`
	Type   *string `form:"Type" json:"Type,omitempty"`
	Value  *string `form:"Value" json:"Value,omitempty"`
	Weight *int64  `form:"Weight" json:"Weight,omitempty"`
	ZID    *int64  `form:"ZID" json:"ZID,omitempty"`
}

type CreateRecordResponse struct {
	CreatedAt   *string  `form:"CreatedAt" json:"CreatedAt,omitempty"`
	Enable      *bool    `form:"Enable" json:"Enable,omitempty"`
	FQDN        *string  `form:"FQDN" json:"FQDN,omitempty"`
	Host        *string  `form:"Host" json:"Host,omitempty"`
	Line        *string  `form:"Line" json:"Line,omitempty"`
	Operators   []string `form:"Operators" json:"Operators,omitempty"`
	PQDN        *string  `form:"PQDN" json:"PQDN,omitempty"`
	RecordID    *string  `form:"RecordID" json:"RecordID,omitempty"`
	RecordSetID *string  `form:"RecordSetID" json:"RecordSetID,omitempty"`
	TTL         *int64   `form:"TTL" json:"TTL,omitempty"`
	Tags        []string `form:"Tags" json:"Tags,omitempty"`
	Type        *string  `form:"Type" json:"Type,omitempty"`
	UpdatedAt   *string  `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	Value       *string  `form:"Value" json:"Value,omitempty"`
	Weight      *int64   `form:"Weight" json:"Weight,omitempty"`
}

type DeleteRecordRequest struct {
	RecordID *string `form:"RecordID" json:"RecordID,omitempty"`
}

type ListRecordSetsRequest struct {
	Host        *string `form:"-" json:"-"`
	PageNumber  *string `form:"-" json:"-"`
	PageSize    *string `form:"-" json:"-"`
	RecordSetID *string `form:"-" json:"-"`
	SearchMode  *string `form:"-" json:"-"`
	ZID         *string `form:"-" json:"-"`
}

type ListRecordSetsResponse struct {
	PageNumber *int64             `form:"PageNumber" json:"PageNumber,omitempty"`
	PageSize   *int64             `form:"PageSize" json:"PageSize,omitempty"`
	RecordSets []TopRecordSetResp `form:"RecordSets" json:"RecordSets,omitempty"`
	TotalCount *int64             `form:"TotalCount" json:"TotalCount,omitempty"`
}

type ListRecordsRequest struct {
	Host        *string `form:"-" json:"-"`
	Line        *string `form:"-" json:"-"`
	PageNumber  *string `form:"-" json:"-"`
	PageSize    *string `form:"-" json:"-"`
	RecordSetID *string `form:"-" json:"-"`
	SearchMode  *string `form:"-" json:"-"`
	SearchOrder *string `form:"-" json:"-"`
	Type        *string `form:"-" json:"-"`
	Value       *string `form:"-" json:"-"`
	ZID         *string `form:"-" json:"-"`
}

type ListRecordsResponse struct {
	PageNumber *int64              `form:"PageNumber" json:"PageNumber,omitempty"`
	PageSize   *int64              `form:"PageSize" json:"PageSize,omitempty"`
	Records    []TopRecordResponse `form:"Records" json:"Records,omitempty"`
	TotalCount *int64              `form:"TotalCount" json:"TotalCount,omitempty"`
}

type ListRecordsAdvanceRequest struct {
	Enable          *string `form:"-" json:"-"`
	GTMDomainFilter *string `form:"-" json:"-"`
	Host            *string `form:"-" json:"-"`
	LastOperator    *string `form:"-" json:"-"`
	Line            *string `form:"-" json:"-"`
	Name            *string `form:"-" json:"-"`
	OrderKey        *string `form:"-" json:"-"`
	PageNumber      *string `form:"-" json:"-"`
	PageSize        *string `form:"-" json:"-"`
	SearchMode      *string `form:"-" json:"-"`
	SearchOrder     *string `form:"-" json:"-"`
	SubPageNumber   *string `form:"-" json:"-"`
	SubPageSize     *string `form:"-" json:"-"`
	TTL             *string `form:"-" json:"-"`
	Type            *string `form:"-" json:"-"`
	Value           *string `form:"-" json:"-"`
	ZID             *string `form:"-" json:"-"`
}

type ListRecordsAdvanceResponse struct {
	PageNumber       *int64         `form:"PageNumber" json:"PageNumber,omitempty"`
	PageSize         *int64         `form:"PageSize" json:"PageSize,omitempty"`
	SubDomains       []TopSubDomain `form:"SubDomains" json:"SubDomains,omitempty"`
	TotalCount       *int64         `form:"TotalCount" json:"TotalCount,omitempty"`
	TotalRecordCount *int64         `form:"TotalRecordCount" json:"TotalRecordCount,omitempty"`
}

type QueryRecordRequest struct {
	FQDN     *string `form:"-" json:"-"`
	Line     *string `form:"-" json:"-"`
	PQDN     *string `form:"-" json:"-"`
	RecordID *string `form:"-" json:"-"`
	Type     *string `form:"-" json:"-"`
	Value    *string `form:"-" json:"-"`
}

type QueryRecordResponse struct {
	CreatedAt   *string  `form:"CreatedAt" json:"CreatedAt,omitempty"`
	Enable      *bool    `form:"Enable" json:"Enable,omitempty"`
	FQDN        *string  `form:"FQDN" json:"FQDN,omitempty"`
	Host        *string  `form:"Host" json:"Host,omitempty"`
	Line        *string  `form:"Line" json:"Line,omitempty"`
	Operators   []string `form:"Operators" json:"Operators,omitempty"`
	PQDN        *string  `form:"PQDN" json:"PQDN,omitempty"`
	RecordID    *string  `form:"RecordID" json:"RecordID,omitempty"`
	RecordSetID *string  `form:"RecordSetID" json:"RecordSetID,omitempty"`
	TTL         *int64   `form:"TTL" json:"TTL,omitempty"`
	Tags        []string `form:"Tags" json:"Tags,omitempty"`
	Type        *string  `form:"Type" json:"Type,omitempty"`
	UpdatedAt   *string  `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	Value       *string  `form:"Value" json:"Value,omitempty"`
	Weight      *int64   `form:"Weight" json:"Weight,omitempty"`
}

type SyncFullRecordsV2Request struct {
	Await                 *bool                                                                `form:"Await" json:"Await,omitempty"`
	DomainWeightEnable    *bool                                                                `form:"DomainWeightEnable" json:"DomainWeightEnable,omitempty"`
	IncludeTypes          *string                                                              `form:"IncludeTypes" json:"IncludeTypes,omitempty"`
	RecordSetWeightEnable *bool                                                                `form:"RecordSetWeightEnable" json:"RecordSetWeightEnable,omitempty"`
	SyncAll               *bool                                                                `form:"SyncAll" json:"SyncAll,omitempty"`
	SyncConf              *string                                                              `form:"SyncConf" json:"SyncConf,omitempty"`
	Zones                 map[string]map[string]map[string]map[string]map[string]AddressConfig `form:"Zones" json:"Zones,omitempty"`
}

type SyncFullRecordsV2Response struct {
	TaskID      *string `form:"TaskID" json:"TaskID,omitempty"`
	TotalRecord *int64  `form:"TotalRecord" json:"TotalRecord,omitempty"`
}

type UpdateRecordRequest struct {
	Host     string  `form:"Host" json:"Host"`
	Line     string  `form:"Line" json:"Line"`
	RecordID string  `form:"RecordID" json:"RecordID"`
	TTL      *int64  `form:"TTL" json:"TTL,omitempty"`
	Type     *string `form:"Type" json:"Type,omitempty"`
	Value    *string `form:"Value" json:"Value,omitempty"`
	Weight   *int64  `form:"Weight" json:"Weight,omitempty"`
}

type UpdateRecordResponse struct {
	CreatedAt   *string  `form:"CreatedAt" json:"CreatedAt,omitempty"`
	Enable      *bool    `form:"Enable" json:"Enable,omitempty"`
	FQDN        *string  `form:"FQDN" json:"FQDN,omitempty"`
	Host        *string  `form:"Host" json:"Host,omitempty"`
	Line        *string  `form:"Line" json:"Line,omitempty"`
	Operators   []string `form:"Operators" json:"Operators,omitempty"`
	PQDN        *string  `form:"PQDN" json:"PQDN,omitempty"`
	RecordID    *string  `form:"RecordID" json:"RecordID,omitempty"`
	RecordSetID *string  `form:"RecordSetID" json:"RecordSetID,omitempty"`
	TTL         *int64   `form:"TTL" json:"TTL,omitempty"`
	Tags        []string `form:"Tags" json:"Tags,omitempty"`
	Type        *string  `form:"Type" json:"Type,omitempty"`
	UpdatedAt   *string  `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	Value       *string  `form:"Value" json:"Value,omitempty"`
	Weight      *int64   `form:"Weight" json:"Weight,omitempty"`
}

type UpdateRecordSetRequest struct {
	ID            string `form:"ID" json:"ID"`
	WeightEnabled bool   `form:"WeightEnabled" json:"WeightEnabled"`
}

type UpdateRecordSetResponse struct {
	FQDN          *string `form:"FQDN" json:"FQDN,omitempty"`
	Host          *string `form:"Host" json:"Host,omitempty"`
	ID            *string `form:"ID" json:"ID,omitempty"`
	Line          *string `form:"Line" json:"Line,omitempty"`
	PQDN          *string `form:"PQDN" json:"PQDN,omitempty"`
	Type          *string `form:"Type" json:"Type,omitempty"`
	WeightEnabled *bool   `form:"WeightEnabled" json:"WeightEnabled,omitempty"`
}

type UpdateRecordStatusRequest struct {
	Enable   *bool   `form:"Enable" json:"Enable,omitempty"`
	RecordID *string `form:"RecordID" json:"RecordID,omitempty"`
}

type UpdateRecordStatusResponse struct {
	CreatedAt   *string  `form:"CreatedAt" json:"CreatedAt,omitempty"`
	Enable      *bool    `form:"Enable" json:"Enable,omitempty"`
	FQDN        *string  `form:"FQDN" json:"FQDN,omitempty"`
	Host        *string  `form:"Host" json:"Host,omitempty"`
	Line        *string  `form:"Line" json:"Line,omitempty"`
	Operators   []string `form:"Operators" json:"Operators,omitempty"`
	PQDN        *string  `form:"PQDN" json:"PQDN,omitempty"`
	RecordID    *string  `form:"RecordID" json:"RecordID,omitempty"`
	RecordSetID *string  `form:"RecordSetID" json:"RecordSetID,omitempty"`
	TTL         *int64   `form:"TTL" json:"TTL,omitempty"`
	Tags        []string `form:"Tags" json:"Tags,omitempty"`
	Type        *string  `form:"Type" json:"Type,omitempty"`
	UpdatedAt   *string  `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	Value       *string  `form:"Value" json:"Value,omitempty"`
	Weight      *int64   `form:"Weight" json:"Weight,omitempty"`
}

type ListDomainStatisticsRequest struct {
	End        *string `form:"-" json:"-"`
	Name       *string `form:"-" json:"-"`
	PageNumber *string `form:"-" json:"-"`
	PageSize   *string `form:"-" json:"-"`
	SearchMode *string `form:"-" json:"-"`
	Start      *string `form:"-" json:"-"`
	Threshold  *string `form:"-" json:"-"`
	ZID        *string `form:"-" json:"-"`
}

type ListDomainStatisticsResponse struct {
	Data  []TopGroupStat `form:"Data" json:"Data,omitempty"`
	Page  *int64         `form:"Page" json:"Page,omitempty"`
	Size  *int64         `form:"Size" json:"Size,omitempty"`
	Total *int64         `form:"Total" json:"Total,omitempty"`
}

type ListZoneStatisticsRequest struct {
	End        *string `form:"-" json:"-"`
	Name       *string `form:"-" json:"-"`
	PageNumber *string `form:"-" json:"-"`
	PageSize   *string `form:"-" json:"-"`
	SearchMode *string `form:"-" json:"-"`
	Start      *string `form:"-" json:"-"`
	Threshold  *string `form:"-" json:"-"`
}

type ListZoneStatisticsResponse struct {
	Data       []TopGroupStat `form:"Data" json:"Data,omitempty"`
	PageNumber *int64         `form:"PageNumber" json:"PageNumber,omitempty"`
	PageSize   *int64         `form:"PageSize" json:"PageSize,omitempty"`
	Total      *int64         `form:"Total" json:"Total,omitempty"`
}

type QueryDomainStatisticsRequest struct {
	End   *string `form:"-" json:"-"`
	Name  *string `form:"-" json:"-"`
	Start *string `form:"-" json:"-"`
	ZID   *string `form:"-" json:"-"`
}

type QueryDomainStatisticsResponse []TopStat

type QueryZoneStatisticsRequest struct {
	End   *string `form:"-" json:"-"`
	Start *string `form:"-" json:"-"`
	ZID   *string `form:"-" json:"-"`
}

type QueryZoneStatisticsResponse []Stat

type CheckRetrieveZoneRequest struct {
	ZoneName *string `form:"ZoneName" json:"ZoneName,omitempty"`
}

type CheckRetrieveZoneResponse struct {
	Success *string `form:"Success" json:"Success,omitempty"`
}

type CreateZoneRequest struct {
	Remark   *string `form:"Remark" json:"Remark,omitempty"`
	ZoneName string  `form:"ZoneName" json:"ZoneName"`
}

type CreateZoneResponse struct {
	CacheStage        *int64  `form:"CacheStage" json:"CacheStage,omitempty"`
	ConfigurationCode *string `form:"ConfigurationCode" json:"ConfigurationCode,omitempty"`
	CreatedAt         *string `form:"CreatedAt" json:"CreatedAt,omitempty"`
	ExpiredTime       *int64  `form:"ExpiredTime" json:"ExpiredTime,omitempty"`
	InstanceID        *string `form:"InstanceID" json:"InstanceID,omitempty"`
	LastOperator      *string `form:"LastOperator" json:"LastOperator,omitempty"`
	RecordCount       *int64  `form:"RecordCount" json:"RecordCount,omitempty"`
	Remark            *string `form:"Remark" json:"Remark,omitempty"`
	TradeCode         *string `form:"TradeCode" json:"TradeCode,omitempty"`
	UpdatedAt         *string `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	ZID               *int64  `form:"ZID" json:"ZID,omitempty"`
	ZoneName          *string `form:"ZoneName" json:"ZoneName,omitempty"`
}

type DeleteZoneRequest struct {
	ZID *int64 `form:"ZID" json:"ZID,omitempty"`
}

type ListZonesRequest struct {
	AboutToExpire *string `form:"-" json:"-"`
	Key           *string `form:"-" json:"-"`
	OrderKey      *string `form:"-" json:"-"`
	PageNumber    *string `form:"-" json:"-"`
	PageSize      *string `form:"-" json:"-"`
	Remark        *string `form:"-" json:"-"`
	SearchMode    *string `form:"-" json:"-"`
	SearchOrder   *string `form:"-" json:"-"`
	Stage         *string `form:"-" json:"-"`
	TradeCode     *string `form:"-" json:"-"`
}

type ListZonesResponse struct {
	Total *int64            `form:"Total" json:"Total,omitempty"`
	Zones []TopZoneResponse `form:"Zones" json:"Zones,omitempty"`
}

type ListZonesNameServerRequest struct {
	ZIDs *string `form:"-" json:"-"`
}

type ListZonesNameServerResponse struct {
	ZonesNameServer []ZoneNameServerInfo `form:"ZonesNameServer" json:"ZonesNameServer,omitempty"`
}

type QueryZoneRequest struct {
	UseAllocateNameServer *string `form:"-" json:"-"`
	ZID                   *string `form:"-" json:"-"`
}

type QueryZoneResponse struct {
	AllocateDNSServerList []string `form:"AllocateDNSServerList" json:"AllocateDNSServerList,omitempty"`
	ConfigurationCode     *string  `form:"ConfigurationCode" json:"ConfigurationCode,omitempty"`
	ExpiredTime           *int64   `form:"ExpiredTime" json:"ExpiredTime,omitempty"`
	InstanceNo            *string  `form:"InstanceNo" json:"InstanceNo,omitempty"`
	IsNSCorrect           *bool    `form:"IsNSCorrect" json:"IsNSCorrect,omitempty"`
	RealDNSServerList     []string `form:"RealDNSServerList" json:"RealDNSServerList,omitempty"`
	RecordCount           *int64   `form:"RecordCount" json:"RecordCount,omitempty"`
	Remark                *string  `form:"Remark" json:"Remark,omitempty"`
	Stage                 *int64   `form:"Stage" json:"Stage,omitempty"`
	Status                *int64   `form:"Status" json:"Status,omitempty"`
	TradeCode             *string  `form:"TradeCode" json:"TradeCode,omitempty"`
	UpdatedAt             *string  `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	ZoneName              *string  `form:"ZoneName" json:"ZoneName,omitempty"`
}

type RetrieveZoneRequest struct {
	ZoneName *string `form:"ZoneName" json:"ZoneName,omitempty"`
}

type RetrieveZoneResponse struct {
	Host     *string `form:"Host" json:"Host,omitempty"`
	Txt      *string `form:"Txt" json:"Txt,omitempty"`
	ZoneName *string `form:"ZoneName" json:"ZoneName,omitempty"`
}

type UpdateZoneRequest struct {
	Remark *string `form:"Remark" json:"Remark,omitempty"`
	ZID    *int64  `form:"ZID" json:"ZID,omitempty"`
}

type UpdateZoneResponse struct {
	CacheStage        *int64  `form:"CacheStage" json:"CacheStage,omitempty"`
	ConfigurationCode *string `form:"ConfigurationCode" json:"ConfigurationCode,omitempty"`
	CreatedAt         *string `form:"CreatedAt" json:"CreatedAt,omitempty"`
	ExpiredTime       *int64  `form:"ExpiredTime" json:"ExpiredTime,omitempty"`
	InstanceID        *string `form:"InstanceID" json:"InstanceID,omitempty"`
	LastOperator      *string `form:"LastOperator" json:"LastOperator,omitempty"`
	RecordCount       *int64  `form:"RecordCount" json:"RecordCount,omitempty"`
	Remark            *string `form:"Remark" json:"Remark,omitempty"`
	TradeCode         *string `form:"TradeCode" json:"TradeCode,omitempty"`
	UpdatedAt         *string `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	ZID               *int64  `form:"ZID" json:"ZID,omitempty"`
	ZoneName          *string `form:"ZoneName" json:"ZoneName,omitempty"`
}

type CustomerLine struct {
	CreatedAt  *string  `form:"CreatedAt" json:"CreatedAt,omitempty"`
	IPSegments []string `form:"IPSegments" json:"IPSegments,omitempty"`
	Line       *string  `form:"Line" json:"Line,omitempty"`
	NameCN     *string  `form:"NameCN" json:"NameCN,omitempty"`
	Remark     *string  `form:"Remark" json:"Remark,omitempty"`
	UpdatedAt  *string  `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
}

type RecordDigest struct {
	LineNameCN *string `form:"LineNameCN" json:"LineNameCN,omitempty"`
	Name       *string `form:"Name" json:"Name,omitempty"`
	Type       *string `form:"Type" json:"Type,omitempty"`
}

type TopLineResponse struct {
	Children    []TopLineResponse `form:"Children" json:"Children,omitempty"`
	FatherValue *string           `form:"FatherValue" json:"FatherValue,omitempty"`
	ID          *string           `form:"ID" json:"ID,omitempty"`
	IpSegment   *string           `form:"IpSegment" json:"IpSegment,omitempty"`
	Level       *int64            `form:"Level" json:"Level,omitempty"`
	Name        *string           `form:"Name" json:"Name,omitempty"`
	PartName    *string           `form:"PartName" json:"PartName,omitempty"`
	Type        *int64            `form:"Type" json:"Type,omitempty"`
	Value       *string           `form:"Value" json:"Value,omitempty"`
}

type TopRecordSetResp struct {
	FQDN          *string `form:"FQDN" json:"FQDN,omitempty"`
	Host          *string `form:"Host" json:"Host,omitempty"`
	ID            *string `form:"ID" json:"ID,omitempty"`
	Line          *string `form:"Line" json:"Line,omitempty"`
	PQDN          *string `form:"PQDN" json:"PQDN,omitempty"`
	Type          *string `form:"Type" json:"Type,omitempty"`
	WeightEnabled *bool   `form:"WeightEnabled" json:"WeightEnabled,omitempty"`
}

type TopRecordResponse struct {
	CreatedAt   *string  `form:"CreatedAt" json:"CreatedAt,omitempty"`
	Enable      *bool    `form:"Enable" json:"Enable,omitempty"`
	FQDN        *string  `form:"FQDN" json:"FQDN,omitempty"`
	Host        *string  `form:"Host" json:"Host,omitempty"`
	Line        *string  `form:"Line" json:"Line,omitempty"`
	Operators   []string `form:"Operators" json:"Operators,omitempty"`
	PQDN        *string  `form:"PQDN" json:"PQDN,omitempty"`
	RecordID    *string  `form:"RecordID" json:"RecordID,omitempty"`
	RecordSetID *string  `form:"RecordSetID" json:"RecordSetID,omitempty"`
	TTL         *int64   `form:"TTL" json:"TTL,omitempty"`
	Tags        []string `form:"Tags" json:"Tags,omitempty"`
	Type        *string  `form:"Type" json:"Type,omitempty"`
	UpdatedAt   *string  `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	Value       *string  `form:"Value" json:"Value,omitempty"`
	Weight      *int64   `form:"Weight" json:"Weight,omitempty"`
}

type TopSubDomain struct {
	HasNext       *bool               `form:"HasNext" json:"HasNext,omitempty"`
	Host          *string             `form:"Host" json:"Host,omitempty"`
	IsGTMDomain   *bool               `form:"IsGTMDomain" json:"IsGTMDomain,omitempty"`
	LastOperator  *string             `form:"LastOperator" json:"LastOperator,omitempty"`
	Line          *string             `form:"Line" json:"Line,omitempty"`
	LineNameCN    *string             `form:"LineNameCN" json:"LineNameCN,omitempty"`
	Name          *string             `form:"Name" json:"Name,omitempty"`
	Records       []TopRecordResponse `form:"Records" json:"Records,omitempty"`
	TTL           *int64              `form:"TTL" json:"TTL,omitempty"`
	Type          *string             `form:"Type" json:"Type,omitempty"`
	UpdatedAt     *string             `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	WeightEnabled *bool               `form:"WeightEnabled" json:"WeightEnabled,omitempty"`
}

type AddressConfig struct {
	RecordID *int64 `form:"RecordID" json:"RecordID,omitempty"`
	Disable  *bool  `form:"disable" json:"disable,omitempty"`
	TTL      *int64 `form:"ttl" json:"ttl,omitempty"`
	Weight   *int64 `form:"weight" json:"weight,omitempty"`
}

type TopGroupStat struct {
	CacheStage *int64  `form:"CacheStage" json:"CacheStage,omitempty"`
	Error      *int64  `form:"Error" json:"Error,omitempty"`
	Name       *string `form:"Name" json:"Name,omitempty"`
	NotExists  *int64  `form:"NotExists" json:"NotExists,omitempty"`
	Success    *int64  `form:"Success" json:"Success,omitempty"`
	Timestamp  *int64  `form:"Timestamp" json:"Timestamp,omitempty"`
	Total      *int64  `form:"Total" json:"Total,omitempty"`
	ZID        *int64  `form:"ZID" json:"ZID,omitempty"`
}

type TopStat struct {
	Error     *int64 `form:"Error" json:"Error,omitempty"`
	NotExists *int64 `form:"NotExists" json:"NotExists,omitempty"`
	Success   *int64 `form:"Success" json:"Success,omitempty"`
	Timestamp *int64 `form:"Timestamp" json:"Timestamp,omitempty"`
	Total     *int64 `form:"Total" json:"Total,omitempty"`
}

type Stat struct {
	Error     *int64 `form:"error" json:"error,omitempty"`
	NotExists *int64 `form:"not_exists" json:"not_exists,omitempty"`
	Success   *int64 `form:"success" json:"success,omitempty"`
	Timestamp *int64 `form:"timestamp" json:"timestamp,omitempty"`
	Total     *int64 `form:"total" json:"total,omitempty"`
}

type TopZoneResponse struct {
	CacheStage        *int64  `form:"CacheStage" json:"CacheStage,omitempty"`
	ConfigurationCode *string `form:"ConfigurationCode" json:"ConfigurationCode,omitempty"`
	CreatedAt         *string `form:"CreatedAt" json:"CreatedAt,omitempty"`
	ExpiredTime       *int64  `form:"ExpiredTime" json:"ExpiredTime,omitempty"`
	InstanceID        *string `form:"InstanceID" json:"InstanceID,omitempty"`
	LastOperator      *string `form:"LastOperator" json:"LastOperator,omitempty"`
	RecordCount       *int64  `form:"RecordCount" json:"RecordCount,omitempty"`
	Remark            *string `form:"Remark" json:"Remark,omitempty"`
	TradeCode         *string `form:"TradeCode" json:"TradeCode,omitempty"`
	UpdatedAt         *string `form:"UpdatedAt" json:"UpdatedAt,omitempty"`
	ZID               *int64  `form:"ZID" json:"ZID,omitempty"`
	ZoneName          *string `form:"ZoneName" json:"ZoneName,omitempty"`
}

type ZoneNameServerInfo struct {
	AllocateDNSServerList []string `form:"AllocateDNSServerList" json:"AllocateDNSServerList,omitempty"`
	IsNSCorrect           *bool    `form:"IsNSCorrect" json:"IsNSCorrect,omitempty"`
	Name                  *string  `form:"Name" json:"Name,omitempty"`
	RealDNSServerList     []string `form:"RealDNSServerList" json:"RealDNSServerList,omitempty"`
	Stage                 *int64   `form:"Stage" json:"Stage,omitempty"`
	ZID                   *int64   `form:"ZID" json:"ZID,omitempty"`
}
