Browse Source

Add Tag API.

sdk-team 6 years ago
parent
commit
6e605b920a

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-11-27 Version: v1.60.270
+- Add Tag API.
+
 2019-11-27 Version: v1.60.269
 2019-11-27 Version: v1.60.269
 - CreateReplicationJob API supports the specified instance type.
 - CreateReplicationJob API supports the specified instance type.
 
 

+ 1 - 0
services/slb/create_load_balancer.go

@@ -78,6 +78,7 @@ type CreateLoadBalancerRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	AccessKeyId          string           `position:"Query" name:"access_key_id"`
 	AccessKeyId          string           `position:"Query" name:"access_key_id"`
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	SupportPrivateLink   requests.Boolean `position:"Query" name:"SupportPrivateLink"`
 	ClientToken          string           `position:"Query" name:"ClientToken"`
 	ClientToken          string           `position:"Query" name:"ClientToken"`
 	CloudType            string           `position:"Query" name:"CloudType"`
 	CloudType            string           `position:"Query" name:"CloudType"`
 	AddressIPVersion     string           `position:"Query" name:"AddressIPVersion"`
 	AddressIPVersion     string           `position:"Query" name:"AddressIPVersion"`

+ 0 - 113
services/slb/create_master_slave_v_server_group.go

@@ -1,113 +0,0 @@
-package slb
-
-//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"
-)
-
-// CreateMasterSlaveVServerGroup invokes the slb.CreateMasterSlaveVServerGroup API synchronously
-// api document: https://help.aliyun.com/api/slb/createmasterslavevservergroup.html
-func (client *Client) CreateMasterSlaveVServerGroup(request *CreateMasterSlaveVServerGroupRequest) (response *CreateMasterSlaveVServerGroupResponse, err error) {
-	response = CreateCreateMasterSlaveVServerGroupResponse()
-	err = client.DoAction(request, response)
-	return
-}
-
-// CreateMasterSlaveVServerGroupWithChan invokes the slb.CreateMasterSlaveVServerGroup API asynchronously
-// api document: https://help.aliyun.com/api/slb/createmasterslavevservergroup.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) CreateMasterSlaveVServerGroupWithChan(request *CreateMasterSlaveVServerGroupRequest) (<-chan *CreateMasterSlaveVServerGroupResponse, <-chan error) {
-	responseChan := make(chan *CreateMasterSlaveVServerGroupResponse, 1)
-	errChan := make(chan error, 1)
-	err := client.AddAsyncTask(func() {
-		defer close(responseChan)
-		defer close(errChan)
-		response, err := client.CreateMasterSlaveVServerGroup(request)
-		if err != nil {
-			errChan <- err
-		} else {
-			responseChan <- response
-		}
-	})
-	if err != nil {
-		errChan <- err
-		close(responseChan)
-		close(errChan)
-	}
-	return responseChan, errChan
-}
-
-// CreateMasterSlaveVServerGroupWithCallback invokes the slb.CreateMasterSlaveVServerGroup API asynchronously
-// api document: https://help.aliyun.com/api/slb/createmasterslavevservergroup.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) CreateMasterSlaveVServerGroupWithCallback(request *CreateMasterSlaveVServerGroupRequest, callback func(response *CreateMasterSlaveVServerGroupResponse, err error)) <-chan int {
-	result := make(chan int, 1)
-	err := client.AddAsyncTask(func() {
-		var response *CreateMasterSlaveVServerGroupResponse
-		var err error
-		defer close(result)
-		response, err = client.CreateMasterSlaveVServerGroup(request)
-		callback(response, err)
-		result <- 1
-	})
-	if err != nil {
-		defer close(result)
-		callback(nil, err)
-		result <- 0
-	}
-	return result
-}
-
-// CreateMasterSlaveVServerGroupRequest is the request struct for api CreateMasterSlaveVServerGroup
-type CreateMasterSlaveVServerGroupRequest struct {
-	*requests.RpcRequest
-	AccessKeyId                 string           `position:"Query" name:"access_key_id"`
-	ResourceOwnerId             requests.Integer `position:"Query" name:"ResourceOwnerId"`
-	MasterSlaveBackendServers   string           `position:"Query" name:"MasterSlaveBackendServers"`
-	ResourceOwnerAccount        string           `position:"Query" name:"ResourceOwnerAccount"`
-	OwnerAccount                string           `position:"Query" name:"OwnerAccount"`
-	MasterSlaveVServerGroupName string           `position:"Query" name:"MasterSlaveVServerGroupName"`
-	OwnerId                     requests.Integer `position:"Query" name:"OwnerId"`
-	Tags                        string           `position:"Query" name:"Tags"`
-	LoadBalancerId              string           `position:"Query" name:"LoadBalancerId"`
-}
-
-// CreateMasterSlaveVServerGroupResponse is the response struct for api CreateMasterSlaveVServerGroup
-type CreateMasterSlaveVServerGroupResponse struct {
-	*responses.BaseResponse
-	RequestId                 string                                                   `json:"RequestId" xml:"RequestId"`
-	MasterSlaveVServerGroupId string                                                   `json:"MasterSlaveVServerGroupId" xml:"MasterSlaveVServerGroupId"`
-	MasterSlaveBackendServers MasterSlaveBackendServersInCreateMasterSlaveVServerGroup `json:"MasterSlaveBackendServers" xml:"MasterSlaveBackendServers"`
-}
-
-// CreateCreateMasterSlaveVServerGroupRequest creates a request to invoke CreateMasterSlaveVServerGroup API
-func CreateCreateMasterSlaveVServerGroupRequest() (request *CreateMasterSlaveVServerGroupRequest) {
-	request = &CreateMasterSlaveVServerGroupRequest{
-		RpcRequest: &requests.RpcRequest{},
-	}
-	request.InitWithApiInfo("Slb", "2014-05-15", "CreateMasterSlaveVServerGroup", "slb", "openAPI")
-	return
-}
-
-// CreateCreateMasterSlaveVServerGroupResponse creates a response to parse from CreateMasterSlaveVServerGroup response
-func CreateCreateMasterSlaveVServerGroupResponse() (response *CreateMasterSlaveVServerGroupResponse) {
-	response = &CreateMasterSlaveVServerGroupResponse{
-		BaseResponse: &responses.BaseResponse{},
-	}
-	return
-}

+ 0 - 109
services/slb/delete_master_slave_v_server_group.go

@@ -1,109 +0,0 @@
-package slb
-
-//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"
-)
-
-// DeleteMasterSlaveVServerGroup invokes the slb.DeleteMasterSlaveVServerGroup API synchronously
-// api document: https://help.aliyun.com/api/slb/deletemasterslavevservergroup.html
-func (client *Client) DeleteMasterSlaveVServerGroup(request *DeleteMasterSlaveVServerGroupRequest) (response *DeleteMasterSlaveVServerGroupResponse, err error) {
-	response = CreateDeleteMasterSlaveVServerGroupResponse()
-	err = client.DoAction(request, response)
-	return
-}
-
-// DeleteMasterSlaveVServerGroupWithChan invokes the slb.DeleteMasterSlaveVServerGroup API asynchronously
-// api document: https://help.aliyun.com/api/slb/deletemasterslavevservergroup.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) DeleteMasterSlaveVServerGroupWithChan(request *DeleteMasterSlaveVServerGroupRequest) (<-chan *DeleteMasterSlaveVServerGroupResponse, <-chan error) {
-	responseChan := make(chan *DeleteMasterSlaveVServerGroupResponse, 1)
-	errChan := make(chan error, 1)
-	err := client.AddAsyncTask(func() {
-		defer close(responseChan)
-		defer close(errChan)
-		response, err := client.DeleteMasterSlaveVServerGroup(request)
-		if err != nil {
-			errChan <- err
-		} else {
-			responseChan <- response
-		}
-	})
-	if err != nil {
-		errChan <- err
-		close(responseChan)
-		close(errChan)
-	}
-	return responseChan, errChan
-}
-
-// DeleteMasterSlaveVServerGroupWithCallback invokes the slb.DeleteMasterSlaveVServerGroup API asynchronously
-// api document: https://help.aliyun.com/api/slb/deletemasterslavevservergroup.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) DeleteMasterSlaveVServerGroupWithCallback(request *DeleteMasterSlaveVServerGroupRequest, callback func(response *DeleteMasterSlaveVServerGroupResponse, err error)) <-chan int {
-	result := make(chan int, 1)
-	err := client.AddAsyncTask(func() {
-		var response *DeleteMasterSlaveVServerGroupResponse
-		var err error
-		defer close(result)
-		response, err = client.DeleteMasterSlaveVServerGroup(request)
-		callback(response, err)
-		result <- 1
-	})
-	if err != nil {
-		defer close(result)
-		callback(nil, err)
-		result <- 0
-	}
-	return result
-}
-
-// DeleteMasterSlaveVServerGroupRequest is the request struct for api DeleteMasterSlaveVServerGroup
-type DeleteMasterSlaveVServerGroupRequest struct {
-	*requests.RpcRequest
-	AccessKeyId               string           `position:"Query" name:"access_key_id"`
-	ResourceOwnerId           requests.Integer `position:"Query" name:"ResourceOwnerId"`
-	MasterSlaveVServerGroupId string           `position:"Query" name:"MasterSlaveVServerGroupId"`
-	ResourceOwnerAccount      string           `position:"Query" name:"ResourceOwnerAccount"`
-	OwnerAccount              string           `position:"Query" name:"OwnerAccount"`
-	OwnerId                   requests.Integer `position:"Query" name:"OwnerId"`
-	Tags                      string           `position:"Query" name:"Tags"`
-}
-
-// DeleteMasterSlaveVServerGroupResponse is the response struct for api DeleteMasterSlaveVServerGroup
-type DeleteMasterSlaveVServerGroupResponse struct {
-	*responses.BaseResponse
-	RequestId string `json:"RequestId" xml:"RequestId"`
-}
-
-// CreateDeleteMasterSlaveVServerGroupRequest creates a request to invoke DeleteMasterSlaveVServerGroup API
-func CreateDeleteMasterSlaveVServerGroupRequest() (request *DeleteMasterSlaveVServerGroupRequest) {
-	request = &DeleteMasterSlaveVServerGroupRequest{
-		RpcRequest: &requests.RpcRequest{},
-	}
-	request.InitWithApiInfo("Slb", "2014-05-15", "DeleteMasterSlaveVServerGroup", "slb", "openAPI")
-	return
-}
-
-// CreateDeleteMasterSlaveVServerGroupResponse creates a response to parse from DeleteMasterSlaveVServerGroup response
-func CreateDeleteMasterSlaveVServerGroupResponse() (response *DeleteMasterSlaveVServerGroupResponse) {
-	response = &DeleteMasterSlaveVServerGroupResponse{
-		BaseResponse: &responses.BaseResponse{},
-	}
-	return
-}

+ 3 - 0
services/slb/describe_load_balancer_attribute.go

@@ -123,10 +123,13 @@ type DescribeLoadBalancerAttributeResponse struct {
 	ReservedInfoBandwidth          string                                        `json:"ReservedInfoBandwidth" xml:"ReservedInfoBandwidth"`
 	ReservedInfoBandwidth          string                                        `json:"ReservedInfoBandwidth" xml:"ReservedInfoBandwidth"`
 	ReservedInfoActiveTime         string                                        `json:"ReservedInfoActiveTime" xml:"ReservedInfoActiveTime"`
 	ReservedInfoActiveTime         string                                        `json:"ReservedInfoActiveTime" xml:"ReservedInfoActiveTime"`
 	DeleteProtection               string                                        `json:"DeleteProtection" xml:"DeleteProtection"`
 	DeleteProtection               string                                        `json:"DeleteProtection" xml:"DeleteProtection"`
+	AssociatedCenId                string                                        `json:"AssociatedCenId" xml:"AssociatedCenId"`
+	AssociatedCenStatus            string                                        `json:"AssociatedCenStatus" xml:"AssociatedCenStatus"`
 	CloudInstanceType              string                                        `json:"CloudInstanceType" xml:"CloudInstanceType"`
 	CloudInstanceType              string                                        `json:"CloudInstanceType" xml:"CloudInstanceType"`
 	CloudInstanceId                string                                        `json:"CloudInstanceId" xml:"CloudInstanceId"`
 	CloudInstanceId                string                                        `json:"CloudInstanceId" xml:"CloudInstanceId"`
 	TunnelType                     string                                        `json:"TunnelType" xml:"TunnelType"`
 	TunnelType                     string                                        `json:"TunnelType" xml:"TunnelType"`
 	CloudInstanceUid               int64                                         `json:"CloudInstanceUid" xml:"CloudInstanceUid"`
 	CloudInstanceUid               int64                                         `json:"CloudInstanceUid" xml:"CloudInstanceUid"`
+	SupportPrivateLink             bool                                          `json:"SupportPrivateLink" xml:"SupportPrivateLink"`
 	ListenerPorts                  ListenerPorts                                 `json:"ListenerPorts" xml:"ListenerPorts"`
 	ListenerPorts                  ListenerPorts                                 `json:"ListenerPorts" xml:"ListenerPorts"`
 	ListenerPortsAndProtocal       ListenerPortsAndProtocal                      `json:"ListenerPortsAndProtocal" xml:"ListenerPortsAndProtocal"`
 	ListenerPortsAndProtocal       ListenerPortsAndProtocal                      `json:"ListenerPortsAndProtocal" xml:"ListenerPortsAndProtocal"`
 	ListenerPortsAndProtocol       ListenerPortsAndProtocol                      `json:"ListenerPortsAndProtocol" xml:"ListenerPortsAndProtocol"`
 	ListenerPortsAndProtocol       ListenerPortsAndProtocol                      `json:"ListenerPortsAndProtocol" xml:"ListenerPortsAndProtocol"`

+ 1 - 0
services/slb/describe_load_balancers.go

@@ -78,6 +78,7 @@ type DescribeLoadBalancersRequest struct {
 	*requests.RpcRequest
 	*requests.RpcRequest
 	AccessKeyId           string                      `position:"Query" name:"access_key_id"`
 	AccessKeyId           string                      `position:"Query" name:"access_key_id"`
 	ResourceOwnerId       requests.Integer            `position:"Query" name:"ResourceOwnerId"`
 	ResourceOwnerId       requests.Integer            `position:"Query" name:"ResourceOwnerId"`
+	SupportPrivateLink    requests.Boolean            `position:"Query" name:"SupportPrivateLink"`
 	NetworkType           string                      `position:"Query" name:"NetworkType"`
 	NetworkType           string                      `position:"Query" name:"NetworkType"`
 	AddressIPVersion      string                      `position:"Query" name:"AddressIPVersion"`
 	AddressIPVersion      string                      `position:"Query" name:"AddressIPVersion"`
 	MasterZoneId          string                      `position:"Query" name:"MasterZoneId"`
 	MasterZoneId          string                      `position:"Query" name:"MasterZoneId"`

+ 0 - 112
services/slb/describe_master_slave_v_server_group_attribute.go

@@ -1,112 +0,0 @@
-package slb
-
-//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"
-)
-
-// DescribeMasterSlaveVServerGroupAttribute invokes the slb.DescribeMasterSlaveVServerGroupAttribute API synchronously
-// api document: https://help.aliyun.com/api/slb/describemasterslavevservergroupattribute.html
-func (client *Client) DescribeMasterSlaveVServerGroupAttribute(request *DescribeMasterSlaveVServerGroupAttributeRequest) (response *DescribeMasterSlaveVServerGroupAttributeResponse, err error) {
-	response = CreateDescribeMasterSlaveVServerGroupAttributeResponse()
-	err = client.DoAction(request, response)
-	return
-}
-
-// DescribeMasterSlaveVServerGroupAttributeWithChan invokes the slb.DescribeMasterSlaveVServerGroupAttribute API asynchronously
-// api document: https://help.aliyun.com/api/slb/describemasterslavevservergroupattribute.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) DescribeMasterSlaveVServerGroupAttributeWithChan(request *DescribeMasterSlaveVServerGroupAttributeRequest) (<-chan *DescribeMasterSlaveVServerGroupAttributeResponse, <-chan error) {
-	responseChan := make(chan *DescribeMasterSlaveVServerGroupAttributeResponse, 1)
-	errChan := make(chan error, 1)
-	err := client.AddAsyncTask(func() {
-		defer close(responseChan)
-		defer close(errChan)
-		response, err := client.DescribeMasterSlaveVServerGroupAttribute(request)
-		if err != nil {
-			errChan <- err
-		} else {
-			responseChan <- response
-		}
-	})
-	if err != nil {
-		errChan <- err
-		close(responseChan)
-		close(errChan)
-	}
-	return responseChan, errChan
-}
-
-// DescribeMasterSlaveVServerGroupAttributeWithCallback invokes the slb.DescribeMasterSlaveVServerGroupAttribute API asynchronously
-// api document: https://help.aliyun.com/api/slb/describemasterslavevservergroupattribute.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) DescribeMasterSlaveVServerGroupAttributeWithCallback(request *DescribeMasterSlaveVServerGroupAttributeRequest, callback func(response *DescribeMasterSlaveVServerGroupAttributeResponse, err error)) <-chan int {
-	result := make(chan int, 1)
-	err := client.AddAsyncTask(func() {
-		var response *DescribeMasterSlaveVServerGroupAttributeResponse
-		var err error
-		defer close(result)
-		response, err = client.DescribeMasterSlaveVServerGroupAttribute(request)
-		callback(response, err)
-		result <- 1
-	})
-	if err != nil {
-		defer close(result)
-		callback(nil, err)
-		result <- 0
-	}
-	return result
-}
-
-// DescribeMasterSlaveVServerGroupAttributeRequest is the request struct for api DescribeMasterSlaveVServerGroupAttribute
-type DescribeMasterSlaveVServerGroupAttributeRequest struct {
-	*requests.RpcRequest
-	AccessKeyId               string           `position:"Query" name:"access_key_id"`
-	ResourceOwnerId           requests.Integer `position:"Query" name:"ResourceOwnerId"`
-	MasterSlaveVServerGroupId string           `position:"Query" name:"MasterSlaveVServerGroupId"`
-	ResourceOwnerAccount      string           `position:"Query" name:"ResourceOwnerAccount"`
-	OwnerAccount              string           `position:"Query" name:"OwnerAccount"`
-	OwnerId                   requests.Integer `position:"Query" name:"OwnerId"`
-	Tags                      string           `position:"Query" name:"Tags"`
-}
-
-// DescribeMasterSlaveVServerGroupAttributeResponse is the response struct for api DescribeMasterSlaveVServerGroupAttribute
-type DescribeMasterSlaveVServerGroupAttributeResponse struct {
-	*responses.BaseResponse
-	RequestId                   string                                                              `json:"RequestId" xml:"RequestId"`
-	MasterSlaveVServerGroupId   string                                                              `json:"MasterSlaveVServerGroupId" xml:"MasterSlaveVServerGroupId"`
-	MasterSlaveVServerGroupName string                                                              `json:"MasterSlaveVServerGroupName" xml:"MasterSlaveVServerGroupName"`
-	MasterSlaveBackendServers   MasterSlaveBackendServersInDescribeMasterSlaveVServerGroupAttribute `json:"MasterSlaveBackendServers" xml:"MasterSlaveBackendServers"`
-}
-
-// CreateDescribeMasterSlaveVServerGroupAttributeRequest creates a request to invoke DescribeMasterSlaveVServerGroupAttribute API
-func CreateDescribeMasterSlaveVServerGroupAttributeRequest() (request *DescribeMasterSlaveVServerGroupAttributeRequest) {
-	request = &DescribeMasterSlaveVServerGroupAttributeRequest{
-		RpcRequest: &requests.RpcRequest{},
-	}
-	request.InitWithApiInfo("Slb", "2014-05-15", "DescribeMasterSlaveVServerGroupAttribute", "slb", "openAPI")
-	return
-}
-
-// CreateDescribeMasterSlaveVServerGroupAttributeResponse creates a response to parse from DescribeMasterSlaveVServerGroupAttribute response
-func CreateDescribeMasterSlaveVServerGroupAttributeResponse() (response *DescribeMasterSlaveVServerGroupAttributeResponse) {
-	response = &DescribeMasterSlaveVServerGroupAttributeResponse{
-		BaseResponse: &responses.BaseResponse{},
-	}
-	return
-}

+ 0 - 110
services/slb/describe_master_slave_v_server_groups.go

@@ -1,110 +0,0 @@
-package slb
-
-//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"
-)
-
-// DescribeMasterSlaveVServerGroups invokes the slb.DescribeMasterSlaveVServerGroups API synchronously
-// api document: https://help.aliyun.com/api/slb/describemasterslavevservergroups.html
-func (client *Client) DescribeMasterSlaveVServerGroups(request *DescribeMasterSlaveVServerGroupsRequest) (response *DescribeMasterSlaveVServerGroupsResponse, err error) {
-	response = CreateDescribeMasterSlaveVServerGroupsResponse()
-	err = client.DoAction(request, response)
-	return
-}
-
-// DescribeMasterSlaveVServerGroupsWithChan invokes the slb.DescribeMasterSlaveVServerGroups API asynchronously
-// api document: https://help.aliyun.com/api/slb/describemasterslavevservergroups.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) DescribeMasterSlaveVServerGroupsWithChan(request *DescribeMasterSlaveVServerGroupsRequest) (<-chan *DescribeMasterSlaveVServerGroupsResponse, <-chan error) {
-	responseChan := make(chan *DescribeMasterSlaveVServerGroupsResponse, 1)
-	errChan := make(chan error, 1)
-	err := client.AddAsyncTask(func() {
-		defer close(responseChan)
-		defer close(errChan)
-		response, err := client.DescribeMasterSlaveVServerGroups(request)
-		if err != nil {
-			errChan <- err
-		} else {
-			responseChan <- response
-		}
-	})
-	if err != nil {
-		errChan <- err
-		close(responseChan)
-		close(errChan)
-	}
-	return responseChan, errChan
-}
-
-// DescribeMasterSlaveVServerGroupsWithCallback invokes the slb.DescribeMasterSlaveVServerGroups API asynchronously
-// api document: https://help.aliyun.com/api/slb/describemasterslavevservergroups.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) DescribeMasterSlaveVServerGroupsWithCallback(request *DescribeMasterSlaveVServerGroupsRequest, callback func(response *DescribeMasterSlaveVServerGroupsResponse, err error)) <-chan int {
-	result := make(chan int, 1)
-	err := client.AddAsyncTask(func() {
-		var response *DescribeMasterSlaveVServerGroupsResponse
-		var err error
-		defer close(result)
-		response, err = client.DescribeMasterSlaveVServerGroups(request)
-		callback(response, err)
-		result <- 1
-	})
-	if err != nil {
-		defer close(result)
-		callback(nil, err)
-		result <- 0
-	}
-	return result
-}
-
-// DescribeMasterSlaveVServerGroupsRequest is the request struct for api DescribeMasterSlaveVServerGroups
-type DescribeMasterSlaveVServerGroupsRequest struct {
-	*requests.RpcRequest
-	AccessKeyId          string           `position:"Query" name:"access_key_id"`
-	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
-	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
-	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
-	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
-	Tags                 string           `position:"Query" name:"Tags"`
-	LoadBalancerId       string           `position:"Query" name:"LoadBalancerId"`
-}
-
-// DescribeMasterSlaveVServerGroupsResponse is the response struct for api DescribeMasterSlaveVServerGroups
-type DescribeMasterSlaveVServerGroupsResponse struct {
-	*responses.BaseResponse
-	RequestId                string                   `json:"RequestId" xml:"RequestId"`
-	MasterSlaveVServerGroups MasterSlaveVServerGroups `json:"MasterSlaveVServerGroups" xml:"MasterSlaveVServerGroups"`
-}
-
-// CreateDescribeMasterSlaveVServerGroupsRequest creates a request to invoke DescribeMasterSlaveVServerGroups API
-func CreateDescribeMasterSlaveVServerGroupsRequest() (request *DescribeMasterSlaveVServerGroupsRequest) {
-	request = &DescribeMasterSlaveVServerGroupsRequest{
-		RpcRequest: &requests.RpcRequest{},
-	}
-	request.InitWithApiInfo("Slb", "2014-05-15", "DescribeMasterSlaveVServerGroups", "slb", "openAPI")
-	return
-}
-
-// CreateDescribeMasterSlaveVServerGroupsResponse creates a response to parse from DescribeMasterSlaveVServerGroups response
-func CreateDescribeMasterSlaveVServerGroupsResponse() (response *DescribeMasterSlaveVServerGroupsResponse) {
-	response = &DescribeMasterSlaveVServerGroupsResponse{
-		BaseResponse: &responses.BaseResponse{},
-	}
-	return
-}

+ 119 - 0
services/slb/list_tag_resources.go

@@ -0,0 +1,119 @@
+package slb
+
+//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"
+)
+
+// ListTagResources invokes the slb.ListTagResources API synchronously
+// api document: https://help.aliyun.com/api/slb/listtagresources.html
+func (client *Client) ListTagResources(request *ListTagResourcesRequest) (response *ListTagResourcesResponse, err error) {
+	response = CreateListTagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListTagResourcesWithChan invokes the slb.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/slb/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithChan(request *ListTagResourcesRequest) (<-chan *ListTagResourcesResponse, <-chan error) {
+	responseChan := make(chan *ListTagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListTagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListTagResourcesWithCallback invokes the slb.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/slb/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithCallback(request *ListTagResourcesRequest, callback func(response *ListTagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListTagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListTagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListTagResourcesRequest is the request struct for api ListTagResources
+type ListTagResourcesRequest struct {
+	*requests.RpcRequest
+	AccessKeyId          string                 `position:"Query" name:"access_key_id"`
+	ResourceOwnerId      requests.Integer       `position:"Query" name:"ResourceOwnerId"`
+	NextToken            string                 `position:"Query" name:"NextToken"`
+	Tag                  *[]ListTagResourcesTag `position:"Query" name:"Tag"  type:"Repeated"`
+	ResourceId           *[]string              `position:"Query" name:"ResourceId"  type:"Repeated"`
+	ResourceOwnerAccount string                 `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string                 `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer       `position:"Query" name:"OwnerId"`
+	ResourceType         string                 `position:"Query" name:"ResourceType"`
+}
+
+// ListTagResourcesTag is a repeated param struct in ListTagResourcesRequest
+type ListTagResourcesTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// ListTagResourcesResponse is the response struct for api ListTagResources
+type ListTagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	NextToken    string       `json:"NextToken" xml:"NextToken"`
+	TagResources TagResources `json:"TagResources" xml:"TagResources"`
+}
+
+// CreateListTagResourcesRequest creates a request to invoke ListTagResources API
+func CreateListTagResourcesRequest() (request *ListTagResourcesRequest) {
+	request = &ListTagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Slb", "2014-05-15", "ListTagResources", "slb", "openAPI")
+	return
+}
+
+// CreateListTagResourcesResponse creates a response to parse from ListTagResources response
+func CreateListTagResourcesResponse() (response *ListTagResourcesResponse) {
+	response = &ListTagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 9 - 7
services/slb/struct_backend_server_in_add_v_server_group_backend_servers.go

@@ -17,11 +17,13 @@ package slb
 
 
 // BackendServerInAddVServerGroupBackendServers is a nested struct in slb response
 // BackendServerInAddVServerGroupBackendServers is a nested struct in slb response
 type BackendServerInAddVServerGroupBackendServers struct {
 type BackendServerInAddVServerGroupBackendServers struct {
-	ServerId    string `json:"ServerId" xml:"ServerId"`
-	Port        int    `json:"Port" xml:"Port"`
-	Weight      int    `json:"Weight" xml:"Weight"`
-	Type        string `json:"Type" xml:"Type"`
-	ServerIp    string `json:"ServerIp" xml:"ServerIp"`
-	VpcId       string `json:"VpcId" xml:"VpcId"`
-	Description string `json:"Description" xml:"Description"`
+	ServerId       string `json:"ServerId" xml:"ServerId"`
+	Port           int    `json:"Port" xml:"Port"`
+	Weight         int    `json:"Weight" xml:"Weight"`
+	Type           string `json:"Type" xml:"Type"`
+	ServerIp       string `json:"ServerIp" xml:"ServerIp"`
+	VpcId          string `json:"VpcId" xml:"VpcId"`
+	VbrId          string `json:"VbrId" xml:"VbrId"`
+	ServerRegionId string `json:"ServerRegionId" xml:"ServerRegionId"`
+	Description    string `json:"Description" xml:"Description"`
 }
 }

+ 9 - 7
services/slb/struct_backend_server_in_create_v_server_group.go

@@ -17,11 +17,13 @@ package slb
 
 
 // BackendServerInCreateVServerGroup is a nested struct in slb response
 // BackendServerInCreateVServerGroup is a nested struct in slb response
 type BackendServerInCreateVServerGroup struct {
 type BackendServerInCreateVServerGroup struct {
-	ServerId    string `json:"ServerId" xml:"ServerId"`
-	Port        int    `json:"Port" xml:"Port"`
-	Weight      int    `json:"Weight" xml:"Weight"`
-	Type        string `json:"Type" xml:"Type"`
-	ServerIp    string `json:"ServerIp" xml:"ServerIp"`
-	VpcId       string `json:"VpcId" xml:"VpcId"`
-	Description string `json:"Description" xml:"Description"`
+	ServerId       string `json:"ServerId" xml:"ServerId"`
+	Port           int    `json:"Port" xml:"Port"`
+	Weight         int    `json:"Weight" xml:"Weight"`
+	Type           string `json:"Type" xml:"Type"`
+	ServerIp       string `json:"ServerIp" xml:"ServerIp"`
+	VpcId          string `json:"VpcId" xml:"VpcId"`
+	VbrId          string `json:"VbrId" xml:"VbrId"`
+	ServerRegionId string `json:"ServerRegionId" xml:"ServerRegionId"`
+	Description    string `json:"Description" xml:"Description"`
 }
 }

+ 9 - 7
services/slb/struct_backend_server_in_describe_v_server_group_attribute.go

@@ -17,11 +17,13 @@ package slb
 
 
 // BackendServerInDescribeVServerGroupAttribute is a nested struct in slb response
 // BackendServerInDescribeVServerGroupAttribute is a nested struct in slb response
 type BackendServerInDescribeVServerGroupAttribute struct {
 type BackendServerInDescribeVServerGroupAttribute struct {
-	ServerId    string `json:"ServerId" xml:"ServerId"`
-	Port        int    `json:"Port" xml:"Port"`
-	Weight      int    `json:"Weight" xml:"Weight"`
-	Type        string `json:"Type" xml:"Type"`
-	ServerIp    string `json:"ServerIp" xml:"ServerIp"`
-	VpcId       string `json:"VpcId" xml:"VpcId"`
-	Description string `json:"Description" xml:"Description"`
+	ServerId       string `json:"ServerId" xml:"ServerId"`
+	Port           int    `json:"Port" xml:"Port"`
+	Weight         int    `json:"Weight" xml:"Weight"`
+	Type           string `json:"Type" xml:"Type"`
+	ServerIp       string `json:"ServerIp" xml:"ServerIp"`
+	VpcId          string `json:"VpcId" xml:"VpcId"`
+	VbrId          string `json:"VbrId" xml:"VbrId"`
+	ServerRegionId string `json:"ServerRegionId" xml:"ServerRegionId"`
+	Description    string `json:"Description" xml:"Description"`
 }
 }

+ 9 - 7
services/slb/struct_backend_server_in_modify_v_server_group_backend_servers.go

@@ -17,11 +17,13 @@ package slb
 
 
 // BackendServerInModifyVServerGroupBackendServers is a nested struct in slb response
 // BackendServerInModifyVServerGroupBackendServers is a nested struct in slb response
 type BackendServerInModifyVServerGroupBackendServers struct {
 type BackendServerInModifyVServerGroupBackendServers struct {
-	ServerId    string `json:"ServerId" xml:"ServerId"`
-	Port        int    `json:"Port" xml:"Port"`
-	Weight      int    `json:"Weight" xml:"Weight"`
-	Type        string `json:"Type" xml:"Type"`
-	ServerIp    string `json:"ServerIp" xml:"ServerIp"`
-	VpcId       string `json:"VpcId" xml:"VpcId"`
-	Description string `json:"Description" xml:"Description"`
+	ServerId       string `json:"ServerId" xml:"ServerId"`
+	Port           int    `json:"Port" xml:"Port"`
+	Weight         int    `json:"Weight" xml:"Weight"`
+	Type           string `json:"Type" xml:"Type"`
+	ServerIp       string `json:"ServerIp" xml:"ServerIp"`
+	VpcId          string `json:"VpcId" xml:"VpcId"`
+	VbrId          string `json:"VbrId" xml:"VbrId"`
+	ServerRegionId string `json:"ServerRegionId" xml:"ServerRegionId"`
+	Description    string `json:"Description" xml:"Description"`
 }
 }

+ 9 - 7
services/slb/struct_backend_server_in_remove_v_server_group_backend_servers.go

@@ -17,11 +17,13 @@ package slb
 
 
 // BackendServerInRemoveVServerGroupBackendServers is a nested struct in slb response
 // BackendServerInRemoveVServerGroupBackendServers is a nested struct in slb response
 type BackendServerInRemoveVServerGroupBackendServers struct {
 type BackendServerInRemoveVServerGroupBackendServers struct {
-	ServerId    string `json:"ServerId" xml:"ServerId"`
-	Port        int    `json:"Port" xml:"Port"`
-	Weight      int    `json:"Weight" xml:"Weight"`
-	Type        string `json:"Type" xml:"Type"`
-	ServerIp    string `json:"ServerIp" xml:"ServerIp"`
-	VpcId       string `json:"VpcId" xml:"VpcId"`
-	Description string `json:"Description" xml:"Description"`
+	ServerId       string `json:"ServerId" xml:"ServerId"`
+	Port           int    `json:"Port" xml:"Port"`
+	Weight         int    `json:"Weight" xml:"Weight"`
+	Type           string `json:"Type" xml:"Type"`
+	ServerIp       string `json:"ServerIp" xml:"ServerIp"`
+	VpcId          string `json:"VpcId" xml:"VpcId"`
+	VbrId          string `json:"VbrId" xml:"VbrId"`
+	ServerRegionId string `json:"ServerRegionId" xml:"ServerRegionId"`
+	Description    string `json:"Description" xml:"Description"`
 }
 }

+ 9 - 7
services/slb/struct_backend_server_in_set_v_server_group_attribute.go

@@ -17,11 +17,13 @@ package slb
 
 
 // BackendServerInSetVServerGroupAttribute is a nested struct in slb response
 // BackendServerInSetVServerGroupAttribute is a nested struct in slb response
 type BackendServerInSetVServerGroupAttribute struct {
 type BackendServerInSetVServerGroupAttribute struct {
-	ServerId    string `json:"ServerId" xml:"ServerId"`
-	Port        int    `json:"Port" xml:"Port"`
-	Weight      int    `json:"Weight" xml:"Weight"`
-	Type        string `json:"Type" xml:"Type"`
-	ServerIp    string `json:"ServerIp" xml:"ServerIp"`
-	VpcId       string `json:"VpcId" xml:"VpcId"`
-	Description string `json:"Description" xml:"Description"`
+	ServerId       string `json:"ServerId" xml:"ServerId"`
+	Port           int    `json:"Port" xml:"Port"`
+	Weight         int    `json:"Weight" xml:"Weight"`
+	Type           string `json:"Type" xml:"Type"`
+	ServerIp       string `json:"ServerIp" xml:"ServerIp"`
+	VpcId          string `json:"VpcId" xml:"VpcId"`
+	VbrId          string `json:"VbrId" xml:"VbrId"`
+	ServerRegionId string `json:"ServerRegionId" xml:"ServerRegionId"`
+	Description    string `json:"Description" xml:"Description"`
 }
 }

+ 0 - 2
services/slb/struct_master_slave_backend_server.go

@@ -24,7 +24,5 @@ type MasterSlaveBackendServer struct {
 	VpcId       string `json:"VpcId" xml:"VpcId"`
 	VpcId       string `json:"VpcId" xml:"VpcId"`
 	Weight      int    `json:"Weight" xml:"Weight"`
 	Weight      int    `json:"Weight" xml:"Weight"`
 	Description string `json:"Description" xml:"Description"`
 	Description string `json:"Description" xml:"Description"`
-	IsBackup    int    `json:"IsBackup" xml:"IsBackup"`
-	EniHost     string `json:"EniHost" xml:"EniHost"`
 	Type        string `json:"Type" xml:"Type"`
 	Type        string `json:"Type" xml:"Type"`
 }
 }

+ 0 - 21
services/slb/struct_master_slave_backend_servers_in_describe_master_slave_v_server_group_attribute.go

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

+ 0 - 22
services/slb/struct_master_slave_v_server_group.go

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

+ 6 - 3
services/slb/struct_master_slave_backend_servers_in_create_master_slave_v_server_group.go → services/slb/struct_tag_resource.go

@@ -15,7 +15,10 @@ package slb
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
 
-// MasterSlaveBackendServersInCreateMasterSlaveVServerGroup is a nested struct in slb response
-type MasterSlaveBackendServersInCreateMasterSlaveVServerGroup struct {
-	MasterSlaveBackendServer []MasterSlaveBackendServer `json:"MasterSlaveBackendServer" xml:"MasterSlaveBackendServer"`
+// TagResource is a nested struct in slb response
+type TagResource struct {
+	TagKey       string `json:"TagKey" xml:"TagKey"`
+	TagValue     string `json:"TagValue" xml:"TagValue"`
+	ResourceType string `json:"ResourceType" xml:"ResourceType"`
+	ResourceId   string `json:"ResourceId" xml:"ResourceId"`
 }
 }

+ 3 - 3
services/slb/struct_master_slave_v_server_groups.go → services/slb/struct_tag_resources.go

@@ -15,7 +15,7 @@ package slb
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
 
-// MasterSlaveVServerGroups is a nested struct in slb response
-type MasterSlaveVServerGroups struct {
-	MasterSlaveVServerGroup []MasterSlaveVServerGroup `json:"MasterSlaveVServerGroup" xml:"MasterSlaveVServerGroup"`
+// TagResources is a nested struct in slb response
+type TagResources struct {
+	TagResource []TagResource `json:"TagResource" xml:"TagResource"`
 }
 }

+ 116 - 0
services/slb/tag_resources.go

@@ -0,0 +1,116 @@
+package slb
+
+//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"
+)
+
+// TagResources invokes the slb.TagResources API synchronously
+// api document: https://help.aliyun.com/api/slb/tagresources.html
+func (client *Client) TagResources(request *TagResourcesRequest) (response *TagResourcesResponse, err error) {
+	response = CreateTagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// TagResourcesWithChan invokes the slb.TagResources API asynchronously
+// api document: https://help.aliyun.com/api/slb/tagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TagResourcesWithChan(request *TagResourcesRequest) (<-chan *TagResourcesResponse, <-chan error) {
+	responseChan := make(chan *TagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.TagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// TagResourcesWithCallback invokes the slb.TagResources API asynchronously
+// api document: https://help.aliyun.com/api/slb/tagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TagResourcesWithCallback(request *TagResourcesRequest, callback func(response *TagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *TagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.TagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// TagResourcesRequest is the request struct for api TagResources
+type TagResourcesRequest struct {
+	*requests.RpcRequest
+	AccessKeyId          string             `position:"Query" name:"access_key_id"`
+	ResourceOwnerId      requests.Integer   `position:"Query" name:"ResourceOwnerId"`
+	Tag                  *[]TagResourcesTag `position:"Query" name:"Tag"  type:"Repeated"`
+	ResourceId           *[]string          `position:"Query" name:"ResourceId"  type:"Repeated"`
+	ResourceOwnerAccount string             `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string             `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer   `position:"Query" name:"OwnerId"`
+	ResourceType         string             `position:"Query" name:"ResourceType"`
+}
+
+// TagResourcesTag is a repeated param struct in TagResourcesRequest
+type TagResourcesTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// TagResourcesResponse is the response struct for api TagResources
+type TagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateTagResourcesRequest creates a request to invoke TagResources API
+func CreateTagResourcesRequest() (request *TagResourcesRequest) {
+	request = &TagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Slb", "2014-05-15", "TagResources", "slb", "openAPI")
+	return
+}
+
+// CreateTagResourcesResponse creates a response to parse from TagResources response
+func CreateTagResourcesResponse() (response *TagResourcesResponse) {
+	response = &TagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/slb/untag_resources.go

@@ -0,0 +1,111 @@
+package slb
+
+//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"
+)
+
+// UntagResources invokes the slb.UntagResources API synchronously
+// api document: https://help.aliyun.com/api/slb/untagresources.html
+func (client *Client) UntagResources(request *UntagResourcesRequest) (response *UntagResourcesResponse, err error) {
+	response = CreateUntagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UntagResourcesWithChan invokes the slb.UntagResources API asynchronously
+// api document: https://help.aliyun.com/api/slb/untagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UntagResourcesWithChan(request *UntagResourcesRequest) (<-chan *UntagResourcesResponse, <-chan error) {
+	responseChan := make(chan *UntagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UntagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UntagResourcesWithCallback invokes the slb.UntagResources API asynchronously
+// api document: https://help.aliyun.com/api/slb/untagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UntagResourcesWithCallback(request *UntagResourcesRequest, callback func(response *UntagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UntagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.UntagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UntagResourcesRequest is the request struct for api UntagResources
+type UntagResourcesRequest struct {
+	*requests.RpcRequest
+	AccessKeyId          string           `position:"Query" name:"access_key_id"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	All                  requests.Boolean `position:"Query" name:"All"`
+	ResourceId           *[]string        `position:"Query" name:"ResourceId"  type:"Repeated"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceType         string           `position:"Query" name:"ResourceType"`
+	TagKey               *[]string        `position:"Query" name:"TagKey"  type:"Repeated"`
+}
+
+// UntagResourcesResponse is the response struct for api UntagResources
+type UntagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUntagResourcesRequest creates a request to invoke UntagResources API
+func CreateUntagResourcesRequest() (request *UntagResourcesRequest) {
+	request = &UntagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Slb", "2014-05-15", "UntagResources", "slb", "openAPI")
+	return
+}
+
+// CreateUntagResourcesResponse creates a response to parse from UntagResources response
+func CreateUntagResourcesResponse() (response *UntagResourcesResponse) {
+	response = &UntagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}