Browse Source

Add Network Assistant openapi sdk

sdk-team 6 years ago
parent
commit
82daa7a1e7
33 changed files with 1844 additions and 0 deletions
  1. 3 0
      ChangeLog.txt
  2. 104 0
      services/netana/client.go
  3. 115 0
      services/netana/create_network_diagnostic.go
  4. 111 0
      services/netana/create_network_quota_request.go
  5. 106 0
      services/netana/describe_diagnostic_config.go
  6. 112 0
      services/netana/describe_ip_location_and_isp.go
  7. 112 0
      services/netana/describe_ipv6_location_and_isp.go
  8. 122 0
      services/netana/describe_network_analytics_data_transfer.go
  9. 121 0
      services/netana/describe_network_analytics_latency.go
  10. 117 0
      services/netana/describe_network_analytics_net_quality.go
  11. 122 0
      services/netana/describe_network_analytics_packet_loss.go
  12. 114 0
      services/netana/describe_network_quota_request_result.go
  13. 109 0
      services/netana/describe_network_quotas.go
  14. 21 0
      services/netana/struct_api_list.go
  15. 23 0
      services/netana/struct_carrier.go
  16. 23 0
      services/netana/struct_country.go
  17. 28 0
      services/netana/struct_data_transfer_info.go
  18. 21 0
      services/netana/struct_data_transfer_infos.go
  19. 21 0
      services/netana/struct_net_qualities.go
  20. 27 0
      services/netana/struct_net_quality.go
  21. 24 0
      services/netana/struct_network_quota.go
  22. 27 0
      services/netana/struct_network_quota_info.go
  23. 21 0
      services/netana/struct_network_quota_infos.go
  24. 21 0
      services/netana/struct_network_quotas.go
  25. 28 0
      services/netana/struct_packet_loss_info.go
  26. 21 0
      services/netana/struct_packet_loss_infos.go
  27. 24 0
      services/netana/struct_privilege.go
  28. 21 0
      services/netana/struct_privileges.go
  29. 23 0
      services/netana/struct_province.go
  30. 33 0
      services/netana/struct_quota_request.go
  31. 21 0
      services/netana/struct_quota_requests.go
  32. 21 0
      services/netana/struct_round_trip_latencies.go
  33. 27 0
      services/netana/struct_round_trip_latency_info.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-06-13 Version: 1.60.42
+Add Network Assistant openapi sdk
+
 2019-06-13 Version: 1.60.41
 2019-06-13 Version: 1.60.41
 1, add DescribeAvailableResource OpenApi.
 1, add DescribeAvailableResource OpenApi.
 2, upgrade version to 2.3.8 
 2, upgrade version to 2.3.8 

+ 104 - 0
services/netana/client.go

@@ -0,0 +1,104 @@
+package netana
+
+//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"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
+)
+
+// 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
+}
+
+// NewClientWithProvider creates a sdk client with providers
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithProvider(regionId string, providers ...provider.Provider) (client *Client, err error) {
+	client = &Client{}
+	var pc provider.Provider
+	if len(providers) == 0 {
+		pc = provider.DefaultChain
+	} else {
+		pc = provider.NewProviderChain(providers)
+	}
+	err = client.InitWithProviderChain(regionId, pc)
+	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://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+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://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+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://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn and policy
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+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
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 115 - 0
services/netana/create_network_diagnostic.go

@@ -0,0 +1,115 @@
+package netana
+
+//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"
+)
+
+// CreateNetworkDiagnostic invokes the netana.CreateNetworkDiagnostic API synchronously
+// api document: https://help.aliyun.com/api/netana/createnetworkdiagnostic.html
+func (client *Client) CreateNetworkDiagnostic(request *CreateNetworkDiagnosticRequest) (response *CreateNetworkDiagnosticResponse, err error) {
+	response = CreateCreateNetworkDiagnosticResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateNetworkDiagnosticWithChan invokes the netana.CreateNetworkDiagnostic API asynchronously
+// api document: https://help.aliyun.com/api/netana/createnetworkdiagnostic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNetworkDiagnosticWithChan(request *CreateNetworkDiagnosticRequest) (<-chan *CreateNetworkDiagnosticResponse, <-chan error) {
+	responseChan := make(chan *CreateNetworkDiagnosticResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateNetworkDiagnostic(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateNetworkDiagnosticWithCallback invokes the netana.CreateNetworkDiagnostic API asynchronously
+// api document: https://help.aliyun.com/api/netana/createnetworkdiagnostic.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNetworkDiagnosticWithCallback(request *CreateNetworkDiagnosticRequest, callback func(response *CreateNetworkDiagnosticResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateNetworkDiagnosticResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateNetworkDiagnostic(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateNetworkDiagnosticRequest is the request struct for api CreateNetworkDiagnostic
+type CreateNetworkDiagnosticRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	RequestParams        string           `position:"Query" name:"RequestParams"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	UserRequestId        string           `position:"Query" name:"UserRequestId"`
+	Type                 string           `position:"Query" name:"Type"`
+	RequestApiName       string           `position:"Query" name:"RequestApiName"`
+	ErrorCode            string           `position:"Query" name:"ErrorCode"`
+	ProductType          string           `position:"Query" name:"ProductType"`
+	ResponseParams       string           `position:"Query" name:"ResponseParams"`
+}
+
+// CreateNetworkDiagnosticResponse is the response struct for api CreateNetworkDiagnostic
+type CreateNetworkDiagnosticResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Status    string `json:"Status" xml:"Status"`
+	Tpl       string `json:"Tpl" xml:"Tpl"`
+	Params    string `json:"Params" xml:"Params"`
+}
+
+// CreateCreateNetworkDiagnosticRequest creates a request to invoke CreateNetworkDiagnostic API
+func CreateCreateNetworkDiagnosticRequest() (request *CreateNetworkDiagnosticRequest) {
+	request = &CreateNetworkDiagnosticRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "CreateNetworkDiagnostic", "Netana", "openAPI")
+	return
+}
+
+// CreateCreateNetworkDiagnosticResponse creates a response to parse from CreateNetworkDiagnostic response
+func CreateCreateNetworkDiagnosticResponse() (response *CreateNetworkDiagnosticResponse) {
+	response = &CreateNetworkDiagnosticResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/netana/create_network_quota_request.go

@@ -0,0 +1,111 @@
+package netana
+
+//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"
+)
+
+// CreateNetworkQuotaRequest invokes the netana.CreateNetworkQuotaRequest API synchronously
+// api document: https://help.aliyun.com/api/netana/createnetworkquotarequest.html
+func (client *Client) CreateNetworkQuotaRequest(request *CreateNetworkQuotaRequestRequest) (response *CreateNetworkQuotaRequestResponse, err error) {
+	response = CreateCreateNetworkQuotaRequestResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateNetworkQuotaRequestWithChan invokes the netana.CreateNetworkQuotaRequest API asynchronously
+// api document: https://help.aliyun.com/api/netana/createnetworkquotarequest.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNetworkQuotaRequestWithChan(request *CreateNetworkQuotaRequestRequest) (<-chan *CreateNetworkQuotaRequestResponse, <-chan error) {
+	responseChan := make(chan *CreateNetworkQuotaRequestResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateNetworkQuotaRequest(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateNetworkQuotaRequestWithCallback invokes the netana.CreateNetworkQuotaRequest API asynchronously
+// api document: https://help.aliyun.com/api/netana/createnetworkquotarequest.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNetworkQuotaRequestWithCallback(request *CreateNetworkQuotaRequestRequest, callback func(response *CreateNetworkQuotaRequestResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateNetworkQuotaRequestResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateNetworkQuotaRequest(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateNetworkQuotaRequestRequest is the request struct for api CreateNetworkQuotaRequest
+type CreateNetworkQuotaRequestRequest struct {
+	*requests.RpcRequest
+	RequestReason        string           `position:"Query" name:"RequestReason"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Product              string           `position:"Query" name:"Product"`
+	QuotaPublicityName   string           `position:"Query" name:"QuotaPublicityName"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	RequestQuantity      string           `position:"Query" name:"RequestQuantity"`
+	MobilePhone          string           `position:"Query" name:"MobilePhone"`
+	ResourceType         string           `position:"Query" name:"ResourceType"`
+	Email                string           `position:"Query" name:"Email"`
+}
+
+// CreateNetworkQuotaRequestResponse is the response struct for api CreateNetworkQuotaRequest
+type CreateNetworkQuotaRequestResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateNetworkQuotaRequestRequest creates a request to invoke CreateNetworkQuotaRequest API
+func CreateCreateNetworkQuotaRequestRequest() (request *CreateNetworkQuotaRequestRequest) {
+	request = &CreateNetworkQuotaRequestRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "CreateNetworkQuotaRequest", "Netana", "openAPI")
+	return
+}
+
+// CreateCreateNetworkQuotaRequestResponse creates a response to parse from CreateNetworkQuotaRequest response
+func CreateCreateNetworkQuotaRequestResponse() (response *CreateNetworkQuotaRequestResponse) {
+	response = &CreateNetworkQuotaRequestResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/netana/describe_diagnostic_config.go

@@ -0,0 +1,106 @@
+package netana
+
+//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"
+)
+
+// DescribeDiagnosticConfig invokes the netana.DescribeDiagnosticConfig API synchronously
+// api document: https://help.aliyun.com/api/netana/describediagnosticconfig.html
+func (client *Client) DescribeDiagnosticConfig(request *DescribeDiagnosticConfigRequest) (response *DescribeDiagnosticConfigResponse, err error) {
+	response = CreateDescribeDiagnosticConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDiagnosticConfigWithChan invokes the netana.DescribeDiagnosticConfig API asynchronously
+// api document: https://help.aliyun.com/api/netana/describediagnosticconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDiagnosticConfigWithChan(request *DescribeDiagnosticConfigRequest) (<-chan *DescribeDiagnosticConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeDiagnosticConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDiagnosticConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDiagnosticConfigWithCallback invokes the netana.DescribeDiagnosticConfig API asynchronously
+// api document: https://help.aliyun.com/api/netana/describediagnosticconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDiagnosticConfigWithCallback(request *DescribeDiagnosticConfigRequest, callback func(response *DescribeDiagnosticConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDiagnosticConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDiagnosticConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDiagnosticConfigRequest is the request struct for api DescribeDiagnosticConfig
+type DescribeDiagnosticConfigRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ProductType          string           `position:"Query" name:"ProductType"`
+}
+
+// DescribeDiagnosticConfigResponse is the response struct for api DescribeDiagnosticConfig
+type DescribeDiagnosticConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	ApiList   ApiList `json:"ApiList" xml:"ApiList"`
+}
+
+// CreateDescribeDiagnosticConfigRequest creates a request to invoke DescribeDiagnosticConfig API
+func CreateDescribeDiagnosticConfigRequest() (request *DescribeDiagnosticConfigRequest) {
+	request = &DescribeDiagnosticConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeDiagnosticConfig", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeDiagnosticConfigResponse creates a response to parse from DescribeDiagnosticConfig response
+func CreateDescribeDiagnosticConfigResponse() (response *DescribeDiagnosticConfigResponse) {
+	response = &DescribeDiagnosticConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/netana/describe_ip_location_and_isp.go

@@ -0,0 +1,112 @@
+package netana
+
+//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"
+)
+
+// DescribeIpLocationAndIsp invokes the netana.DescribeIpLocationAndIsp API synchronously
+// api document: https://help.aliyun.com/api/netana/describeiplocationandisp.html
+func (client *Client) DescribeIpLocationAndIsp(request *DescribeIpLocationAndIspRequest) (response *DescribeIpLocationAndIspResponse, err error) {
+	response = CreateDescribeIpLocationAndIspResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeIpLocationAndIspWithChan invokes the netana.DescribeIpLocationAndIsp API asynchronously
+// api document: https://help.aliyun.com/api/netana/describeiplocationandisp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIpLocationAndIspWithChan(request *DescribeIpLocationAndIspRequest) (<-chan *DescribeIpLocationAndIspResponse, <-chan error) {
+	responseChan := make(chan *DescribeIpLocationAndIspResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeIpLocationAndIsp(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeIpLocationAndIspWithCallback invokes the netana.DescribeIpLocationAndIsp API asynchronously
+// api document: https://help.aliyun.com/api/netana/describeiplocationandisp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIpLocationAndIspWithCallback(request *DescribeIpLocationAndIspRequest, callback func(response *DescribeIpLocationAndIspResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeIpLocationAndIspResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeIpLocationAndIsp(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeIpLocationAndIspRequest is the request struct for api DescribeIpLocationAndIsp
+type DescribeIpLocationAndIspRequest struct {
+	*requests.RpcRequest
+	IpAddress            string           `position:"Query" name:"IpAddress"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+}
+
+// DescribeIpLocationAndIspResponse is the response struct for api DescribeIpLocationAndIsp
+type DescribeIpLocationAndIspResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	IpAddress   string `json:"IpAddress" xml:"IpAddress"`
+	Country     string `json:"Country" xml:"Country"`
+	City        string `json:"City" xml:"City"`
+	ISP         string `json:"ISP" xml:"ISP"`
+	CountryCode string `json:"CountryCode" xml:"CountryCode"`
+	CityCode    string `json:"CityCode" xml:"CityCode"`
+	ISPCode     string `json:"ISPCode" xml:"ISPCode"`
+}
+
+// CreateDescribeIpLocationAndIspRequest creates a request to invoke DescribeIpLocationAndIsp API
+func CreateDescribeIpLocationAndIspRequest() (request *DescribeIpLocationAndIspRequest) {
+	request = &DescribeIpLocationAndIspRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeIpLocationAndIsp", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeIpLocationAndIspResponse creates a response to parse from DescribeIpLocationAndIsp response
+func CreateDescribeIpLocationAndIspResponse() (response *DescribeIpLocationAndIspResponse) {
+	response = &DescribeIpLocationAndIspResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/netana/describe_ipv6_location_and_isp.go

@@ -0,0 +1,112 @@
+package netana
+
+//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"
+)
+
+// DescribeIpv6LocationAndIsp invokes the netana.DescribeIpv6LocationAndIsp API synchronously
+// api document: https://help.aliyun.com/api/netana/describeipv6locationandisp.html
+func (client *Client) DescribeIpv6LocationAndIsp(request *DescribeIpv6LocationAndIspRequest) (response *DescribeIpv6LocationAndIspResponse, err error) {
+	response = CreateDescribeIpv6LocationAndIspResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeIpv6LocationAndIspWithChan invokes the netana.DescribeIpv6LocationAndIsp API asynchronously
+// api document: https://help.aliyun.com/api/netana/describeipv6locationandisp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIpv6LocationAndIspWithChan(request *DescribeIpv6LocationAndIspRequest) (<-chan *DescribeIpv6LocationAndIspResponse, <-chan error) {
+	responseChan := make(chan *DescribeIpv6LocationAndIspResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeIpv6LocationAndIsp(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeIpv6LocationAndIspWithCallback invokes the netana.DescribeIpv6LocationAndIsp API asynchronously
+// api document: https://help.aliyun.com/api/netana/describeipv6locationandisp.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeIpv6LocationAndIspWithCallback(request *DescribeIpv6LocationAndIspRequest, callback func(response *DescribeIpv6LocationAndIspResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeIpv6LocationAndIspResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeIpv6LocationAndIsp(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeIpv6LocationAndIspRequest is the request struct for api DescribeIpv6LocationAndIsp
+type DescribeIpv6LocationAndIspRequest struct {
+	*requests.RpcRequest
+	IpAddress            string           `position:"Query" name:"IpAddress"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+}
+
+// DescribeIpv6LocationAndIspResponse is the response struct for api DescribeIpv6LocationAndIsp
+type DescribeIpv6LocationAndIspResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	IpAddress   string `json:"IpAddress" xml:"IpAddress"`
+	Country     string `json:"Country" xml:"Country"`
+	City        string `json:"City" xml:"City"`
+	ISP         string `json:"ISP" xml:"ISP"`
+	CountryCode string `json:"CountryCode" xml:"CountryCode"`
+	CityCode    string `json:"CityCode" xml:"CityCode"`
+	ISPCode     string `json:"ISPCode" xml:"ISPCode"`
+}
+
+// CreateDescribeIpv6LocationAndIspRequest creates a request to invoke DescribeIpv6LocationAndIsp API
+func CreateDescribeIpv6LocationAndIspRequest() (request *DescribeIpv6LocationAndIspRequest) {
+	request = &DescribeIpv6LocationAndIspRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeIpv6LocationAndIsp", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeIpv6LocationAndIspResponse creates a response to parse from DescribeIpv6LocationAndIsp response
+func CreateDescribeIpv6LocationAndIspResponse() (response *DescribeIpv6LocationAndIspResponse) {
+	response = &DescribeIpv6LocationAndIspResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 122 - 0
services/netana/describe_network_analytics_data_transfer.go

@@ -0,0 +1,122 @@
+package netana
+
+//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"
+)
+
+// DescribeNetworkAnalyticsDataTransfer invokes the netana.DescribeNetworkAnalyticsDataTransfer API synchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticsdatatransfer.html
+func (client *Client) DescribeNetworkAnalyticsDataTransfer(request *DescribeNetworkAnalyticsDataTransferRequest) (response *DescribeNetworkAnalyticsDataTransferResponse, err error) {
+	response = CreateDescribeNetworkAnalyticsDataTransferResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNetworkAnalyticsDataTransferWithChan invokes the netana.DescribeNetworkAnalyticsDataTransfer API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticsdatatransfer.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsDataTransferWithChan(request *DescribeNetworkAnalyticsDataTransferRequest) (<-chan *DescribeNetworkAnalyticsDataTransferResponse, <-chan error) {
+	responseChan := make(chan *DescribeNetworkAnalyticsDataTransferResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNetworkAnalyticsDataTransfer(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNetworkAnalyticsDataTransferWithCallback invokes the netana.DescribeNetworkAnalyticsDataTransfer API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticsdatatransfer.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsDataTransferWithCallback(request *DescribeNetworkAnalyticsDataTransferRequest, callback func(response *DescribeNetworkAnalyticsDataTransferResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNetworkAnalyticsDataTransferResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNetworkAnalyticsDataTransfer(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNetworkAnalyticsDataTransferRequest is the request struct for api DescribeNetworkAnalyticsDataTransfer
+type DescribeNetworkAnalyticsDataTransferRequest struct {
+	*requests.RpcRequest
+	Country              string           `position:"Query" name:"Country"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Product              string           `position:"Query" name:"Product"`
+	Period               string           `position:"Query" name:"Period"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	Ip                   string           `position:"Query" name:"Ip"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	PageNumber           string           `position:"Query" name:"PageNumber"`
+	Carrier              string           `position:"Query" name:"Carrier"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	Province             string           `position:"Query" name:"Province"`
+	InternetChargeType   string           `position:"Query" name:"InternetChargeType"`
+	Grade                string           `position:"Query" name:"Grade"`
+	PageSize             string           `position:"Query" name:"PageSize"`
+	Direction            string           `position:"Query" name:"Direction"`
+}
+
+// DescribeNetworkAnalyticsDataTransferResponse is the response struct for api DescribeNetworkAnalyticsDataTransfer
+type DescribeNetworkAnalyticsDataTransferResponse struct {
+	*responses.BaseResponse
+	RequestId         string            `json:"RequestId" xml:"RequestId"`
+	TotalCount        int               `json:"TotalCount" xml:"TotalCount"`
+	PageNumber        int               `json:"PageNumber" xml:"PageNumber"`
+	PageSize          int               `json:"PageSize" xml:"PageSize"`
+	DataTransferInfos DataTransferInfos `json:"DataTransferInfos" xml:"DataTransferInfos"`
+}
+
+// CreateDescribeNetworkAnalyticsDataTransferRequest creates a request to invoke DescribeNetworkAnalyticsDataTransfer API
+func CreateDescribeNetworkAnalyticsDataTransferRequest() (request *DescribeNetworkAnalyticsDataTransferRequest) {
+	request = &DescribeNetworkAnalyticsDataTransferRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeNetworkAnalyticsDataTransfer", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeNetworkAnalyticsDataTransferResponse creates a response to parse from DescribeNetworkAnalyticsDataTransfer response
+func CreateDescribeNetworkAnalyticsDataTransferResponse() (response *DescribeNetworkAnalyticsDataTransferResponse) {
+	response = &DescribeNetworkAnalyticsDataTransferResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 121 - 0
services/netana/describe_network_analytics_latency.go

@@ -0,0 +1,121 @@
+package netana
+
+//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"
+)
+
+// DescribeNetworkAnalyticsLatency invokes the netana.DescribeNetworkAnalyticsLatency API synchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticslatency.html
+func (client *Client) DescribeNetworkAnalyticsLatency(request *DescribeNetworkAnalyticsLatencyRequest) (response *DescribeNetworkAnalyticsLatencyResponse, err error) {
+	response = CreateDescribeNetworkAnalyticsLatencyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNetworkAnalyticsLatencyWithChan invokes the netana.DescribeNetworkAnalyticsLatency API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticslatency.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsLatencyWithChan(request *DescribeNetworkAnalyticsLatencyRequest) (<-chan *DescribeNetworkAnalyticsLatencyResponse, <-chan error) {
+	responseChan := make(chan *DescribeNetworkAnalyticsLatencyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNetworkAnalyticsLatency(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNetworkAnalyticsLatencyWithCallback invokes the netana.DescribeNetworkAnalyticsLatency API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticslatency.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsLatencyWithCallback(request *DescribeNetworkAnalyticsLatencyRequest, callback func(response *DescribeNetworkAnalyticsLatencyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNetworkAnalyticsLatencyResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNetworkAnalyticsLatency(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNetworkAnalyticsLatencyRequest is the request struct for api DescribeNetworkAnalyticsLatency
+type DescribeNetworkAnalyticsLatencyRequest struct {
+	*requests.RpcRequest
+	Country              string           `position:"Query" name:"Country"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Product              string           `position:"Query" name:"Product"`
+	Period               string           `position:"Query" name:"Period"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	Ip                   string           `position:"Query" name:"Ip"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	PageNumber           string           `position:"Query" name:"PageNumber"`
+	Carrier              string           `position:"Query" name:"Carrier"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	Province             string           `position:"Query" name:"Province"`
+	InternetChargeType   string           `position:"Query" name:"InternetChargeType"`
+	Grade                string           `position:"Query" name:"Grade"`
+	PageSize             string           `position:"Query" name:"PageSize"`
+}
+
+// DescribeNetworkAnalyticsLatencyResponse is the response struct for api DescribeNetworkAnalyticsLatency
+type DescribeNetworkAnalyticsLatencyResponse struct {
+	*responses.BaseResponse
+	RequestId          string             `json:"RequestId" xml:"RequestId"`
+	TotalCount         int                `json:"TotalCount" xml:"TotalCount"`
+	PageNumber         int                `json:"PageNumber" xml:"PageNumber"`
+	PageSize           int                `json:"PageSize" xml:"PageSize"`
+	RoundTripLatencies RoundTripLatencies `json:"RoundTripLatencies" xml:"RoundTripLatencies"`
+}
+
+// CreateDescribeNetworkAnalyticsLatencyRequest creates a request to invoke DescribeNetworkAnalyticsLatency API
+func CreateDescribeNetworkAnalyticsLatencyRequest() (request *DescribeNetworkAnalyticsLatencyRequest) {
+	request = &DescribeNetworkAnalyticsLatencyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeNetworkAnalyticsLatency", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeNetworkAnalyticsLatencyResponse creates a response to parse from DescribeNetworkAnalyticsLatency response
+func CreateDescribeNetworkAnalyticsLatencyResponse() (response *DescribeNetworkAnalyticsLatencyResponse) {
+	response = &DescribeNetworkAnalyticsLatencyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/netana/describe_network_analytics_net_quality.go

@@ -0,0 +1,117 @@
+package netana
+
+//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"
+)
+
+// DescribeNetworkAnalyticsNetQuality invokes the netana.DescribeNetworkAnalyticsNetQuality API synchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticsnetquality.html
+func (client *Client) DescribeNetworkAnalyticsNetQuality(request *DescribeNetworkAnalyticsNetQualityRequest) (response *DescribeNetworkAnalyticsNetQualityResponse, err error) {
+	response = CreateDescribeNetworkAnalyticsNetQualityResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNetworkAnalyticsNetQualityWithChan invokes the netana.DescribeNetworkAnalyticsNetQuality API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticsnetquality.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsNetQualityWithChan(request *DescribeNetworkAnalyticsNetQualityRequest) (<-chan *DescribeNetworkAnalyticsNetQualityResponse, <-chan error) {
+	responseChan := make(chan *DescribeNetworkAnalyticsNetQualityResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNetworkAnalyticsNetQuality(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNetworkAnalyticsNetQualityWithCallback invokes the netana.DescribeNetworkAnalyticsNetQuality API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticsnetquality.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsNetQualityWithCallback(request *DescribeNetworkAnalyticsNetQualityRequest, callback func(response *DescribeNetworkAnalyticsNetQualityResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNetworkAnalyticsNetQualityResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNetworkAnalyticsNetQuality(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNetworkAnalyticsNetQualityRequest is the request struct for api DescribeNetworkAnalyticsNetQuality
+type DescribeNetworkAnalyticsNetQualityRequest struct {
+	*requests.RpcRequest
+	Country              string           `position:"Query" name:"Country"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Period               string           `position:"Query" name:"Period"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	PageNumber           string           `position:"Query" name:"PageNumber"`
+	Carrier              string           `position:"Query" name:"Carrier"`
+	Province             string           `position:"Query" name:"Province"`
+	Grade                string           `position:"Query" name:"Grade"`
+	PageSize             string           `position:"Query" name:"PageSize"`
+}
+
+// DescribeNetworkAnalyticsNetQualityResponse is the response struct for api DescribeNetworkAnalyticsNetQuality
+type DescribeNetworkAnalyticsNetQualityResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	TotalCount   int          `json:"TotalCount" xml:"TotalCount"`
+	PageNumber   int          `json:"PageNumber" xml:"PageNumber"`
+	PageSize     int          `json:"PageSize" xml:"PageSize"`
+	NetQualities NetQualities `json:"NetQualities" xml:"NetQualities"`
+}
+
+// CreateDescribeNetworkAnalyticsNetQualityRequest creates a request to invoke DescribeNetworkAnalyticsNetQuality API
+func CreateDescribeNetworkAnalyticsNetQualityRequest() (request *DescribeNetworkAnalyticsNetQualityRequest) {
+	request = &DescribeNetworkAnalyticsNetQualityRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeNetworkAnalyticsNetQuality", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeNetworkAnalyticsNetQualityResponse creates a response to parse from DescribeNetworkAnalyticsNetQuality response
+func CreateDescribeNetworkAnalyticsNetQualityResponse() (response *DescribeNetworkAnalyticsNetQualityResponse) {
+	response = &DescribeNetworkAnalyticsNetQualityResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 122 - 0
services/netana/describe_network_analytics_packet_loss.go

@@ -0,0 +1,122 @@
+package netana
+
+//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"
+)
+
+// DescribeNetworkAnalyticsPacketLoss invokes the netana.DescribeNetworkAnalyticsPacketLoss API synchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticspacketloss.html
+func (client *Client) DescribeNetworkAnalyticsPacketLoss(request *DescribeNetworkAnalyticsPacketLossRequest) (response *DescribeNetworkAnalyticsPacketLossResponse, err error) {
+	response = CreateDescribeNetworkAnalyticsPacketLossResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNetworkAnalyticsPacketLossWithChan invokes the netana.DescribeNetworkAnalyticsPacketLoss API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticspacketloss.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsPacketLossWithChan(request *DescribeNetworkAnalyticsPacketLossRequest) (<-chan *DescribeNetworkAnalyticsPacketLossResponse, <-chan error) {
+	responseChan := make(chan *DescribeNetworkAnalyticsPacketLossResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNetworkAnalyticsPacketLoss(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNetworkAnalyticsPacketLossWithCallback invokes the netana.DescribeNetworkAnalyticsPacketLoss API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkanalyticspacketloss.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkAnalyticsPacketLossWithCallback(request *DescribeNetworkAnalyticsPacketLossRequest, callback func(response *DescribeNetworkAnalyticsPacketLossResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNetworkAnalyticsPacketLossResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNetworkAnalyticsPacketLoss(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNetworkAnalyticsPacketLossRequest is the request struct for api DescribeNetworkAnalyticsPacketLoss
+type DescribeNetworkAnalyticsPacketLossRequest struct {
+	*requests.RpcRequest
+	Country              string           `position:"Query" name:"Country"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Product              string           `position:"Query" name:"Product"`
+	Period               string           `position:"Query" name:"Period"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	Ip                   string           `position:"Query" name:"Ip"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	PageNumber           string           `position:"Query" name:"PageNumber"`
+	Carrier              string           `position:"Query" name:"Carrier"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+	Province             string           `position:"Query" name:"Province"`
+	InternetChargeType   string           `position:"Query" name:"InternetChargeType"`
+	Grade                string           `position:"Query" name:"Grade"`
+	PageSize             string           `position:"Query" name:"PageSize"`
+	Direction            string           `position:"Query" name:"Direction"`
+}
+
+// DescribeNetworkAnalyticsPacketLossResponse is the response struct for api DescribeNetworkAnalyticsPacketLoss
+type DescribeNetworkAnalyticsPacketLossResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	TotalCount      int             `json:"TotalCount" xml:"TotalCount"`
+	PageNumber      int             `json:"PageNumber" xml:"PageNumber"`
+	PageSize        int             `json:"PageSize" xml:"PageSize"`
+	PacketLossInfos PacketLossInfos `json:"PacketLossInfos" xml:"PacketLossInfos"`
+}
+
+// CreateDescribeNetworkAnalyticsPacketLossRequest creates a request to invoke DescribeNetworkAnalyticsPacketLoss API
+func CreateDescribeNetworkAnalyticsPacketLossRequest() (request *DescribeNetworkAnalyticsPacketLossRequest) {
+	request = &DescribeNetworkAnalyticsPacketLossRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeNetworkAnalyticsPacketLoss", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeNetworkAnalyticsPacketLossResponse creates a response to parse from DescribeNetworkAnalyticsPacketLoss response
+func CreateDescribeNetworkAnalyticsPacketLossResponse() (response *DescribeNetworkAnalyticsPacketLossResponse) {
+	response = &DescribeNetworkAnalyticsPacketLossResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/netana/describe_network_quota_request_result.go

@@ -0,0 +1,114 @@
+package netana
+
+//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"
+)
+
+// DescribeNetworkQuotaRequestResult invokes the netana.DescribeNetworkQuotaRequestResult API synchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkquotarequestresult.html
+func (client *Client) DescribeNetworkQuotaRequestResult(request *DescribeNetworkQuotaRequestResultRequest) (response *DescribeNetworkQuotaRequestResultResponse, err error) {
+	response = CreateDescribeNetworkQuotaRequestResultResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNetworkQuotaRequestResultWithChan invokes the netana.DescribeNetworkQuotaRequestResult API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkquotarequestresult.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkQuotaRequestResultWithChan(request *DescribeNetworkQuotaRequestResultRequest) (<-chan *DescribeNetworkQuotaRequestResultResponse, <-chan error) {
+	responseChan := make(chan *DescribeNetworkQuotaRequestResultResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNetworkQuotaRequestResult(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNetworkQuotaRequestResultWithCallback invokes the netana.DescribeNetworkQuotaRequestResult API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkquotarequestresult.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkQuotaRequestResultWithCallback(request *DescribeNetworkQuotaRequestResultRequest, callback func(response *DescribeNetworkQuotaRequestResultResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNetworkQuotaRequestResultResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNetworkQuotaRequestResult(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNetworkQuotaRequestResultRequest is the request struct for api DescribeNetworkQuotaRequestResult
+type DescribeNetworkQuotaRequestResultRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Product              string           `position:"Query" name:"Product"`
+	QuotaPublicityName   string           `position:"Query" name:"QuotaPublicityName"`
+	QuotaRequestId       string           `position:"Query" name:"QuotaRequestId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	PageNo               string           `position:"Query" name:"PageNo"`
+	PageSize             string           `position:"Query" name:"PageSize"`
+	ResourceType         string           `position:"Query" name:"ResourceType"`
+}
+
+// DescribeNetworkQuotaRequestResultResponse is the response struct for api DescribeNetworkQuotaRequestResult
+type DescribeNetworkQuotaRequestResultResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	TotalCount    int           `json:"TotalCount" xml:"TotalCount"`
+	PageNumber    int           `json:"PageNumber" xml:"PageNumber"`
+	PageSize      int           `json:"PageSize" xml:"PageSize"`
+	QuotaRequests QuotaRequests `json:"QuotaRequests" xml:"QuotaRequests"`
+}
+
+// CreateDescribeNetworkQuotaRequestResultRequest creates a request to invoke DescribeNetworkQuotaRequestResult API
+func CreateDescribeNetworkQuotaRequestResultRequest() (request *DescribeNetworkQuotaRequestResultRequest) {
+	request = &DescribeNetworkQuotaRequestResultRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeNetworkQuotaRequestResult", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeNetworkQuotaRequestResultResponse creates a response to parse from DescribeNetworkQuotaRequestResult response
+func CreateDescribeNetworkQuotaRequestResultResponse() (response *DescribeNetworkQuotaRequestResultResponse) {
+	response = &DescribeNetworkQuotaRequestResultResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/netana/describe_network_quotas.go

@@ -0,0 +1,109 @@
+package netana
+
+//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"
+)
+
+// DescribeNetworkQuotas invokes the netana.DescribeNetworkQuotas API synchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkquotas.html
+func (client *Client) DescribeNetworkQuotas(request *DescribeNetworkQuotasRequest) (response *DescribeNetworkQuotasResponse, err error) {
+	response = CreateDescribeNetworkQuotasResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNetworkQuotasWithChan invokes the netana.DescribeNetworkQuotas API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkquotas.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkQuotasWithChan(request *DescribeNetworkQuotasRequest) (<-chan *DescribeNetworkQuotasResponse, <-chan error) {
+	responseChan := make(chan *DescribeNetworkQuotasResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNetworkQuotas(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNetworkQuotasWithCallback invokes the netana.DescribeNetworkQuotas API asynchronously
+// api document: https://help.aliyun.com/api/netana/describenetworkquotas.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNetworkQuotasWithCallback(request *DescribeNetworkQuotasRequest, callback func(response *DescribeNetworkQuotasResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNetworkQuotasResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNetworkQuotas(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNetworkQuotasRequest is the request struct for api DescribeNetworkQuotas
+type DescribeNetworkQuotasRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Product              string           `position:"Query" name:"Product"`
+	QuotaPublicityName   string           `position:"Query" name:"QuotaPublicityName"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceType         string           `position:"Query" name:"ResourceType"`
+}
+
+// DescribeNetworkQuotasResponse is the response struct for api DescribeNetworkQuotas
+type DescribeNetworkQuotasResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	TotalCount    int           `json:"TotalCount" xml:"TotalCount"`
+	NetworkQuotas NetworkQuotas `json:"NetworkQuotas" xml:"NetworkQuotas"`
+}
+
+// CreateDescribeNetworkQuotasRequest creates a request to invoke DescribeNetworkQuotas API
+func CreateDescribeNetworkQuotasRequest() (request *DescribeNetworkQuotasRequest) {
+	request = &DescribeNetworkQuotasRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Netana", "2018-10-18", "DescribeNetworkQuotas", "Netana", "openAPI")
+	return
+}
+
+// CreateDescribeNetworkQuotasResponse creates a response to parse from DescribeNetworkQuotas response
+func CreateDescribeNetworkQuotasResponse() (response *DescribeNetworkQuotasResponse) {
+	response = &DescribeNetworkQuotasResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 21 - 0
services/netana/struct_api_list.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// ApiList is a nested struct in netana response
+type ApiList struct {
+	ApiList []string `json:"ApiList" xml:"ApiList"`
+}

+ 23 - 0
services/netana/struct_carrier.go

@@ -0,0 +1,23 @@
+package netana
+
+//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.
+
+// Carrier is a nested struct in netana response
+type Carrier struct {
+	CarrierCode string `json:"CarrierCode" xml:"CarrierCode"`
+	CarrierEn   string `json:"CarrierEn" xml:"CarrierEn"`
+	CarrierCn   bool   `json:"CarrierCn" xml:"CarrierCn"`
+}

+ 23 - 0
services/netana/struct_country.go

@@ -0,0 +1,23 @@
+package netana
+
+//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.
+
+// Country is a nested struct in netana response
+type Country struct {
+	CountryEn   string `json:"CountryEn" xml:"CountryEn"`
+	CountryCn   bool   `json:"CountryCn" xml:"CountryCn"`
+	CountryCode string `json:"CountryCode" xml:"CountryCode"`
+}

+ 28 - 0
services/netana/struct_data_transfer_info.go

@@ -0,0 +1,28 @@
+package netana
+
+//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.
+
+// DataTransferInfo is a nested struct in netana response
+type DataTransferInfo struct {
+	InBoundTotalBytes  string   `json:"InBoundTotalBytes" xml:"InBoundTotalBytes"`
+	OutBoundTotalBytes string   `json:"OutBoundTotalBytes" xml:"OutBoundTotalBytes"`
+	DataType           string   `json:"DataType" xml:"DataType"`
+	DateTime           string   `json:"DateTime" xml:"DateTime"`
+	Ip                 string   `json:"Ip" xml:"Ip"`
+	Country            Country  `json:"Country" xml:"Country"`
+	Province           Province `json:"Province" xml:"Province"`
+	Carrier            Carrier  `json:"Carrier" xml:"Carrier"`
+}

+ 21 - 0
services/netana/struct_data_transfer_infos.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// DataTransferInfos is a nested struct in netana response
+type DataTransferInfos struct {
+	DataTransferInfo []DataTransferInfo `json:"DataTransferInfo" xml:"DataTransferInfo"`
+}

+ 21 - 0
services/netana/struct_net_qualities.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// NetQualities is a nested struct in netana response
+type NetQualities struct {
+	NetQuality []NetQuality `json:"NetQuality" xml:"NetQuality"`
+}

+ 27 - 0
services/netana/struct_net_quality.go

@@ -0,0 +1,27 @@
+package netana
+
+//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.
+
+// NetQuality is a nested struct in netana response
+type NetQuality struct {
+	RoundTripLatency string   `json:"RoundTripLatency" xml:"RoundTripLatency"`
+	NetLevel         string   `json:"NetLevel" xml:"NetLevel"`
+	DataType         string   `json:"DataType" xml:"DataType"`
+	DateTime         string   `json:"DateTime" xml:"DateTime"`
+	Country          Country  `json:"Country" xml:"Country"`
+	Province         Province `json:"Province" xml:"Province"`
+	Carrier          Carrier  `json:"Carrier" xml:"Carrier"`
+}

+ 24 - 0
services/netana/struct_network_quota.go

@@ -0,0 +1,24 @@
+package netana
+
+//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.
+
+// NetworkQuota is a nested struct in netana response
+type NetworkQuota struct {
+	Product           string            `json:"Product" xml:"Product"`
+	ResourceType      string            `json:"ResourceType" xml:"ResourceType"`
+	Privileges        Privileges        `json:"Privileges" xml:"Privileges"`
+	NetworkQuotaInfos NetworkQuotaInfos `json:"NetworkQuotaInfos" xml:"NetworkQuotaInfos"`
+}

+ 27 - 0
services/netana/struct_network_quota_info.go

@@ -0,0 +1,27 @@
+package netana
+
+//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.
+
+// NetworkQuotaInfo is a nested struct in netana response
+type NetworkQuotaInfo struct {
+	QuotaName          string `json:"QuotaName" xml:"QuotaName"`
+	QuotaDescription   string `json:"QuotaDescription" xml:"QuotaDescription"`
+	QuotaQuantity      string `json:"QuotaQuantity" xml:"QuotaQuantity"`
+	InstanceQuantity   string `json:"InstanceQuantity" xml:"InstanceQuantity"`
+	CanExceptional     string `json:"CanExceptional" xml:"CanExceptional"`
+	QuotaDescriptionCn string `json:"QuotaDescriptionCn" xml:"QuotaDescriptionCn"`
+	Sequence           string `json:"Sequence" xml:"Sequence"`
+}

+ 21 - 0
services/netana/struct_network_quota_infos.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// NetworkQuotaInfos is a nested struct in netana response
+type NetworkQuotaInfos struct {
+	NetworkQuotaInfo []NetworkQuotaInfo `json:"NetworkQuotaInfo" xml:"NetworkQuotaInfo"`
+}

+ 21 - 0
services/netana/struct_network_quotas.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// NetworkQuotas is a nested struct in netana response
+type NetworkQuotas struct {
+	NetworkQuota []NetworkQuota `json:"NetworkQuota" xml:"NetworkQuota"`
+}

+ 28 - 0
services/netana/struct_packet_loss_info.go

@@ -0,0 +1,28 @@
+package netana
+
+//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.
+
+// PacketLossInfo is a nested struct in netana response
+type PacketLossInfo struct {
+	InBoundTotalPacket  string   `json:"InBoundTotalPacket" xml:"InBoundTotalPacket"`
+	OutBoundTotalPacket string   `json:"OutBoundTotalPacket" xml:"OutBoundTotalPacket"`
+	DataType            string   `json:"DataType" xml:"DataType"`
+	DateTime            string   `json:"DateTime" xml:"DateTime"`
+	Ip                  string   `json:"Ip" xml:"Ip"`
+	Country             Country  `json:"Country" xml:"Country"`
+	Province            Province `json:"Province" xml:"Province"`
+	Carrier             Carrier  `json:"Carrier" xml:"Carrier"`
+}

+ 21 - 0
services/netana/struct_packet_loss_infos.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// PacketLossInfos is a nested struct in netana response
+type PacketLossInfos struct {
+	PacketLossInfo []PacketLossInfo `json:"PacketLossInfo" xml:"PacketLossInfo"`
+}

+ 24 - 0
services/netana/struct_privilege.go

@@ -0,0 +1,24 @@
+package netana
+
+//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.
+
+// Privilege is a nested struct in netana response
+type Privilege struct {
+	Privilege     string `json:"Privilege" xml:"Privilege"`
+	Description   string `json:"Description" xml:"Description"`
+	Enabled       bool   `json:"Enabled" xml:"Enabled"`
+	DescriptionCn string `json:"DescriptionCn" xml:"DescriptionCn"`
+}

+ 21 - 0
services/netana/struct_privileges.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// Privileges is a nested struct in netana response
+type Privileges struct {
+	Privilege []Privilege `json:"Privilege" xml:"Privilege"`
+}

+ 23 - 0
services/netana/struct_province.go

@@ -0,0 +1,23 @@
+package netana
+
+//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.
+
+// Province is a nested struct in netana response
+type Province struct {
+	ProvinceCn   bool   `json:"ProvinceCn" xml:"ProvinceCn"`
+	ProvinceEn   string `json:"ProvinceEn" xml:"ProvinceEn"`
+	ProvinceCode string `json:"ProvinceCode" xml:"ProvinceCode"`
+}

+ 33 - 0
services/netana/struct_quota_request.go

@@ -0,0 +1,33 @@
+package netana
+
+//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.
+
+// QuotaRequest is a nested struct in netana response
+type QuotaRequest struct {
+	RegionId           string `json:"RegionId" xml:"RegionId"`
+	Product            string `json:"Product" xml:"Product"`
+	ResourceType       string `json:"ResourceType" xml:"ResourceType"`
+	QuotaPublicityName string `json:"QuotaPublicityName" xml:"QuotaPublicityName"`
+	RequestReason      string `json:"RequestReason" xml:"RequestReason"`
+	MobilePhone        string `json:"MobilePhone" xml:"MobilePhone"`
+	Email              string `json:"Email" xml:"Email"`
+	RequestResult      string `json:"RequestResult" xml:"RequestResult"`
+	ResultQuantity     string `json:"ResultQuantity" xml:"ResultQuantity"`
+	ResultReason       string `json:"ResultReason" xml:"ResultReason"`
+	RequestId          string `json:"RequestId" xml:"RequestId"`
+	CreateTime         string `json:"CreateTime" xml:"CreateTime"`
+	RequestQuantity    string `json:"RequestQuantity" xml:"RequestQuantity"`
+}

+ 21 - 0
services/netana/struct_quota_requests.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// QuotaRequests is a nested struct in netana response
+type QuotaRequests struct {
+	QuotaRequest []QuotaRequest `json:"QuotaRequest" xml:"QuotaRequest"`
+}

+ 21 - 0
services/netana/struct_round_trip_latencies.go

@@ -0,0 +1,21 @@
+package netana
+
+//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.
+
+// RoundTripLatencies is a nested struct in netana response
+type RoundTripLatencies struct {
+	RoundTripLatencyInfo []RoundTripLatencyInfo `json:"RoundTripLatencyInfo" xml:"RoundTripLatencyInfo"`
+}

+ 27 - 0
services/netana/struct_round_trip_latency_info.go

@@ -0,0 +1,27 @@
+package netana
+
+//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.
+
+// RoundTripLatencyInfo is a nested struct in netana response
+type RoundTripLatencyInfo struct {
+	RoundTripLatency string   `json:"RoundTripLatency" xml:"RoundTripLatency"`
+	DataType         string   `json:"DataType" xml:"DataType"`
+	DateTime         string   `json:"DateTime" xml:"DateTime"`
+	Ip               string   `json:"Ip" xml:"Ip"`
+	Country          Country  `json:"Country" xml:"Country"`
+	Province         Province `json:"Province" xml:"Province"`
+	Carrier          Carrier  `json:"Carrier" xml:"Carrier"`
+}