• Elastic Load Balancing

elb
  1. Help Center
  2. Elastic Load Balancing
  3. API Reference
  4. Enhanced Load Balancer APIs
  5. L7 Rule (Forwarding Rule)
  6. Adding a Forwarding Rule

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 with the forwarding policy.

URI

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

Table 1 Parameter description

Parameter

Type

Mandatory

Description

l7policy_id

Uuid

Yes

Specifies the forwarding policy ID.

Request

  • Request parameters
    Table 2 Parameter description

    Parameter

    Type

    Mandatory

    Description

    l7rule

    Dict

    Yes

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

    Table 3 l7rule field description

    Parameter

    Type

    Mandatory

    Description

    tenant_id

    String (255)

    No

    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.

    admin_state_up

    Bool

    No

    Specifies the administrative status of the forwarding rule.

    The value can be true or false.

    This parameter is reserved and has been not used. The default value is true.

    type

    String

    Yes

    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 a forwarding rule in the same forwarding policy must be unique.

    compare_type

    String

    Yes

    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

    Bool

    No

    Specifies whether reverse match is supported.

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

    This parameter is reserved and has been not used.

    key

    String (255)

    No

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

    This parameter is reserved and has been not used.

    value

    String (128)

    Yes

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

    • When type is set to HOST_NAME, the value is a string of 1 to 100 characters, contains only letters, digits, hyphens (-), and periods (.), and must start with a letter or digit.
    • When type is set to PATH, the value is a string of a maximum of 128 characters. When the value of compare_type is set to STARTS_WITH or EQUAL_TO, the string must start with a slash (/) and can contain only letters, digits, and special characters _~';@^-%#&$.*+?,=!:| \/()[]{}
  • Example request
    POST https://{Endpoint}/v2.0/lbaas/l7policies/5ae0e1e7-5f0f-47a1-b39f-5d4c428a1586/rules  
    
    {
        "rule": {
            "compare_type": "EQUAL_TO", 
            "type": "PATH", 
            "value": "/bbb.html"
        }
    }

Response

  • Response parameters
    Table 4 Parameter description

    Parameter

    Type

    Description

    l7rule

    Dict

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

    Table 5 l7rule field description

    Parameter

    Type

    Description

    id

    Uuid

    Specifies the forwarding rule ID.

    tenant_id

    String (255)

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

    admin_state_up

    Bool

    Specifies the administrative status of the forwarding rule.

    The value can be true or false.

    This parameter is reserved and has been not used. The default value is true.

    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

    Bool

    Specifies whether reverse match is supported.

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

    This parameter is reserved and has been not used.

    key

    String (255)

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

    This parameter is reserved and has been not used.

    value

    String (128)

    Specifies the value of the match content.

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

    provisioning_status

    String (16)

    Specifies the provisioning status of the forwarding rule. The value can be ACTIVE, PENDING_CREATE, or ERROR.

    The default value is ACTIVE.

    This parameter is reserved and has been not used.

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

Response Codes

For details, see HTTP Status Codes for Enhanced Load Balancers.