Updated on 2023-12-18 GMT+08:00

Adding a Forwarding Rule

Function

This API is used to add a forwarding rule. After you add a forwarding rule, the load balancer matches the domain name and path in the request and distributes the traffic to the backend server group specified by redirect_pool_id of the associated forwarding policy.

Constraints

The match type of forwarding rules in a forwarding policy must be unique.

URI

POST /v2.0/lbaas/l7policies/{l7policy_id}/rules

Table 1 Parameter description

Parameter

Mandatory

Type

Description

l7policy_id

Yes

String

Specifies the forwarding policy ID.

Request

Table 2 Parameter description

Parameter

Mandatory

Type

Description

rule

Yes

Object

Specifies the forwarding rule. For details, see Table 3.

Table 3 rule parameter description

Parameter

Mandatory

Type

Description

tenant_id

No

String

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

The value must be the same as the value of project_id in the token.

The value contains a maximum of 255 characters.

project_id

No

String

Specifies the ID of the project to which the forwarding rule belongs. This parameter has the same meaning as tenant_id.

The value must be the same as the value of project_id in the token.

admin_state_up

No

Boolean

Specifies the administrative status of the forwarding rule.

This parameter is reserved, and the default value is true.

type

Yes

String

Specifies the match type of a forwarding rule.

The value can be one of the following:

  • HOST_NAME: matches the domain name in the request.
  • PATH: matches the path in the request.

The match type of forwarding rules in a forwarding policy must be unique.

compare_type

Yes

String

Specifies the match mode. The options are as follows:

When type is set to HOST_NAME, the value of this parameter can only be the following:

  • EQUAL_TO: indicates exact match.

When type is set to PATH, the value of this parameter can be one of the following:

  • REGEX: indicates regular expression match.
  • STARTS_WITH: indicates prefix match.
  • EQUAL_TO: indicates exact match.

invert

No

Boolean

Specifies whether reverse matching is supported.

The value can be true or false. The default value is false.

This parameter is reserved.

key

No

String

Specifies the key of the match content. The default value is null.

This parameter is reserved.

The value contains a maximum of 255 characters.

value

Yes

String

Specifies the value of the match content. The value cannot contain spaces.

The value contains a maximum of 128 characters.

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

Response

Table 4 Response parameters

Parameter

Type

Description

rule

Object

Specifies the forwarding rule. For details, see Table 5.

Table 5 rule parameter description

Parameter

Type

Description

id

String

Specifies the forwarding rule ID.

tenant_id

String

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

The value contains a maximum of 255 characters.

project_id

String

Specifies the ID of the project to which the forwarding rule belongs. This parameter has the same meaning as tenant_id.

admin_state_up

Boolean

Specifies the administrative status of the forwarding rule.

This parameter is reserved. The value can be true or false.

  • true: Enabled
  • false: Disabled

type

String

Specifies the match type of a forwarding rule.

The value can be one of the following:

  • HOST_NAME: matches the domain name in the request.
  • PATH: matches the path in the request.

compare_type

String

Specifies the match mode. The options are as follows:

When type is set to HOST_NAME, the value of this parameter can only be the following:

  • EQUAL_TO: indicates exact match.

When type is set to PATH, the value of this parameter can be one of the following:

  • REGEX: indicates regular expression match.
  • STARTS_WITH: indicates prefix match.
  • EQUAL_TO: indicates exact match.

invert

Boolean

Specifies whether reverse matching is supported.

The value can be true or false. The default value is false.

This parameter is reserved.

key

String

Specifies the key of the match content. The default value is null.

This parameter is reserved.

The value contains a maximum of 255 characters.

value

String

Specifies the value of the match content.

The value contains a maximum of 128 characters.

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

provisioning_status

String

This parameter is reserved, and its value can only be ACTIVE.

It specifies the provisioning status of the forwarding rule.

Example Request

  • Example request: Adding a forwarding rule
    POST https://{Endpoint}/v2.0/lbaas/l7policies/5ae0e1e7-5f0f-47a1-b39f-5d4c428a1586/rules  
    
    {
        "rule": {
            "compare_type": "EQUAL_TO", 
            "type": "PATH", 
            "value": "/bbb.html"
        }
    }

Example Response

  • Example response
    {
        "rule": {
            "compare_type": "EQUAL_TO", 
            "admin_state_up": true, 
            "provisioning_status": "ACTIVE",
            "tenant_id": "a31d2bdcf7604c0faaddb058e1e08819", 
            "project_id": "a31d2bdcf7604c0faaddb058e1e08819", 
            "invert": false, 
            "value": "/bbb.html", 
            "key": null, 
            "type": "PATH", 
            "id": "c6f457b8-bf6f-45d7-be5c-a3226945b7b1"
        }
    }

Status Code

For details, see Status Codes.