Browse Source

Generated 2019-09-10 for waf-openapi.

sdk-team 5 years ago
parent
commit
3d4e769505
44 changed files with 3455 additions and 0 deletions
  1. 4 0
      ChangeLog.txt
  2. 129 0
      services/waf-openapi/client.go
  3. 111 0
      services/waf-openapi/create_certificate.go
  4. 121 0
      services/waf-openapi/create_domain.go
  5. 108 0
      services/waf-openapi/create_protection_module_rule.go
  6. 106 0
      services/waf-openapi/delete_domain.go
  7. 109 0
      services/waf-openapi/describe_cert_match_status.go
  8. 107 0
      services/waf-openapi/describe_certificates.go
  9. 107 0
      services/waf-openapi/describe_domain.go
  10. 108 0
      services/waf-openapi/describe_domain_advance_configs.go
  11. 111 0
      services/waf-openapi/describe_domain_basic_configs.go
  12. 108 0
      services/waf-openapi/describe_domain_names.go
  13. 107 0
      services/waf-openapi/describe_domain_rule_group.go
  14. 108 0
      services/waf-openapi/describe_domain_status.go
  15. 108 0
      services/waf-openapi/describe_instance_info.go
  16. 110 0
      services/waf-openapi/describe_instance_spec_info.go
  17. 109 0
      services/waf-openapi/describe_protection_module_mode.go
  18. 113 0
      services/waf-openapi/describe_protection_module_rules.go
  19. 108 0
      services/waf-openapi/describe_protection_module_status.go
  20. 23 0
      services/waf-openapi/endpoint.go
  21. 122 0
      services/waf-openapi/modify_domain.go
  22. 108 0
      services/waf-openapi/modify_domain_ipv6_status.go
  23. 107 0
      services/waf-openapi/modify_log_retrieval_status.go
  24. 107 0
      services/waf-openapi/modify_log_service_status.go
  25. 108 0
      services/waf-openapi/modify_protection_module_mode.go
  26. 110 0
      services/waf-openapi/modify_protection_module_rule.go
  27. 108 0
      services/waf-openapi/modify_protection_module_status.go
  28. 108 0
      services/waf-openapi/modify_protection_rule_cache_status.go
  29. 110 0
      services/waf-openapi/modify_protection_rule_status.go
  30. 109 0
      services/waf-openapi/set_domain_rule_group.go
  31. 25 0
      services/waf-openapi/struct_certificate.go
  32. 21 0
      services/waf-openapi/struct_certificates.go
  33. 35 0
      services/waf-openapi/struct_domain.go
  34. 30 0
      services/waf-openapi/struct_domain_config.go
  35. 21 0
      services/waf-openapi/struct_domain_configs_in_describe_domain_advance_configs.go
  36. 21 0
      services/waf-openapi/struct_domain_configs_in_describe_domain_basic_configs.go
  37. 21 0
      services/waf-openapi/struct_domain_names.go
  38. 28 0
      services/waf-openapi/struct_instance_info.go
  39. 22 0
      services/waf-openapi/struct_instance_spec_info.go
  40. 21 0
      services/waf-openapi/struct_instance_spec_infos.go
  41. 31 0
      services/waf-openapi/struct_profile.go
  42. 25 0
      services/waf-openapi/struct_rule.go
  43. 21 0
      services/waf-openapi/struct_rules.go
  44. 21 0
      services/waf-openapi/struct_sans.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2020-02-21 Version: v1.60.387
+- Generated 2019-09-10 for `waf-openapi`.
+
+
 2020-02-21 Version: v1.60.386
 - Support TAG API.
 

+ 129 - 0
services/waf-openapi/client.go

@@ -0,0 +1,129 @@
+package waf_openapi
+
+//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 (
+	"reflect"
+
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// SetClientProperty Set Property by Reflect
+func SetClientProperty(client *Client, propertyName string, propertyValue interface{}) {
+	v := reflect.ValueOf(client).Elem()
+	if v.FieldByName(propertyName).IsValid() && v.FieldByName(propertyName).CanSet() {
+		v.FieldByName(propertyName).Set(reflect.ValueOf(propertyValue))
+	}
+}
+
+// SetEndpointDataToClient Set EndpointMap and ENdpointType
+func SetEndpointDataToClient(client *Client) {
+	SetClientProperty(client, "EndpointMap", GetEndpointMap())
+	SetClientProperty(client, "EndpointType", GetEndpointType())
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithProvider creates a sdk client with providers
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithProvider(regionId string, providers ...provider.Provider) (client *Client, err error) {
+	client = &Client{}
+	var pc provider.Provider
+	if len(providers) == 0 {
+		pc = provider.DefaultChain
+	} else {
+		pc = provider.NewProviderChain(providers)
+	}
+	err = client.InitWithProviderChain(regionId, pc)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn and policy
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	SetEndpointDataToClient(client)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// usage: https://github.com/aliyun/alibaba-cloud-sdk-go/blob/master/docs/2-Client-EN.md
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	SetEndpointDataToClient(client)
+	return
+}

+ 111 - 0
services/waf-openapi/create_certificate.go

@@ -0,0 +1,111 @@
+package waf_openapi
+
+//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"
+)
+
+// CreateCertificate invokes the waf_openapi.CreateCertificate API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createcertificate.html
+func (client *Client) CreateCertificate(request *CreateCertificateRequest) (response *CreateCertificateResponse, err error) {
+	response = CreateCreateCertificateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCertificateWithChan invokes the waf_openapi.CreateCertificate API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createcertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCertificateWithChan(request *CreateCertificateRequest) (<-chan *CreateCertificateResponse, <-chan error) {
+	responseChan := make(chan *CreateCertificateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCertificate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCertificateWithCallback invokes the waf_openapi.CreateCertificate API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createcertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCertificateWithCallback(request *CreateCertificateRequest, callback func(response *CreateCertificateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCertificateResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCertificate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCertificateRequest is the request struct for api CreateCertificate
+type CreateCertificateRequest struct {
+	*requests.RpcRequest
+	Certificate     string           `position:"Query" name:"Certificate"`
+	PrivateKey      string           `position:"Query" name:"PrivateKey"`
+	SourceIp        string           `position:"Query" name:"SourceIp"`
+	Lang            string           `position:"Query" name:"Lang"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	CertificateName string           `position:"Query" name:"CertificateName"`
+	HttpsCertId     requests.Integer `position:"Query" name:"HttpsCertId"`
+}
+
+// CreateCertificateResponse is the response struct for api CreateCertificate
+type CreateCertificateResponse struct {
+	*responses.BaseResponse
+	RequestId     string `json:"RequestId" xml:"RequestId"`
+	CertificateId int64  `json:"CertificateId" xml:"CertificateId"`
+}
+
+// CreateCreateCertificateRequest creates a request to invoke CreateCertificate API
+func CreateCreateCertificateRequest() (request *CreateCertificateRequest) {
+	request = &CreateCertificateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "CreateCertificate", "waf", "openAPI")
+	return
+}
+
+// CreateCreateCertificateResponse creates a response to parse from CreateCertificate response
+func CreateCreateCertificateResponse() (response *CreateCertificateResponse) {
+	response = &CreateCertificateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 121 - 0
services/waf-openapi/create_domain.go

@@ -0,0 +1,121 @@
+package waf_openapi
+
+//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"
+)
+
+// CreateDomain invokes the waf_openapi.CreateDomain API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createdomain.html
+func (client *Client) CreateDomain(request *CreateDomainRequest) (response *CreateDomainResponse, err error) {
+	response = CreateCreateDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateDomainWithChan invokes the waf_openapi.CreateDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createdomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDomainWithChan(request *CreateDomainRequest) (<-chan *CreateDomainResponse, <-chan error) {
+	responseChan := make(chan *CreateDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateDomainWithCallback invokes the waf_openapi.CreateDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createdomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateDomainWithCallback(request *CreateDomainRequest, callback func(response *CreateDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateDomainRequest is the request struct for api CreateDomain
+type CreateDomainRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	SourceIp        string           `position:"Query" name:"SourceIp"`
+	HttpPort        string           `position:"Query" name:"HttpPort"`
+	Http2Port       string           `position:"Query" name:"Http2Port"`
+	WriteTime       requests.Integer `position:"Query" name:"WriteTime"`
+	Lang            string           `position:"Query" name:"Lang"`
+	LogHeaders      string           `position:"Query" name:"LogHeaders"`
+	ConnectionTime  requests.Integer `position:"Query" name:"ConnectionTime"`
+	ClusterType     requests.Integer `position:"Query" name:"ClusterType"`
+	HttpsRedirect   requests.Integer `position:"Query" name:"HttpsRedirect"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	SourceIps       string           `position:"Query" name:"SourceIps"`
+	Domain          string           `position:"Query" name:"Domain"`
+	IsAccessProduct requests.Integer `position:"Query" name:"IsAccessProduct"`
+	ReadTime        requests.Integer `position:"Query" name:"ReadTime"`
+	HttpsPort       string           `position:"Query" name:"HttpsPort"`
+	LoadBalancing   requests.Integer `position:"Query" name:"LoadBalancing"`
+	HttpToUserIp    requests.Integer `position:"Query" name:"HttpToUserIp"`
+}
+
+// CreateDomainResponse is the response struct for api CreateDomain
+type CreateDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Cname     string `json:"Cname" xml:"Cname"`
+}
+
+// CreateCreateDomainRequest creates a request to invoke CreateDomain API
+func CreateCreateDomainRequest() (request *CreateDomainRequest) {
+	request = &CreateDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "CreateDomain", "waf", "openAPI")
+	return
+}
+
+// CreateCreateDomainResponse creates a response to parse from CreateDomain response
+func CreateCreateDomainResponse() (response *CreateDomainResponse) {
+	response = &CreateDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/create_protection_module_rule.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// CreateProtectionModuleRule invokes the waf_openapi.CreateProtectionModuleRule API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createprotectionmodulerule.html
+func (client *Client) CreateProtectionModuleRule(request *CreateProtectionModuleRuleRequest) (response *CreateProtectionModuleRuleResponse, err error) {
+	response = CreateCreateProtectionModuleRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateProtectionModuleRuleWithChan invokes the waf_openapi.CreateProtectionModuleRule API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createprotectionmodulerule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateProtectionModuleRuleWithChan(request *CreateProtectionModuleRuleRequest) (<-chan *CreateProtectionModuleRuleResponse, <-chan error) {
+	responseChan := make(chan *CreateProtectionModuleRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateProtectionModuleRule(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateProtectionModuleRuleWithCallback invokes the waf_openapi.CreateProtectionModuleRule API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/createprotectionmodulerule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateProtectionModuleRuleWithCallback(request *CreateProtectionModuleRuleRequest, callback func(response *CreateProtectionModuleRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateProtectionModuleRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateProtectionModuleRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateProtectionModuleRuleRequest is the request struct for api CreateProtectionModuleRule
+type CreateProtectionModuleRuleRequest struct {
+	*requests.RpcRequest
+	DefenseType string `position:"Query" name:"DefenseType"`
+	Rule        string `position:"Query" name:"Rule"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
+	SourceIp    string `position:"Query" name:"SourceIp"`
+	Domain      string `position:"Query" name:"Domain"`
+	Lang        string `position:"Query" name:"Lang"`
+}
+
+// CreateProtectionModuleRuleResponse is the response struct for api CreateProtectionModuleRule
+type CreateProtectionModuleRuleResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateProtectionModuleRuleRequest creates a request to invoke CreateProtectionModuleRule API
+func CreateCreateProtectionModuleRuleRequest() (request *CreateProtectionModuleRuleRequest) {
+	request = &CreateProtectionModuleRuleRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "CreateProtectionModuleRule", "waf", "openAPI")
+	return
+}
+
+// CreateCreateProtectionModuleRuleResponse creates a response to parse from CreateProtectionModuleRule response
+func CreateCreateProtectionModuleRuleResponse() (response *CreateProtectionModuleRuleResponse) {
+	response = &CreateProtectionModuleRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/waf-openapi/delete_domain.go

@@ -0,0 +1,106 @@
+package waf_openapi
+
+//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"
+)
+
+// DeleteDomain invokes the waf_openapi.DeleteDomain API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/deletedomain.html
+func (client *Client) DeleteDomain(request *DeleteDomainRequest) (response *DeleteDomainResponse, err error) {
+	response = CreateDeleteDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteDomainWithChan invokes the waf_openapi.DeleteDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/deletedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDomainWithChan(request *DeleteDomainRequest) (<-chan *DeleteDomainResponse, <-chan error) {
+	responseChan := make(chan *DeleteDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteDomainWithCallback invokes the waf_openapi.DeleteDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/deletedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteDomainWithCallback(request *DeleteDomainRequest, callback func(response *DeleteDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteDomainRequest is the request struct for api DeleteDomain
+type DeleteDomainRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	SourceIp   string `position:"Query" name:"SourceIp"`
+	Domain     string `position:"Query" name:"Domain"`
+	Lang       string `position:"Query" name:"Lang"`
+}
+
+// DeleteDomainResponse is the response struct for api DeleteDomain
+type DeleteDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteDomainRequest creates a request to invoke DeleteDomain API
+func CreateDeleteDomainRequest() (request *DeleteDomainRequest) {
+	request = &DeleteDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DeleteDomain", "waf", "openAPI")
+	return
+}
+
+// CreateDeleteDomainResponse creates a response to parse from DeleteDomain response
+func CreateDeleteDomainResponse() (response *DeleteDomainResponse) {
+	response = &DeleteDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/waf-openapi/describe_cert_match_status.go

@@ -0,0 +1,109 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeCertMatchStatus invokes the waf_openapi.DescribeCertMatchStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describecertmatchstatus.html
+func (client *Client) DescribeCertMatchStatus(request *DescribeCertMatchStatusRequest) (response *DescribeCertMatchStatusResponse, err error) {
+	response = CreateDescribeCertMatchStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCertMatchStatusWithChan invokes the waf_openapi.DescribeCertMatchStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describecertmatchstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCertMatchStatusWithChan(request *DescribeCertMatchStatusRequest) (<-chan *DescribeCertMatchStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeCertMatchStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCertMatchStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCertMatchStatusWithCallback invokes the waf_openapi.DescribeCertMatchStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describecertmatchstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCertMatchStatusWithCallback(request *DescribeCertMatchStatusRequest, callback func(response *DescribeCertMatchStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCertMatchStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCertMatchStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCertMatchStatusRequest is the request struct for api DescribeCertMatchStatus
+type DescribeCertMatchStatusRequest struct {
+	*requests.RpcRequest
+	Certificate string `position:"Query" name:"Certificate"`
+	PrivateKey  string `position:"Query" name:"PrivateKey"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
+	SourceIp    string `position:"Query" name:"SourceIp"`
+	Domain      string `position:"Query" name:"Domain"`
+	Lang        string `position:"Query" name:"Lang"`
+}
+
+// DescribeCertMatchStatusResponse is the response struct for api DescribeCertMatchStatus
+type DescribeCertMatchStatusResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	MatchStatus bool   `json:"MatchStatus" xml:"MatchStatus"`
+}
+
+// CreateDescribeCertMatchStatusRequest creates a request to invoke DescribeCertMatchStatus API
+func CreateDescribeCertMatchStatusRequest() (request *DescribeCertMatchStatusRequest) {
+	request = &DescribeCertMatchStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeCertMatchStatus", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeCertMatchStatusResponse creates a response to parse from DescribeCertMatchStatus response
+func CreateDescribeCertMatchStatusResponse() (response *DescribeCertMatchStatusResponse) {
+	response = &DescribeCertMatchStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/waf-openapi/describe_certificates.go

@@ -0,0 +1,107 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeCertificates invokes the waf_openapi.DescribeCertificates API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describecertificates.html
+func (client *Client) DescribeCertificates(request *DescribeCertificatesRequest) (response *DescribeCertificatesResponse, err error) {
+	response = CreateDescribeCertificatesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCertificatesWithChan invokes the waf_openapi.DescribeCertificates API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describecertificates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCertificatesWithChan(request *DescribeCertificatesRequest) (<-chan *DescribeCertificatesResponse, <-chan error) {
+	responseChan := make(chan *DescribeCertificatesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCertificates(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCertificatesWithCallback invokes the waf_openapi.DescribeCertificates API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describecertificates.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCertificatesWithCallback(request *DescribeCertificatesRequest, callback func(response *DescribeCertificatesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCertificatesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCertificates(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCertificatesRequest is the request struct for api DescribeCertificates
+type DescribeCertificatesRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	SourceIp   string `position:"Query" name:"SourceIp"`
+	Domain     string `position:"Query" name:"Domain"`
+	Lang       string `position:"Query" name:"Lang"`
+}
+
+// DescribeCertificatesResponse is the response struct for api DescribeCertificates
+type DescribeCertificatesResponse struct {
+	*responses.BaseResponse
+	RequestId    string        `json:"RequestId" xml:"RequestId"`
+	Certificates []Certificate `json:"Certificates" xml:"Certificates"`
+}
+
+// CreateDescribeCertificatesRequest creates a request to invoke DescribeCertificates API
+func CreateDescribeCertificatesRequest() (request *DescribeCertificatesRequest) {
+	request = &DescribeCertificatesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeCertificates", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeCertificatesResponse creates a response to parse from DescribeCertificates response
+func CreateDescribeCertificatesResponse() (response *DescribeCertificatesResponse) {
+	response = &DescribeCertificatesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/waf-openapi/describe_domain.go

@@ -0,0 +1,107 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeDomain invokes the waf_openapi.DescribeDomain API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomain.html
+func (client *Client) DescribeDomain(request *DescribeDomainRequest) (response *DescribeDomainResponse, err error) {
+	response = CreateDescribeDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDomainWithChan invokes the waf_openapi.DescribeDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainWithChan(request *DescribeDomainRequest) (<-chan *DescribeDomainResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDomainWithCallback invokes the waf_openapi.DescribeDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainWithCallback(request *DescribeDomainRequest, callback func(response *DescribeDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDomainRequest is the request struct for api DescribeDomain
+type DescribeDomainRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	SourceIp   string `position:"Query" name:"SourceIp"`
+	Domain     string `position:"Query" name:"Domain"`
+	Lang       string `position:"Query" name:"Lang"`
+}
+
+// DescribeDomainResponse is the response struct for api DescribeDomain
+type DescribeDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Domain    Domain `json:"Domain" xml:"Domain"`
+}
+
+// CreateDescribeDomainRequest creates a request to invoke DescribeDomain API
+func CreateDescribeDomainRequest() (request *DescribeDomainRequest) {
+	request = &DescribeDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeDomain", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeDomainResponse creates a response to parse from DescribeDomain response
+func CreateDescribeDomainResponse() (response *DescribeDomainResponse) {
+	response = &DescribeDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/describe_domain_advance_configs.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeDomainAdvanceConfigs invokes the waf_openapi.DescribeDomainAdvanceConfigs API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainadvanceconfigs.html
+func (client *Client) DescribeDomainAdvanceConfigs(request *DescribeDomainAdvanceConfigsRequest) (response *DescribeDomainAdvanceConfigsResponse, err error) {
+	response = CreateDescribeDomainAdvanceConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDomainAdvanceConfigsWithChan invokes the waf_openapi.DescribeDomainAdvanceConfigs API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainadvanceconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainAdvanceConfigsWithChan(request *DescribeDomainAdvanceConfigsRequest) (<-chan *DescribeDomainAdvanceConfigsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainAdvanceConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainAdvanceConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDomainAdvanceConfigsWithCallback invokes the waf_openapi.DescribeDomainAdvanceConfigs API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainadvanceconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainAdvanceConfigsWithCallback(request *DescribeDomainAdvanceConfigsRequest, callback func(response *DescribeDomainAdvanceConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainAdvanceConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainAdvanceConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDomainAdvanceConfigsRequest is the request struct for api DescribeDomainAdvanceConfigs
+type DescribeDomainAdvanceConfigsRequest struct {
+	*requests.RpcRequest
+	DomainList      string `position:"Query" name:"DomainList"`
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	InstanceId      string `position:"Query" name:"InstanceId"`
+	SourceIp        string `position:"Query" name:"SourceIp"`
+	Lang            string `position:"Query" name:"Lang"`
+}
+
+// DescribeDomainAdvanceConfigsResponse is the response struct for api DescribeDomainAdvanceConfigs
+type DescribeDomainAdvanceConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId     string         `json:"RequestId" xml:"RequestId"`
+	DomainConfigs []DomainConfig `json:"DomainConfigs" xml:"DomainConfigs"`
+}
+
+// CreateDescribeDomainAdvanceConfigsRequest creates a request to invoke DescribeDomainAdvanceConfigs API
+func CreateDescribeDomainAdvanceConfigsRequest() (request *DescribeDomainAdvanceConfigsRequest) {
+	request = &DescribeDomainAdvanceConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeDomainAdvanceConfigs", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeDomainAdvanceConfigsResponse creates a response to parse from DescribeDomainAdvanceConfigs response
+func CreateDescribeDomainAdvanceConfigsResponse() (response *DescribeDomainAdvanceConfigsResponse) {
+	response = &DescribeDomainAdvanceConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/waf-openapi/describe_domain_basic_configs.go

@@ -0,0 +1,111 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeDomainBasicConfigs invokes the waf_openapi.DescribeDomainBasicConfigs API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainbasicconfigs.html
+func (client *Client) DescribeDomainBasicConfigs(request *DescribeDomainBasicConfigsRequest) (response *DescribeDomainBasicConfigsResponse, err error) {
+	response = CreateDescribeDomainBasicConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDomainBasicConfigsWithChan invokes the waf_openapi.DescribeDomainBasicConfigs API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainbasicconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainBasicConfigsWithChan(request *DescribeDomainBasicConfigsRequest) (<-chan *DescribeDomainBasicConfigsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainBasicConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainBasicConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDomainBasicConfigsWithCallback invokes the waf_openapi.DescribeDomainBasicConfigs API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainbasicconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainBasicConfigsWithCallback(request *DescribeDomainBasicConfigsRequest, callback func(response *DescribeDomainBasicConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainBasicConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainBasicConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDomainBasicConfigsRequest is the request struct for api DescribeDomainBasicConfigs
+type DescribeDomainBasicConfigsRequest struct {
+	*requests.RpcRequest
+	PageNumber      requests.Integer `position:"Query" name:"PageNumber"`
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	SourceIp        string           `position:"Query" name:"SourceIp"`
+	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	Lang            string           `position:"Query" name:"Lang"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	DomainKey       string           `position:"Query" name:"DomainKey"`
+}
+
+// DescribeDomainBasicConfigsResponse is the response struct for api DescribeDomainBasicConfigs
+type DescribeDomainBasicConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId     string         `json:"RequestId" xml:"RequestId"`
+	TotalCount    int            `json:"TotalCount" xml:"TotalCount"`
+	DomainConfigs []DomainConfig `json:"DomainConfigs" xml:"DomainConfigs"`
+}
+
+// CreateDescribeDomainBasicConfigsRequest creates a request to invoke DescribeDomainBasicConfigs API
+func CreateDescribeDomainBasicConfigsRequest() (request *DescribeDomainBasicConfigsRequest) {
+	request = &DescribeDomainBasicConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeDomainBasicConfigs", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeDomainBasicConfigsResponse creates a response to parse from DescribeDomainBasicConfigs response
+func CreateDescribeDomainBasicConfigsResponse() (response *DescribeDomainBasicConfigsResponse) {
+	response = &DescribeDomainBasicConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/describe_domain_names.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeDomainNames invokes the waf_openapi.DescribeDomainNames API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainnames.html
+func (client *Client) DescribeDomainNames(request *DescribeDomainNamesRequest) (response *DescribeDomainNamesResponse, err error) {
+	response = CreateDescribeDomainNamesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDomainNamesWithChan invokes the waf_openapi.DescribeDomainNames API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainnames.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainNamesWithChan(request *DescribeDomainNamesRequest) (<-chan *DescribeDomainNamesResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainNamesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainNames(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDomainNamesWithCallback invokes the waf_openapi.DescribeDomainNames API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainnames.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainNamesWithCallback(request *DescribeDomainNamesRequest, callback func(response *DescribeDomainNamesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainNamesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainNames(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDomainNamesRequest is the request struct for api DescribeDomainNames
+type DescribeDomainNamesRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	InstanceId      string `position:"Query" name:"InstanceId"`
+	SourceIp        string `position:"Query" name:"SourceIp"`
+	Lang            string `position:"Query" name:"Lang"`
+	CallSource      string `position:"Query" name:"CallSource"`
+}
+
+// DescribeDomainNamesResponse is the response struct for api DescribeDomainNames
+type DescribeDomainNamesResponse struct {
+	*responses.BaseResponse
+	RequestId   string   `json:"RequestId" xml:"RequestId"`
+	DomainNames []string `json:"DomainNames" xml:"DomainNames"`
+}
+
+// CreateDescribeDomainNamesRequest creates a request to invoke DescribeDomainNames API
+func CreateDescribeDomainNamesRequest() (request *DescribeDomainNamesRequest) {
+	request = &DescribeDomainNamesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeDomainNames", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeDomainNamesResponse creates a response to parse from DescribeDomainNames response
+func CreateDescribeDomainNamesResponse() (response *DescribeDomainNamesResponse) {
+	response = &DescribeDomainNamesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/waf-openapi/describe_domain_rule_group.go

@@ -0,0 +1,107 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeDomainRuleGroup invokes the waf_openapi.DescribeDomainRuleGroup API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainrulegroup.html
+func (client *Client) DescribeDomainRuleGroup(request *DescribeDomainRuleGroupRequest) (response *DescribeDomainRuleGroupResponse, err error) {
+	response = CreateDescribeDomainRuleGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDomainRuleGroupWithChan invokes the waf_openapi.DescribeDomainRuleGroup API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainrulegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainRuleGroupWithChan(request *DescribeDomainRuleGroupRequest) (<-chan *DescribeDomainRuleGroupResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainRuleGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainRuleGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDomainRuleGroupWithCallback invokes the waf_openapi.DescribeDomainRuleGroup API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainrulegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainRuleGroupWithCallback(request *DescribeDomainRuleGroupRequest, callback func(response *DescribeDomainRuleGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainRuleGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainRuleGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDomainRuleGroupRequest is the request struct for api DescribeDomainRuleGroup
+type DescribeDomainRuleGroupRequest struct {
+	*requests.RpcRequest
+	InstanceId string `position:"Query" name:"InstanceId"`
+	SourceIp   string `position:"Query" name:"SourceIp"`
+	Domain     string `position:"Query" name:"Domain"`
+	Lang       string `position:"Query" name:"Lang"`
+}
+
+// DescribeDomainRuleGroupResponse is the response struct for api DescribeDomainRuleGroup
+type DescribeDomainRuleGroupResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	RuleGroupId int64  `json:"RuleGroupId" xml:"RuleGroupId"`
+}
+
+// CreateDescribeDomainRuleGroupRequest creates a request to invoke DescribeDomainRuleGroup API
+func CreateDescribeDomainRuleGroupRequest() (request *DescribeDomainRuleGroupRequest) {
+	request = &DescribeDomainRuleGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeDomainRuleGroup", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeDomainRuleGroupResponse creates a response to parse from DescribeDomainRuleGroup response
+func CreateDescribeDomainRuleGroupResponse() (response *DescribeDomainRuleGroupResponse) {
+	response = &DescribeDomainRuleGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/describe_domain_status.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeDomainStatus invokes the waf_openapi.DescribeDomainStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainstatus.html
+func (client *Client) DescribeDomainStatus(request *DescribeDomainStatusRequest) (response *DescribeDomainStatusResponse, err error) {
+	response = CreateDescribeDomainStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDomainStatusWithChan invokes the waf_openapi.DescribeDomainStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainStatusWithChan(request *DescribeDomainStatusRequest) (<-chan *DescribeDomainStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDomainStatusWithCallback invokes the waf_openapi.DescribeDomainStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describedomainstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainStatusWithCallback(request *DescribeDomainStatusRequest, callback func(response *DescribeDomainStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDomainStatusRequest is the request struct for api DescribeDomainStatus
+type DescribeDomainStatusRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	InstanceId      string `position:"Query" name:"InstanceId"`
+	SourceIp        string `position:"Query" name:"SourceIp"`
+	Domain          string `position:"Query" name:"Domain"`
+	Lang            string `position:"Query" name:"Lang"`
+}
+
+// DescribeDomainStatusResponse is the response struct for api DescribeDomainStatus
+type DescribeDomainStatusResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	ConfigStatus string `json:"ConfigStatus" xml:"ConfigStatus"`
+}
+
+// CreateDescribeDomainStatusRequest creates a request to invoke DescribeDomainStatus API
+func CreateDescribeDomainStatusRequest() (request *DescribeDomainStatusRequest) {
+	request = &DescribeDomainStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeDomainStatus", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeDomainStatusResponse creates a response to parse from DescribeDomainStatus response
+func CreateDescribeDomainStatusResponse() (response *DescribeDomainStatusResponse) {
+	response = &DescribeDomainStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/describe_instance_info.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeInstanceInfo invokes the waf_openapi.DescribeInstanceInfo API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeinstanceinfo.html
+func (client *Client) DescribeInstanceInfo(request *DescribeInstanceInfoRequest) (response *DescribeInstanceInfoResponse, err error) {
+	response = CreateDescribeInstanceInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceInfoWithChan invokes the waf_openapi.DescribeInstanceInfo API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeinstanceinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceInfoWithChan(request *DescribeInstanceInfoRequest) (<-chan *DescribeInstanceInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceInfoWithCallback invokes the waf_openapi.DescribeInstanceInfo API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeinstanceinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceInfoWithCallback(request *DescribeInstanceInfoRequest, callback func(response *DescribeInstanceInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceInfoRequest is the request struct for api DescribeInstanceInfo
+type DescribeInstanceInfoRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	InstanceId      string `position:"Query" name:"InstanceId"`
+	SourceIp        string `position:"Query" name:"SourceIp"`
+	InstanceSource  string `position:"Query" name:"InstanceSource"`
+	Lang            string `position:"Query" name:"Lang"`
+}
+
+// DescribeInstanceInfoResponse is the response struct for api DescribeInstanceInfo
+type DescribeInstanceInfoResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	InstanceInfo InstanceInfo `json:"InstanceInfo" xml:"InstanceInfo"`
+}
+
+// CreateDescribeInstanceInfoRequest creates a request to invoke DescribeInstanceInfo API
+func CreateDescribeInstanceInfoRequest() (request *DescribeInstanceInfoRequest) {
+	request = &DescribeInstanceInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeInstanceInfo", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceInfoResponse creates a response to parse from DescribeInstanceInfo response
+func CreateDescribeInstanceInfoResponse() (response *DescribeInstanceInfoResponse) {
+	response = &DescribeInstanceInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/waf-openapi/describe_instance_spec_info.go

@@ -0,0 +1,110 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeInstanceSpecInfo invokes the waf_openapi.DescribeInstanceSpecInfo API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeinstancespecinfo.html
+func (client *Client) DescribeInstanceSpecInfo(request *DescribeInstanceSpecInfoRequest) (response *DescribeInstanceSpecInfoResponse, err error) {
+	response = CreateDescribeInstanceSpecInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeInstanceSpecInfoWithChan invokes the waf_openapi.DescribeInstanceSpecInfo API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeinstancespecinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSpecInfoWithChan(request *DescribeInstanceSpecInfoRequest) (<-chan *DescribeInstanceSpecInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeInstanceSpecInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeInstanceSpecInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeInstanceSpecInfoWithCallback invokes the waf_openapi.DescribeInstanceSpecInfo API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeinstancespecinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeInstanceSpecInfoWithCallback(request *DescribeInstanceSpecInfoRequest, callback func(response *DescribeInstanceSpecInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeInstanceSpecInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeInstanceSpecInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeInstanceSpecInfoRequest is the request struct for api DescribeInstanceSpecInfo
+type DescribeInstanceSpecInfoRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	InstanceId      string `position:"Query" name:"InstanceId"`
+	SourceIp        string `position:"Query" name:"SourceIp"`
+	Lang            string `position:"Query" name:"Lang"`
+}
+
+// DescribeInstanceSpecInfoResponse is the response struct for api DescribeInstanceSpecInfo
+type DescribeInstanceSpecInfoResponse struct {
+	*responses.BaseResponse
+	RequestId         string             `json:"RequestId" xml:"RequestId"`
+	InstanceId        string             `json:"InstanceId" xml:"InstanceId"`
+	Version           string             `json:"Version" xml:"Version"`
+	ExpireTime        int64              `json:"ExpireTime" xml:"ExpireTime"`
+	InstanceSpecInfos []InstanceSpecInfo `json:"InstanceSpecInfos" xml:"InstanceSpecInfos"`
+}
+
+// CreateDescribeInstanceSpecInfoRequest creates a request to invoke DescribeInstanceSpecInfo API
+func CreateDescribeInstanceSpecInfoRequest() (request *DescribeInstanceSpecInfoRequest) {
+	request = &DescribeInstanceSpecInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeInstanceSpecInfo", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeInstanceSpecInfoResponse creates a response to parse from DescribeInstanceSpecInfo response
+func CreateDescribeInstanceSpecInfoResponse() (response *DescribeInstanceSpecInfoResponse) {
+	response = &DescribeInstanceSpecInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/waf-openapi/describe_protection_module_mode.go

@@ -0,0 +1,109 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeProtectionModuleMode invokes the waf_openapi.DescribeProtectionModuleMode API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulemode.html
+func (client *Client) DescribeProtectionModuleMode(request *DescribeProtectionModuleModeRequest) (response *DescribeProtectionModuleModeResponse, err error) {
+	response = CreateDescribeProtectionModuleModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeProtectionModuleModeWithChan invokes the waf_openapi.DescribeProtectionModuleMode API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulemode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeProtectionModuleModeWithChan(request *DescribeProtectionModuleModeRequest) (<-chan *DescribeProtectionModuleModeResponse, <-chan error) {
+	responseChan := make(chan *DescribeProtectionModuleModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeProtectionModuleMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeProtectionModuleModeWithCallback invokes the waf_openapi.DescribeProtectionModuleMode API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulemode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeProtectionModuleModeWithCallback(request *DescribeProtectionModuleModeRequest, callback func(response *DescribeProtectionModuleModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeProtectionModuleModeResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeProtectionModuleMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeProtectionModuleModeRequest is the request struct for api DescribeProtectionModuleMode
+type DescribeProtectionModuleModeRequest struct {
+	*requests.RpcRequest
+	DefenseType     string `position:"Query" name:"DefenseType"`
+	ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
+	InstanceId      string `position:"Query" name:"InstanceId"`
+	SourceIp        string `position:"Query" name:"SourceIp"`
+	Domain          string `position:"Query" name:"Domain"`
+	Lang            string `position:"Query" name:"Lang"`
+}
+
+// DescribeProtectionModuleModeResponse is the response struct for api DescribeProtectionModuleMode
+type DescribeProtectionModuleModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Mode      int    `json:"Mode" xml:"Mode"`
+}
+
+// CreateDescribeProtectionModuleModeRequest creates a request to invoke DescribeProtectionModuleMode API
+func CreateDescribeProtectionModuleModeRequest() (request *DescribeProtectionModuleModeRequest) {
+	request = &DescribeProtectionModuleModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeProtectionModuleMode", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeProtectionModuleModeResponse creates a response to parse from DescribeProtectionModuleMode response
+func CreateDescribeProtectionModuleModeResponse() (response *DescribeProtectionModuleModeResponse) {
+	response = &DescribeProtectionModuleModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/waf-openapi/describe_protection_module_rules.go

@@ -0,0 +1,113 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeProtectionModuleRules invokes the waf_openapi.DescribeProtectionModuleRules API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulerules.html
+func (client *Client) DescribeProtectionModuleRules(request *DescribeProtectionModuleRulesRequest) (response *DescribeProtectionModuleRulesResponse, err error) {
+	response = CreateDescribeProtectionModuleRulesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeProtectionModuleRulesWithChan invokes the waf_openapi.DescribeProtectionModuleRules API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulerules.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeProtectionModuleRulesWithChan(request *DescribeProtectionModuleRulesRequest) (<-chan *DescribeProtectionModuleRulesResponse, <-chan error) {
+	responseChan := make(chan *DescribeProtectionModuleRulesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeProtectionModuleRules(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeProtectionModuleRulesWithCallback invokes the waf_openapi.DescribeProtectionModuleRules API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulerules.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeProtectionModuleRulesWithCallback(request *DescribeProtectionModuleRulesRequest, callback func(response *DescribeProtectionModuleRulesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeProtectionModuleRulesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeProtectionModuleRules(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeProtectionModuleRulesRequest is the request struct for api DescribeProtectionModuleRules
+type DescribeProtectionModuleRulesRequest struct {
+	*requests.RpcRequest
+	PageNumber      requests.Integer `position:"Query" name:"PageNumber"`
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	SourceIp        string           `position:"Query" name:"SourceIp"`
+	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	Lang            string           `position:"Query" name:"Lang"`
+	DefenseType     string           `position:"Query" name:"DefenseType"`
+	Query           string           `position:"Query" name:"Query"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	Domain          string           `position:"Query" name:"Domain"`
+}
+
+// DescribeProtectionModuleRulesResponse is the response struct for api DescribeProtectionModuleRules
+type DescribeProtectionModuleRulesResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	Rules      []Rule `json:"Rules" xml:"Rules"`
+}
+
+// CreateDescribeProtectionModuleRulesRequest creates a request to invoke DescribeProtectionModuleRules API
+func CreateDescribeProtectionModuleRulesRequest() (request *DescribeProtectionModuleRulesRequest) {
+	request = &DescribeProtectionModuleRulesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeProtectionModuleRules", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeProtectionModuleRulesResponse creates a response to parse from DescribeProtectionModuleRules response
+func CreateDescribeProtectionModuleRulesResponse() (response *DescribeProtectionModuleRulesResponse) {
+	response = &DescribeProtectionModuleRulesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/describe_protection_module_status.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// DescribeProtectionModuleStatus invokes the waf_openapi.DescribeProtectionModuleStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulestatus.html
+func (client *Client) DescribeProtectionModuleStatus(request *DescribeProtectionModuleStatusRequest) (response *DescribeProtectionModuleStatusResponse, err error) {
+	response = CreateDescribeProtectionModuleStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeProtectionModuleStatusWithChan invokes the waf_openapi.DescribeProtectionModuleStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeProtectionModuleStatusWithChan(request *DescribeProtectionModuleStatusRequest) (<-chan *DescribeProtectionModuleStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeProtectionModuleStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeProtectionModuleStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeProtectionModuleStatusWithCallback invokes the waf_openapi.DescribeProtectionModuleStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/describeprotectionmodulestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeProtectionModuleStatusWithCallback(request *DescribeProtectionModuleStatusRequest, callback func(response *DescribeProtectionModuleStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeProtectionModuleStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeProtectionModuleStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeProtectionModuleStatusRequest is the request struct for api DescribeProtectionModuleStatus
+type DescribeProtectionModuleStatusRequest struct {
+	*requests.RpcRequest
+	DefenseType string `position:"Query" name:"DefenseType"`
+	InstanceId  string `position:"Query" name:"InstanceId"`
+	SourceIp    string `position:"Query" name:"SourceIp"`
+	Domain      string `position:"Query" name:"Domain"`
+	Lang        string `position:"Query" name:"Lang"`
+}
+
+// DescribeProtectionModuleStatusResponse is the response struct for api DescribeProtectionModuleStatus
+type DescribeProtectionModuleStatusResponse struct {
+	*responses.BaseResponse
+	RequestId    string `json:"RequestId" xml:"RequestId"`
+	ModuleStatus int    `json:"ModuleStatus" xml:"ModuleStatus"`
+}
+
+// CreateDescribeProtectionModuleStatusRequest creates a request to invoke DescribeProtectionModuleStatus API
+func CreateDescribeProtectionModuleStatusRequest() (request *DescribeProtectionModuleStatusRequest) {
+	request = &DescribeProtectionModuleStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "DescribeProtectionModuleStatus", "waf", "openAPI")
+	return
+}
+
+// CreateDescribeProtectionModuleStatusResponse creates a response to parse from DescribeProtectionModuleStatus response
+func CreateDescribeProtectionModuleStatusResponse() (response *DescribeProtectionModuleStatusResponse) {
+	response = &DescribeProtectionModuleStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 23 - 0
services/waf-openapi/endpoint.go

@@ -0,0 +1,23 @@
+package waf_openapi
+
+// EndpointMap Endpoint Data
+var EndpointMap map[string]string
+
+// EndpointType regional or central
+var EndpointType = "regional"
+
+// GetEndpointMap Get Endpoint Data Map
+func GetEndpointMap() map[string]string {
+	if EndpointMap == nil {
+		EndpointMap = map[string]string{
+			"ap-southeast-1": "wafopenapi.ap-southeast-1.aliyuncs.com",
+			"cn-hangzhou":    "wafopenapi.cn-hangzhou.aliyuncs.com",
+		}
+	}
+	return EndpointMap
+}
+
+// GetEndpointType Get Endpoint Type Value
+func GetEndpointType() string {
+	return EndpointType
+}

+ 122 - 0
services/waf-openapi/modify_domain.go

@@ -0,0 +1,122 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyDomain invokes the waf_openapi.ModifyDomain API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifydomain.html
+func (client *Client) ModifyDomain(request *ModifyDomainRequest) (response *ModifyDomainResponse, err error) {
+	response = CreateModifyDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDomainWithChan invokes the waf_openapi.ModifyDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifydomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDomainWithChan(request *ModifyDomainRequest) (<-chan *ModifyDomainResponse, <-chan error) {
+	responseChan := make(chan *ModifyDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDomainWithCallback invokes the waf_openapi.ModifyDomain API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifydomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDomainWithCallback(request *ModifyDomainRequest, callback func(response *ModifyDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDomainRequest is the request struct for api ModifyDomain
+type ModifyDomainRequest struct {
+	*requests.RpcRequest
+	SourceIp        string           `position:"Query" name:"SourceIp"`
+	XffHeaderMode   requests.Integer `position:"Query" name:"XffHeaderMode"`
+	HttpPort        string           `position:"Query" name:"HttpPort"`
+	Http2Port       string           `position:"Query" name:"Http2Port"`
+	WriteTime       requests.Integer `position:"Query" name:"WriteTime"`
+	Lang            string           `position:"Query" name:"Lang"`
+	XffHeaders      string           `position:"Query" name:"XffHeaders"`
+	BindingIpv6     requests.Integer `position:"Query" name:"BindingIpv6"`
+	LogHeaders      string           `position:"Query" name:"LogHeaders"`
+	ConnectionTime  requests.Integer `position:"Query" name:"ConnectionTime"`
+	ClusterType     requests.Integer `position:"Query" name:"ClusterType"`
+	HttpsRedirect   requests.Integer `position:"Query" name:"HttpsRedirect"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	SourceIps       string           `position:"Query" name:"SourceIps"`
+	Domain          string           `position:"Query" name:"Domain"`
+	IsAccessProduct requests.Integer `position:"Query" name:"IsAccessProduct"`
+	ReadTime        requests.Integer `position:"Query" name:"ReadTime"`
+	HttpsPort       string           `position:"Query" name:"HttpsPort"`
+	LoadBalancing   requests.Integer `position:"Query" name:"LoadBalancing"`
+	HttpToUserIp    requests.Integer `position:"Query" name:"HttpToUserIp"`
+}
+
+// ModifyDomainResponse is the response struct for api ModifyDomain
+type ModifyDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyDomainRequest creates a request to invoke ModifyDomain API
+func CreateModifyDomainRequest() (request *ModifyDomainRequest) {
+	request = &ModifyDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyDomain", "waf", "openAPI")
+	return
+}
+
+// CreateModifyDomainResponse creates a response to parse from ModifyDomain response
+func CreateModifyDomainResponse() (response *ModifyDomainResponse) {
+	response = &ModifyDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/modify_domain_ipv6_status.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyDomainIpv6Status invokes the waf_openapi.ModifyDomainIpv6Status API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifydomainipv6status.html
+func (client *Client) ModifyDomainIpv6Status(request *ModifyDomainIpv6StatusRequest) (response *ModifyDomainIpv6StatusResponse, err error) {
+	response = CreateModifyDomainIpv6StatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyDomainIpv6StatusWithChan invokes the waf_openapi.ModifyDomainIpv6Status API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifydomainipv6status.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDomainIpv6StatusWithChan(request *ModifyDomainIpv6StatusRequest) (<-chan *ModifyDomainIpv6StatusResponse, <-chan error) {
+	responseChan := make(chan *ModifyDomainIpv6StatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDomainIpv6Status(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyDomainIpv6StatusWithCallback invokes the waf_openapi.ModifyDomainIpv6Status API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifydomainipv6status.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyDomainIpv6StatusWithCallback(request *ModifyDomainIpv6StatusRequest, callback func(response *ModifyDomainIpv6StatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDomainIpv6StatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDomainIpv6Status(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyDomainIpv6StatusRequest is the request struct for api ModifyDomainIpv6Status
+type ModifyDomainIpv6StatusRequest struct {
+	*requests.RpcRequest
+	WafVersion string `position:"Query" name:"WafVersion"`
+	Enabled    string `position:"Query" name:"Enabled"`
+	InstanceId string `position:"Query" name:"InstanceId"`
+	SourceIp   string `position:"Query" name:"SourceIp"`
+	Domain     string `position:"Query" name:"Domain"`
+	Lang       string `position:"Query" name:"Lang"`
+}
+
+// ModifyDomainIpv6StatusResponse is the response struct for api ModifyDomainIpv6Status
+type ModifyDomainIpv6StatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyDomainIpv6StatusRequest creates a request to invoke ModifyDomainIpv6Status API
+func CreateModifyDomainIpv6StatusRequest() (request *ModifyDomainIpv6StatusRequest) {
+	request = &ModifyDomainIpv6StatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyDomainIpv6Status", "waf", "openAPI")
+	return
+}
+
+// CreateModifyDomainIpv6StatusResponse creates a response to parse from ModifyDomainIpv6Status response
+func CreateModifyDomainIpv6StatusResponse() (response *ModifyDomainIpv6StatusResponse) {
+	response = &ModifyDomainIpv6StatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/waf-openapi/modify_log_retrieval_status.go

@@ -0,0 +1,107 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyLogRetrievalStatus invokes the waf_openapi.ModifyLogRetrievalStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifylogretrievalstatus.html
+func (client *Client) ModifyLogRetrievalStatus(request *ModifyLogRetrievalStatusRequest) (response *ModifyLogRetrievalStatusResponse, err error) {
+	response = CreateModifyLogRetrievalStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyLogRetrievalStatusWithChan invokes the waf_openapi.ModifyLogRetrievalStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifylogretrievalstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyLogRetrievalStatusWithChan(request *ModifyLogRetrievalStatusRequest) (<-chan *ModifyLogRetrievalStatusResponse, <-chan error) {
+	responseChan := make(chan *ModifyLogRetrievalStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyLogRetrievalStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyLogRetrievalStatusWithCallback invokes the waf_openapi.ModifyLogRetrievalStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifylogretrievalstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyLogRetrievalStatusWithCallback(request *ModifyLogRetrievalStatusRequest, callback func(response *ModifyLogRetrievalStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyLogRetrievalStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyLogRetrievalStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyLogRetrievalStatusRequest is the request struct for api ModifyLogRetrievalStatus
+type ModifyLogRetrievalStatusRequest struct {
+	*requests.RpcRequest
+	Enabled    requests.Integer `position:"Query" name:"Enabled"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	SourceIp   string           `position:"Query" name:"SourceIp"`
+	Domain     string           `position:"Query" name:"Domain"`
+	Lang       string           `position:"Query" name:"Lang"`
+}
+
+// ModifyLogRetrievalStatusResponse is the response struct for api ModifyLogRetrievalStatus
+type ModifyLogRetrievalStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyLogRetrievalStatusRequest creates a request to invoke ModifyLogRetrievalStatus API
+func CreateModifyLogRetrievalStatusRequest() (request *ModifyLogRetrievalStatusRequest) {
+	request = &ModifyLogRetrievalStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyLogRetrievalStatus", "waf", "openAPI")
+	return
+}
+
+// CreateModifyLogRetrievalStatusResponse creates a response to parse from ModifyLogRetrievalStatus response
+func CreateModifyLogRetrievalStatusResponse() (response *ModifyLogRetrievalStatusResponse) {
+	response = &ModifyLogRetrievalStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/waf-openapi/modify_log_service_status.go

@@ -0,0 +1,107 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyLogServiceStatus invokes the waf_openapi.ModifyLogServiceStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifylogservicestatus.html
+func (client *Client) ModifyLogServiceStatus(request *ModifyLogServiceStatusRequest) (response *ModifyLogServiceStatusResponse, err error) {
+	response = CreateModifyLogServiceStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyLogServiceStatusWithChan invokes the waf_openapi.ModifyLogServiceStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifylogservicestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyLogServiceStatusWithChan(request *ModifyLogServiceStatusRequest) (<-chan *ModifyLogServiceStatusResponse, <-chan error) {
+	responseChan := make(chan *ModifyLogServiceStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyLogServiceStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyLogServiceStatusWithCallback invokes the waf_openapi.ModifyLogServiceStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifylogservicestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyLogServiceStatusWithCallback(request *ModifyLogServiceStatusRequest, callback func(response *ModifyLogServiceStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyLogServiceStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyLogServiceStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyLogServiceStatusRequest is the request struct for api ModifyLogServiceStatus
+type ModifyLogServiceStatusRequest struct {
+	*requests.RpcRequest
+	Enabled    requests.Integer `position:"Query" name:"Enabled"`
+	InstanceId string           `position:"Query" name:"InstanceId"`
+	SourceIp   string           `position:"Query" name:"SourceIp"`
+	Domain     string           `position:"Query" name:"Domain"`
+	Lang       string           `position:"Query" name:"Lang"`
+}
+
+// ModifyLogServiceStatusResponse is the response struct for api ModifyLogServiceStatus
+type ModifyLogServiceStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyLogServiceStatusRequest creates a request to invoke ModifyLogServiceStatus API
+func CreateModifyLogServiceStatusRequest() (request *ModifyLogServiceStatusRequest) {
+	request = &ModifyLogServiceStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyLogServiceStatus", "waf", "openAPI")
+	return
+}
+
+// CreateModifyLogServiceStatusResponse creates a response to parse from ModifyLogServiceStatus response
+func CreateModifyLogServiceStatusResponse() (response *ModifyLogServiceStatusResponse) {
+	response = &ModifyLogServiceStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/modify_protection_module_mode.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyProtectionModuleMode invokes the waf_openapi.ModifyProtectionModuleMode API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulemode.html
+func (client *Client) ModifyProtectionModuleMode(request *ModifyProtectionModuleModeRequest) (response *ModifyProtectionModuleModeResponse, err error) {
+	response = CreateModifyProtectionModuleModeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyProtectionModuleModeWithChan invokes the waf_openapi.ModifyProtectionModuleMode API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulemode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionModuleModeWithChan(request *ModifyProtectionModuleModeRequest) (<-chan *ModifyProtectionModuleModeResponse, <-chan error) {
+	responseChan := make(chan *ModifyProtectionModuleModeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyProtectionModuleMode(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyProtectionModuleModeWithCallback invokes the waf_openapi.ModifyProtectionModuleMode API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulemode.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionModuleModeWithCallback(request *ModifyProtectionModuleModeRequest, callback func(response *ModifyProtectionModuleModeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyProtectionModuleModeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyProtectionModuleMode(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyProtectionModuleModeRequest is the request struct for api ModifyProtectionModuleMode
+type ModifyProtectionModuleModeRequest struct {
+	*requests.RpcRequest
+	DefenseType string           `position:"Query" name:"DefenseType"`
+	Mode        requests.Integer `position:"Query" name:"Mode"`
+	InstanceId  string           `position:"Query" name:"InstanceId"`
+	SourceIp    string           `position:"Query" name:"SourceIp"`
+	Domain      string           `position:"Query" name:"Domain"`
+	Lang        string           `position:"Query" name:"Lang"`
+}
+
+// ModifyProtectionModuleModeResponse is the response struct for api ModifyProtectionModuleMode
+type ModifyProtectionModuleModeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyProtectionModuleModeRequest creates a request to invoke ModifyProtectionModuleMode API
+func CreateModifyProtectionModuleModeRequest() (request *ModifyProtectionModuleModeRequest) {
+	request = &ModifyProtectionModuleModeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyProtectionModuleMode", "waf", "openAPI")
+	return
+}
+
+// CreateModifyProtectionModuleModeResponse creates a response to parse from ModifyProtectionModuleMode response
+func CreateModifyProtectionModuleModeResponse() (response *ModifyProtectionModuleModeResponse) {
+	response = &ModifyProtectionModuleModeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/waf-openapi/modify_protection_module_rule.go

@@ -0,0 +1,110 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyProtectionModuleRule invokes the waf_openapi.ModifyProtectionModuleRule API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulerule.html
+func (client *Client) ModifyProtectionModuleRule(request *ModifyProtectionModuleRuleRequest) (response *ModifyProtectionModuleRuleResponse, err error) {
+	response = CreateModifyProtectionModuleRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyProtectionModuleRuleWithChan invokes the waf_openapi.ModifyProtectionModuleRule API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulerule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionModuleRuleWithChan(request *ModifyProtectionModuleRuleRequest) (<-chan *ModifyProtectionModuleRuleResponse, <-chan error) {
+	responseChan := make(chan *ModifyProtectionModuleRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyProtectionModuleRule(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyProtectionModuleRuleWithCallback invokes the waf_openapi.ModifyProtectionModuleRule API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulerule.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionModuleRuleWithCallback(request *ModifyProtectionModuleRuleRequest, callback func(response *ModifyProtectionModuleRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyProtectionModuleRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyProtectionModuleRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyProtectionModuleRuleRequest is the request struct for api ModifyProtectionModuleRule
+type ModifyProtectionModuleRuleRequest struct {
+	*requests.RpcRequest
+	Rule        string           `position:"Query" name:"Rule"`
+	LockVersion requests.Integer `position:"Query" name:"LockVersion"`
+	SourceIp    string           `position:"Query" name:"SourceIp"`
+	Lang        string           `position:"Query" name:"Lang"`
+	DefenseType string           `position:"Query" name:"DefenseType"`
+	InstanceId  string           `position:"Query" name:"InstanceId"`
+	Domain      string           `position:"Query" name:"Domain"`
+	RuleId      requests.Integer `position:"Query" name:"RuleId"`
+}
+
+// ModifyProtectionModuleRuleResponse is the response struct for api ModifyProtectionModuleRule
+type ModifyProtectionModuleRuleResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyProtectionModuleRuleRequest creates a request to invoke ModifyProtectionModuleRule API
+func CreateModifyProtectionModuleRuleRequest() (request *ModifyProtectionModuleRuleRequest) {
+	request = &ModifyProtectionModuleRuleRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyProtectionModuleRule", "waf", "openAPI")
+	return
+}
+
+// CreateModifyProtectionModuleRuleResponse creates a response to parse from ModifyProtectionModuleRule response
+func CreateModifyProtectionModuleRuleResponse() (response *ModifyProtectionModuleRuleResponse) {
+	response = &ModifyProtectionModuleRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/modify_protection_module_status.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyProtectionModuleStatus invokes the waf_openapi.ModifyProtectionModuleStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulestatus.html
+func (client *Client) ModifyProtectionModuleStatus(request *ModifyProtectionModuleStatusRequest) (response *ModifyProtectionModuleStatusResponse, err error) {
+	response = CreateModifyProtectionModuleStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyProtectionModuleStatusWithChan invokes the waf_openapi.ModifyProtectionModuleStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionModuleStatusWithChan(request *ModifyProtectionModuleStatusRequest) (<-chan *ModifyProtectionModuleStatusResponse, <-chan error) {
+	responseChan := make(chan *ModifyProtectionModuleStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyProtectionModuleStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyProtectionModuleStatusWithCallback invokes the waf_openapi.ModifyProtectionModuleStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionmodulestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionModuleStatusWithCallback(request *ModifyProtectionModuleStatusRequest, callback func(response *ModifyProtectionModuleStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyProtectionModuleStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyProtectionModuleStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyProtectionModuleStatusRequest is the request struct for api ModifyProtectionModuleStatus
+type ModifyProtectionModuleStatusRequest struct {
+	*requests.RpcRequest
+	DefenseType  string           `position:"Query" name:"DefenseType"`
+	InstanceId   string           `position:"Query" name:"InstanceId"`
+	SourceIp     string           `position:"Query" name:"SourceIp"`
+	Domain       string           `position:"Query" name:"Domain"`
+	ModuleStatus requests.Integer `position:"Query" name:"ModuleStatus"`
+	Lang         string           `position:"Query" name:"Lang"`
+}
+
+// ModifyProtectionModuleStatusResponse is the response struct for api ModifyProtectionModuleStatus
+type ModifyProtectionModuleStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyProtectionModuleStatusRequest creates a request to invoke ModifyProtectionModuleStatus API
+func CreateModifyProtectionModuleStatusRequest() (request *ModifyProtectionModuleStatusRequest) {
+	request = &ModifyProtectionModuleStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyProtectionModuleStatus", "waf", "openAPI")
+	return
+}
+
+// CreateModifyProtectionModuleStatusResponse creates a response to parse from ModifyProtectionModuleStatus response
+func CreateModifyProtectionModuleStatusResponse() (response *ModifyProtectionModuleStatusResponse) {
+	response = &ModifyProtectionModuleStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/waf-openapi/modify_protection_rule_cache_status.go

@@ -0,0 +1,108 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyProtectionRuleCacheStatus invokes the waf_openapi.ModifyProtectionRuleCacheStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionrulecachestatus.html
+func (client *Client) ModifyProtectionRuleCacheStatus(request *ModifyProtectionRuleCacheStatusRequest) (response *ModifyProtectionRuleCacheStatusResponse, err error) {
+	response = CreateModifyProtectionRuleCacheStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyProtectionRuleCacheStatusWithChan invokes the waf_openapi.ModifyProtectionRuleCacheStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionrulecachestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionRuleCacheStatusWithChan(request *ModifyProtectionRuleCacheStatusRequest) (<-chan *ModifyProtectionRuleCacheStatusResponse, <-chan error) {
+	responseChan := make(chan *ModifyProtectionRuleCacheStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyProtectionRuleCacheStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyProtectionRuleCacheStatusWithCallback invokes the waf_openapi.ModifyProtectionRuleCacheStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionrulecachestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionRuleCacheStatusWithCallback(request *ModifyProtectionRuleCacheStatusRequest, callback func(response *ModifyProtectionRuleCacheStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyProtectionRuleCacheStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyProtectionRuleCacheStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyProtectionRuleCacheStatusRequest is the request struct for api ModifyProtectionRuleCacheStatus
+type ModifyProtectionRuleCacheStatusRequest struct {
+	*requests.RpcRequest
+	DefenseType string           `position:"Query" name:"DefenseType"`
+	InstanceId  string           `position:"Query" name:"InstanceId"`
+	SourceIp    string           `position:"Query" name:"SourceIp"`
+	Domain      string           `position:"Query" name:"Domain"`
+	Lang        string           `position:"Query" name:"Lang"`
+	RuleId      requests.Integer `position:"Query" name:"RuleId"`
+}
+
+// ModifyProtectionRuleCacheStatusResponse is the response struct for api ModifyProtectionRuleCacheStatus
+type ModifyProtectionRuleCacheStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyProtectionRuleCacheStatusRequest creates a request to invoke ModifyProtectionRuleCacheStatus API
+func CreateModifyProtectionRuleCacheStatusRequest() (request *ModifyProtectionRuleCacheStatusRequest) {
+	request = &ModifyProtectionRuleCacheStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyProtectionRuleCacheStatus", "waf", "openAPI")
+	return
+}
+
+// CreateModifyProtectionRuleCacheStatusResponse creates a response to parse from ModifyProtectionRuleCacheStatus response
+func CreateModifyProtectionRuleCacheStatusResponse() (response *ModifyProtectionRuleCacheStatusResponse) {
+	response = &ModifyProtectionRuleCacheStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/waf-openapi/modify_protection_rule_status.go

@@ -0,0 +1,110 @@
+package waf_openapi
+
+//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"
+)
+
+// ModifyProtectionRuleStatus invokes the waf_openapi.ModifyProtectionRuleStatus API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionrulestatus.html
+func (client *Client) ModifyProtectionRuleStatus(request *ModifyProtectionRuleStatusRequest) (response *ModifyProtectionRuleStatusResponse, err error) {
+	response = CreateModifyProtectionRuleStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyProtectionRuleStatusWithChan invokes the waf_openapi.ModifyProtectionRuleStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionrulestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionRuleStatusWithChan(request *ModifyProtectionRuleStatusRequest) (<-chan *ModifyProtectionRuleStatusResponse, <-chan error) {
+	responseChan := make(chan *ModifyProtectionRuleStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyProtectionRuleStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyProtectionRuleStatusWithCallback invokes the waf_openapi.ModifyProtectionRuleStatus API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/modifyprotectionrulestatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyProtectionRuleStatusWithCallback(request *ModifyProtectionRuleStatusRequest, callback func(response *ModifyProtectionRuleStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyProtectionRuleStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyProtectionRuleStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyProtectionRuleStatusRequest is the request struct for api ModifyProtectionRuleStatus
+type ModifyProtectionRuleStatusRequest struct {
+	*requests.RpcRequest
+	LockVersion requests.Integer `position:"Query" name:"LockVersion"`
+	SourceIp    string           `position:"Query" name:"SourceIp"`
+	Lang        string           `position:"Query" name:"Lang"`
+	DefenseType string           `position:"Query" name:"DefenseType"`
+	RuleStatus  requests.Integer `position:"Query" name:"RuleStatus"`
+	InstanceId  string           `position:"Query" name:"InstanceId"`
+	Domain      string           `position:"Query" name:"Domain"`
+	RuleId      requests.Integer `position:"Query" name:"RuleId"`
+}
+
+// ModifyProtectionRuleStatusResponse is the response struct for api ModifyProtectionRuleStatus
+type ModifyProtectionRuleStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyProtectionRuleStatusRequest creates a request to invoke ModifyProtectionRuleStatus API
+func CreateModifyProtectionRuleStatusRequest() (request *ModifyProtectionRuleStatusRequest) {
+	request = &ModifyProtectionRuleStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "ModifyProtectionRuleStatus", "waf", "openAPI")
+	return
+}
+
+// CreateModifyProtectionRuleStatusResponse creates a response to parse from ModifyProtectionRuleStatus response
+func CreateModifyProtectionRuleStatusResponse() (response *ModifyProtectionRuleStatusResponse) {
+	response = &ModifyProtectionRuleStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/waf-openapi/set_domain_rule_group.go

@@ -0,0 +1,109 @@
+package waf_openapi
+
+//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"
+)
+
+// SetDomainRuleGroup invokes the waf_openapi.SetDomainRuleGroup API synchronously
+// api document: https://help.aliyun.com/api/waf-openapi/setdomainrulegroup.html
+func (client *Client) SetDomainRuleGroup(request *SetDomainRuleGroupRequest) (response *SetDomainRuleGroupResponse, err error) {
+	response = CreateSetDomainRuleGroupResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetDomainRuleGroupWithChan invokes the waf_openapi.SetDomainRuleGroup API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/setdomainrulegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetDomainRuleGroupWithChan(request *SetDomainRuleGroupRequest) (<-chan *SetDomainRuleGroupResponse, <-chan error) {
+	responseChan := make(chan *SetDomainRuleGroupResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetDomainRuleGroup(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetDomainRuleGroupWithCallback invokes the waf_openapi.SetDomainRuleGroup API asynchronously
+// api document: https://help.aliyun.com/api/waf-openapi/setdomainrulegroup.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetDomainRuleGroupWithCallback(request *SetDomainRuleGroupRequest, callback func(response *SetDomainRuleGroupResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetDomainRuleGroupResponse
+		var err error
+		defer close(result)
+		response, err = client.SetDomainRuleGroup(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetDomainRuleGroupRequest is the request struct for api SetDomainRuleGroup
+type SetDomainRuleGroupRequest struct {
+	*requests.RpcRequest
+	WafVersion      requests.Integer `position:"Query" name:"WafVersion"`
+	RuleGroupId     requests.Integer `position:"Query" name:"RuleGroupId"`
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	SourceIp        string           `position:"Query" name:"SourceIp"`
+	Lang            string           `position:"Query" name:"Lang"`
+	Domains         string           `position:"Query" name:"Domains"`
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+}
+
+// SetDomainRuleGroupResponse is the response struct for api SetDomainRuleGroup
+type SetDomainRuleGroupResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetDomainRuleGroupRequest creates a request to invoke SetDomainRuleGroup API
+func CreateSetDomainRuleGroupRequest() (request *SetDomainRuleGroupRequest) {
+	request = &SetDomainRuleGroupRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("waf-openapi", "2019-09-10", "SetDomainRuleGroup", "waf", "openAPI")
+	return
+}
+
+// CreateSetDomainRuleGroupResponse creates a response to parse from SetDomainRuleGroup response
+func CreateSetDomainRuleGroupResponse() (response *SetDomainRuleGroupResponse) {
+	response = &SetDomainRuleGroupResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 25 - 0
services/waf-openapi/struct_certificate.go

@@ -0,0 +1,25 @@
+package waf_openapi
+
+//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.
+
+// Certificate is a nested struct in waf_openapi response
+type Certificate struct {
+	CommonName      string   `json:"CommonName" xml:"CommonName"`
+	IsUsing         bool     `json:"IsUsing" xml:"IsUsing"`
+	CertificateName string   `json:"CertificateName" xml:"CertificateName"`
+	CertificateId   int64    `json:"CertificateId" xml:"CertificateId"`
+	Sans            []string `json:"Sans" xml:"Sans"`
+}

+ 21 - 0
services/waf-openapi/struct_certificates.go

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

+ 35 - 0
services/waf-openapi/struct_domain.go

@@ -0,0 +1,35 @@
+package waf_openapi
+
+//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.
+
+// Domain is a nested struct in waf_openapi response
+type Domain struct {
+	SourceIps       string `json:"SourceIps" xml:"SourceIps"`
+	HttpToUserIp    int    `json:"HttpToUserIp" xml:"HttpToUserIp"`
+	HttpsRedirect   int    `json:"HttpsRedirect" xml:"HttpsRedirect"`
+	Http2Port       string `json:"Http2Port" xml:"Http2Port"`
+	HttpPort        string `json:"HttpPort" xml:"HttpPort"`
+	LoadBalancing   int    `json:"LoadBalancing" xml:"LoadBalancing"`
+	Cname           string `json:"Cname" xml:"Cname"`
+	IsAccessProduct int    `json:"IsAccessProduct" xml:"IsAccessProduct"`
+	HttpsPort       string `json:"HttpsPort" xml:"HttpsPort"`
+	Version         int64  `json:"Version" xml:"Version"`
+	LogHeaders      string `json:"LogHeaders" xml:"LogHeaders"`
+	ClusterType     int    `json:"ClusterType" xml:"ClusterType"`
+	ConnectionTime  int    `json:"ConnectionTime" xml:"ConnectionTime"`
+	ReadTime        int    `json:"ReadTime" xml:"ReadTime"`
+	WriteTime       int    `json:"WriteTime" xml:"WriteTime"`
+}

+ 30 - 0
services/waf-openapi/struct_domain_config.go

@@ -0,0 +1,30 @@
+package waf_openapi
+
+//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.
+
+// DomainConfig is a nested struct in waf_openapi response
+type DomainConfig struct {
+	Domain    string  `json:"Domain" xml:"Domain"`
+	Version   int64   `json:"Version" xml:"Version"`
+	Status    int     `json:"Status" xml:"Status"`
+	AclStatus int     `json:"AclStatus" xml:"AclStatus"`
+	WafMode   int     `json:"WafMode" xml:"WafMode"`
+	WafStatus int     `json:"WafStatus" xml:"WafStatus"`
+	Owner     string  `json:"Owner" xml:"Owner"`
+	CcMode    int     `json:"CcMode" xml:"CcMode"`
+	CcStatus  int     `json:"CcStatus" xml:"CcStatus"`
+	Profile   Profile `json:"Profile" xml:"Profile"`
+}

+ 21 - 0
services/waf-openapi/struct_domain_configs_in_describe_domain_advance_configs.go

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

+ 21 - 0
services/waf-openapi/struct_domain_configs_in_describe_domain_basic_configs.go

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

+ 21 - 0
services/waf-openapi/struct_domain_names.go

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

+ 28 - 0
services/waf-openapi/struct_instance_info.go

@@ -0,0 +1,28 @@
+package waf_openapi
+
+//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.
+
+// InstanceInfo is a nested struct in waf_openapi response
+type InstanceInfo struct {
+	InDebt     int    `json:"InDebt" xml:"InDebt"`
+	InstanceId string `json:"InstanceId" xml:"InstanceId"`
+	PayType    int    `json:"PayType" xml:"PayType"`
+	EndDate    int64  `json:"EndDate" xml:"EndDate"`
+	RemainDay  int    `json:"RemainDay" xml:"RemainDay"`
+	Region     string `json:"Region" xml:"Region"`
+	Trial      int    `json:"Trial" xml:"Trial"`
+	Status     int    `json:"Status" xml:"Status"`
+}

+ 22 - 0
services/waf-openapi/struct_instance_spec_info.go

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

+ 21 - 0
services/waf-openapi/struct_instance_spec_infos.go

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

+ 31 - 0
services/waf-openapi/struct_profile.go

@@ -0,0 +1,31 @@
+package waf_openapi
+
+//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.
+
+// Profile is a nested struct in waf_openapi response
+type Profile struct {
+	Cname              string `json:"Cname" xml:"Cname"`
+	ResolvedType       int    `json:"ResolvedType" xml:"ResolvedType"`
+	VipServiceStatus   int    `json:"VipServiceStatus" xml:"VipServiceStatus"`
+	CertStatus         int    `json:"CertStatus" xml:"CertStatus"`
+	ExclusiveVipStatus int    `json:"ExclusiveVipStatus" xml:"ExclusiveVipStatus"`
+	Ipv6Status         int    `json:"Ipv6Status" xml:"Ipv6Status"`
+	HttpPort           string `json:"HttpPort" xml:"HttpPort"`
+	HttpsPort          string `json:"HttpsPort" xml:"HttpsPort"`
+	Http2Port          string `json:"Http2Port" xml:"Http2Port"`
+	Rs                 string `json:"Rs" xml:"Rs"`
+	ClusterType        int    `json:"ClusterType" xml:"ClusterType"`
+}

+ 25 - 0
services/waf-openapi/struct_rule.go

@@ -0,0 +1,25 @@
+package waf_openapi
+
+//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.
+
+// Rule is a nested struct in waf_openapi response
+type Rule struct {
+	RuleId  int64  `json:"RuleId" xml:"RuleId"`
+	Version int64  `json:"Version" xml:"Version"`
+	Content string `json:"Content" xml:"Content"`
+	Time    int64  `json:"Time" xml:"Time"`
+	Status  int64  `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/waf-openapi/struct_rules.go

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

+ 21 - 0
services/waf-openapi/struct_sans.go

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