Updated on 2025-08-29 GMT+08:00

Updating a Forwarding Rule

Function

This API is used to update a forwarding rule.

Calling Method

For details, see Calling APIs.

URI

PUT /v3/{project_id}/elb/l7policies/{l7policy_id}/rules/{l7rule_id}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

l7policy_id

Yes

String

Specifies the forwarding policy ID.

l7rule_id

Yes

String

Specifies the forwarding rule ID.

project_id

Yes

String

Definition: Specifies the project ID. For details about how to obtain a project ID, see Obtaining a Project ID.

Constraints: N/A

Range: The value can contain a maximum of 32 characters, including digits and lowercase letters.

Default value: N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Definition: Specifies the token used for IAM authentication.

Constraints: N/A

Range: N/A

Default value: N/A

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

rule

Yes

UpdateL7RuleOption object

Definition: Specifies the forwarding rule.

Table 4 UpdateL7RuleOption

Parameter

Mandatory

Type

Description

admin_state_up

No

Boolean

Definition: Specifies the administrative status of the forwarding rule.

Constraints: The value can only be true.

compare_type

No

String

Definition: Specifies how requests are matched with the forwarding rule.

Constraints:

  • If type is set to HOST_NAME, the value can only be EQUAL_TO, and asterisks (*) can be used as wildcard characters.

  • If type is set to PATH, the value can be REGEX, STARTS_WITH, or EQUAL_TO.

  • If type is set to METHOD or SOURCE_IP, the value can only be EQUAL_TO.

  • If type is set to HEADER or QUERY_STRING, the value can only be EQUAL_TO, asterisks (*) and question marks (?) can be used as wildcard characters.

Range:

  • EQUAL_TO: exact match

  • REGEX: regular expression match

  • STARTS_WITH: prefix match

invert

No

Boolean

Definition: Specifies whether reverse matching is supported.

Range: true or false

This parameter is unsupported. Please do not use it.

key

No

String

Definition: Specifies the key of the match item. For example, if an HTTP header is used for matching, key is the name of the HTTP header parameter.

This parameter is unsupported. Please do not use it.

value

No

String

Definition: Specifies the value of the match item. For example, if a domain name is used for matching, value is the domain name.

Constraints: This parameter takes effect only when conditions is left blank.

Range:

  • If type is set to HOST_NAME, the value can contain letters, digits, hyphens (-), and periods (.), or *, and must start with a letter, digit, or *. If you want to use a wildcard domain name, enter an asterisk (*) as the leftmost label of the domain name.

  • If type is set to PATH and compare_type to STARTS_WITH or EQUAL_TO, the value must start with a slash (/) and can contain only letters, digits, and special characters: _~';@^-%#&$.*+?,=!:|\/()[]{}

  • If type is set to METHOD, SOURCE_IP, HEADER, or QUERY_STRING, this parameter will not take effect, and conditions will be used to specify the key and value.

conditions

No

Array of UpdateRuleCondition objects

Definition: Specifies the conditions contained in a forwarding rule.

Constraints:

  • This parameter takes effect only when enhance_l7policy_enable is set to true.

  • If conditions is set for a forwarding rule, the values of key and value are ignored.

  • All keys in the conditions of a rule must be the same, and the values must be unique.

Table 5 UpdateRuleCondition

Parameter

Mandatory

Type

Description

key

No

String

Definition: Specifies the key of match item.

Constraints: All keys in the conditions list in the same rule must be the same.

Range:

  • If type is set to HOST_NAME, PATH, METHOD, or SOURCE_IP, this parameter is an empty string.

  • If type is set to HEADER, key indicates the name of the HTTP header parameter, and value indicates the value of the request header parameter. Each key can contain 1 to 40 characters, including letters, digits, hyphens (-), and underscores (_).

  • If type is set to QUERY_STRING, key indicates the name of the query parameter, and value indicates the value of the query parameter. The key is case sensitive and can contain 1 to 128 characters. Spaces, square brackets ([ ]), curly brackets ({ }), angle brackets (< >), backslashes (), double quotation marks (" "), pound signs (#), ampersands (&), vertical bars (|), percent signs (%), and tildes (~) are not allowed.

value

No

String

Definition: Specifies the value of the match item.

Constraints:

  • The key of each condition in a forwarding rule must be the same.

  • The value of each condition in a forwarding rule must be unique.

Range:

  • If type is set to HOST_NAME, key is always an empty string and value indicates the domain name. Each value can contain 1 to 128 characters, including letters, digits, hyphens (-), periods (.), and asterisks (*), and must start with a letter, digit, or *. If you want to use a wildcard domain name, enter * as the leftmost label of the domain name.

  • If type is set to PATH, key is always an empty string and value indicates the request path, which can contain 1 to 128 characters. If compare_type is set to STARTS_WITH or EQUAL_TO for a forwarding rule, the value must start with a slash (/) and can contain only letters, digits, and special characters: _~';@^-%#&$.*+?,=!:|\/()[]{}

  • If type is set to HEADER, key indicates the name of the HTTP header parameter, and value indicates the value of the request header parameter. The value can contain 1 to 128 characters. Asterisks (*) and question marks (?) are allowed, but spaces and double quotation marks are not allowed. An asterisk can match zero or more characters, and a question mark can match one character.

  • If type is set to QUERY_STRING, key indicates the name of the query parameter, and value indicates the value of the query parameter. The value is case sensitive and can contain 1 to 128 characters. Spaces, square brackets ([ ]), curly brackets ({ }), angle brackets (< >), backslashes (), double quotation marks (" "), pound signs (#), ampersands (&), vertical bars (|), percent signs (%), and tildes (~) are not allowed. Asterisks (*) and question marks (?) are allowed. An asterisk can match zero or more characters, and a question mark can match one character.

  • If type is set to METHOD, key is always an empty string and value indicates the HTTP method. The value can be GET, PUT, POST, DELETE, PATCH, HEAD, or OPTIONS.

  • If type is set to SOURCE_IP, key is always an empty string and value indicates the source IP address of the request. The value is an IPv4 or IPv6 CIDR block, for example, 192.168.0.2/32 or 2049::49/64.

Response Parameters

Status code: 200

Table 6 Response body parameters

Parameter

Type

Description

request_id

String

Definition: Specifies the request ID.

Range: The value is automatically generated, and can contain characters including digits, lowercase letters, and hyphens (-).

rule

L7Rule object

Definition: Specifies the forwarding rule.

Table 7 L7Rule

Parameter

Type

Description

admin_state_up

Boolean

Definition: Specifies the administrative status of the forwarding rule. The value is fixed at true.

This parameter is unsupported. Please do not use it.

compare_type

String

Definition: Specifies how requests are matched with the forwarding rule.

Range: If type is set to HOST_NAME, this parameter can only be set to EQUAL_TO. If type is set to PATH, the value can be REGEX, STARTS_WITH, or EQUAL_TO.

key

String

Definition: Specifies the key of the match content.

project_id

String

Definition: Specifies the ID of the project where the forwarding rule is used.

type

String

Definition: Specifies the forwarding rule type.

Constraints:

If type is set to HOST_NAME, PATH, METHOD, or SOURCE_IP, only one forwarding rule can be created for each type. If type is set to HEADER and QUERY_STRING, multiple forwarding rules can be created for each type.

Range:

  • HOST_NAME: A domain name will be used for matching.

  • PATH: A URL will be used for matching.

  • METHOD: A request method will be used for matching.

  • HEADER: A request header will be used for matching.

  • QUERY_STRING: A query string will be used for matching.

  • SOURCE_IP: A source IP address will be used for matching.

  • COOKIE: A cookie will be used for matching.

value

String

Definition: Specifies the value of the match item.

Constraints: This parameter takes effect only when conditions is left blank.

Range:

  • If type is set to HOST_NAME, the value can contain letters, digits, hyphens (-), and periods (.), or *, and must start with a letter, digit, or . If you want to use a wildcard domain name, enter an asterisk () as the leftmost label of the domain name.

  • If type is set to PATH and compare_type to STARTS_WITH or EQUAL_TO, the value must start with a slash (/) and can contain only letters, digits, and special characters: _~';@^-%#&$.*+?,=!:|\/()[]{}

  • If type is set to METHOD, SOURCE_IP, HEADER, or QUERY_STRING, this parameter will not take effect, and conditions will be used to specify the key and value.

provisioning_status

String

Definition: Specifies the provisioning status of the forwarding rule. This parameter is invalid. The default value is ACTIVE.

Range: ACTIVE, PENDING_CREATE, or ERROR.

invert

Boolean

Definition: Specifies whether reverse matching is supported.

Constraints: The value is fixed at false. This parameter can be updated but will not take effect.

id

String

Definition: Specifies the forwarding rule ID.

conditions

Array of RuleCondition objects

Definition: Specifies the conditions contained in a forwarding rule.

Constraints:

  • This parameter takes effect only when enhance_l7policy_enable is set to true.

  • If conditions is set for a forwarding rule, the values of key and value are ignored.

  • All keys in the conditions of a rule must be the same, and the values must be unique.

created_at

String

Definition: Specifies the creation time.

Range: The value must be a UTC time in the yyyy-MM-dd'T'HH:mm:ss'Z' format.

updated_at

String

Definition: Specifies the update time.

Range: The value must be a UTC time in the yyyy-MM-dd'T'HH:mm:ss'Z' format.

Table 8 RuleCondition

Parameter

Type

Description

key

String

Definition: Specifies the key of match item.

Constraints: All keys in the conditions list in the same rule must be the same.

Range:

  • If type is set to HOST_NAME, PATH, METHOD, or SOURCE_IP, this parameter is an empty string.

  • If type is set to HEADER, key indicates the name of the HTTP header parameter, and value indicates the value of the request header parameter. Each key can contain 1 to 40 characters, including letters, digits, hyphens (-), and underscores (_).

  • If type is set to QUERY_STRING, key indicates the name of the query parameter, and value indicates the value of the query parameter. The key is case sensitive and can contain 1 to 128 characters. Spaces, square brackets ([ ]), curly brackets ({ }), angle brackets (< >), backslashes (), double quotation marks (" "), pound signs (#), ampersands (&), vertical bars (|), percent signs (%), and tildes (~) are not allowed.

value

String

Definition: Specifies the value of the match item.

Constraints:

The value of each condition in a forwarding rule must be unique.

Range:

  • If type is set to HOST_NAME, key is always an empty string and value indicates the domain name. Each value can contain 1 to 128 characters, including letters, digits, hyphens (-), periods (.), and asterisks (*), and must start with a letter, digit, or *. If you want to use a wildcard domain name, enter * as the leftmost label of the domain name.

  • If type is set to PATH, key is always an empty string and value indicates the request path, which can contain 1 to 128 characters. If compare_type is set to STARTS_WITH or EQUAL_TO for a forwarding rule, the value must start with a slash (/) and can contain only letters, digits, and special characters: _~';@^-%#&$.*+?,=!:|\/()[]{}

  • If type is set to HEADER, key indicates the name of the HTTP header parameter, and value indicates the value of the request header parameter. The value can contain 1 to 128 characters. Asterisks (*) and question marks (?) are allowed, but spaces and double quotation marks are not allowed. An asterisk can match zero or more characters, and a question mark can match one character.

  • If type is set to QUERY_STRING, key indicates the name of the query parameter, and value indicates the value of the query parameter. The value is case sensitive and can contain 1 to 128 characters. Spaces, square brackets ([ ]), curly brackets ({ }), angle brackets (< >), backslashes (), double quotation marks (" "), pound signs (#), ampersands (&), vertical bars (|), percent signs (%), and tildes (~) are not allowed. Asterisks (*) and question marks (?) are allowed. An asterisk can match zero or more characters, and a question mark can match one character.

  • If type is set to METHOD, key is always an empty string and value indicates the HTTP method. The value can be GET, PUT, POST, DELETE, PATCH, HEAD, or OPTIONS.

  • If type is set to SOURCE_IP, key is always an empty string and value indicates the source IP address of the request. The value is an IPv4 or IPv6 CIDR block, for example, 192.168.0.2/32 or 2049::49/64.

Example Requests

Modifying a forwarding rule

PUT https://{ELB_Endpoint}/v3/{99a3fff0d03c428eac3678da6a7d0f24}/elb/l7policies/cf4360fd-8631-41ff-a6f5-b72c35da74be/rules/84f4fcae-9c15-4e19-a99f-72c0b08fd3d7

{
  "rule" : {
    "compare_type" : "STARTS_WITH",
    "value" : "/ccc.html"
  }
}

Example Responses

Status code: 200

Successful request.

{
  "rule" : {
    "compare_type" : "STARTS_WITH",
    "provisioning_status" : "ACTIVE",
    "project_id" : "99a3fff0d03c428eac3678da6a7d0f24",
    "invert" : false,
    "admin_state_up" : true,
    "value" : "/ccc.html",
    "key" : null,
    "type" : "PATH",
    "id" : "84f4fcae-9c15-4e19-a99f-72c0b08fd3d7"
  },
  "request_id" : "133096f9-e754-430d-a2c2-e61fe1190aa8"
}

Status Codes

Status Code

Description

200

Successful request.

Error Codes

See Error Codes.