Querying Forwarding Rules

Function

This API is used to query all forwarding rules.

Constraints

This API has the following constraints:

  • Parameters marker, limit, and page_reverse are used for pagination query.

  • Parameters marker and page_reverse take effect only when they are used together with parameter limit.

URI

GET /v3/{project_id}/elb/l7policies/{l7policy_id}/rules

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Specifies the project ID.

l7policy_id

Yes

String

Specifies the forwarding policy ID.

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

limit

No

Integer

Specifies the number of records on each page.

Minimum: 0

Maximum: 2000

Default: 2000

marker

No

String

Specifies the ID of the last record on the previous page.

Note:

  • This parameter must be used together with limit.

  • If this parameter is not specified, the first page will be queried.

  • This parameter cannot be left blank or set to an invalid ID.

page_reverse

No

Boolean

Specifies whether to use reverse query. Values:

  • true: Query the previous page.

  • false (default): Query the next page.

Note:

  • This parameter must be used together with limit.

  • If page_reverse is set to true and you want to query the previous page, set the value of marker to the value of previous_marker.

id

No

Array

Specifies the forwarding rule ID.

Multiple IDs can be queried in the format of id=xxx&id=xxx.

compare_type

No

Array

Specifies how requests are matched with the domain names or URL. Values:

  • EQUAL_TO: exact match.

  • REGEX: regular expression match

  • STARTS_WITH: prefix match

Multiple values can be queried in the format of compare_type=xxx&compare_type=xxx.

provisioning_status

No

Array

Specifies the provisioning status of the forwarding rule. The value can only be ACTIVE, indicating that the forwarding rule is provisioned successfully.

Multiple provisioning statuses can be queried in the format of provisioning_status=xxx&provisioning_status=xxx.

invert

No

Boolean

Specifies whether reverse matching is supported.

The value is fixed at false. This parameter can be updated but remains invalid.

admin_state_up

No

Boolean

Specifies the administrative status of the forwarding rule. The default value is true.

This parameter is unsupported. Please do not use it.

value

No

Array

Specifies the value of the match content.

Multiple values can be queried in the format of value=xxx&value=xxx.

key

No

Array

Specifies the key of the match content that is used to identify the forwarding rule.

Multiple keys can be queried in the format of key=xxx&key=xxx.

This parameter is unsupported. Please do not use it.

type

No

Array

Specifies the match type. The value can be HOST_NAME or PATH.

The type of forwarding rules for the same forwarding policy cannot be the same.

Multiple types can be queried in the format of type=xxx&type=xxx.

enterprise_project_id

No

Array

Specifies the enterprise project ID.

  • If this parameter is not passed, resources in the default enterprise project are queried, and authentication is performed based on the default enterprise project.

  • If this parameter is passed, its value can be the ID of an existing enterprise project (resources in the specific enterprise project are required) or all_granted_eps (resources in all enterprise projects are queried).

Multiple IDs can be queried in the format of enterprise_project_id=xxx&enterprise_project_id=xxx.

This parameter is unsupported. Please do not use it.

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Specifies the token used for IAM authentication.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

request_id

String

Specifies the request ID. The value is automatically generated.

page_info

PageInfo object

Shows pagination information.

rules

Array of L7Rule objects

Lists the forwarding rules.

Table 5 PageInfo

Parameter

Type

Description

previous_marker

String

Specifies the ID of the first record in the pagination query result.

next_marker

String

Specifies the ID of the last record in the pagination query result.

current_count

Integer

Specifies the number of records.

Table 6 L7Rule

Parameter

Type

Description

admin_state_up

Boolean

Specifies the administrative status of the forwarding rule. The default value is true.

This parameter is unsupported. Please do not use it.

compare_type

String

Specifies how requests are matched with the domain name or URL.

  • 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

Specifies the key of the match content. This parameter will not take effect if type is set to HOST_NAME or PATH.

Minimum: 1

Maximum: 255

project_id

String

Specifies the project ID.

type

String

Specifies the type of the forwarding rule. The value can be one of the following:

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

  • PATH: A URL will be used for matching.

  • METHOD: An HTTP request method will be used for matching.

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

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

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

Note:

If type is set to HOST_NAME, PATH, METHOD, and 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.

value

String

Specifies the value of the match item. For example, if a domain name is used for matching, value is the domain name. This parameter will take effect only when conditions is left blank.

  • If type is set to HOST_NAME, the value can contain letters, digits, hyphens (-), and periods (.) and must start with a letter or digit. 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 condition_pair will be used to specify the key and value.

Minimum: 1

Maximum: 128

provisioning_status

String

Specifies the provisioning status of the forwarding rule.

The value can only be ACTIVE (default), PENDING_CREATE, or ERROR.

This parameter is unsupported. Please do not use it.

invert

Boolean

Specifies whether reverse matching is supported. The value is fixed at false. This parameter can be updated but will not take effect.

id

String

Specifies the forwarding policy ID.

conditions

Array of RuleCondition objects

Specifies the matching conditions of the forwarding rule. This parameter will take effect when enhance_l7policy_enable is set to .true. If conditions is specified, key and value will not take effect, and the value of this parameter will contain all conditions configured for the forwarding rule. The keys in the list must be the same, whereas each value must be unique.

created_at

String

Specifies the time when the forwarding rule was added. The format is yyyy-MM-dd'T'HH:mm:ss'Z' (UTC time).

This is a new field in this version, and it will not be returned for resources associated with existing dedicated load balancers and for resources associated with existing and new shared load balancers.

updated_at

String

Specifies the time when the forwarding rule was updated. The format is yyyy-MM-dd'T'HH:mm:ss'Z' (UTC time).

This is a new field in this version, and it will not be returned for resources associated with existing dedicated load balancers and for resources associated with existing and new shared load balancers.

Table 7 RuleCondition

Parameter

Type

Description

key

String

Specifies the key of match item.

  • If type is set to HOST_NAME, PATH, METHOD, or SOURCE_IP, this parameter is left blank.

  • If type is set to HEADER, key indicates the name of the HTTP header parameter. The value 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. 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 supported.

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

Minimum: 1

Maximum: 128

value

String

Specifies the value of the match item.

  • If type is set to HOST_NAME, key is left blank, and value indicates the domain name, which 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 left blank, 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 the 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 HTTP 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 1 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 supported. Asterisks (*) and question marks (?) are allowed. An asterisk can match zero or more characters, and a question mark can match 1 character.

  • If type is set to METHOD, key is left blank, 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 left blank, 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.

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

Minimum: 1

Maximum: 128

Example Requests

GET https://{ELB_Endpoint}/v3/{99a3fff0d03c428eac3678da6a7d0f24}/elb/l7policies/cf4360fd-8631-41ff-a6f5-b72c35da74be/rules

Example Responses

Status code: 200

Successful request.

{
  "rules" : [ {
    "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"
  } ],
  "page_info" : {
    "previous_marker" : "84f4fcae-9c15-4e19-a99f-72c0b08fd3d7",
    "current_count" : 1
  },
  "request_id" : "ae4dbd7d-9271-4040-98b6-3bfe45bb15ee"
}

Status Codes

Status Code

Description

200

Successful request.

Error Codes

See Error Codes.