services/alb/update_rule_attribute.go (199 lines of code) (raw):
package alb
//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"
)
// UpdateRuleAttribute invokes the alb.UpdateRuleAttribute API synchronously
func (client *Client) UpdateRuleAttribute(request *UpdateRuleAttributeRequest) (response *UpdateRuleAttributeResponse, err error) {
response = CreateUpdateRuleAttributeResponse()
err = client.DoAction(request, response)
return
}
// UpdateRuleAttributeWithChan invokes the alb.UpdateRuleAttribute API asynchronously
func (client *Client) UpdateRuleAttributeWithChan(request *UpdateRuleAttributeRequest) (<-chan *UpdateRuleAttributeResponse, <-chan error) {
responseChan := make(chan *UpdateRuleAttributeResponse, 1)
errChan := make(chan error, 1)
err := client.AddAsyncTask(func() {
defer close(responseChan)
defer close(errChan)
response, err := client.UpdateRuleAttribute(request)
if err != nil {
errChan <- err
} else {
responseChan <- response
}
})
if err != nil {
errChan <- err
close(responseChan)
close(errChan)
}
return responseChan, errChan
}
// UpdateRuleAttributeWithCallback invokes the alb.UpdateRuleAttribute API asynchronously
func (client *Client) UpdateRuleAttributeWithCallback(request *UpdateRuleAttributeRequest, callback func(response *UpdateRuleAttributeResponse, err error)) <-chan int {
result := make(chan int, 1)
err := client.AddAsyncTask(func() {
var response *UpdateRuleAttributeResponse
var err error
defer close(result)
response, err = client.UpdateRuleAttribute(request)
callback(response, err)
result <- 1
})
if err != nil {
defer close(result)
callback(nil, err)
result <- 0
}
return result
}
// UpdateRuleAttributeRequest is the request struct for api UpdateRuleAttribute
type UpdateRuleAttributeRequest struct {
*requests.RpcRequest
ClientToken string `position:"Query" name:"ClientToken"`
RuleName string `position:"Query" name:"RuleName"`
RuleActions *[]UpdateRuleAttributeRuleActions `position:"Query" name:"RuleActions" type:"Repeated"`
RuleConditions *[]UpdateRuleAttributeRuleConditions `position:"Query" name:"RuleConditions" type:"Repeated"`
DryRun requests.Boolean `position:"Query" name:"DryRun"`
Priority requests.Integer `position:"Query" name:"Priority"`
RuleId string `position:"Query" name:"RuleId"`
}
// UpdateRuleAttributeRuleActions is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActions struct {
FixedResponseConfig UpdateRuleAttributeRuleActionsFixedResponseConfig `name:"FixedResponseConfig" type:"Struct"`
TrafficMirrorConfig UpdateRuleAttributeRuleActionsTrafficMirrorConfig `name:"TrafficMirrorConfig" type:"Struct"`
ForwardGroupConfig UpdateRuleAttributeRuleActionsForwardGroupConfig `name:"ForwardGroupConfig" type:"Struct"`
RemoveHeaderConfig UpdateRuleAttributeRuleActionsRemoveHeaderConfig `name:"RemoveHeaderConfig" type:"Struct"`
InsertHeaderConfig UpdateRuleAttributeRuleActionsInsertHeaderConfig `name:"InsertHeaderConfig" type:"Struct"`
TrafficLimitConfig UpdateRuleAttributeRuleActionsTrafficLimitConfig `name:"TrafficLimitConfig" type:"Struct"`
CorsConfig UpdateRuleAttributeRuleActionsCorsConfig `name:"CorsConfig" type:"Struct"`
RedirectConfig UpdateRuleAttributeRuleActionsRedirectConfig `name:"RedirectConfig" type:"Struct"`
Type string `name:"Type"`
Order string `name:"Order"`
RewriteConfig UpdateRuleAttributeRuleActionsRewriteConfig `name:"RewriteConfig" type:"Struct"`
}
// UpdateRuleAttributeRuleConditions is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditions struct {
MethodConfig UpdateRuleAttributeRuleConditionsMethodConfig `name:"MethodConfig" type:"Struct"`
SourceIpConfig UpdateRuleAttributeRuleConditionsSourceIpConfig `name:"SourceIpConfig" type:"Struct"`
HostConfig UpdateRuleAttributeRuleConditionsHostConfig `name:"HostConfig" type:"Struct"`
QueryStringConfig UpdateRuleAttributeRuleConditionsQueryStringConfig `name:"QueryStringConfig" type:"Struct"`
ResponseStatusCodeConfig UpdateRuleAttributeRuleConditionsResponseStatusCodeConfig `name:"ResponseStatusCodeConfig" type:"Struct"`
PathConfig UpdateRuleAttributeRuleConditionsPathConfig `name:"PathConfig" type:"Struct"`
CookieConfig UpdateRuleAttributeRuleConditionsCookieConfig `name:"CookieConfig" type:"Struct"`
Type string `name:"Type"`
HeaderConfig UpdateRuleAttributeRuleConditionsHeaderConfig `name:"HeaderConfig" type:"Struct"`
ResponseHeaderConfig UpdateRuleAttributeRuleConditionsResponseHeaderConfig `name:"ResponseHeaderConfig" type:"Struct"`
}
// UpdateRuleAttributeRuleActionsFixedResponseConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsFixedResponseConfig struct {
HttpCode string `name:"HttpCode"`
Content string `name:"Content"`
ContentType string `name:"ContentType"`
}
// UpdateRuleAttributeRuleActionsTrafficMirrorConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsTrafficMirrorConfig struct {
MirrorGroupConfig UpdateRuleAttributeRuleActionsTrafficMirrorConfigMirrorGroupConfig `name:"MirrorGroupConfig" type:"Struct"`
TargetType string `name:"TargetType"`
}
// UpdateRuleAttributeRuleActionsForwardGroupConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsForwardGroupConfig struct {
ServerGroupStickySession UpdateRuleAttributeRuleActionsForwardGroupConfigServerGroupStickySession `name:"ServerGroupStickySession" type:"Struct"`
ServerGroupTuples *[]UpdateRuleAttributeRuleActionsForwardGroupConfigServerGroupTuplesItem `name:"ServerGroupTuples" type:"Repeated"`
}
// UpdateRuleAttributeRuleActionsRemoveHeaderConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsRemoveHeaderConfig struct {
Key string `name:"Key"`
}
// UpdateRuleAttributeRuleActionsInsertHeaderConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsInsertHeaderConfig struct {
ValueType string `name:"ValueType"`
CoverEnabled string `name:"CoverEnabled"`
Value string `name:"Value"`
Key string `name:"Key"`
}
// UpdateRuleAttributeRuleActionsTrafficLimitConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsTrafficLimitConfig struct {
QPS string `name:"QPS"`
PerIpQps string `name:"PerIpQps"`
}
// UpdateRuleAttributeRuleActionsCorsConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsCorsConfig struct {
AllowCredentials string `name:"AllowCredentials"`
AllowOrigin *[]string `name:"AllowOrigin" type:"Repeated"`
MaxAge string `name:"MaxAge"`
AllowMethods *[]string `name:"AllowMethods" type:"Repeated"`
AllowHeaders *[]string `name:"AllowHeaders" type:"Repeated"`
ExposeHeaders *[]string `name:"ExposeHeaders" type:"Repeated"`
}
// UpdateRuleAttributeRuleActionsRedirectConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsRedirectConfig struct {
Path string `name:"Path"`
Protocol string `name:"Protocol"`
Port string `name:"Port"`
Query string `name:"Query"`
Host string `name:"Host"`
HttpCode string `name:"HttpCode"`
}
// UpdateRuleAttributeRuleActionsRewriteConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsRewriteConfig struct {
Path string `name:"Path"`
Query string `name:"Query"`
Host string `name:"Host"`
}
// UpdateRuleAttributeRuleConditionsMethodConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsMethodConfig struct {
Values *[]string `name:"Values" type:"Repeated"`
}
// UpdateRuleAttributeRuleConditionsSourceIpConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsSourceIpConfig struct {
Values *[]string `name:"Values" type:"Repeated"`
}
// UpdateRuleAttributeRuleConditionsHostConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsHostConfig struct {
Values *[]string `name:"Values" type:"Repeated"`
}
// UpdateRuleAttributeRuleConditionsQueryStringConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsQueryStringConfig struct {
Values *[]UpdateRuleAttributeRuleConditionsQueryStringConfigValuesItem `name:"Values" type:"Repeated"`
}
// UpdateRuleAttributeRuleConditionsResponseStatusCodeConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsResponseStatusCodeConfig struct {
Values *[]string `name:"Values" type:"Repeated"`
}
// UpdateRuleAttributeRuleConditionsPathConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsPathConfig struct {
Values *[]string `name:"Values" type:"Repeated"`
}
// UpdateRuleAttributeRuleConditionsCookieConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsCookieConfig struct {
Values *[]UpdateRuleAttributeRuleConditionsCookieConfigValuesItem `name:"Values" type:"Repeated"`
}
// UpdateRuleAttributeRuleConditionsHeaderConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsHeaderConfig struct {
Values *[]string `name:"Values" type:"Repeated"`
Key string `name:"Key"`
}
// UpdateRuleAttributeRuleConditionsResponseHeaderConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsResponseHeaderConfig struct {
Values *[]string `name:"Values" type:"Repeated"`
Key string `name:"Key"`
}
// UpdateRuleAttributeRuleActionsTrafficMirrorConfigMirrorGroupConfig is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsTrafficMirrorConfigMirrorGroupConfig struct {
ServerGroupTuples *[]UpdateRuleAttributeRuleActionsTrafficMirrorConfigMirrorGroupConfigServerGroupTuplesItem `name:"ServerGroupTuples" type:"Repeated"`
}
// UpdateRuleAttributeRuleActionsForwardGroupConfigServerGroupStickySession is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsForwardGroupConfigServerGroupStickySession struct {
Enabled string `name:"Enabled"`
Timeout string `name:"Timeout"`
}
// UpdateRuleAttributeRuleActionsForwardGroupConfigServerGroupTuplesItem is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsForwardGroupConfigServerGroupTuplesItem struct {
ServerGroupId string `name:"ServerGroupId"`
Weight string `name:"Weight"`
}
// UpdateRuleAttributeRuleConditionsQueryStringConfigValuesItem is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsQueryStringConfigValuesItem struct {
Value string `name:"Value"`
Key string `name:"Key"`
}
// UpdateRuleAttributeRuleConditionsCookieConfigValuesItem is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleConditionsCookieConfigValuesItem struct {
Value string `name:"Value"`
Key string `name:"Key"`
}
// UpdateRuleAttributeRuleActionsTrafficMirrorConfigMirrorGroupConfigServerGroupTuplesItem is a repeated param struct in UpdateRuleAttributeRequest
type UpdateRuleAttributeRuleActionsTrafficMirrorConfigMirrorGroupConfigServerGroupTuplesItem struct {
ServerGroupId string `name:"ServerGroupId"`
}
// UpdateRuleAttributeResponse is the response struct for api UpdateRuleAttribute
type UpdateRuleAttributeResponse struct {
*responses.BaseResponse
JobId string `json:"JobId" xml:"JobId"`
RequestId string `json:"RequestId" xml:"RequestId"`
}
// CreateUpdateRuleAttributeRequest creates a request to invoke UpdateRuleAttribute API
func CreateUpdateRuleAttributeRequest() (request *UpdateRuleAttributeRequest) {
request = &UpdateRuleAttributeRequest{
RpcRequest: &requests.RpcRequest{},
}
request.InitWithApiInfo("Alb", "2020-06-16", "UpdateRuleAttribute", "alb", "openAPI")
request.Method = requests.POST
return
}
// CreateUpdateRuleAttributeResponse creates a response to parse from UpdateRuleAttribute response
func CreateUpdateRuleAttributeResponse() (response *UpdateRuleAttributeResponse) {
response = &UpdateRuleAttributeResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}