Ver código fonte

merge master 0.9.0

Signed-off-by: gaort <rutong.grt@alibaba-inc.com>
gaort 7 anos atrás
pai
commit
c6abef8767

+ 13 - 1
ChangeLog.txt

@@ -1,9 +1,21 @@
-2018-01-24 Version: 0.8.4
+2018-01-24 Version: 0.9.1
 1. improve: asyncWithChan avoid panic of "write on closed channel"
 2. improve: asyncWithChan support select case usage
 3. bug fix: repeated signature nonce while retry
 4. bug fix: calling request.GetUrl() ahead of client.DoAction() will cause problems
 
+2018-01-24 Version: 0.9.0
+1, Publish domain config interface, allow users to create or delete a domain protect config under DDoS Pro.
+2, Publish domain config query interface, allow users to query a list of domain config or a single domain config.
+3, Publish domain proxy modify interface, allow users to set domain transmit proxy.
+4, Publish domain transmit rule config interface, including modify and delete type.
+5, Publish domain black and white list config interface.
+6, Publish domain cname auto status config interface.
+7, Publish domain certificate upload interface.
+8, Publish domain qps graph query interface.
+9, Publish ip attack events and traffic graph query interface.
+
+
 2018-01-23 Version: 0.8.3
 1, Tesla Dam API release.
 2, Add ActionDiskCheck, ActionDiskMask, ActionDiskRma, HostGets.

+ 43 - 0
services/ddospro/client.go

@@ -0,0 +1,43 @@
+package ddospro
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+type Client struct {
+	sdk.Client
+}
+
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}

+ 94 - 0
services/ddospro/create_domain.go

@@ -0,0 +1,94 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) CreateDomain(request *CreateDomainRequest) (response *CreateDomainResponse, err error) {
+	response = CreateCreateDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+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)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+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
+}
+
+type CreateDomainRequest struct {
+	*requests.RpcRequest
+	CcEnable        requests.Boolean `position:"Query" name:"CcEnable"`
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	Ip              string           `position:"Query" name:"Ip"`
+	ProxyType       *[]string        `position:"Query" name:"ProxyType"  type:"Repeated"`
+	RealServer      *[]string        `position:"Query" name:"RealServer"  type:"Repeated"`
+	Type            string           `position:"Query" name:"Type"`
+}
+
+type CreateDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateCreateDomainRequest() (request *CreateDomainRequest) {
+	request = &CreateDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "CreateDomain", "", "")
+	return
+}
+
+func CreateCreateDomainResponse() (response *CreateDomainResponse) {
+	response = &CreateDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 89 - 0
services/ddospro/delete_domain.go

@@ -0,0 +1,89 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DeleteDomain(request *DeleteDomainRequest) (response *DeleteDomainResponse, err error) {
+	response = CreateDeleteDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+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)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+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
+}
+
+type DeleteDomainRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+}
+
+type DeleteDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateDeleteDomainRequest() (request *DeleteDomainRequest) {
+	request = &DeleteDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DeleteDomain", "", "")
+	return
+}
+
+func CreateDeleteDomainResponse() (response *DeleteDomainResponse) {
+	response = &DeleteDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 90 - 0
services/ddospro/delete_domain_transmit_rule.go

@@ -0,0 +1,90 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DeleteDomainTransmitRule(request *DeleteDomainTransmitRuleRequest) (response *DeleteDomainTransmitRuleResponse, err error) {
+	response = CreateDeleteDomainTransmitRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DeleteDomainTransmitRuleWithChan(request *DeleteDomainTransmitRuleRequest) (<-chan *DeleteDomainTransmitRuleResponse, <-chan error) {
+	responseChan := make(chan *DeleteDomainTransmitRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteDomainTransmitRule(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DeleteDomainTransmitRuleWithCallback(request *DeleteDomainTransmitRuleRequest, callback func(response *DeleteDomainTransmitRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteDomainTransmitRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteDomainTransmitRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DeleteDomainTransmitRuleRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	Ip              string           `position:"Query" name:"Ip"`
+}
+
+type DeleteDomainTransmitRuleResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateDeleteDomainTransmitRuleRequest() (request *DeleteDomainTransmitRuleRequest) {
+	request = &DeleteDomainTransmitRuleRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DeleteDomainTransmitRule", "", "")
+	return
+}
+
+func CreateDeleteDomainTransmitRuleResponse() (response *DeleteDomainTransmitRuleResponse) {
+	response = &DeleteDomainTransmitRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 93 - 0
services/ddospro/describe_back_source_cidr.go

@@ -0,0 +1,93 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DescribeBackSourceCidr(request *DescribeBackSourceCidrRequest) (response *DescribeBackSourceCidrResponse, err error) {
+	response = CreateDescribeBackSourceCidrResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeBackSourceCidrWithChan(request *DescribeBackSourceCidrRequest) (<-chan *DescribeBackSourceCidrResponse, <-chan error) {
+	responseChan := make(chan *DescribeBackSourceCidrResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBackSourceCidr(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeBackSourceCidrWithCallback(request *DescribeBackSourceCidrRequest, callback func(response *DescribeBackSourceCidrResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBackSourceCidrResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBackSourceCidr(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeBackSourceCidrRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Line            string           `position:"Query" name:"Line"`
+	Region          string           `position:"Query" name:"Region"`
+}
+
+type DescribeBackSourceCidrResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	CidrList  struct {
+		Cidr []string `json:"Cidr" xml:"Cidr"`
+	} `json:"CidrList" xml:"CidrList"`
+}
+
+func CreateDescribeBackSourceCidrRequest() (request *DescribeBackSourceCidrRequest) {
+	request = &DescribeBackSourceCidrRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DescribeBackSourceCidr", "", "")
+	return
+}
+
+func CreateDescribeBackSourceCidrResponse() (response *DescribeBackSourceCidrResponse) {
+	response = &DescribeBackSourceCidrResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 90 - 0
services/ddospro/describe_cname_auto_status.go

@@ -0,0 +1,90 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DescribeCnameAutoStatus(request *DescribeCnameAutoStatusRequest) (response *DescribeCnameAutoStatusResponse, err error) {
+	response = CreateDescribeCnameAutoStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeCnameAutoStatusWithChan(request *DescribeCnameAutoStatusRequest) (<-chan *DescribeCnameAutoStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeCnameAutoStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCnameAutoStatus(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeCnameAutoStatusWithCallback(request *DescribeCnameAutoStatusRequest, callback func(response *DescribeCnameAutoStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCnameAutoStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCnameAutoStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeCnameAutoStatusRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+}
+
+type DescribeCnameAutoStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Status    bool   `json:"Status" xml:"Status"`
+}
+
+func CreateDescribeCnameAutoStatusRequest() (request *DescribeCnameAutoStatusRequest) {
+	request = &DescribeCnameAutoStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DescribeCnameAutoStatus", "", "")
+	return
+}
+
+func CreateDescribeCnameAutoStatusResponse() (response *DescribeCnameAutoStatusResponse) {
+	response = &DescribeCnameAutoStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 93 - 0
services/ddospro/describe_domain_black_white_list.go

@@ -0,0 +1,93 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DescribeDomainBlackWhiteList(request *DescribeDomainBlackWhiteListRequest) (response *DescribeDomainBlackWhiteListResponse, err error) {
+	response = CreateDescribeDomainBlackWhiteListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeDomainBlackWhiteListWithChan(request *DescribeDomainBlackWhiteListRequest) (<-chan *DescribeDomainBlackWhiteListResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainBlackWhiteListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainBlackWhiteList(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeDomainBlackWhiteListWithCallback(request *DescribeDomainBlackWhiteListRequest, callback func(response *DescribeDomainBlackWhiteListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainBlackWhiteListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainBlackWhiteList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeDomainBlackWhiteListRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+}
+
+type DescribeDomainBlackWhiteListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Data      struct {
+		BlackList string `json:"BlackList" xml:"BlackList"`
+		WhiteList string `json:"WhiteList" xml:"WhiteList"`
+	} `json:"Data" xml:"Data"`
+}
+
+func CreateDescribeDomainBlackWhiteListRequest() (request *DescribeDomainBlackWhiteListRequest) {
+	request = &DescribeDomainBlackWhiteListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DescribeDomainBlackWhiteList", "", "")
+	return
+}
+
+func CreateDescribeDomainBlackWhiteListResponse() (response *DescribeDomainBlackWhiteListResponse) {
+	response = &DescribeDomainBlackWhiteListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ddospro/describe_domain_config.go

@@ -0,0 +1,111 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DescribeDomainConfig(request *DescribeDomainConfigRequest) (response *DescribeDomainConfigResponse, err error) {
+	response = CreateDescribeDomainConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeDomainConfigWithChan(request *DescribeDomainConfigRequest) (<-chan *DescribeDomainConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainConfig(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeDomainConfigWithCallback(request *DescribeDomainConfigRequest, callback func(response *DescribeDomainConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeDomainConfigRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+}
+
+type DescribeDomainConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Config    struct {
+		Domain    string `json:"Domain" xml:"Domain"`
+		Cname     string `json:"Cname" xml:"Cname"`
+		Instances struct {
+			Instance []struct {
+				InstanceRemark string `json:"InstanceRemark" xml:"InstanceRemark"`
+				InstanceId     string `json:"InstanceId" xml:"InstanceId"`
+				Rules          struct {
+					Rule []struct {
+						Line          string `json:"Line" xml:"Line"`
+						Ip            string `json:"Ip" xml:"Ip"`
+						ProxyTypeList struct {
+							ProxyType []string `json:"ProxyType" xml:"ProxyType"`
+						} `json:"ProxyTypeList" xml:"ProxyTypeList"`
+						RealServers struct {
+							RealServer []string `json:"RealServer" xml:"RealServer"`
+						} `json:"RealServers" xml:"RealServers"`
+					} `json:"Rule" xml:"Rule"`
+				} `json:"Rules" xml:"Rules"`
+			} `json:"Instance" xml:"Instance"`
+		} `json:"Instances" xml:"Instances"`
+	} `json:"Config" xml:"Config"`
+}
+
+func CreateDescribeDomainConfigRequest() (request *DescribeDomainConfigRequest) {
+	request = &DescribeDomainConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DescribeDomainConfig", "", "")
+	return
+}
+
+func CreateDescribeDomainConfigResponse() (response *DescribeDomainConfigResponse) {
+	response = &DescribeDomainConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 102 - 0
services/ddospro/describe_domain_qps.go

@@ -0,0 +1,102 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DescribeDomainQps(request *DescribeDomainQpsRequest) (response *DescribeDomainQpsResponse, err error) {
+	response = CreateDescribeDomainQpsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeDomainQpsWithChan(request *DescribeDomainQpsRequest) (<-chan *DescribeDomainQpsResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainQpsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainQps(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeDomainQpsWithCallback(request *DescribeDomainQpsRequest, callback func(response *DescribeDomainQpsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainQpsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainQps(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeDomainQpsRequest struct {
+	*requests.RpcRequest
+	InstanceId      string           `position:"Query" name:"InstanceId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	EndDateMillis   requests.Integer `position:"Query" name:"EndDateMillis"`
+	StartDateMillis requests.Integer `position:"Query" name:"StartDateMillis"`
+}
+
+type DescribeDomainQpsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      struct {
+		Total     []string `json:"Total" xml:"Total"`
+		Attacks   []string `json:"Attacks" xml:"Attacks"`
+		TimeScope struct {
+			Interval int `json:"Interval" xml:"Interval"`
+			Start    int `json:"Start" xml:"Start"`
+		} `json:"TimeScope" xml:"TimeScope"`
+	} `json:"Data" xml:"Data"`
+}
+
+func CreateDescribeDomainQpsRequest() (request *DescribeDomainQpsRequest) {
+	request = &DescribeDomainQpsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DescribeDomainQps", "", "")
+	return
+}
+
+func CreateDescribeDomainQpsResponse() (response *DescribeDomainQpsResponse) {
+	response = &DescribeDomainQpsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/ddospro/describe_ip_attack_event.go

@@ -0,0 +1,107 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DescribeIpAttackEvent(request *DescribeIpAttackEventRequest) (response *DescribeIpAttackEventResponse, err error) {
+	response = CreateDescribeIpAttackEventResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeIpAttackEventWithChan(request *DescribeIpAttackEventRequest) (<-chan *DescribeIpAttackEventResponse, <-chan error) {
+	responseChan := make(chan *DescribeIpAttackEventResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeIpAttackEvent(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeIpAttackEventWithCallback(request *DescribeIpAttackEventRequest, callback func(response *DescribeIpAttackEventResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeIpAttackEventResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeIpAttackEvent(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeIpAttackEventRequest struct {
+	*requests.RpcRequest
+	Ip              string           `position:"Query" name:"Ip"`
+	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	Start           requests.Integer `position:"Query" name:"Start"`
+	EndDateMillis   requests.Integer `position:"Query" name:"EndDateMillis"`
+	StartDateMillis requests.Integer `position:"Query" name:"StartDateMillis"`
+}
+
+type DescribeIpAttackEventResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      struct {
+		PageInfo struct {
+			Total int `json:"Total" xml:"Total"`
+		} `json:"PageInfo" xml:"PageInfo"`
+		List []struct {
+			AttackType      string `json:"AttackType" xml:"AttackType"`
+			Duration        string `json:"Duration" xml:"Duration"`
+			StartTimeMillis int    `json:"StartTimeMillis" xml:"StartTimeMillis"`
+			EndTimeMillis   int    `json:"EndTimeMillis" xml:"EndTimeMillis"`
+			EventType       int    `json:"eventType" xml:"eventType"`
+		} `json:"List" xml:"List"`
+	} `json:"Data" xml:"Data"`
+}
+
+func CreateDescribeIpAttackEventRequest() (request *DescribeIpAttackEventRequest) {
+	request = &DescribeIpAttackEventRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DescribeIpAttackEvent", "", "")
+	return
+}
+
+func CreateDescribeIpAttackEventResponse() (response *DescribeIpAttackEventResponse) {
+	response = &DescribeIpAttackEventResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 103 - 0
services/ddospro/describe_ip_traffic.go

@@ -0,0 +1,103 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) DescribeIpTraffic(request *DescribeIpTrafficRequest) (response *DescribeIpTrafficResponse, err error) {
+	response = CreateDescribeIpTrafficResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) DescribeIpTrafficWithChan(request *DescribeIpTrafficRequest) (<-chan *DescribeIpTrafficResponse, <-chan error) {
+	responseChan := make(chan *DescribeIpTrafficResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeIpTraffic(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) DescribeIpTrafficWithCallback(request *DescribeIpTrafficRequest, callback func(response *DescribeIpTrafficResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeIpTrafficResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeIpTraffic(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type DescribeIpTrafficRequest struct {
+	*requests.RpcRequest
+	Ip              string           `position:"Query" name:"Ip"`
+	EndDateMillis   requests.Integer `position:"Query" name:"EndDateMillis"`
+	StartDateMillis requests.Integer `position:"Query" name:"StartDateMillis"`
+}
+
+type DescribeIpTrafficResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Success   bool   `json:"Success" xml:"Success"`
+	Code      string `json:"Code" xml:"Code"`
+	Message   string `json:"Message" xml:"Message"`
+	Data      struct {
+		PpsDrop   []string `json:"PpsDrop" xml:"PpsDrop"`
+		PpsTotal  []string `json:"PpsTotal" xml:"PpsTotal"`
+		BpsDrop   []string `json:"BpsDrop" xml:"BpsDrop"`
+		BpsTotal  []string `json:"BpsTotal" xml:"BpsTotal"`
+		TimeScope struct {
+			Interval int `json:"Interval" xml:"Interval"`
+			Start    int `json:"Start" xml:"Start"`
+		} `json:"TimeScope" xml:"TimeScope"`
+	} `json:"Data" xml:"Data"`
+}
+
+func CreateDescribeIpTrafficRequest() (request *DescribeIpTrafficRequest) {
+	request = &DescribeIpTrafficRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "DescribeIpTraffic", "", "")
+	return
+}
+
+func CreateDescribeIpTrafficResponse() (response *DescribeIpTrafficResponse) {
+	response = &DescribeIpTrafficResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/ddospro/list_domain_config.go

@@ -0,0 +1,116 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) ListDomainConfig(request *ListDomainConfigRequest) (response *ListDomainConfigResponse, err error) {
+	response = CreateListDomainConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ListDomainConfigWithChan(request *ListDomainConfigRequest) (<-chan *ListDomainConfigResponse, <-chan error) {
+	responseChan := make(chan *ListDomainConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListDomainConfig(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ListDomainConfigWithCallback(request *ListDomainConfigRequest, callback func(response *ListDomainConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListDomainConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.ListDomainConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ListDomainConfigRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	CurrentPage     requests.Integer `position:"Query" name:"CurrentPage"`
+}
+
+type ListDomainConfigResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	Total      int    `json:"Total" xml:"Total"`
+	ConfigList struct {
+		Config []struct {
+			Domain    string `json:"Domain" xml:"Domain"`
+			Cname     string `json:"Cname" xml:"Cname"`
+			Instances struct {
+				Instance []struct {
+					InstanceRemark string `json:"InstanceRemark" xml:"InstanceRemark"`
+					InstanceId     string `json:"InstanceId" xml:"InstanceId"`
+					Rules          struct {
+						Rule []struct {
+							Line          string `json:"Line" xml:"Line"`
+							Ip            string `json:"Ip" xml:"Ip"`
+							ProxyTypeList struct {
+								ProxyType []string `json:"ProxyType" xml:"ProxyType"`
+							} `json:"ProxyTypeList" xml:"ProxyTypeList"`
+							RealServers struct {
+								RealServer []string `json:"RealServer" xml:"RealServer"`
+							} `json:"RealServers" xml:"RealServers"`
+						} `json:"Rule" xml:"Rule"`
+					} `json:"Rules" xml:"Rules"`
+				} `json:"Instance" xml:"Instance"`
+			} `json:"Instances" xml:"Instances"`
+		} `json:"Config" xml:"Config"`
+	} `json:"ConfigList" xml:"ConfigList"`
+}
+
+func CreateListDomainConfigRequest() (request *ListDomainConfigRequest) {
+	request = &ListDomainConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "ListDomainConfig", "", "")
+	return
+}
+
+func CreateListDomainConfigResponse() (response *ListDomainConfigResponse) {
+	response = &ListDomainConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 90 - 0
services/ddospro/modify_cname_auto_status.go

@@ -0,0 +1,90 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) ModifyCnameAutoStatus(request *ModifyCnameAutoStatusRequest) (response *ModifyCnameAutoStatusResponse, err error) {
+	response = CreateModifyCnameAutoStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ModifyCnameAutoStatusWithChan(request *ModifyCnameAutoStatusRequest) (<-chan *ModifyCnameAutoStatusResponse, <-chan error) {
+	responseChan := make(chan *ModifyCnameAutoStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyCnameAutoStatus(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ModifyCnameAutoStatusWithCallback(request *ModifyCnameAutoStatusRequest, callback func(response *ModifyCnameAutoStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyCnameAutoStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyCnameAutoStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ModifyCnameAutoStatusRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Enable          requests.Boolean `position:"Query" name:"Enable"`
+	Domain          string           `position:"Query" name:"Domain"`
+}
+
+type ModifyCnameAutoStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateModifyCnameAutoStatusRequest() (request *ModifyCnameAutoStatusRequest) {
+	request = &ModifyCnameAutoStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "ModifyCnameAutoStatus", "", "")
+	return
+}
+
+func CreateModifyCnameAutoStatusResponse() (response *ModifyCnameAutoStatusResponse) {
+	response = &ModifyCnameAutoStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 91 - 0
services/ddospro/modify_domain_black_white_list.go

@@ -0,0 +1,91 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) ModifyDomainBlackWhiteList(request *ModifyDomainBlackWhiteListRequest) (response *ModifyDomainBlackWhiteListResponse, err error) {
+	response = CreateModifyDomainBlackWhiteListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ModifyDomainBlackWhiteListWithChan(request *ModifyDomainBlackWhiteListRequest) (<-chan *ModifyDomainBlackWhiteListResponse, <-chan error) {
+	responseChan := make(chan *ModifyDomainBlackWhiteListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDomainBlackWhiteList(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ModifyDomainBlackWhiteListWithCallback(request *ModifyDomainBlackWhiteListRequest, callback func(response *ModifyDomainBlackWhiteListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDomainBlackWhiteListResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDomainBlackWhiteList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ModifyDomainBlackWhiteListRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	White           *[]string        `position:"Query" name:"White"  type:"Repeated"`
+	Domain          string           `position:"Query" name:"Domain"`
+	Black           *[]string        `position:"Query" name:"Black"  type:"Repeated"`
+}
+
+type ModifyDomainBlackWhiteListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateModifyDomainBlackWhiteListRequest() (request *ModifyDomainBlackWhiteListRequest) {
+	request = &ModifyDomainBlackWhiteListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "ModifyDomainBlackWhiteList", "", "")
+	return
+}
+
+func CreateModifyDomainBlackWhiteListResponse() (response *ModifyDomainBlackWhiteListResponse) {
+	response = &ModifyDomainBlackWhiteListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 90 - 0
services/ddospro/modify_domain_proxy.go

@@ -0,0 +1,90 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) ModifyDomainProxy(request *ModifyDomainProxyRequest) (response *ModifyDomainProxyResponse, err error) {
+	response = CreateModifyDomainProxyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ModifyDomainProxyWithChan(request *ModifyDomainProxyRequest) (<-chan *ModifyDomainProxyResponse, <-chan error) {
+	responseChan := make(chan *ModifyDomainProxyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDomainProxy(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ModifyDomainProxyWithCallback(request *ModifyDomainProxyRequest, callback func(response *ModifyDomainProxyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDomainProxyResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDomainProxy(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ModifyDomainProxyRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	ProxyType       *[]string        `position:"Query" name:"ProxyType"  type:"Repeated"`
+}
+
+type ModifyDomainProxyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateModifyDomainProxyRequest() (request *ModifyDomainProxyRequest) {
+	request = &ModifyDomainProxyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "ModifyDomainProxy", "", "")
+	return
+}
+
+func CreateModifyDomainProxyResponse() (response *ModifyDomainProxyResponse) {
+	response = &ModifyDomainProxyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 92 - 0
services/ddospro/modify_domain_transmit_rule.go

@@ -0,0 +1,92 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) ModifyDomainTransmitRule(request *ModifyDomainTransmitRuleRequest) (response *ModifyDomainTransmitRuleResponse, err error) {
+	response = CreateModifyDomainTransmitRuleResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) ModifyDomainTransmitRuleWithChan(request *ModifyDomainTransmitRuleRequest) (<-chan *ModifyDomainTransmitRuleResponse, <-chan error) {
+	responseChan := make(chan *ModifyDomainTransmitRuleResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyDomainTransmitRule(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) ModifyDomainTransmitRuleWithCallback(request *ModifyDomainTransmitRuleRequest, callback func(response *ModifyDomainTransmitRuleResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyDomainTransmitRuleResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyDomainTransmitRule(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type ModifyDomainTransmitRuleRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	Ip              string           `position:"Query" name:"Ip"`
+	RealServer      *[]string        `position:"Query" name:"RealServer"  type:"Repeated"`
+	Type            string           `position:"Query" name:"Type"`
+}
+
+type ModifyDomainTransmitRuleResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateModifyDomainTransmitRuleRequest() (request *ModifyDomainTransmitRuleRequest) {
+	request = &ModifyDomainTransmitRuleRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "ModifyDomainTransmitRule", "", "")
+	return
+}
+
+func CreateModifyDomainTransmitRuleResponse() (response *ModifyDomainTransmitRuleResponse) {
+	response = &ModifyDomainTransmitRuleResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 91 - 0
services/ddospro/upload_certificate.go

@@ -0,0 +1,91 @@
+package ddospro
+
+//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"
+)
+
+func (client *Client) UploadCertificate(request *UploadCertificateRequest) (response *UploadCertificateResponse, err error) {
+	response = CreateUploadCertificateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+func (client *Client) UploadCertificateWithChan(request *UploadCertificateRequest) (<-chan *UploadCertificateResponse, <-chan error) {
+	responseChan := make(chan *UploadCertificateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UploadCertificate(request)
+		responseChan <- response
+		errChan <- err
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+func (client *Client) UploadCertificateWithCallback(request *UploadCertificateRequest, callback func(response *UploadCertificateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UploadCertificateResponse
+		var err error
+		defer close(result)
+		response, err = client.UploadCertificate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+type UploadCertificateRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Domain          string           `position:"Query" name:"Domain"`
+	Cert            string           `position:"Query" name:"Cert"`
+	Key             string           `position:"Query" name:"Key"`
+}
+
+type UploadCertificateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+func CreateUploadCertificateRequest() (request *UploadCertificateRequest) {
+	request = &UploadCertificateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("DDoSPro", "2017-07-25", "UploadCertificate", "", "")
+	return
+}
+
+func CreateUploadCertificateResponse() (response *UploadCertificateResponse) {
+	response = &UploadCertificateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}