Browse Source

由空木发起的PVTZ SDK自动发布, 版本号:1.12.2

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 7 years ago
parent
commit
81dd5817c9
37 changed files with 2441 additions and 0 deletions
  1. 3 0
      ChangeLog.txt
  2. 108 0
      services/pvtz/add_zone.go
  3. 112 0
      services/pvtz/add_zone_record.go
  4. 112 0
      services/pvtz/bind_zone_vpc.go
  5. 107 0
      services/pvtz/check_zone_name.go
  6. 81 0
      services/pvtz/client.go
  7. 106 0
      services/pvtz/delete_zone.go
  8. 106 0
      services/pvtz/delete_zone_record.go
  9. 116 0
      services/pvtz/describe_change_logs.go
  10. 105 0
      services/pvtz/describe_regions.go
  11. 109 0
      services/pvtz/describe_request_graph.go
  12. 107 0
      services/pvtz/describe_statistic_summary.go
  13. 105 0
      services/pvtz/describe_user_service_status.go
  14. 115 0
      services/pvtz/describe_zone_info.go
  15. 114 0
      services/pvtz/describe_zone_records.go
  16. 105 0
      services/pvtz/describe_zone_vpc_tree.go
  17. 112 0
      services/pvtz/describe_zones.go
  18. 108 0
      services/pvtz/set_zone_record_status.go
  19. 21 0
      services/pvtz/struct_bind_vpcs.go
  20. 29 0
      services/pvtz/struct_change_log.go
  21. 21 0
      services/pvtz/struct_change_logs.go
  22. 27 0
      services/pvtz/struct_record.go
  23. 21 0
      services/pvtz/struct_records.go
  24. 22 0
      services/pvtz/struct_region.go
  25. 21 0
      services/pvtz/struct_regions.go
  26. 21 0
      services/pvtz/struct_request_details.go
  27. 25 0
      services/pvtz/struct_vpc.go
  28. 25 0
      services/pvtz/struct_vpc_request_top.go
  29. 21 0
      services/pvtz/struct_vpc_request_tops.go
  30. 21 0
      services/pvtz/struct_vpcs.go
  31. 30 0
      services/pvtz/struct_zone.go
  32. 24 0
      services/pvtz/struct_zone_request_top.go
  33. 21 0
      services/pvtz/struct_zone_request_tops.go
  34. 21 0
      services/pvtz/struct_zones_in_describe_zone_vpc_tree.go
  35. 21 0
      services/pvtz/struct_zones_in_describe_zones.go
  36. 111 0
      services/pvtz/update_zone_record.go
  37. 107 0
      services/pvtz/update_zone_remark.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2018-05-17 Version: 1.12.2
+1, the first version of private dns SDK
+
 2018-05-11 Version: 1.12.1
 1, Add Function Compute interface,support Function Compute.
 

+ 108 - 0
services/pvtz/add_zone.go

@@ -0,0 +1,108 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// AddZone invokes the pvtz.AddZone API synchronously
+// api document: https://help.aliyun.com/api/pvtz/addzone.html
+func (client *Client) AddZone(request *AddZoneRequest) (response *AddZoneResponse, err error) {
+	response = CreateAddZoneResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddZoneWithChan invokes the pvtz.AddZone API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/addzone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddZoneWithChan(request *AddZoneRequest) (<-chan *AddZoneResponse, <-chan error) {
+	responseChan := make(chan *AddZoneResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddZone(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddZoneWithCallback invokes the pvtz.AddZone API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/addzone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddZoneWithCallback(request *AddZoneRequest, callback func(response *AddZoneResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddZoneResponse
+		var err error
+		defer close(result)
+		response, err = client.AddZone(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddZoneRequest is the request struct for api AddZone
+type AddZoneRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	ZoneName     string `position:"Query" name:"ZoneName"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// AddZoneResponse is the response struct for api AddZone
+type AddZoneResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	ZoneId    string `json:"ZoneId" xml:"ZoneId"`
+	ZoneName  string `json:"ZoneName" xml:"ZoneName"`
+}
+
+// CreateAddZoneRequest creates a request to invoke AddZone API
+func CreateAddZoneRequest() (request *AddZoneRequest) {
+	request = &AddZoneRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "AddZone", "pvtz", "openAPI")
+	return
+}
+
+// CreateAddZoneResponse creates a response to parse from AddZone response
+func CreateAddZoneResponse() (response *AddZoneResponse) {
+	response = &AddZoneResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/pvtz/add_zone_record.go

@@ -0,0 +1,112 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// AddZoneRecord invokes the pvtz.AddZoneRecord API synchronously
+// api document: https://help.aliyun.com/api/pvtz/addzonerecord.html
+func (client *Client) AddZoneRecord(request *AddZoneRecordRequest) (response *AddZoneRecordResponse, err error) {
+	response = CreateAddZoneRecordResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddZoneRecordWithChan invokes the pvtz.AddZoneRecord API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/addzonerecord.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddZoneRecordWithChan(request *AddZoneRecordRequest) (<-chan *AddZoneRecordResponse, <-chan error) {
+	responseChan := make(chan *AddZoneRecordResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddZoneRecord(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddZoneRecordWithCallback invokes the pvtz.AddZoneRecord API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/addzonerecord.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddZoneRecordWithCallback(request *AddZoneRecordRequest, callback func(response *AddZoneRecordResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddZoneRecordResponse
+		var err error
+		defer close(result)
+		response, err = client.AddZoneRecord(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddZoneRecordRequest is the request struct for api AddZoneRecord
+type AddZoneRecordRequest struct {
+	*requests.RpcRequest
+	Rr           string           `position:"Query" name:"Rr"`
+	ZoneId       string           `position:"Query" name:"ZoneId"`
+	Lang         string           `position:"Query" name:"Lang"`
+	Type         string           `position:"Query" name:"Type"`
+	Ttl          requests.Integer `position:"Query" name:"Ttl"`
+	Priority     requests.Integer `position:"Query" name:"Priority"`
+	Value        string           `position:"Query" name:"Value"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+}
+
+// AddZoneRecordResponse is the response struct for api AddZoneRecord
+type AddZoneRecordResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	RecordId  int    `json:"RecordId" xml:"RecordId"`
+}
+
+// CreateAddZoneRecordRequest creates a request to invoke AddZoneRecord API
+func CreateAddZoneRecordRequest() (request *AddZoneRecordRequest) {
+	request = &AddZoneRecordRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "AddZoneRecord", "pvtz", "openAPI")
+	return
+}
+
+// CreateAddZoneRecordResponse creates a response to parse from AddZoneRecord response
+func CreateAddZoneRecordResponse() (response *AddZoneRecordResponse) {
+	response = &AddZoneRecordResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/pvtz/bind_zone_vpc.go

@@ -0,0 +1,112 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// BindZoneVpc invokes the pvtz.BindZoneVpc API synchronously
+// api document: https://help.aliyun.com/api/pvtz/bindzonevpc.html
+func (client *Client) BindZoneVpc(request *BindZoneVpcRequest) (response *BindZoneVpcResponse, err error) {
+	response = CreateBindZoneVpcResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BindZoneVpcWithChan invokes the pvtz.BindZoneVpc API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/bindzonevpc.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindZoneVpcWithChan(request *BindZoneVpcRequest) (<-chan *BindZoneVpcResponse, <-chan error) {
+	responseChan := make(chan *BindZoneVpcResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BindZoneVpc(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BindZoneVpcWithCallback invokes the pvtz.BindZoneVpc API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/bindzonevpc.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BindZoneVpcWithCallback(request *BindZoneVpcRequest, callback func(response *BindZoneVpcResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BindZoneVpcResponse
+		var err error
+		defer close(result)
+		response, err = client.BindZoneVpc(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BindZoneVpcRequest is the request struct for api BindZoneVpc
+type BindZoneVpcRequest struct {
+	*requests.RpcRequest
+	Lang         string             `position:"Query" name:"Lang"`
+	ZoneId       string             `position:"Query" name:"ZoneId"`
+	Vpcs         *[]BindZoneVpcVpcs `position:"Query" name:"Vpcs"  type:"Repeated"`
+	UserClientIp string             `position:"Query" name:"UserClientIp"`
+}
+
+// BindZoneVpcVpcs is a repeated param struct in BindZoneVpcRequest
+type BindZoneVpcVpcs struct {
+	RegionId string `name:"RegionId"`
+	VpcId    string `name:"VpcId"`
+}
+
+// BindZoneVpcResponse is the response struct for api BindZoneVpc
+type BindZoneVpcResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBindZoneVpcRequest creates a request to invoke BindZoneVpc API
+func CreateBindZoneVpcRequest() (request *BindZoneVpcRequest) {
+	request = &BindZoneVpcRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "BindZoneVpc", "pvtz", "openAPI")
+	return
+}
+
+// CreateBindZoneVpcResponse creates a response to parse from BindZoneVpc response
+func CreateBindZoneVpcResponse() (response *BindZoneVpcResponse) {
+	response = &BindZoneVpcResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/pvtz/check_zone_name.go

@@ -0,0 +1,107 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CheckZoneName invokes the pvtz.CheckZoneName API synchronously
+// api document: https://help.aliyun.com/api/pvtz/checkzonename.html
+func (client *Client) CheckZoneName(request *CheckZoneNameRequest) (response *CheckZoneNameResponse, err error) {
+	response = CreateCheckZoneNameResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckZoneNameWithChan invokes the pvtz.CheckZoneName API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/checkzonename.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckZoneNameWithChan(request *CheckZoneNameRequest) (<-chan *CheckZoneNameResponse, <-chan error) {
+	responseChan := make(chan *CheckZoneNameResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckZoneName(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckZoneNameWithCallback invokes the pvtz.CheckZoneName API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/checkzonename.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckZoneNameWithCallback(request *CheckZoneNameRequest, callback func(response *CheckZoneNameResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckZoneNameResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckZoneName(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckZoneNameRequest is the request struct for api CheckZoneName
+type CheckZoneNameRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	ZoneName     string `position:"Query" name:"ZoneName"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// CheckZoneNameResponse is the response struct for api CheckZoneName
+type CheckZoneNameResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Check     bool   `json:"Check" xml:"Check"`
+}
+
+// CreateCheckZoneNameRequest creates a request to invoke CheckZoneName API
+func CreateCheckZoneNameRequest() (request *CheckZoneNameRequest) {
+	request = &CheckZoneNameRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "CheckZoneName", "pvtz", "openAPI")
+	return
+}
+
+// CreateCheckZoneNameResponse creates a response to parse from CheckZoneName response
+func CreateCheckZoneNameResponse() (response *CheckZoneNameResponse) {
+	response = &CheckZoneNameResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/pvtz/client.go

@@ -0,0 +1,81 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://help.aliyun.com/document_detail/66217.html
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 106 - 0
services/pvtz/delete_zone.go

@@ -0,0 +1,106 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteZone invokes the pvtz.DeleteZone API synchronously
+// api document: https://help.aliyun.com/api/pvtz/deletezone.html
+func (client *Client) DeleteZone(request *DeleteZoneRequest) (response *DeleteZoneResponse, err error) {
+	response = CreateDeleteZoneResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteZoneWithChan invokes the pvtz.DeleteZone API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/deletezone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteZoneWithChan(request *DeleteZoneRequest) (<-chan *DeleteZoneResponse, <-chan error) {
+	responseChan := make(chan *DeleteZoneResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteZone(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteZoneWithCallback invokes the pvtz.DeleteZone API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/deletezone.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteZoneWithCallback(request *DeleteZoneRequest, callback func(response *DeleteZoneResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteZoneResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteZone(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteZoneRequest is the request struct for api DeleteZone
+type DeleteZoneRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	ZoneId       string `position:"Query" name:"ZoneId"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// DeleteZoneResponse is the response struct for api DeleteZone
+type DeleteZoneResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	ZoneId    string `json:"ZoneId" xml:"ZoneId"`
+}
+
+// CreateDeleteZoneRequest creates a request to invoke DeleteZone API
+func CreateDeleteZoneRequest() (request *DeleteZoneRequest) {
+	request = &DeleteZoneRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DeleteZone", "pvtz", "openAPI")
+	return
+}
+
+// CreateDeleteZoneResponse creates a response to parse from DeleteZone response
+func CreateDeleteZoneResponse() (response *DeleteZoneResponse) {
+	response = &DeleteZoneResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/pvtz/delete_zone_record.go

@@ -0,0 +1,106 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteZoneRecord invokes the pvtz.DeleteZoneRecord API synchronously
+// api document: https://help.aliyun.com/api/pvtz/deletezonerecord.html
+func (client *Client) DeleteZoneRecord(request *DeleteZoneRecordRequest) (response *DeleteZoneRecordResponse, err error) {
+	response = CreateDeleteZoneRecordResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteZoneRecordWithChan invokes the pvtz.DeleteZoneRecord API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/deletezonerecord.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteZoneRecordWithChan(request *DeleteZoneRecordRequest) (<-chan *DeleteZoneRecordResponse, <-chan error) {
+	responseChan := make(chan *DeleteZoneRecordResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteZoneRecord(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteZoneRecordWithCallback invokes the pvtz.DeleteZoneRecord API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/deletezonerecord.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteZoneRecordWithCallback(request *DeleteZoneRecordRequest, callback func(response *DeleteZoneRecordResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteZoneRecordResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteZoneRecord(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteZoneRecordRequest is the request struct for api DeleteZoneRecord
+type DeleteZoneRecordRequest struct {
+	*requests.RpcRequest
+	Lang         string           `position:"Query" name:"Lang"`
+	RecordId     requests.Integer `position:"Query" name:"RecordId"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+}
+
+// DeleteZoneRecordResponse is the response struct for api DeleteZoneRecord
+type DeleteZoneRecordResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	RecordId  int    `json:"RecordId" xml:"RecordId"`
+}
+
+// CreateDeleteZoneRecordRequest creates a request to invoke DeleteZoneRecord API
+func CreateDeleteZoneRecordRequest() (request *DeleteZoneRecordRequest) {
+	request = &DeleteZoneRecordRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DeleteZoneRecord", "pvtz", "openAPI")
+	return
+}
+
+// CreateDeleteZoneRecordResponse creates a response to parse from DeleteZoneRecord response
+func CreateDeleteZoneRecordResponse() (response *DeleteZoneRecordResponse) {
+	response = &DeleteZoneRecordResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/pvtz/describe_change_logs.go

@@ -0,0 +1,116 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeChangeLogs invokes the pvtz.DescribeChangeLogs API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describechangelogs.html
+func (client *Client) DescribeChangeLogs(request *DescribeChangeLogsRequest) (response *DescribeChangeLogsResponse, err error) {
+	response = CreateDescribeChangeLogsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeChangeLogsWithChan invokes the pvtz.DescribeChangeLogs API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describechangelogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeChangeLogsWithChan(request *DescribeChangeLogsRequest) (<-chan *DescribeChangeLogsResponse, <-chan error) {
+	responseChan := make(chan *DescribeChangeLogsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeChangeLogs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeChangeLogsWithCallback invokes the pvtz.DescribeChangeLogs API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describechangelogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeChangeLogsWithCallback(request *DescribeChangeLogsRequest, callback func(response *DescribeChangeLogsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeChangeLogsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeChangeLogs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeChangeLogsRequest is the request struct for api DescribeChangeLogs
+type DescribeChangeLogsRequest struct {
+	*requests.RpcRequest
+	Keyword        string           `position:"Query" name:"Keyword"`
+	Lang           string           `position:"Query" name:"Lang"`
+	ZoneId         string           `position:"Query" name:"ZoneId"`
+	PageNumber     requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize       requests.Integer `position:"Query" name:"PageSize"`
+	StartTimestamp requests.Integer `position:"Query" name:"StartTimestamp"`
+	EndTimestamp   requests.Integer `position:"Query" name:"EndTimestamp"`
+	EntityType     string           `position:"Query" name:"EntityType"`
+	UserClientIp   string           `position:"Query" name:"UserClientIp"`
+}
+
+// DescribeChangeLogsResponse is the response struct for api DescribeChangeLogs
+type DescribeChangeLogsResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	TotalItems int        `json:"TotalItems" xml:"TotalItems"`
+	TotalPages int        `json:"TotalPages" xml:"TotalPages"`
+	PageSize   int        `json:"PageSize" xml:"PageSize"`
+	PageNumber int        `json:"PageNumber" xml:"PageNumber"`
+	ChangeLogs ChangeLogs `json:"ChangeLogs" xml:"ChangeLogs"`
+}
+
+// CreateDescribeChangeLogsRequest creates a request to invoke DescribeChangeLogs API
+func CreateDescribeChangeLogsRequest() (request *DescribeChangeLogsRequest) {
+	request = &DescribeChangeLogsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeChangeLogs", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeChangeLogsResponse creates a response to parse from DescribeChangeLogs response
+func CreateDescribeChangeLogsResponse() (response *DescribeChangeLogsResponse) {
+	response = &DescribeChangeLogsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/pvtz/describe_regions.go

@@ -0,0 +1,105 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRegions invokes the pvtz.DescribeRegions API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describeregions.html
+func (client *Client) DescribeRegions(request *DescribeRegionsRequest) (response *DescribeRegionsResponse, err error) {
+	response = CreateDescribeRegionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRegionsWithChan invokes the pvtz.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithChan(request *DescribeRegionsRequest) (<-chan *DescribeRegionsResponse, <-chan error) {
+	responseChan := make(chan *DescribeRegionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRegions(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRegionsWithCallback invokes the pvtz.DescribeRegions API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describeregions.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRegionsWithCallback(request *DescribeRegionsRequest, callback func(response *DescribeRegionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRegionsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRegions(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRegionsRequest is the request struct for api DescribeRegions
+type DescribeRegionsRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// DescribeRegionsResponse is the response struct for api DescribeRegions
+type DescribeRegionsResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Regions   Regions `json:"Regions" xml:"Regions"`
+}
+
+// CreateDescribeRegionsRequest creates a request to invoke DescribeRegions API
+func CreateDescribeRegionsRequest() (request *DescribeRegionsRequest) {
+	request = &DescribeRegionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeRegions", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeRegionsResponse creates a response to parse from DescribeRegions response
+func CreateDescribeRegionsResponse() (response *DescribeRegionsResponse) {
+	response = &DescribeRegionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/pvtz/describe_request_graph.go

@@ -0,0 +1,109 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeRequestGraph invokes the pvtz.DescribeRequestGraph API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describerequestgraph.html
+func (client *Client) DescribeRequestGraph(request *DescribeRequestGraphRequest) (response *DescribeRequestGraphResponse, err error) {
+	response = CreateDescribeRequestGraphResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRequestGraphWithChan invokes the pvtz.DescribeRequestGraph API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describerequestgraph.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRequestGraphWithChan(request *DescribeRequestGraphRequest) (<-chan *DescribeRequestGraphResponse, <-chan error) {
+	responseChan := make(chan *DescribeRequestGraphResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRequestGraph(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRequestGraphWithCallback invokes the pvtz.DescribeRequestGraph API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describerequestgraph.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRequestGraphWithCallback(request *DescribeRequestGraphRequest, callback func(response *DescribeRequestGraphResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRequestGraphResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRequestGraph(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRequestGraphRequest is the request struct for api DescribeRequestGraph
+type DescribeRequestGraphRequest struct {
+	*requests.RpcRequest
+	Lang           string           `position:"Query" name:"Lang"`
+	UserClientIp   string           `position:"Query" name:"UserClientIp"`
+	ZoneId         string           `position:"Query" name:"ZoneId"`
+	VpcId          string           `position:"Query" name:"VpcId"`
+	StartTimestamp requests.Integer `position:"Query" name:"StartTimestamp"`
+	EndTimestamp   requests.Integer `position:"Query" name:"EndTimestamp"`
+}
+
+// DescribeRequestGraphResponse is the response struct for api DescribeRequestGraph
+type DescribeRequestGraphResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	RequestDetails RequestDetails `json:"RequestDetails" xml:"RequestDetails"`
+}
+
+// CreateDescribeRequestGraphRequest creates a request to invoke DescribeRequestGraph API
+func CreateDescribeRequestGraphRequest() (request *DescribeRequestGraphRequest) {
+	request = &DescribeRequestGraphRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeRequestGraph", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeRequestGraphResponse creates a response to parse from DescribeRequestGraph response
+func CreateDescribeRequestGraphResponse() (response *DescribeRequestGraphResponse) {
+	response = &DescribeRequestGraphResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/pvtz/describe_statistic_summary.go

@@ -0,0 +1,107 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeStatisticSummary invokes the pvtz.DescribeStatisticSummary API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describestatisticsummary.html
+func (client *Client) DescribeStatisticSummary(request *DescribeStatisticSummaryRequest) (response *DescribeStatisticSummaryResponse, err error) {
+	response = CreateDescribeStatisticSummaryResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeStatisticSummaryWithChan invokes the pvtz.DescribeStatisticSummary API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describestatisticsummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStatisticSummaryWithChan(request *DescribeStatisticSummaryRequest) (<-chan *DescribeStatisticSummaryResponse, <-chan error) {
+	responseChan := make(chan *DescribeStatisticSummaryResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeStatisticSummary(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeStatisticSummaryWithCallback invokes the pvtz.DescribeStatisticSummary API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describestatisticsummary.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeStatisticSummaryWithCallback(request *DescribeStatisticSummaryRequest, callback func(response *DescribeStatisticSummaryResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeStatisticSummaryResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeStatisticSummary(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeStatisticSummaryRequest is the request struct for api DescribeStatisticSummary
+type DescribeStatisticSummaryRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// DescribeStatisticSummaryResponse is the response struct for api DescribeStatisticSummary
+type DescribeStatisticSummaryResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	TotalCount      int             `json:"TotalCount" xml:"TotalCount"`
+	ZoneRequestTops ZoneRequestTops `json:"ZoneRequestTops" xml:"ZoneRequestTops"`
+	VpcRequestTops  VpcRequestTops  `json:"VpcRequestTops" xml:"VpcRequestTops"`
+}
+
+// CreateDescribeStatisticSummaryRequest creates a request to invoke DescribeStatisticSummary API
+func CreateDescribeStatisticSummaryRequest() (request *DescribeStatisticSummaryRequest) {
+	request = &DescribeStatisticSummaryRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeStatisticSummary", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeStatisticSummaryResponse creates a response to parse from DescribeStatisticSummary response
+func CreateDescribeStatisticSummaryResponse() (response *DescribeStatisticSummaryResponse) {
+	response = &DescribeStatisticSummaryResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/pvtz/describe_user_service_status.go

@@ -0,0 +1,105 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeUserServiceStatus invokes the pvtz.DescribeUserServiceStatus API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describeuserservicestatus.html
+func (client *Client) DescribeUserServiceStatus(request *DescribeUserServiceStatusRequest) (response *DescribeUserServiceStatusResponse, err error) {
+	response = CreateDescribeUserServiceStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeUserServiceStatusWithChan invokes the pvtz.DescribeUserServiceStatus API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describeuserservicestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeUserServiceStatusWithChan(request *DescribeUserServiceStatusRequest) (<-chan *DescribeUserServiceStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeUserServiceStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeUserServiceStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeUserServiceStatusWithCallback invokes the pvtz.DescribeUserServiceStatus API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describeuserservicestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeUserServiceStatusWithCallback(request *DescribeUserServiceStatusRequest, callback func(response *DescribeUserServiceStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeUserServiceStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeUserServiceStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeUserServiceStatusRequest is the request struct for api DescribeUserServiceStatus
+type DescribeUserServiceStatusRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// DescribeUserServiceStatusResponse is the response struct for api DescribeUserServiceStatus
+type DescribeUserServiceStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Status    string `json:"Status" xml:"Status"`
+}
+
+// CreateDescribeUserServiceStatusRequest creates a request to invoke DescribeUserServiceStatus API
+func CreateDescribeUserServiceStatusRequest() (request *DescribeUserServiceStatusRequest) {
+	request = &DescribeUserServiceStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeUserServiceStatus", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeUserServiceStatusResponse creates a response to parse from DescribeUserServiceStatus response
+func CreateDescribeUserServiceStatusResponse() (response *DescribeUserServiceStatusResponse) {
+	response = &DescribeUserServiceStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/pvtz/describe_zone_info.go

@@ -0,0 +1,115 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeZoneInfo invokes the pvtz.DescribeZoneInfo API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describezoneinfo.html
+func (client *Client) DescribeZoneInfo(request *DescribeZoneInfoRequest) (response *DescribeZoneInfoResponse, err error) {
+	response = CreateDescribeZoneInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeZoneInfoWithChan invokes the pvtz.DescribeZoneInfo API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezoneinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZoneInfoWithChan(request *DescribeZoneInfoRequest) (<-chan *DescribeZoneInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeZoneInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeZoneInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeZoneInfoWithCallback invokes the pvtz.DescribeZoneInfo API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezoneinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZoneInfoWithCallback(request *DescribeZoneInfoRequest, callback func(response *DescribeZoneInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeZoneInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeZoneInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeZoneInfoRequest is the request struct for api DescribeZoneInfo
+type DescribeZoneInfoRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	ZoneId       string `position:"Query" name:"ZoneId"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// DescribeZoneInfoResponse is the response struct for api DescribeZoneInfo
+type DescribeZoneInfoResponse struct {
+	*responses.BaseResponse
+	RequestId       string   `json:"RequestId" xml:"RequestId"`
+	ZoneId          string   `json:"ZoneId" xml:"ZoneId"`
+	ZoneName        string   `json:"ZoneName" xml:"ZoneName"`
+	Remark          string   `json:"Remark" xml:"Remark"`
+	RecordCount     int      `json:"RecordCount" xml:"RecordCount"`
+	CreateTime      string   `json:"CreateTime" xml:"CreateTime"`
+	CreateTimestamp int      `json:"CreateTimestamp" xml:"CreateTimestamp"`
+	UpdateTime      string   `json:"UpdateTime" xml:"UpdateTime"`
+	UpdateTimestamp int      `json:"UpdateTimestamp" xml:"UpdateTimestamp"`
+	IsPtr           bool     `json:"IsPtr" xml:"IsPtr"`
+	BindVpcs        BindVpcs `json:"BindVpcs" xml:"BindVpcs"`
+}
+
+// CreateDescribeZoneInfoRequest creates a request to invoke DescribeZoneInfo API
+func CreateDescribeZoneInfoRequest() (request *DescribeZoneInfoRequest) {
+	request = &DescribeZoneInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeZoneInfo", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeZoneInfoResponse creates a response to parse from DescribeZoneInfo response
+func CreateDescribeZoneInfoResponse() (response *DescribeZoneInfoResponse) {
+	response = &DescribeZoneInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/pvtz/describe_zone_records.go

@@ -0,0 +1,114 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeZoneRecords invokes the pvtz.DescribeZoneRecords API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describezonerecords.html
+func (client *Client) DescribeZoneRecords(request *DescribeZoneRecordsRequest) (response *DescribeZoneRecordsResponse, err error) {
+	response = CreateDescribeZoneRecordsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeZoneRecordsWithChan invokes the pvtz.DescribeZoneRecords API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezonerecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZoneRecordsWithChan(request *DescribeZoneRecordsRequest) (<-chan *DescribeZoneRecordsResponse, <-chan error) {
+	responseChan := make(chan *DescribeZoneRecordsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeZoneRecords(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeZoneRecordsWithCallback invokes the pvtz.DescribeZoneRecords API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezonerecords.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZoneRecordsWithCallback(request *DescribeZoneRecordsRequest, callback func(response *DescribeZoneRecordsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeZoneRecordsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeZoneRecords(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeZoneRecordsRequest is the request struct for api DescribeZoneRecords
+type DescribeZoneRecordsRequest struct {
+	*requests.RpcRequest
+	Keyword      string           `position:"Query" name:"Keyword"`
+	Lang         string           `position:"Query" name:"Lang"`
+	ZoneId       string           `position:"Query" name:"ZoneId"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+	Tag          string           `position:"Query" name:"Tag"`
+}
+
+// DescribeZoneRecordsResponse is the response struct for api DescribeZoneRecords
+type DescribeZoneRecordsResponse struct {
+	*responses.BaseResponse
+	RequestId  string  `json:"RequestId" xml:"RequestId"`
+	TotalItems int     `json:"TotalItems" xml:"TotalItems"`
+	TotalPages int     `json:"TotalPages" xml:"TotalPages"`
+	PageSize   int     `json:"PageSize" xml:"PageSize"`
+	PageNumber int     `json:"PageNumber" xml:"PageNumber"`
+	Records    Records `json:"Records" xml:"Records"`
+}
+
+// CreateDescribeZoneRecordsRequest creates a request to invoke DescribeZoneRecords API
+func CreateDescribeZoneRecordsRequest() (request *DescribeZoneRecordsRequest) {
+	request = &DescribeZoneRecordsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeZoneRecords", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeZoneRecordsResponse creates a response to parse from DescribeZoneRecords response
+func CreateDescribeZoneRecordsResponse() (response *DescribeZoneRecordsResponse) {
+	response = &DescribeZoneRecordsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/pvtz/describe_zone_vpc_tree.go

@@ -0,0 +1,105 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeZoneVpcTree invokes the pvtz.DescribeZoneVpcTree API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describezonevpctree.html
+func (client *Client) DescribeZoneVpcTree(request *DescribeZoneVpcTreeRequest) (response *DescribeZoneVpcTreeResponse, err error) {
+	response = CreateDescribeZoneVpcTreeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeZoneVpcTreeWithChan invokes the pvtz.DescribeZoneVpcTree API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezonevpctree.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZoneVpcTreeWithChan(request *DescribeZoneVpcTreeRequest) (<-chan *DescribeZoneVpcTreeResponse, <-chan error) {
+	responseChan := make(chan *DescribeZoneVpcTreeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeZoneVpcTree(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeZoneVpcTreeWithCallback invokes the pvtz.DescribeZoneVpcTree API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezonevpctree.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZoneVpcTreeWithCallback(request *DescribeZoneVpcTreeRequest, callback func(response *DescribeZoneVpcTreeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeZoneVpcTreeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeZoneVpcTree(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeZoneVpcTreeRequest is the request struct for api DescribeZoneVpcTree
+type DescribeZoneVpcTreeRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// DescribeZoneVpcTreeResponse is the response struct for api DescribeZoneVpcTree
+type DescribeZoneVpcTreeResponse struct {
+	*responses.BaseResponse
+	RequestId string                     `json:"RequestId" xml:"RequestId"`
+	Zones     ZonesInDescribeZoneVpcTree `json:"Zones" xml:"Zones"`
+}
+
+// CreateDescribeZoneVpcTreeRequest creates a request to invoke DescribeZoneVpcTree API
+func CreateDescribeZoneVpcTreeRequest() (request *DescribeZoneVpcTreeRequest) {
+	request = &DescribeZoneVpcTreeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeZoneVpcTree", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeZoneVpcTreeResponse creates a response to parse from DescribeZoneVpcTree response
+func CreateDescribeZoneVpcTreeResponse() (response *DescribeZoneVpcTreeResponse) {
+	response = &DescribeZoneVpcTreeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/pvtz/describe_zones.go

@@ -0,0 +1,112 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeZones invokes the pvtz.DescribeZones API synchronously
+// api document: https://help.aliyun.com/api/pvtz/describezones.html
+func (client *Client) DescribeZones(request *DescribeZonesRequest) (response *DescribeZonesResponse, err error) {
+	response = CreateDescribeZonesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeZonesWithChan invokes the pvtz.DescribeZones API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezones.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZonesWithChan(request *DescribeZonesRequest) (<-chan *DescribeZonesResponse, <-chan error) {
+	responseChan := make(chan *DescribeZonesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeZones(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeZonesWithCallback invokes the pvtz.DescribeZones API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/describezones.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeZonesWithCallback(request *DescribeZonesRequest, callback func(response *DescribeZonesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeZonesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeZones(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeZonesRequest is the request struct for api DescribeZones
+type DescribeZonesRequest struct {
+	*requests.RpcRequest
+	Lang         string           `position:"Query" name:"Lang"`
+	PageNumber   requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize     requests.Integer `position:"Query" name:"PageSize"`
+	Keyword      string           `position:"Query" name:"Keyword"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+}
+
+// DescribeZonesResponse is the response struct for api DescribeZones
+type DescribeZonesResponse struct {
+	*responses.BaseResponse
+	RequestId  string               `json:"RequestId" xml:"RequestId"`
+	TotalItems int                  `json:"TotalItems" xml:"TotalItems"`
+	TotalPages int                  `json:"TotalPages" xml:"TotalPages"`
+	PageSize   int                  `json:"PageSize" xml:"PageSize"`
+	PageNumber int                  `json:"PageNumber" xml:"PageNumber"`
+	Zones      ZonesInDescribeZones `json:"Zones" xml:"Zones"`
+}
+
+// CreateDescribeZonesRequest creates a request to invoke DescribeZones API
+func CreateDescribeZonesRequest() (request *DescribeZonesRequest) {
+	request = &DescribeZonesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "DescribeZones", "pvtz", "openAPI")
+	return
+}
+
+// CreateDescribeZonesResponse creates a response to parse from DescribeZones response
+func CreateDescribeZonesResponse() (response *DescribeZonesResponse) {
+	response = &DescribeZonesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/pvtz/set_zone_record_status.go

@@ -0,0 +1,108 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// SetZoneRecordStatus invokes the pvtz.SetZoneRecordStatus API synchronously
+// api document: https://help.aliyun.com/api/pvtz/setzonerecordstatus.html
+func (client *Client) SetZoneRecordStatus(request *SetZoneRecordStatusRequest) (response *SetZoneRecordStatusResponse, err error) {
+	response = CreateSetZoneRecordStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetZoneRecordStatusWithChan invokes the pvtz.SetZoneRecordStatus API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/setzonerecordstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetZoneRecordStatusWithChan(request *SetZoneRecordStatusRequest) (<-chan *SetZoneRecordStatusResponse, <-chan error) {
+	responseChan := make(chan *SetZoneRecordStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetZoneRecordStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetZoneRecordStatusWithCallback invokes the pvtz.SetZoneRecordStatus API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/setzonerecordstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetZoneRecordStatusWithCallback(request *SetZoneRecordStatusRequest, callback func(response *SetZoneRecordStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetZoneRecordStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.SetZoneRecordStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetZoneRecordStatusRequest is the request struct for api SetZoneRecordStatus
+type SetZoneRecordStatusRequest struct {
+	*requests.RpcRequest
+	Lang         string           `position:"Query" name:"Lang"`
+	RecordId     requests.Integer `position:"Query" name:"RecordId"`
+	Status       string           `position:"Query" name:"Status"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+}
+
+// SetZoneRecordStatusResponse is the response struct for api SetZoneRecordStatus
+type SetZoneRecordStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	RecordId  int    `json:"RecordId" xml:"RecordId"`
+	Status    string `json:"Status" xml:"Status"`
+}
+
+// CreateSetZoneRecordStatusRequest creates a request to invoke SetZoneRecordStatus API
+func CreateSetZoneRecordStatusRequest() (request *SetZoneRecordStatusRequest) {
+	request = &SetZoneRecordStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "SetZoneRecordStatus", "pvtz", "openAPI")
+	return
+}
+
+// CreateSetZoneRecordStatusResponse creates a response to parse from SetZoneRecordStatus response
+func CreateSetZoneRecordStatusResponse() (response *SetZoneRecordStatusResponse) {
+	response = &SetZoneRecordStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 21 - 0
services/pvtz/struct_bind_vpcs.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// BindVpcs is a nested struct in pvtz response
+type BindVpcs struct {
+	Vpc []Vpc `json:"Vpc" xml:"Vpc"`
+}

+ 29 - 0
services/pvtz/struct_change_log.go

@@ -0,0 +1,29 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ChangeLog is a nested struct in pvtz response
+type ChangeLog struct {
+	OperTime      string `json:"OperTime" xml:"OperTime"`
+	OperAction    string `json:"OperAction" xml:"OperAction"`
+	OperObject    string `json:"OperObject" xml:"OperObject"`
+	EntityId      string `json:"EntityId" xml:"EntityId"`
+	EntityName    string `json:"EntityName" xml:"EntityName"`
+	OperIp        string `json:"OperIp" xml:"OperIp"`
+	OperTimestamp int    `json:"OperTimestamp" xml:"OperTimestamp"`
+	Id            int    `json:"Id" xml:"Id"`
+	Content       string `json:"Content" xml:"Content"`
+}

+ 21 - 0
services/pvtz/struct_change_logs.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ChangeLogs is a nested struct in pvtz response
+type ChangeLogs struct {
+	ChangeLog []ChangeLog `json:"ChangeLog" xml:"ChangeLog"`
+}

+ 27 - 0
services/pvtz/struct_record.go

@@ -0,0 +1,27 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Record is a nested struct in pvtz response
+type Record struct {
+	RecordId int    `json:"RecordId" xml:"RecordId"`
+	Rr       string `json:"Rr" xml:"Rr"`
+	Type     string `json:"Type" xml:"Type"`
+	Ttl      int    `json:"Ttl" xml:"Ttl"`
+	Priority int    `json:"Priority" xml:"Priority"`
+	Value    string `json:"Value" xml:"Value"`
+	Status   string `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/pvtz/struct_records.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Records is a nested struct in pvtz response
+type Records struct {
+	Record []Record `json:"Record" xml:"Record"`
+}

+ 22 - 0
services/pvtz/struct_region.go

@@ -0,0 +1,22 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Region is a nested struct in pvtz response
+type Region struct {
+	RegionId   string `json:"RegionId" xml:"RegionId"`
+	RegionName string `json:"RegionName" xml:"RegionName"`
+}

+ 21 - 0
services/pvtz/struct_regions.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Regions is a nested struct in pvtz response
+type Regions struct {
+	Region []Region `json:"Region" xml:"Region"`
+}

+ 21 - 0
services/pvtz/struct_request_details.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// RequestDetails is a nested struct in pvtz response
+type RequestDetails struct {
+	ZoneRequestTop []ZoneRequestTop `json:"ZoneRequestTop" xml:"ZoneRequestTop"`
+}

+ 25 - 0
services/pvtz/struct_vpc.go

@@ -0,0 +1,25 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Vpc is a nested struct in pvtz response
+type Vpc struct {
+	RegionId   string `json:"RegionId" xml:"RegionId"`
+	VpcName    string `json:"VpcName" xml:"VpcName"`
+	VpcId      string `json:"VpcId" xml:"VpcId"`
+	RegionName string `json:"RegionName" xml:"RegionName"`
+	ReionId    string `json:"ReionId" xml:"ReionId"`
+}

+ 25 - 0
services/pvtz/struct_vpc_request_top.go

@@ -0,0 +1,25 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// VpcRequestTop is a nested struct in pvtz response
+type VpcRequestTop struct {
+	RegionId     string `json:"RegionId" xml:"RegionId"`
+	VpcId        string `json:"VpcId" xml:"VpcId"`
+	TunnelId     string `json:"TunnelId" xml:"TunnelId"`
+	RequestCount int    `json:"RequestCount" xml:"RequestCount"`
+	RegionName   string `json:"RegionName" xml:"RegionName"`
+}

+ 21 - 0
services/pvtz/struct_vpc_request_tops.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// VpcRequestTops is a nested struct in pvtz response
+type VpcRequestTops struct {
+	VpcRequestTop []VpcRequestTop `json:"VpcRequestTop" xml:"VpcRequestTop"`
+}

+ 21 - 0
services/pvtz/struct_vpcs.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Vpcs is a nested struct in pvtz response
+type Vpcs struct {
+	Vpc []Vpc `json:"Vpc" xml:"Vpc"`
+}

+ 30 - 0
services/pvtz/struct_zone.go

@@ -0,0 +1,30 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Zone is a nested struct in pvtz response
+type Zone struct {
+	ZoneId          string `json:"ZoneId" xml:"ZoneId"`
+	UpdateTime      string `json:"UpdateTime" xml:"UpdateTime"`
+	Remark          string `json:"Remark" xml:"Remark"`
+	CreateTimestamp int    `json:"CreateTimestamp" xml:"CreateTimestamp"`
+	RecordCount     int    `json:"RecordCount" xml:"RecordCount"`
+	CreateTime      string `json:"CreateTime" xml:"CreateTime"`
+	ZoneName        string `json:"ZoneName" xml:"ZoneName"`
+	IsPtr           bool   `json:"IsPtr" xml:"IsPtr"`
+	UpdateTimestamp int    `json:"UpdateTimestamp" xml:"UpdateTimestamp"`
+	Vpcs            Vpcs   `json:"Vpcs" xml:"Vpcs"`
+}

+ 24 - 0
services/pvtz/struct_zone_request_top.go

@@ -0,0 +1,24 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ZoneRequestTop is a nested struct in pvtz response
+type ZoneRequestTop struct {
+	Time         string `json:"Time" xml:"Time"`
+	RequestCount int    `json:"RequestCount" xml:"RequestCount"`
+	Timestamp    int    `json:"Timestamp" xml:"Timestamp"`
+	ZoneName     string `json:"ZoneName" xml:"ZoneName"`
+}

+ 21 - 0
services/pvtz/struct_zone_request_tops.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ZoneRequestTops is a nested struct in pvtz response
+type ZoneRequestTops struct {
+	ZoneRequestTop []ZoneRequestTop `json:"ZoneRequestTop" xml:"ZoneRequestTop"`
+}

+ 21 - 0
services/pvtz/struct_zones_in_describe_zone_vpc_tree.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ZonesInDescribeZoneVpcTree is a nested struct in pvtz response
+type ZonesInDescribeZoneVpcTree struct {
+	Zone []Zone `json:"Zone" xml:"Zone"`
+}

+ 21 - 0
services/pvtz/struct_zones_in_describe_zones.go

@@ -0,0 +1,21 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ZonesInDescribeZones is a nested struct in pvtz response
+type ZonesInDescribeZones struct {
+	Zone []Zone `json:"Zone" xml:"Zone"`
+}

+ 111 - 0
services/pvtz/update_zone_record.go

@@ -0,0 +1,111 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateZoneRecord invokes the pvtz.UpdateZoneRecord API synchronously
+// api document: https://help.aliyun.com/api/pvtz/updatezonerecord.html
+func (client *Client) UpdateZoneRecord(request *UpdateZoneRecordRequest) (response *UpdateZoneRecordResponse, err error) {
+	response = CreateUpdateZoneRecordResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateZoneRecordWithChan invokes the pvtz.UpdateZoneRecord API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/updatezonerecord.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateZoneRecordWithChan(request *UpdateZoneRecordRequest) (<-chan *UpdateZoneRecordResponse, <-chan error) {
+	responseChan := make(chan *UpdateZoneRecordResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateZoneRecord(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateZoneRecordWithCallback invokes the pvtz.UpdateZoneRecord API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/updatezonerecord.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateZoneRecordWithCallback(request *UpdateZoneRecordRequest, callback func(response *UpdateZoneRecordResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateZoneRecordResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateZoneRecord(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateZoneRecordRequest is the request struct for api UpdateZoneRecord
+type UpdateZoneRecordRequest struct {
+	*requests.RpcRequest
+	Rr           string           `position:"Query" name:"Rr"`
+	Lang         string           `position:"Query" name:"Lang"`
+	RecordId     requests.Integer `position:"Query" name:"RecordId"`
+	Type         string           `position:"Query" name:"Type"`
+	Ttl          requests.Integer `position:"Query" name:"Ttl"`
+	Priority     requests.Integer `position:"Query" name:"Priority"`
+	Value        string           `position:"Query" name:"Value"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+}
+
+// UpdateZoneRecordResponse is the response struct for api UpdateZoneRecord
+type UpdateZoneRecordResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	RecordId  int    `json:"RecordId" xml:"RecordId"`
+}
+
+// CreateUpdateZoneRecordRequest creates a request to invoke UpdateZoneRecord API
+func CreateUpdateZoneRecordRequest() (request *UpdateZoneRecordRequest) {
+	request = &UpdateZoneRecordRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "UpdateZoneRecord", "pvtz", "openAPI")
+	return
+}
+
+// CreateUpdateZoneRecordResponse creates a response to parse from UpdateZoneRecord response
+func CreateUpdateZoneRecordResponse() (response *UpdateZoneRecordResponse) {
+	response = &UpdateZoneRecordResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/pvtz/update_zone_remark.go

@@ -0,0 +1,107 @@
+package pvtz
+
+//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.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UpdateZoneRemark invokes the pvtz.UpdateZoneRemark API synchronously
+// api document: https://help.aliyun.com/api/pvtz/updatezoneremark.html
+func (client *Client) UpdateZoneRemark(request *UpdateZoneRemarkRequest) (response *UpdateZoneRemarkResponse, err error) {
+	response = CreateUpdateZoneRemarkResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateZoneRemarkWithChan invokes the pvtz.UpdateZoneRemark API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/updatezoneremark.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateZoneRemarkWithChan(request *UpdateZoneRemarkRequest) (<-chan *UpdateZoneRemarkResponse, <-chan error) {
+	responseChan := make(chan *UpdateZoneRemarkResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateZoneRemark(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateZoneRemarkWithCallback invokes the pvtz.UpdateZoneRemark API asynchronously
+// api document: https://help.aliyun.com/api/pvtz/updatezoneremark.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateZoneRemarkWithCallback(request *UpdateZoneRemarkRequest, callback func(response *UpdateZoneRemarkResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateZoneRemarkResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateZoneRemark(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateZoneRemarkRequest is the request struct for api UpdateZoneRemark
+type UpdateZoneRemarkRequest struct {
+	*requests.RpcRequest
+	Lang         string `position:"Query" name:"Lang"`
+	ZoneId       string `position:"Query" name:"ZoneId"`
+	Remark       string `position:"Query" name:"Remark"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+}
+
+// UpdateZoneRemarkResponse is the response struct for api UpdateZoneRemark
+type UpdateZoneRemarkResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	ZoneId    string `json:"ZoneId" xml:"ZoneId"`
+}
+
+// CreateUpdateZoneRemarkRequest creates a request to invoke UpdateZoneRemark API
+func CreateUpdateZoneRemarkRequest() (request *UpdateZoneRemarkRequest) {
+	request = &UpdateZoneRemarkRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("pvtz", "2018-01-01", "UpdateZoneRemark", "pvtz", "openAPI")
+	return
+}
+
+// CreateUpdateZoneRemarkResponse creates a response to parse from UpdateZoneRemark response
+func CreateUpdateZoneRemarkResponse() (response *UpdateZoneRemarkResponse) {
+	response = &UpdateZoneRemarkResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}