Updated on 2025-09-28 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

Definition: Specifies the forwarding policy ID.

Constraints: N/A

Range: N/A

Default value: N/A

l7rule_id

Yes

String

Definition: Specifies the forwarding rule ID.

Constraints: N/A

Range: N/A

Default value: N/A

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.

Constraints: N/A

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.

Range: N/A

Default value: N/A

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

Default value: N/A

invert

No

Boolean

Definition: Specifies whether reverse matching is supported.

Constraints: N/A

Range: true or false

Default value: 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.

Constraints: N/A

Range: N/A

Default value: N/A

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 (-), periods (.), and asterisks (*), and must start with a letter, digit, or asterisk (*). 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.

Default value: N/A

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.

Range: N/A

Default value: N/A

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.

Default value: N/A

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 asterisk (*). 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, 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.

Default value: N/A

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.

Range: The value can only be 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.

Range: N/A

project_id

String

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

Range: N/A

type

String

Definition: Specifies the forwarding rule 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.

Range:

  • If type is set to HOST_NAME, the value can contain letters, digits, hyphens (-), periods (.), and asterisks (*), and must start with a letter, digit, or asterisk (*). 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.

Range: N/A

id

String

Definition: Specifies the forwarding rule ID.

Range: N/A

conditions

Array of RuleCondition objects

Definition: Specifies the conditions contained in a forwarding rule.

Range: N/A

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.

Default value: N/A

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 asterisk (*). 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, 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.

Default value: N/A

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.