Bläddra i källkod

DOMAIN SDK Auto Released By huizeng.zh,Version:1.33.0

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 7 år sedan
förälder
incheckning
c06c416214
53 ändrade filer med 2293 tillägg och 83 borttagningar
  1. 4 0
      ChangeLog.txt
  2. 106 0
      services/domain/cancel_qualification_verification.go
  3. 6 4
      services/domain/check_domain.go
  4. 107 0
      services/domain/check_domain_sunrise_claim.go
  5. 107 0
      services/domain/check_max_year_of_server_lock.go
  6. 107 0
      services/domain/check_processing_server_lock_apply.go
  7. 111 0
      services/domain/get_qualification_upload_policy.go
  8. 1 0
      services/domain/list_email_verification.go
  9. 120 0
      services/domain/list_server_lock.go
  10. 110 0
      services/domain/lookup_tmch_notice.go
  11. 3 2
      services/domain/query_dns_host.go
  12. 111 0
      services/domain/query_domain_admin_division.go
  13. 2 1
      services/domain/query_domain_suffix.go
  14. 3 2
      services/domain/query_email_verification.go
  15. 106 0
      services/domain/query_ens_association.go
  16. 108 0
      services/domain/query_failing_reason_list_for_qualification.go
  17. 106 0
      services/domain/query_local_ens_association.go
  18. 109 0
      services/domain/query_qualification_detail.go
  19. 115 0
      services/domain/query_server_lock.go
  20. 1 1
      services/domain/query_task_detail_list.go
  21. 105 0
      services/domain/reset_qualification_verification.go
  22. 4 3
      services/domain/save_batch_domain_remark.go
  23. 26 25
      services/domain/save_batch_task_for_creating_order_activate.go
  24. 1 1
      services/domain/save_batch_task_for_creating_order_redeem.go
  25. 2 2
      services/domain/save_batch_task_for_creating_order_renew.go
  26. 2 2
      services/domain/save_batch_task_for_creating_order_transfer.go
  27. 107 0
      services/domain/save_single_task_for_associating_ens.go
  28. 5 4
      services/domain/save_single_task_for_creating_dns_host.go
  29. 28 27
      services/domain/save_single_task_for_creating_order_activate.go
  30. 4 3
      services/domain/save_single_task_for_deleting_dns_host.go
  31. 106 0
      services/domain/save_single_task_for_disassociating_ens.go
  32. 5 4
      services/domain/save_single_task_for_modifying_dns_host.go
  33. 3 2
      services/domain/save_single_task_for_synchronizing_dns_host.go
  34. 25 0
      services/domain/struct_addr.go
  35. 22 0
      services/domain/struct_admin_division.go
  36. 21 0
      services/domain/struct_admin_divisions.go
  37. 21 0
      services/domain/struct_children.go
  38. 21 0
      services/domain/struct_children_item.go
  39. 26 0
      services/domain/struct_claim.go
  40. 21 0
      services/domain/struct_claims.go
  41. 22 0
      services/domain/struct_class_desc.go
  42. 21 0
      services/domain/struct_class_descs.go
  43. 27 0
      services/domain/struct_contact.go
  44. 21 0
      services/domain/struct_contacts.go
  45. 21 0
      services/domain/struct_credentials.go
  46. 21 0
      services/domain/struct_data_in_list_server_lock.go
  47. 21 0
      services/domain/struct_data_in_query_failing_reason_list_for_qualification.go
  48. 23 0
      services/domain/struct_holder.go
  49. 21 0
      services/domain/struct_holders.go
  50. 22 0
      services/domain/struct_jur_desc.go
  51. 24 0
      services/domain/struct_qualification_credential.go
  52. 30 0
      services/domain/struct_query_transfer_in_response.go
  53. 21 0
      services/domain/struct_street_in_lookup_tmch_notice.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2018-10-25 Version: 1.33.0
+1, Add apis for trademark domains.
+2, Add QueryDomainAdminDivision api.
+
 2018-10-16 Version: 1.32.3
 1, This version add MetricQuery interface to support retcode and apm metric query.
 

+ 106 - 0
services/domain/cancel_qualification_verification.go

@@ -0,0 +1,106 @@
+package domain
+
+//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"
+)
+
+// CancelQualificationVerification invokes the domain.CancelQualificationVerification API synchronously
+// api document: https://help.aliyun.com/api/domain/cancelqualificationverification.html
+func (client *Client) CancelQualificationVerification(request *CancelQualificationVerificationRequest) (response *CancelQualificationVerificationResponse, err error) {
+	response = CreateCancelQualificationVerificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CancelQualificationVerificationWithChan invokes the domain.CancelQualificationVerification API asynchronously
+// api document: https://help.aliyun.com/api/domain/cancelqualificationverification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelQualificationVerificationWithChan(request *CancelQualificationVerificationRequest) (<-chan *CancelQualificationVerificationResponse, <-chan error) {
+	responseChan := make(chan *CancelQualificationVerificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CancelQualificationVerification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CancelQualificationVerificationWithCallback invokes the domain.CancelQualificationVerification API asynchronously
+// api document: https://help.aliyun.com/api/domain/cancelqualificationverification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CancelQualificationVerificationWithCallback(request *CancelQualificationVerificationRequest, callback func(response *CancelQualificationVerificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CancelQualificationVerificationResponse
+		var err error
+		defer close(result)
+		response, err = client.CancelQualificationVerification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CancelQualificationVerificationRequest is the request struct for api CancelQualificationVerification
+type CancelQualificationVerificationRequest struct {
+	*requests.RpcRequest
+	InstanceId        string `position:"Query" name:"InstanceId"`
+	UserClientIp      string `position:"Query" name:"UserClientIp"`
+	Lang              string `position:"Query" name:"Lang"`
+	QualificationType string `position:"Query" name:"QualificationType"`
+}
+
+// CancelQualificationVerificationResponse is the response struct for api CancelQualificationVerification
+type CancelQualificationVerificationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCancelQualificationVerificationRequest creates a request to invoke CancelQualificationVerification API
+func CreateCancelQualificationVerificationRequest() (request *CancelQualificationVerificationRequest) {
+	request = &CancelQualificationVerificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "CancelQualificationVerification", "", "")
+	return
+}
+
+// CreateCancelQualificationVerificationResponse creates a response to parse from CancelQualificationVerification response
+func CreateCancelQualificationVerificationResponse() (response *CancelQualificationVerificationResponse) {
+	response = &CancelQualificationVerificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 6 - 4
services/domain/check_domain.go

@@ -76,10 +76,12 @@ func (client *Client) CheckDomainWithCallback(request *CheckDomainRequest, callb
 // CheckDomainRequest is the request struct for api CheckDomain
 type CheckDomainRequest struct {
 	*requests.RpcRequest
-	FeeCurrency string           `position:"Query" name:"FeeCurrency"`
-	FeePeriod   requests.Integer `position:"Query" name:"FeePeriod"`
-	DomainName  string           `position:"Query" name:"DomainName"`
-	FeeCommand  string           `position:"Query" name:"FeeCommand"`
+	FeeCurrency  string           `position:"Query" name:"FeeCurrency"`
+	FeePeriod    requests.Integer `position:"Query" name:"FeePeriod"`
+	DomainName   string           `position:"Query" name:"DomainName"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+	FeeCommand   string           `position:"Query" name:"FeeCommand"`
+	Lang         string           `position:"Query" name:"Lang"`
 }
 
 // CheckDomainResponse is the response struct for api CheckDomain

+ 107 - 0
services/domain/check_domain_sunrise_claim.go

@@ -0,0 +1,107 @@
+package domain
+
+//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"
+)
+
+// CheckDomainSunriseClaim invokes the domain.CheckDomainSunriseClaim API synchronously
+// api document: https://help.aliyun.com/api/domain/checkdomainsunriseclaim.html
+func (client *Client) CheckDomainSunriseClaim(request *CheckDomainSunriseClaimRequest) (response *CheckDomainSunriseClaimResponse, err error) {
+	response = CreateCheckDomainSunriseClaimResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckDomainSunriseClaimWithChan invokes the domain.CheckDomainSunriseClaim API asynchronously
+// api document: https://help.aliyun.com/api/domain/checkdomainsunriseclaim.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckDomainSunriseClaimWithChan(request *CheckDomainSunriseClaimRequest) (<-chan *CheckDomainSunriseClaimResponse, <-chan error) {
+	responseChan := make(chan *CheckDomainSunriseClaimResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckDomainSunriseClaim(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckDomainSunriseClaimWithCallback invokes the domain.CheckDomainSunriseClaim API asynchronously
+// api document: https://help.aliyun.com/api/domain/checkdomainsunriseclaim.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckDomainSunriseClaimWithCallback(request *CheckDomainSunriseClaimRequest, callback func(response *CheckDomainSunriseClaimResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckDomainSunriseClaimResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckDomainSunriseClaim(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckDomainSunriseClaimRequest is the request struct for api CheckDomainSunriseClaim
+type CheckDomainSunriseClaimRequest struct {
+	*requests.RpcRequest
+	DomainName   string `position:"Query" name:"DomainName"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// CheckDomainSunriseClaimResponse is the response struct for api CheckDomainSunriseClaim
+type CheckDomainSunriseClaimResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Result    int    `json:"Result" xml:"Result"`
+	ClaimKey  string `json:"ClaimKey" xml:"ClaimKey"`
+}
+
+// CreateCheckDomainSunriseClaimRequest creates a request to invoke CheckDomainSunriseClaim API
+func CreateCheckDomainSunriseClaimRequest() (request *CheckDomainSunriseClaimRequest) {
+	request = &CheckDomainSunriseClaimRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "CheckDomainSunriseClaim", "", "")
+	return
+}
+
+// CreateCheckDomainSunriseClaimResponse creates a response to parse from CheckDomainSunriseClaim response
+func CreateCheckDomainSunriseClaimResponse() (response *CheckDomainSunriseClaimResponse) {
+	response = &CheckDomainSunriseClaimResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/domain/check_max_year_of_server_lock.go

@@ -0,0 +1,107 @@
+package domain
+
+//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"
+)
+
+// CheckMaxYearOfServerLock invokes the domain.CheckMaxYearOfServerLock API synchronously
+// api document: https://help.aliyun.com/api/domain/checkmaxyearofserverlock.html
+func (client *Client) CheckMaxYearOfServerLock(request *CheckMaxYearOfServerLockRequest) (response *CheckMaxYearOfServerLockResponse, err error) {
+	response = CreateCheckMaxYearOfServerLockResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckMaxYearOfServerLockWithChan invokes the domain.CheckMaxYearOfServerLock API asynchronously
+// api document: https://help.aliyun.com/api/domain/checkmaxyearofserverlock.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckMaxYearOfServerLockWithChan(request *CheckMaxYearOfServerLockRequest) (<-chan *CheckMaxYearOfServerLockResponse, <-chan error) {
+	responseChan := make(chan *CheckMaxYearOfServerLockResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckMaxYearOfServerLock(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckMaxYearOfServerLockWithCallback invokes the domain.CheckMaxYearOfServerLock API asynchronously
+// api document: https://help.aliyun.com/api/domain/checkmaxyearofserverlock.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckMaxYearOfServerLockWithCallback(request *CheckMaxYearOfServerLockRequest, callback func(response *CheckMaxYearOfServerLockResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckMaxYearOfServerLockResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckMaxYearOfServerLock(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckMaxYearOfServerLockRequest is the request struct for api CheckMaxYearOfServerLock
+type CheckMaxYearOfServerLockRequest struct {
+	*requests.RpcRequest
+	DomainName   string `position:"Query" name:"DomainName"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	CheckAction  string `position:"Query" name:"CheckAction"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// CheckMaxYearOfServerLockResponse is the response struct for api CheckMaxYearOfServerLock
+type CheckMaxYearOfServerLockResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	MaxYear   int    `json:"MaxYear" xml:"MaxYear"`
+}
+
+// CreateCheckMaxYearOfServerLockRequest creates a request to invoke CheckMaxYearOfServerLock API
+func CreateCheckMaxYearOfServerLockRequest() (request *CheckMaxYearOfServerLockRequest) {
+	request = &CheckMaxYearOfServerLockRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "CheckMaxYearOfServerLock", "", "")
+	return
+}
+
+// CreateCheckMaxYearOfServerLockResponse creates a response to parse from CheckMaxYearOfServerLock response
+func CreateCheckMaxYearOfServerLockResponse() (response *CheckMaxYearOfServerLockResponse) {
+	response = &CheckMaxYearOfServerLockResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/domain/check_processing_server_lock_apply.go

@@ -0,0 +1,107 @@
+package domain
+
+//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"
+)
+
+// CheckProcessingServerLockApply invokes the domain.CheckProcessingServerLockApply API synchronously
+// api document: https://help.aliyun.com/api/domain/checkprocessingserverlockapply.html
+func (client *Client) CheckProcessingServerLockApply(request *CheckProcessingServerLockApplyRequest) (response *CheckProcessingServerLockApplyResponse, err error) {
+	response = CreateCheckProcessingServerLockApplyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckProcessingServerLockApplyWithChan invokes the domain.CheckProcessingServerLockApply API asynchronously
+// api document: https://help.aliyun.com/api/domain/checkprocessingserverlockapply.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckProcessingServerLockApplyWithChan(request *CheckProcessingServerLockApplyRequest) (<-chan *CheckProcessingServerLockApplyResponse, <-chan error) {
+	responseChan := make(chan *CheckProcessingServerLockApplyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckProcessingServerLockApply(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckProcessingServerLockApplyWithCallback invokes the domain.CheckProcessingServerLockApply API asynchronously
+// api document: https://help.aliyun.com/api/domain/checkprocessingserverlockapply.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckProcessingServerLockApplyWithCallback(request *CheckProcessingServerLockApplyRequest, callback func(response *CheckProcessingServerLockApplyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckProcessingServerLockApplyResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckProcessingServerLockApply(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckProcessingServerLockApplyRequest is the request struct for api CheckProcessingServerLockApply
+type CheckProcessingServerLockApplyRequest struct {
+	*requests.RpcRequest
+	FeePeriod    requests.Integer `position:"Query" name:"FeePeriod"`
+	DomainName   string           `position:"Query" name:"DomainName"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
+	Lang         string           `position:"Query" name:"Lang"`
+}
+
+// CheckProcessingServerLockApplyResponse is the response struct for api CheckProcessingServerLockApply
+type CheckProcessingServerLockApplyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Exists    bool   `json:"Exists" xml:"Exists"`
+}
+
+// CreateCheckProcessingServerLockApplyRequest creates a request to invoke CheckProcessingServerLockApply API
+func CreateCheckProcessingServerLockApplyRequest() (request *CheckProcessingServerLockApplyRequest) {
+	request = &CheckProcessingServerLockApplyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "CheckProcessingServerLockApply", "", "")
+	return
+}
+
+// CreateCheckProcessingServerLockApplyResponse creates a response to parse from CheckProcessingServerLockApply response
+func CreateCheckProcessingServerLockApplyResponse() (response *CheckProcessingServerLockApplyResponse) {
+	response = &CheckProcessingServerLockApplyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/domain/get_qualification_upload_policy.go

@@ -0,0 +1,111 @@
+package domain
+
+//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"
+)
+
+// GetQualificationUploadPolicy invokes the domain.GetQualificationUploadPolicy API synchronously
+// api document: https://help.aliyun.com/api/domain/getqualificationuploadpolicy.html
+func (client *Client) GetQualificationUploadPolicy(request *GetQualificationUploadPolicyRequest) (response *GetQualificationUploadPolicyResponse, err error) {
+	response = CreateGetQualificationUploadPolicyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// GetQualificationUploadPolicyWithChan invokes the domain.GetQualificationUploadPolicy API asynchronously
+// api document: https://help.aliyun.com/api/domain/getqualificationuploadpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetQualificationUploadPolicyWithChan(request *GetQualificationUploadPolicyRequest) (<-chan *GetQualificationUploadPolicyResponse, <-chan error) {
+	responseChan := make(chan *GetQualificationUploadPolicyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.GetQualificationUploadPolicy(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// GetQualificationUploadPolicyWithCallback invokes the domain.GetQualificationUploadPolicy API asynchronously
+// api document: https://help.aliyun.com/api/domain/getqualificationuploadpolicy.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) GetQualificationUploadPolicyWithCallback(request *GetQualificationUploadPolicyRequest, callback func(response *GetQualificationUploadPolicyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *GetQualificationUploadPolicyResponse
+		var err error
+		defer close(result)
+		response, err = client.GetQualificationUploadPolicy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// GetQualificationUploadPolicyRequest is the request struct for api GetQualificationUploadPolicy
+type GetQualificationUploadPolicyRequest struct {
+	*requests.RpcRequest
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// GetQualificationUploadPolicyResponse is the response struct for api GetQualificationUploadPolicy
+type GetQualificationUploadPolicyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Accessid  string `json:"Accessid" xml:"Accessid"`
+	Policy    string `json:"Policy" xml:"Policy"`
+	Signature string `json:"Signature" xml:"Signature"`
+	Dir       string `json:"Dir" xml:"Dir"`
+	Prefix    string `json:"Prefix" xml:"Prefix"`
+	Host      string `json:"Host" xml:"Host"`
+	Expire    string `json:"Expire" xml:"Expire"`
+}
+
+// CreateGetQualificationUploadPolicyRequest creates a request to invoke GetQualificationUploadPolicy API
+func CreateGetQualificationUploadPolicyRequest() (request *GetQualificationUploadPolicyRequest) {
+	request = &GetQualificationUploadPolicyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "GetQualificationUploadPolicy", "", "")
+	return
+}
+
+// CreateGetQualificationUploadPolicyResponse creates a response to parse from GetQualificationUploadPolicy response
+func CreateGetQualificationUploadPolicyResponse() (response *GetQualificationUploadPolicyResponse) {
+	response = &GetQualificationUploadPolicyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/domain/list_email_verification.go

@@ -79,6 +79,7 @@ type ListEmailVerificationRequest struct {
 	BeginCreateTime    requests.Integer `position:"Query" name:"BeginCreateTime"`
 	EndCreateTime      requests.Integer `position:"Query" name:"EndCreateTime"`
 	PageSize           requests.Integer `position:"Query" name:"PageSize"`
+	UserClientIp       string           `position:"Query" name:"UserClientIp"`
 	Lang               string           `position:"Query" name:"Lang"`
 	PageNum            requests.Integer `position:"Query" name:"PageNum"`
 	Email              string           `position:"Query" name:"Email"`

+ 120 - 0
services/domain/list_server_lock.go

@@ -0,0 +1,120 @@
+package domain
+
+//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"
+)
+
+// ListServerLock invokes the domain.ListServerLock API synchronously
+// api document: https://help.aliyun.com/api/domain/listserverlock.html
+func (client *Client) ListServerLock(request *ListServerLockRequest) (response *ListServerLockResponse, err error) {
+	response = CreateListServerLockResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListServerLockWithChan invokes the domain.ListServerLock API asynchronously
+// api document: https://help.aliyun.com/api/domain/listserverlock.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListServerLockWithChan(request *ListServerLockRequest) (<-chan *ListServerLockResponse, <-chan error) {
+	responseChan := make(chan *ListServerLockResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListServerLock(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListServerLockWithCallback invokes the domain.ListServerLock API asynchronously
+// api document: https://help.aliyun.com/api/domain/listserverlock.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListServerLockWithCallback(request *ListServerLockRequest, callback func(response *ListServerLockResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListServerLockResponse
+		var err error
+		defer close(result)
+		response, err = client.ListServerLock(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListServerLockRequest is the request struct for api ListServerLock
+type ListServerLockRequest struct {
+	*requests.RpcRequest
+	LockProductId    string           `position:"Query" name:"LockProductId"`
+	EndStartDate     requests.Integer `position:"Query" name:"EndStartDate"`
+	ServerLockStatus requests.Integer `position:"Query" name:"ServerLockStatus"`
+	StartExpireDate  requests.Integer `position:"Query" name:"StartExpireDate"`
+	DomainName       string           `position:"Query" name:"DomainName"`
+	PageSize         requests.Integer `position:"Query" name:"PageSize"`
+	UserClientIp     string           `position:"Query" name:"UserClientIp"`
+	EndExpireDate    requests.Integer `position:"Query" name:"EndExpireDate"`
+	PageNum          requests.Integer `position:"Query" name:"PageNum"`
+	Lang             string           `position:"Query" name:"Lang"`
+	BeginStartDate   requests.Integer `position:"Query" name:"BeginStartDate"`
+}
+
+// ListServerLockResponse is the response struct for api ListServerLock
+type ListServerLockResponse struct {
+	*responses.BaseResponse
+	RequestId      string                    `json:"RequestId" xml:"RequestId"`
+	TotalItemNum   int                       `json:"TotalItemNum" xml:"TotalItemNum"`
+	CurrentPageNum int                       `json:"CurrentPageNum" xml:"CurrentPageNum"`
+	TotalPageNum   int                       `json:"TotalPageNum" xml:"TotalPageNum"`
+	PageSize       int                       `json:"PageSize" xml:"PageSize"`
+	PrePage        bool                      `json:"PrePage" xml:"PrePage"`
+	NextPage       bool                      `json:"NextPage" xml:"NextPage"`
+	Data           []QueryTransferInResponse `json:"Data" xml:"Data"`
+}
+
+// CreateListServerLockRequest creates a request to invoke ListServerLock API
+func CreateListServerLockRequest() (request *ListServerLockRequest) {
+	request = &ListServerLockRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "ListServerLock", "", "")
+	return
+}
+
+// CreateListServerLockResponse creates a response to parse from ListServerLock response
+func CreateListServerLockResponse() (response *ListServerLockResponse) {
+	response = &ListServerLockResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/domain/lookup_tmch_notice.go

@@ -0,0 +1,110 @@
+package domain
+
+//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"
+)
+
+// LookupTmchNotice invokes the domain.LookupTmchNotice API synchronously
+// api document: https://help.aliyun.com/api/domain/lookuptmchnotice.html
+func (client *Client) LookupTmchNotice(request *LookupTmchNoticeRequest) (response *LookupTmchNoticeResponse, err error) {
+	response = CreateLookupTmchNoticeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// LookupTmchNoticeWithChan invokes the domain.LookupTmchNotice API asynchronously
+// api document: https://help.aliyun.com/api/domain/lookuptmchnotice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) LookupTmchNoticeWithChan(request *LookupTmchNoticeRequest) (<-chan *LookupTmchNoticeResponse, <-chan error) {
+	responseChan := make(chan *LookupTmchNoticeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.LookupTmchNotice(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// LookupTmchNoticeWithCallback invokes the domain.LookupTmchNotice API asynchronously
+// api document: https://help.aliyun.com/api/domain/lookuptmchnotice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) LookupTmchNoticeWithCallback(request *LookupTmchNoticeRequest, callback func(response *LookupTmchNoticeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *LookupTmchNoticeResponse
+		var err error
+		defer close(result)
+		response, err = client.LookupTmchNotice(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// LookupTmchNoticeRequest is the request struct for api LookupTmchNotice
+type LookupTmchNoticeRequest struct {
+	*requests.RpcRequest
+	ClaimKey     string `position:"Query" name:"ClaimKey"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// LookupTmchNoticeResponse is the response struct for api LookupTmchNotice
+type LookupTmchNoticeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Id        int    `json:"Id" xml:"Id"`
+	NotBefore string `json:"NotBefore" xml:"NotBefore"`
+	NotAfter  string `json:"NotAfter" xml:"NotAfter"`
+	Label     string `json:"Label" xml:"Label"`
+	Claims    Claims `json:"Claims" xml:"Claims"`
+}
+
+// CreateLookupTmchNoticeRequest creates a request to invoke LookupTmchNotice API
+func CreateLookupTmchNoticeRequest() (request *LookupTmchNoticeRequest) {
+	request = &LookupTmchNoticeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "LookupTmchNotice", "", "")
+	return
+}
+
+// CreateLookupTmchNoticeResponse creates a response to parse from LookupTmchNotice response
+func CreateLookupTmchNoticeResponse() (response *LookupTmchNoticeResponse) {
+	response = &LookupTmchNoticeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 2
services/domain/query_dns_host.go

@@ -76,8 +76,9 @@ func (client *Client) QueryDnsHostWithCallback(request *QueryDnsHostRequest, cal
 // QueryDnsHostRequest is the request struct for api QueryDnsHost
 type QueryDnsHostRequest struct {
 	*requests.RpcRequest
-	InstanceId string `position:"Query" name:"InstanceId"`
-	Lang       string `position:"Query" name:"Lang"`
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
 }
 
 // QueryDnsHostResponse is the response struct for api QueryDnsHost

+ 111 - 0
services/domain/query_domain_admin_division.go

@@ -0,0 +1,111 @@
+package domain
+
+//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"
+)
+
+// QueryDomainAdminDivision invokes the domain.QueryDomainAdminDivision API synchronously
+// api document: https://help.aliyun.com/api/domain/querydomainadmindivision.html
+func (client *Client) QueryDomainAdminDivision(request *QueryDomainAdminDivisionRequest) (response *QueryDomainAdminDivisionResponse, err error) {
+	response = CreateQueryDomainAdminDivisionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryDomainAdminDivisionWithChan invokes the domain.QueryDomainAdminDivision API asynchronously
+// api document: https://help.aliyun.com/api/domain/querydomainadmindivision.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryDomainAdminDivisionWithChan(request *QueryDomainAdminDivisionRequest) (<-chan *QueryDomainAdminDivisionResponse, <-chan error) {
+	responseChan := make(chan *QueryDomainAdminDivisionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryDomainAdminDivision(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryDomainAdminDivisionWithCallback invokes the domain.QueryDomainAdminDivision API asynchronously
+// api document: https://help.aliyun.com/api/domain/querydomainadmindivision.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryDomainAdminDivisionWithCallback(request *QueryDomainAdminDivisionRequest, callback func(response *QueryDomainAdminDivisionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryDomainAdminDivisionResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryDomainAdminDivision(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryDomainAdminDivisionRequest is the request struct for api QueryDomainAdminDivision
+type QueryDomainAdminDivisionRequest struct {
+	*requests.RpcRequest
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// QueryDomainAdminDivisionResponse is the response struct for api QueryDomainAdminDivision
+type QueryDomainAdminDivisionResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	TotalItemNum   int            `json:"TotalItemNum" xml:"TotalItemNum"`
+	CurrentPageNum int            `json:"CurrentPageNum" xml:"CurrentPageNum"`
+	TotalPageNum   int            `json:"TotalPageNum" xml:"TotalPageNum"`
+	PageSize       int            `json:"PageSize" xml:"PageSize"`
+	PrePage        bool           `json:"PrePage" xml:"PrePage"`
+	NextPage       bool           `json:"NextPage" xml:"NextPage"`
+	AdminDivisions AdminDivisions `json:"AdminDivisions" xml:"AdminDivisions"`
+}
+
+// CreateQueryDomainAdminDivisionRequest creates a request to invoke QueryDomainAdminDivision API
+func CreateQueryDomainAdminDivisionRequest() (request *QueryDomainAdminDivisionRequest) {
+	request = &QueryDomainAdminDivisionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "QueryDomainAdminDivision", "", "")
+	return
+}
+
+// CreateQueryDomainAdminDivisionResponse creates a response to parse from QueryDomainAdminDivision response
+func CreateQueryDomainAdminDivisionResponse() (response *QueryDomainAdminDivisionResponse) {
+	response = &QueryDomainAdminDivisionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 1
services/domain/query_domain_suffix.go

@@ -76,7 +76,8 @@ func (client *Client) QueryDomainSuffixWithCallback(request *QueryDomainSuffixRe
 // QueryDomainSuffixRequest is the request struct for api QueryDomainSuffix
 type QueryDomainSuffixRequest struct {
 	*requests.RpcRequest
-	Lang string `position:"Query" name:"Lang"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
 }
 
 // QueryDomainSuffixResponse is the response struct for api QueryDomainSuffix

+ 3 - 2
services/domain/query_email_verification.go

@@ -76,8 +76,9 @@ func (client *Client) QueryEmailVerificationWithCallback(request *QueryEmailVeri
 // QueryEmailVerificationRequest is the request struct for api QueryEmailVerification
 type QueryEmailVerificationRequest struct {
 	*requests.RpcRequest
-	Lang  string `position:"Query" name:"Lang"`
-	Email string `position:"Query" name:"Email"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+	Email        string `position:"Query" name:"Email"`
 }
 
 // QueryEmailVerificationResponse is the response struct for api QueryEmailVerification

+ 106 - 0
services/domain/query_ens_association.go

@@ -0,0 +1,106 @@
+package domain
+
+//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"
+)
+
+// QueryEnsAssociation invokes the domain.QueryEnsAssociation API synchronously
+// api document: https://help.aliyun.com/api/domain/queryensassociation.html
+func (client *Client) QueryEnsAssociation(request *QueryEnsAssociationRequest) (response *QueryEnsAssociationResponse, err error) {
+	response = CreateQueryEnsAssociationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryEnsAssociationWithChan invokes the domain.QueryEnsAssociation API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryensassociation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEnsAssociationWithChan(request *QueryEnsAssociationRequest) (<-chan *QueryEnsAssociationResponse, <-chan error) {
+	responseChan := make(chan *QueryEnsAssociationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryEnsAssociation(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryEnsAssociationWithCallback invokes the domain.QueryEnsAssociation API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryensassociation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryEnsAssociationWithCallback(request *QueryEnsAssociationRequest, callback func(response *QueryEnsAssociationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryEnsAssociationResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryEnsAssociation(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryEnsAssociationRequest is the request struct for api QueryEnsAssociation
+type QueryEnsAssociationRequest struct {
+	*requests.RpcRequest
+	DomainName   string `position:"Query" name:"DomainName"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// QueryEnsAssociationResponse is the response struct for api QueryEnsAssociation
+type QueryEnsAssociationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Address   string `json:"Address" xml:"Address"`
+}
+
+// CreateQueryEnsAssociationRequest creates a request to invoke QueryEnsAssociation API
+func CreateQueryEnsAssociationRequest() (request *QueryEnsAssociationRequest) {
+	request = &QueryEnsAssociationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "QueryEnsAssociation", "", "")
+	return
+}
+
+// CreateQueryEnsAssociationResponse creates a response to parse from QueryEnsAssociation response
+func CreateQueryEnsAssociationResponse() (response *QueryEnsAssociationResponse) {
+	response = &QueryEnsAssociationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/domain/query_failing_reason_list_for_qualification.go

@@ -0,0 +1,108 @@
+package domain
+
+//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"
+)
+
+// QueryFailingReasonListForQualification invokes the domain.QueryFailingReasonListForQualification API synchronously
+// api document: https://help.aliyun.com/api/domain/queryfailingreasonlistforqualification.html
+func (client *Client) QueryFailingReasonListForQualification(request *QueryFailingReasonListForQualificationRequest) (response *QueryFailingReasonListForQualificationResponse, err error) {
+	response = CreateQueryFailingReasonListForQualificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryFailingReasonListForQualificationWithChan invokes the domain.QueryFailingReasonListForQualification API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryfailingreasonlistforqualification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryFailingReasonListForQualificationWithChan(request *QueryFailingReasonListForQualificationRequest) (<-chan *QueryFailingReasonListForQualificationResponse, <-chan error) {
+	responseChan := make(chan *QueryFailingReasonListForQualificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryFailingReasonListForQualification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryFailingReasonListForQualificationWithCallback invokes the domain.QueryFailingReasonListForQualification API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryfailingreasonlistforqualification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryFailingReasonListForQualificationWithCallback(request *QueryFailingReasonListForQualificationRequest, callback func(response *QueryFailingReasonListForQualificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryFailingReasonListForQualificationResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryFailingReasonListForQualification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryFailingReasonListForQualificationRequest is the request struct for api QueryFailingReasonListForQualification
+type QueryFailingReasonListForQualificationRequest struct {
+	*requests.RpcRequest
+	InstanceId        string           `position:"Query" name:"InstanceId"`
+	UserClientIp      string           `position:"Query" name:"UserClientIp"`
+	Limit             requests.Integer `position:"Query" name:"Limit"`
+	Lang              string           `position:"Query" name:"Lang"`
+	QualificationType string           `position:"Query" name:"QualificationType"`
+}
+
+// QueryFailingReasonListForQualificationResponse is the response struct for api QueryFailingReasonListForQualification
+type QueryFailingReasonListForQualificationResponse struct {
+	*responses.BaseResponse
+	RequestId string       `json:"RequestId" xml:"RequestId"`
+	Data      []FailRecord `json:"Data" xml:"Data"`
+}
+
+// CreateQueryFailingReasonListForQualificationRequest creates a request to invoke QueryFailingReasonListForQualification API
+func CreateQueryFailingReasonListForQualificationRequest() (request *QueryFailingReasonListForQualificationRequest) {
+	request = &QueryFailingReasonListForQualificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "QueryFailingReasonListForQualification", "", "")
+	return
+}
+
+// CreateQueryFailingReasonListForQualificationResponse creates a response to parse from QueryFailingReasonListForQualification response
+func CreateQueryFailingReasonListForQualificationResponse() (response *QueryFailingReasonListForQualificationResponse) {
+	response = &QueryFailingReasonListForQualificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/domain/query_local_ens_association.go

@@ -0,0 +1,106 @@
+package domain
+
+//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"
+)
+
+// QueryLocalEnsAssociation invokes the domain.QueryLocalEnsAssociation API synchronously
+// api document: https://help.aliyun.com/api/domain/querylocalensassociation.html
+func (client *Client) QueryLocalEnsAssociation(request *QueryLocalEnsAssociationRequest) (response *QueryLocalEnsAssociationResponse, err error) {
+	response = CreateQueryLocalEnsAssociationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryLocalEnsAssociationWithChan invokes the domain.QueryLocalEnsAssociation API asynchronously
+// api document: https://help.aliyun.com/api/domain/querylocalensassociation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryLocalEnsAssociationWithChan(request *QueryLocalEnsAssociationRequest) (<-chan *QueryLocalEnsAssociationResponse, <-chan error) {
+	responseChan := make(chan *QueryLocalEnsAssociationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryLocalEnsAssociation(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryLocalEnsAssociationWithCallback invokes the domain.QueryLocalEnsAssociation API asynchronously
+// api document: https://help.aliyun.com/api/domain/querylocalensassociation.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryLocalEnsAssociationWithCallback(request *QueryLocalEnsAssociationRequest, callback func(response *QueryLocalEnsAssociationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryLocalEnsAssociationResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryLocalEnsAssociation(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryLocalEnsAssociationRequest is the request struct for api QueryLocalEnsAssociation
+type QueryLocalEnsAssociationRequest struct {
+	*requests.RpcRequest
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	DomainName   string `position:"Query" name:"DomainName"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// QueryLocalEnsAssociationResponse is the response struct for api QueryLocalEnsAssociation
+type QueryLocalEnsAssociationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Address   string `json:"Address" xml:"Address"`
+}
+
+// CreateQueryLocalEnsAssociationRequest creates a request to invoke QueryLocalEnsAssociation API
+func CreateQueryLocalEnsAssociationRequest() (request *QueryLocalEnsAssociationRequest) {
+	request = &QueryLocalEnsAssociationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "QueryLocalEnsAssociation", "", "")
+	return
+}
+
+// CreateQueryLocalEnsAssociationResponse creates a response to parse from QueryLocalEnsAssociation response
+func CreateQueryLocalEnsAssociationResponse() (response *QueryLocalEnsAssociationResponse) {
+	response = &QueryLocalEnsAssociationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/domain/query_qualification_detail.go

@@ -0,0 +1,109 @@
+package domain
+
+//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"
+)
+
+// QueryQualificationDetail invokes the domain.QueryQualificationDetail API synchronously
+// api document: https://help.aliyun.com/api/domain/queryqualificationdetail.html
+func (client *Client) QueryQualificationDetail(request *QueryQualificationDetailRequest) (response *QueryQualificationDetailResponse, err error) {
+	response = CreateQueryQualificationDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryQualificationDetailWithChan invokes the domain.QueryQualificationDetail API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryqualificationdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryQualificationDetailWithChan(request *QueryQualificationDetailRequest) (<-chan *QueryQualificationDetailResponse, <-chan error) {
+	responseChan := make(chan *QueryQualificationDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryQualificationDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryQualificationDetailWithCallback invokes the domain.QueryQualificationDetail API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryqualificationdetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryQualificationDetailWithCallback(request *QueryQualificationDetailRequest, callback func(response *QueryQualificationDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryQualificationDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryQualificationDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryQualificationDetailRequest is the request struct for api QueryQualificationDetail
+type QueryQualificationDetailRequest struct {
+	*requests.RpcRequest
+	InstanceId        string `position:"Query" name:"InstanceId"`
+	UserClientIp      string `position:"Query" name:"UserClientIp"`
+	Lang              string `position:"Query" name:"Lang"`
+	QualificationType string `position:"Query" name:"QualificationType"`
+}
+
+// QueryQualificationDetailResponse is the response struct for api QueryQualificationDetail
+type QueryQualificationDetailResponse struct {
+	*responses.BaseResponse
+	TrackId     string      `json:"TrackId" xml:"TrackId"`
+	AuditStatus int         `json:"AuditStatus" xml:"AuditStatus"`
+	RequestId   string      `json:"RequestId" xml:"RequestId"`
+	Credentials Credentials `json:"Credentials" xml:"Credentials"`
+}
+
+// CreateQueryQualificationDetailRequest creates a request to invoke QueryQualificationDetail API
+func CreateQueryQualificationDetailRequest() (request *QueryQualificationDetailRequest) {
+	request = &QueryQualificationDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "QueryQualificationDetail", "", "")
+	return
+}
+
+// CreateQueryQualificationDetailResponse creates a response to parse from QueryQualificationDetail response
+func CreateQueryQualificationDetailResponse() (response *QueryQualificationDetailResponse) {
+	response = &QueryQualificationDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/domain/query_server_lock.go

@@ -0,0 +1,115 @@
+package domain
+
+//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"
+)
+
+// QueryServerLock invokes the domain.QueryServerLock API synchronously
+// api document: https://help.aliyun.com/api/domain/queryserverlock.html
+func (client *Client) QueryServerLock(request *QueryServerLockRequest) (response *QueryServerLockResponse, err error) {
+	response = CreateQueryServerLockResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// QueryServerLockWithChan invokes the domain.QueryServerLock API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryserverlock.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryServerLockWithChan(request *QueryServerLockRequest) (<-chan *QueryServerLockResponse, <-chan error) {
+	responseChan := make(chan *QueryServerLockResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.QueryServerLock(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// QueryServerLockWithCallback invokes the domain.QueryServerLock API asynchronously
+// api document: https://help.aliyun.com/api/domain/queryserverlock.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) QueryServerLockWithCallback(request *QueryServerLockRequest, callback func(response *QueryServerLockResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *QueryServerLockResponse
+		var err error
+		defer close(result)
+		response, err = client.QueryServerLock(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// QueryServerLockRequest is the request struct for api QueryServerLock
+type QueryServerLockRequest struct {
+	*requests.RpcRequest
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// QueryServerLockResponse is the response struct for api QueryServerLock
+type QueryServerLockResponse struct {
+	*responses.BaseResponse
+	RequestId        string `json:"RequestId" xml:"RequestId"`
+	GmtCreate        string `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified      string `json:"GmtModified" xml:"GmtModified"`
+	UserId           string `json:"UserId" xml:"UserId"`
+	DomainName       string `json:"DomainName" xml:"DomainName"`
+	DomainInstanceId string `json:"DomainInstanceId" xml:"DomainInstanceId"`
+	LockProductId    string `json:"LockProductId" xml:"LockProductId"`
+	StartDate        string `json:"StartDate" xml:"StartDate"`
+	ExpireDate       string `json:"ExpireDate" xml:"ExpireDate"`
+	LockInstanceId   string `json:"LockInstanceId" xml:"LockInstanceId"`
+	ServerLockStatus int    `json:"ServerLockStatus" xml:"ServerLockStatus"`
+}
+
+// CreateQueryServerLockRequest creates a request to invoke QueryServerLock API
+func CreateQueryServerLockRequest() (request *QueryServerLockRequest) {
+	request = &QueryServerLockRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "QueryServerLock", "", "")
+	return
+}
+
+// CreateQueryServerLockResponse creates a response to parse from QueryServerLock response
+func CreateQueryServerLockResponse() (response *QueryServerLockResponse) {
+	response = &QueryServerLockResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/domain/query_task_detail_list.go

@@ -78,9 +78,9 @@ type QueryTaskDetailListRequest struct {
 	*requests.RpcRequest
 	TaskStatus   requests.Integer `position:"Query" name:"TaskStatus"`
 	InstanceId   string           `position:"Query" name:"InstanceId"`
-	UserClientIp string           `position:"Query" name:"UserClientIp"`
 	TaskNo       string           `position:"Query" name:"TaskNo"`
 	DomainName   string           `position:"Query" name:"DomainName"`
+	UserClientIp string           `position:"Query" name:"UserClientIp"`
 	PageSize     requests.Integer `position:"Query" name:"PageSize"`
 	Lang         string           `position:"Query" name:"Lang"`
 	PageNum      requests.Integer `position:"Query" name:"PageNum"`

+ 105 - 0
services/domain/reset_qualification_verification.go

@@ -0,0 +1,105 @@
+package domain
+
+//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"
+)
+
+// ResetQualificationVerification invokes the domain.ResetQualificationVerification API synchronously
+// api document: https://help.aliyun.com/api/domain/resetqualificationverification.html
+func (client *Client) ResetQualificationVerification(request *ResetQualificationVerificationRequest) (response *ResetQualificationVerificationResponse, err error) {
+	response = CreateResetQualificationVerificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ResetQualificationVerificationWithChan invokes the domain.ResetQualificationVerification API asynchronously
+// api document: https://help.aliyun.com/api/domain/resetqualificationverification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetQualificationVerificationWithChan(request *ResetQualificationVerificationRequest) (<-chan *ResetQualificationVerificationResponse, <-chan error) {
+	responseChan := make(chan *ResetQualificationVerificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ResetQualificationVerification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ResetQualificationVerificationWithCallback invokes the domain.ResetQualificationVerification API asynchronously
+// api document: https://help.aliyun.com/api/domain/resetqualificationverification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ResetQualificationVerificationWithCallback(request *ResetQualificationVerificationRequest, callback func(response *ResetQualificationVerificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ResetQualificationVerificationResponse
+		var err error
+		defer close(result)
+		response, err = client.ResetQualificationVerification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ResetQualificationVerificationRequest is the request struct for api ResetQualificationVerification
+type ResetQualificationVerificationRequest struct {
+	*requests.RpcRequest
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// ResetQualificationVerificationResponse is the response struct for api ResetQualificationVerification
+type ResetQualificationVerificationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateResetQualificationVerificationRequest creates a request to invoke ResetQualificationVerification API
+func CreateResetQualificationVerificationRequest() (request *ResetQualificationVerificationRequest) {
+	request = &ResetQualificationVerificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "ResetQualificationVerification", "", "")
+	return
+}
+
+// CreateResetQualificationVerificationResponse creates a response to parse from ResetQualificationVerification response
+func CreateResetQualificationVerificationResponse() (response *ResetQualificationVerificationResponse) {
+	response = &ResetQualificationVerificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 4 - 3
services/domain/save_batch_domain_remark.go

@@ -76,9 +76,10 @@ func (client *Client) SaveBatchDomainRemarkWithCallback(request *SaveBatchDomain
 // SaveBatchDomainRemarkRequest is the request struct for api SaveBatchDomainRemark
 type SaveBatchDomainRemarkRequest struct {
 	*requests.RpcRequest
-	InstanceIds string `position:"Query" name:"InstanceIds"`
-	Remark      string `position:"Query" name:"Remark"`
-	Lang        string `position:"Query" name:"Lang"`
+	InstanceIds  string `position:"Query" name:"InstanceIds"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Remark       string `position:"Query" name:"Remark"`
+	Lang         string `position:"Query" name:"Lang"`
 }
 
 // SaveBatchDomainRemarkResponse is the response struct for api SaveBatchDomainRemark

+ 26 - 25
services/domain/save_batch_task_for_creating_order_activate.go

@@ -83,31 +83,32 @@ type SaveBatchTaskForCreatingOrderActivateRequest struct {
 
 // SaveBatchTaskForCreatingOrderActivateOrderActivateParam is a repeated param struct in SaveBatchTaskForCreatingOrderActivateRequest
 type SaveBatchTaskForCreatingOrderActivateOrderActivateParam struct {
-	DomainName               string `name:"DomainName"`
-	SubscriptionDuration     string `name:"SubscriptionDuration"`
-	RegistrantProfileId      string `name:"RegistrantProfileId"`
-	EnableDomainProxy        string `name:"EnableDomainProxy"`
-	PermitPremiumActivation  string `name:"PermitPremiumActivation"`
-	AliyunDns                string `name:"AliyunDns"`
-	Dns1                     string `name:"Dns1"`
-	Dns2                     string `name:"Dns2"`
-	ZhCity                   string `name:"ZhCity"`
-	ZhRegistrantOrganization string `name:"ZhRegistrantOrganization"`
-	Country                  string `name:"Country"`
-	ZhRegistrantName         string `name:"ZhRegistrantName"`
-	ZhProvince               string `name:"ZhProvince"`
-	ZhAddress                string `name:"ZhAddress"`
-	City                     string `name:"City"`
-	RegistrantOrganization   string `name:"RegistrantOrganization"`
-	RegistrantName           string `name:"RegistrantName"`
-	Province                 string `name:"Province"`
-	Address                  string `name:"Address"`
-	Email                    string `name:"Email"`
-	PostalCode               string `name:"PostalCode"`
-	TelArea                  string `name:"TelArea"`
-	Telephone                string `name:"Telephone"`
-	TelExt                   string `name:"TelExt"`
-	RegistrantType           string `name:"RegistrantType"`
+	Country                   string `name:"Country"`
+	SubscriptionDuration      string `name:"SubscriptionDuration"`
+	PermitPremiumActivation   string `name:"PermitPremiumActivation"`
+	City                      string `name:"City"`
+	Dns2                      string `name:"Dns2"`
+	Dns1                      string `name:"Dns1"`
+	RegistrantProfileId       string `name:"RegistrantProfileId"`
+	AliyunDns                 string `name:"AliyunDns"`
+	ZhCity                    string `name:"ZhCity"`
+	TelExt                    string `name:"TelExt"`
+	ZhRegistrantName          string `name:"ZhRegistrantName"`
+	Province                  string `name:"Province"`
+	PostalCode                string `name:"PostalCode"`
+	Email                     string `name:"Email"`
+	ZhRegistrantOrganization  string `name:"ZhRegistrantOrganization"`
+	Address                   string `name:"Address"`
+	TelArea                   string `name:"TelArea"`
+	DomainName                string `name:"DomainName"`
+	ZhAddress                 string `name:"ZhAddress"`
+	RegistrantType            string `name:"RegistrantType"`
+	Telephone                 string `name:"Telephone"`
+	TrademarkDomainActivation string `name:"TrademarkDomainActivation"`
+	ZhProvince                string `name:"ZhProvince"`
+	RegistrantOrganization    string `name:"RegistrantOrganization"`
+	EnableDomainProxy         string `name:"EnableDomainProxy"`
+	RegistrantName            string `name:"RegistrantName"`
 }
 
 // SaveBatchTaskForCreatingOrderActivateResponse is the response struct for api SaveBatchTaskForCreatingOrderActivate

+ 1 - 1
services/domain/save_batch_task_for_creating_order_redeem.go

@@ -83,8 +83,8 @@ type SaveBatchTaskForCreatingOrderRedeemRequest struct {
 
 // SaveBatchTaskForCreatingOrderRedeemOrderRedeemParam is a repeated param struct in SaveBatchTaskForCreatingOrderRedeemRequest
 type SaveBatchTaskForCreatingOrderRedeemOrderRedeemParam struct {
-	DomainName            string `name:"DomainName"`
 	CurrentExpirationDate string `name:"CurrentExpirationDate"`
+	DomainName            string `name:"DomainName"`
 }
 
 // SaveBatchTaskForCreatingOrderRedeemResponse is the response struct for api SaveBatchTaskForCreatingOrderRedeem

+ 2 - 2
services/domain/save_batch_task_for_creating_order_renew.go

@@ -83,9 +83,9 @@ type SaveBatchTaskForCreatingOrderRenewRequest struct {
 
 // SaveBatchTaskForCreatingOrderRenewOrderRenewParam is a repeated param struct in SaveBatchTaskForCreatingOrderRenewRequest
 type SaveBatchTaskForCreatingOrderRenewOrderRenewParam struct {
-	DomainName            string `name:"DomainName"`
-	CurrentExpirationDate string `name:"CurrentExpirationDate"`
 	SubscriptionDuration  string `name:"SubscriptionDuration"`
+	CurrentExpirationDate string `name:"CurrentExpirationDate"`
+	DomainName            string `name:"DomainName"`
 }
 
 // SaveBatchTaskForCreatingOrderRenewResponse is the response struct for api SaveBatchTaskForCreatingOrderRenew

+ 2 - 2
services/domain/save_batch_task_for_creating_order_transfer.go

@@ -83,10 +83,10 @@ type SaveBatchTaskForCreatingOrderTransferRequest struct {
 
 // SaveBatchTaskForCreatingOrderTransferOrderTransferParam is a repeated param struct in SaveBatchTaskForCreatingOrderTransferRequest
 type SaveBatchTaskForCreatingOrderTransferOrderTransferParam struct {
-	DomainName            string `name:"DomainName"`
+	PermitPremiumTransfer string `name:"PermitPremiumTransfer"`
 	AuthorizationCode     string `name:"AuthorizationCode"`
+	DomainName            string `name:"DomainName"`
 	RegistrantProfileId   string `name:"RegistrantProfileId"`
-	PermitPremiumTransfer string `name:"PermitPremiumTransfer"`
 }
 
 // SaveBatchTaskForCreatingOrderTransferResponse is the response struct for api SaveBatchTaskForCreatingOrderTransfer

+ 107 - 0
services/domain/save_single_task_for_associating_ens.go

@@ -0,0 +1,107 @@
+package domain
+
+//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"
+)
+
+// SaveSingleTaskForAssociatingEns invokes the domain.SaveSingleTaskForAssociatingEns API synchronously
+// api document: https://help.aliyun.com/api/domain/savesingletaskforassociatingens.html
+func (client *Client) SaveSingleTaskForAssociatingEns(request *SaveSingleTaskForAssociatingEnsRequest) (response *SaveSingleTaskForAssociatingEnsResponse, err error) {
+	response = CreateSaveSingleTaskForAssociatingEnsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SaveSingleTaskForAssociatingEnsWithChan invokes the domain.SaveSingleTaskForAssociatingEns API asynchronously
+// api document: https://help.aliyun.com/api/domain/savesingletaskforassociatingens.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SaveSingleTaskForAssociatingEnsWithChan(request *SaveSingleTaskForAssociatingEnsRequest) (<-chan *SaveSingleTaskForAssociatingEnsResponse, <-chan error) {
+	responseChan := make(chan *SaveSingleTaskForAssociatingEnsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SaveSingleTaskForAssociatingEns(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SaveSingleTaskForAssociatingEnsWithCallback invokes the domain.SaveSingleTaskForAssociatingEns API asynchronously
+// api document: https://help.aliyun.com/api/domain/savesingletaskforassociatingens.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SaveSingleTaskForAssociatingEnsWithCallback(request *SaveSingleTaskForAssociatingEnsRequest, callback func(response *SaveSingleTaskForAssociatingEnsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SaveSingleTaskForAssociatingEnsResponse
+		var err error
+		defer close(result)
+		response, err = client.SaveSingleTaskForAssociatingEns(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SaveSingleTaskForAssociatingEnsRequest is the request struct for api SaveSingleTaskForAssociatingEns
+type SaveSingleTaskForAssociatingEnsRequest struct {
+	*requests.RpcRequest
+	Address      string `position:"Query" name:"Address"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	DomainName   string `position:"Query" name:"DomainName"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// SaveSingleTaskForAssociatingEnsResponse is the response struct for api SaveSingleTaskForAssociatingEns
+type SaveSingleTaskForAssociatingEnsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	TaskNo    string `json:"TaskNo" xml:"TaskNo"`
+}
+
+// CreateSaveSingleTaskForAssociatingEnsRequest creates a request to invoke SaveSingleTaskForAssociatingEns API
+func CreateSaveSingleTaskForAssociatingEnsRequest() (request *SaveSingleTaskForAssociatingEnsRequest) {
+	request = &SaveSingleTaskForAssociatingEnsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "SaveSingleTaskForAssociatingEns", "", "")
+	return
+}
+
+// CreateSaveSingleTaskForAssociatingEnsResponse creates a response to parse from SaveSingleTaskForAssociatingEns response
+func CreateSaveSingleTaskForAssociatingEnsResponse() (response *SaveSingleTaskForAssociatingEnsResponse) {
+	response = &SaveSingleTaskForAssociatingEnsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 5 - 4
services/domain/save_single_task_for_creating_dns_host.go

@@ -76,10 +76,11 @@ func (client *Client) SaveSingleTaskForCreatingDnsHostWithCallback(request *Save
 // SaveSingleTaskForCreatingDnsHostRequest is the request struct for api SaveSingleTaskForCreatingDnsHost
 type SaveSingleTaskForCreatingDnsHostRequest struct {
 	*requests.RpcRequest
-	InstanceId string    `position:"Query" name:"InstanceId"`
-	Ip         *[]string `position:"Query" name:"Ip"  type:"Repeated"`
-	DnsName    string    `position:"Query" name:"DnsName"`
-	Lang       string    `position:"Query" name:"Lang"`
+	InstanceId   string    `position:"Query" name:"InstanceId"`
+	Ip           *[]string `position:"Query" name:"Ip"  type:"Repeated"`
+	DnsName      string    `position:"Query" name:"DnsName"`
+	UserClientIp string    `position:"Query" name:"UserClientIp"`
+	Lang         string    `position:"Query" name:"Lang"`
 }
 
 // SaveSingleTaskForCreatingDnsHostResponse is the response struct for api SaveSingleTaskForCreatingDnsHost

+ 28 - 27
services/domain/save_single_task_for_creating_order_activate.go

@@ -76,33 +76,34 @@ func (client *Client) SaveSingleTaskForCreatingOrderActivateWithCallback(request
 // SaveSingleTaskForCreatingOrderActivateRequest is the request struct for api SaveSingleTaskForCreatingOrderActivate
 type SaveSingleTaskForCreatingOrderActivateRequest struct {
 	*requests.RpcRequest
-	Country                  string           `position:"Query" name:"Country"`
-	SubscriptionDuration     requests.Integer `position:"Query" name:"SubscriptionDuration"`
-	PermitPremiumActivation  requests.Boolean `position:"Query" name:"PermitPremiumActivation"`
-	City                     string           `position:"Query" name:"City"`
-	Dns2                     string           `position:"Query" name:"Dns2"`
-	Dns1                     string           `position:"Query" name:"Dns1"`
-	RegistrantProfileId      requests.Integer `position:"Query" name:"RegistrantProfileId"`
-	AliyunDns                requests.Boolean `position:"Query" name:"AliyunDns"`
-	ZhCity                   string           `position:"Query" name:"ZhCity"`
-	TelExt                   string           `position:"Query" name:"TelExt"`
-	ZhRegistrantName         string           `position:"Query" name:"ZhRegistrantName"`
-	Province                 string           `position:"Query" name:"Province"`
-	PostalCode               string           `position:"Query" name:"PostalCode"`
-	Lang                     string           `position:"Query" name:"Lang"`
-	Email                    string           `position:"Query" name:"Email"`
-	ZhRegistrantOrganization string           `position:"Query" name:"ZhRegistrantOrganization"`
-	Address                  string           `position:"Query" name:"Address"`
-	TelArea                  string           `position:"Query" name:"TelArea"`
-	DomainName               string           `position:"Query" name:"DomainName"`
-	ZhAddress                string           `position:"Query" name:"ZhAddress"`
-	RegistrantType           string           `position:"Query" name:"RegistrantType"`
-	Telephone                string           `position:"Query" name:"Telephone"`
-	ZhProvince               string           `position:"Query" name:"ZhProvince"`
-	RegistrantOrganization   string           `position:"Query" name:"RegistrantOrganization"`
-	EnableDomainProxy        requests.Boolean `position:"Query" name:"EnableDomainProxy"`
-	UserClientIp             string           `position:"Query" name:"UserClientIp"`
-	RegistrantName           string           `position:"Query" name:"RegistrantName"`
+	Country                   string           `position:"Query" name:"Country"`
+	SubscriptionDuration      requests.Integer `position:"Query" name:"SubscriptionDuration"`
+	PermitPremiumActivation   requests.Boolean `position:"Query" name:"PermitPremiumActivation"`
+	City                      string           `position:"Query" name:"City"`
+	Dns2                      string           `position:"Query" name:"Dns2"`
+	Dns1                      string           `position:"Query" name:"Dns1"`
+	RegistrantProfileId       requests.Integer `position:"Query" name:"RegistrantProfileId"`
+	AliyunDns                 requests.Boolean `position:"Query" name:"AliyunDns"`
+	ZhCity                    string           `position:"Query" name:"ZhCity"`
+	TelExt                    string           `position:"Query" name:"TelExt"`
+	ZhRegistrantName          string           `position:"Query" name:"ZhRegistrantName"`
+	Province                  string           `position:"Query" name:"Province"`
+	PostalCode                string           `position:"Query" name:"PostalCode"`
+	Lang                      string           `position:"Query" name:"Lang"`
+	Email                     string           `position:"Query" name:"Email"`
+	ZhRegistrantOrganization  string           `position:"Query" name:"ZhRegistrantOrganization"`
+	Address                   string           `position:"Query" name:"Address"`
+	TelArea                   string           `position:"Query" name:"TelArea"`
+	DomainName                string           `position:"Query" name:"DomainName"`
+	ZhAddress                 string           `position:"Query" name:"ZhAddress"`
+	RegistrantType            string           `position:"Query" name:"RegistrantType"`
+	Telephone                 string           `position:"Query" name:"Telephone"`
+	TrademarkDomainActivation requests.Boolean `position:"Query" name:"TrademarkDomainActivation"`
+	ZhProvince                string           `position:"Query" name:"ZhProvince"`
+	RegistrantOrganization    string           `position:"Query" name:"RegistrantOrganization"`
+	EnableDomainProxy         requests.Boolean `position:"Query" name:"EnableDomainProxy"`
+	UserClientIp              string           `position:"Query" name:"UserClientIp"`
+	RegistrantName            string           `position:"Query" name:"RegistrantName"`
 }
 
 // SaveSingleTaskForCreatingOrderActivateResponse is the response struct for api SaveSingleTaskForCreatingOrderActivate

+ 4 - 3
services/domain/save_single_task_for_deleting_dns_host.go

@@ -76,9 +76,10 @@ func (client *Client) SaveSingleTaskForDeletingDnsHostWithCallback(request *Save
 // SaveSingleTaskForDeletingDnsHostRequest is the request struct for api SaveSingleTaskForDeletingDnsHost
 type SaveSingleTaskForDeletingDnsHostRequest struct {
 	*requests.RpcRequest
-	InstanceId string `position:"Query" name:"InstanceId"`
-	DnsName    string `position:"Query" name:"DnsName"`
-	Lang       string `position:"Query" name:"Lang"`
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	DnsName      string `position:"Query" name:"DnsName"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
 }
 
 // SaveSingleTaskForDeletingDnsHostResponse is the response struct for api SaveSingleTaskForDeletingDnsHost

+ 106 - 0
services/domain/save_single_task_for_disassociating_ens.go

@@ -0,0 +1,106 @@
+package domain
+
+//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"
+)
+
+// SaveSingleTaskForDisassociatingEns invokes the domain.SaveSingleTaskForDisassociatingEns API synchronously
+// api document: https://help.aliyun.com/api/domain/savesingletaskfordisassociatingens.html
+func (client *Client) SaveSingleTaskForDisassociatingEns(request *SaveSingleTaskForDisassociatingEnsRequest) (response *SaveSingleTaskForDisassociatingEnsResponse, err error) {
+	response = CreateSaveSingleTaskForDisassociatingEnsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SaveSingleTaskForDisassociatingEnsWithChan invokes the domain.SaveSingleTaskForDisassociatingEns API asynchronously
+// api document: https://help.aliyun.com/api/domain/savesingletaskfordisassociatingens.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SaveSingleTaskForDisassociatingEnsWithChan(request *SaveSingleTaskForDisassociatingEnsRequest) (<-chan *SaveSingleTaskForDisassociatingEnsResponse, <-chan error) {
+	responseChan := make(chan *SaveSingleTaskForDisassociatingEnsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SaveSingleTaskForDisassociatingEns(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SaveSingleTaskForDisassociatingEnsWithCallback invokes the domain.SaveSingleTaskForDisassociatingEns API asynchronously
+// api document: https://help.aliyun.com/api/domain/savesingletaskfordisassociatingens.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SaveSingleTaskForDisassociatingEnsWithCallback(request *SaveSingleTaskForDisassociatingEnsRequest, callback func(response *SaveSingleTaskForDisassociatingEnsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SaveSingleTaskForDisassociatingEnsResponse
+		var err error
+		defer close(result)
+		response, err = client.SaveSingleTaskForDisassociatingEns(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SaveSingleTaskForDisassociatingEnsRequest is the request struct for api SaveSingleTaskForDisassociatingEns
+type SaveSingleTaskForDisassociatingEnsRequest struct {
+	*requests.RpcRequest
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	DomainName   string `position:"Query" name:"DomainName"`
+	Lang         string `position:"Query" name:"Lang"`
+}
+
+// SaveSingleTaskForDisassociatingEnsResponse is the response struct for api SaveSingleTaskForDisassociatingEns
+type SaveSingleTaskForDisassociatingEnsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	TaskNo    string `json:"TaskNo" xml:"TaskNo"`
+}
+
+// CreateSaveSingleTaskForDisassociatingEnsRequest creates a request to invoke SaveSingleTaskForDisassociatingEns API
+func CreateSaveSingleTaskForDisassociatingEnsRequest() (request *SaveSingleTaskForDisassociatingEnsRequest) {
+	request = &SaveSingleTaskForDisassociatingEnsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Domain", "2018-01-29", "SaveSingleTaskForDisassociatingEns", "", "")
+	return
+}
+
+// CreateSaveSingleTaskForDisassociatingEnsResponse creates a response to parse from SaveSingleTaskForDisassociatingEns response
+func CreateSaveSingleTaskForDisassociatingEnsResponse() (response *SaveSingleTaskForDisassociatingEnsResponse) {
+	response = &SaveSingleTaskForDisassociatingEnsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 5 - 4
services/domain/save_single_task_for_modifying_dns_host.go

@@ -76,10 +76,11 @@ func (client *Client) SaveSingleTaskForModifyingDnsHostWithCallback(request *Sav
 // SaveSingleTaskForModifyingDnsHostRequest is the request struct for api SaveSingleTaskForModifyingDnsHost
 type SaveSingleTaskForModifyingDnsHostRequest struct {
 	*requests.RpcRequest
-	InstanceId string    `position:"Query" name:"InstanceId"`
-	Ip         *[]string `position:"Query" name:"Ip"  type:"Repeated"`
-	DnsName    string    `position:"Query" name:"DnsName"`
-	Lang       string    `position:"Query" name:"Lang"`
+	InstanceId   string    `position:"Query" name:"InstanceId"`
+	Ip           *[]string `position:"Query" name:"Ip"  type:"Repeated"`
+	DnsName      string    `position:"Query" name:"DnsName"`
+	UserClientIp string    `position:"Query" name:"UserClientIp"`
+	Lang         string    `position:"Query" name:"Lang"`
 }
 
 // SaveSingleTaskForModifyingDnsHostResponse is the response struct for api SaveSingleTaskForModifyingDnsHost

+ 3 - 2
services/domain/save_single_task_for_synchronizing_dns_host.go

@@ -76,8 +76,9 @@ func (client *Client) SaveSingleTaskForSynchronizingDnsHostWithCallback(request
 // SaveSingleTaskForSynchronizingDnsHostRequest is the request struct for api SaveSingleTaskForSynchronizingDnsHost
 type SaveSingleTaskForSynchronizingDnsHostRequest struct {
 	*requests.RpcRequest
-	InstanceId string `position:"Query" name:"InstanceId"`
-	Lang       string `position:"Query" name:"Lang"`
+	InstanceId   string `position:"Query" name:"InstanceId"`
+	UserClientIp string `position:"Query" name:"UserClientIp"`
+	Lang         string `position:"Query" name:"Lang"`
 }
 
 // SaveSingleTaskForSynchronizingDnsHostResponse is the response struct for api SaveSingleTaskForSynchronizingDnsHost

+ 25 - 0
services/domain/struct_addr.go

@@ -0,0 +1,25 @@
+package domain
+
+//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.
+
+// Addr is a nested struct in domain response
+type Addr struct {
+	Cc     string                   `json:"Cc" xml:"Cc"`
+	Pc     string                   `json:"Pc" xml:"Pc"`
+	Sp     string                   `json:"Sp" xml:"Sp"`
+	City   string                   `json:"City" xml:"City"`
+	Street StreetInLookupTmchNotice `json:"Street" xml:"Street"`
+}

+ 22 - 0
services/domain/struct_admin_division.go

@@ -0,0 +1,22 @@
+package domain
+
+//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.
+
+// AdminDivision is a nested struct in domain response
+type AdminDivision struct {
+	DivisionName string   `json:"DivisionName" xml:"DivisionName"`
+	Children     Children `json:"Children" xml:"Children"`
+}

+ 21 - 0
services/domain/struct_admin_divisions.go

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

+ 21 - 0
services/domain/struct_children.go

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

+ 21 - 0
services/domain/struct_children_item.go

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

+ 26 - 0
services/domain/struct_claim.go

@@ -0,0 +1,26 @@
+package domain
+
+//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.
+
+// Claim is a nested struct in domain response
+type Claim struct {
+	MarkName         string     `json:"MarkName" xml:"MarkName"`
+	GoodsAndServices string     `json:"GoodsAndServices" xml:"GoodsAndServices"`
+	JurDesc          JurDesc    `json:"JurDesc" xml:"JurDesc"`
+	Holders          Holders    `json:"Holders" xml:"Holders"`
+	Contacts         Contacts   `json:"Contacts" xml:"Contacts"`
+	ClassDescs       ClassDescs `json:"ClassDescs" xml:"ClassDescs"`
+}

+ 21 - 0
services/domain/struct_claims.go

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

+ 22 - 0
services/domain/struct_class_desc.go

@@ -0,0 +1,22 @@
+package domain
+
+//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.
+
+// ClassDesc is a nested struct in domain response
+type ClassDesc struct {
+	ClassNum int    `json:"ClassNum" xml:"ClassNum"`
+	Desc     string `json:"Desc" xml:"Desc"`
+}

+ 21 - 0
services/domain/struct_class_descs.go

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

+ 27 - 0
services/domain/struct_contact.go

@@ -0,0 +1,27 @@
+package domain
+
+//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.
+
+// Contact is a nested struct in domain response
+type Contact struct {
+	Type  string `json:"Type" xml:"Type"`
+	Name  string `json:"Name" xml:"Name"`
+	Org   string `json:"Org" xml:"Org"`
+	Voice string `json:"Voice" xml:"Voice"`
+	Fax   string `json:"Fax" xml:"Fax"`
+	Email string `json:"Email" xml:"Email"`
+	Addr  Addr   `json:"Addr" xml:"Addr"`
+}

+ 21 - 0
services/domain/struct_contacts.go

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

+ 21 - 0
services/domain/struct_credentials.go

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

+ 21 - 0
services/domain/struct_data_in_list_server_lock.go

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

+ 21 - 0
services/domain/struct_data_in_query_failing_reason_list_for_qualification.go

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

+ 23 - 0
services/domain/struct_holder.go

@@ -0,0 +1,23 @@
+package domain
+
+//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.
+
+// Holder is a nested struct in domain response
+type Holder struct {
+	Entitlement string `json:"Entitlement" xml:"Entitlement"`
+	Org         string `json:"Org" xml:"Org"`
+	Addr        Addr   `json:"Addr" xml:"Addr"`
+}

+ 21 - 0
services/domain/struct_holders.go

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

+ 22 - 0
services/domain/struct_jur_desc.go

@@ -0,0 +1,22 @@
+package domain
+
+//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.
+
+// JurDesc is a nested struct in domain response
+type JurDesc struct {
+	JurCC string `json:"JurCC" xml:"JurCC"`
+	Desc  string `json:"Desc" xml:"Desc"`
+}

+ 24 - 0
services/domain/struct_qualification_credential.go

@@ -0,0 +1,24 @@
+package domain
+
+//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.
+
+// QualificationCredential is a nested struct in domain response
+type QualificationCredential struct {
+	CredentialNo   string `json:"CredentialNo" xml:"CredentialNo"`
+	CredentialType string `json:"CredentialType" xml:"CredentialType"`
+	CredentialUrl  string `json:"CredentialUrl" xml:"CredentialUrl"`
+	Params         string `json:"Params" xml:"Params"`
+}

+ 30 - 0
services/domain/struct_query_transfer_in_response.go

@@ -0,0 +1,30 @@
+package domain
+
+//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.
+
+// QueryTransferInResponse is a nested struct in domain response
+type QueryTransferInResponse struct {
+	GmtCreate        string `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModified      string `json:"GmtModified" xml:"GmtModified"`
+	UserId           string `json:"UserId" xml:"UserId"`
+	DomainName       string `json:"DomainName" xml:"DomainName"`
+	DomainInstanceId string `json:"DomainInstanceId" xml:"DomainInstanceId"`
+	LockProductId    string `json:"LockProductId" xml:"LockProductId"`
+	StartDate        string `json:"StartDate" xml:"StartDate"`
+	ExpireDate       string `json:"ExpireDate" xml:"ExpireDate"`
+	LockInstanceId   string `json:"LockInstanceId" xml:"LockInstanceId"`
+	ServerLockStatus string `json:"ServerLockStatus" xml:"ServerLockStatus"`
+}

+ 21 - 0
services/domain/struct_street_in_lookup_tmch_notice.go

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