Adding a Forwarding Rule ======================== Function ^^^^^^^^ This API is used to add a forwarding rule. URI ^^^ POST /v3/{project_id}/elb/l7policies/{l7policy_id}/rules .. table:: **Table 1** Path parameters =========== ========= ====== =================================== Parameter Mandatory Type Description =========== ========= ====== =================================== l7policy_id Yes String Specifies the forwarding policy ID. project_id Yes String Specifies the project ID. =========== ========= ====== =================================== Request Parameters ^^^^^^^^^^^^^^^^^^ .. table:: **Table 2** Request header parameters ============ ========= ====== ================================================ Parameter Mandatory Type Description ============ ========= ====== ================================================ X-Auth-Token Yes String Specifies the token used for IAM authentication. ============ ========= ====== ================================================ .. table:: **Table 3** Request body parameters +-----------+-----------+---------------------------------------------+--------------------------------+ | Parameter | Mandatory | Type | Description | +===========+===========+=============================================+================================+ | rule | Yes | `CreateL7RuleOption <#C | Specifies the forwarding rule. | | | | reateL7Rule__request_CreateL7RuleOption>`__ | | | | | object | | +-----------+-----------+---------------------------------------------+--------------------------------+ .. table:: **Table 4** CreateL7RuleOption +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | Parameter | Mandatory | Type | Description | +=============================+=============================+=============================+=============================+ | 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. | | | | | | | | | | Default: **true** | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | compare_type | Yes | String | Specifies how requests are | | | | | matched and forwarded. | | | | | | | | | | - If **type** is set to | | | | | **HOST_NAME**, this | | | | | parameter can only be | | | | | set to **EQUAL_TO**. | | | | | Asterisks (*) can be | | | | | used as wildcard | | | | | characters. | | | | | | | | | | - If **type** is set to | | | | | **PATH**, this parameter | | | | | can be set to **REGEX**, | | | | | **STARTS_WITH**, or | | | | | **EQUAL_TO**. | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | key | No | String | 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. | | | | | | | | | | Minimum: **1** | | | | | | | | | | Maximum: **255** | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | value | Yes | String | Specifies the value of the | | | | | match item. For example, if | | | | | a domain name is used for | | | | | matching, **value** is the | | | | | domain name. | | | | | | | | | | - 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 | | | | | \ | | | | | _~';@^-%#&$.*+?,=!:|/()[]{} | | | | | | | | | | Minimum: **1** | | | | | | | | | | Maximum: **128** | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | project_id | No | String | Specifies the project ID. | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | type | Yes | String | Specifies the match | | | | | content. 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. | | | | | | | | | | If **type** is set to | | | | | **HOST_NAME**, **PATH**, | | | | | **METHOD**, or | | | | | **SOURCE_IP**, only one | | | | | forwarding rule can be | | | | | created for each type. | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | invert | No | Boolean | Specifies whether reverse | | | | | matching is supported. The | | | | | value can be **true** or | | | | | **false**, and the default | | | | | value is **false**. | | | | | | | | | | This parameter is | | | | | unsupported. Please do not | | | | | use it. | | | | | | | | | | Default: **false** | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | conditions | No | Array of | Specifies the matching | | | | `CreateRuleCon | conditions of the | | | | dition <#CreateL7Rule__requ | forwarding rule. This | | | | est_CreateRuleCondition>`__ | parameter will take effect | | | | objects | 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. | | | | | | | | | | This parameter is | | | | | unsupported. Please do not | | | | | use it. | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ .. table:: **Table 5** CreateRuleCondition +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | Parameter | Mandatory | Type | Description | +=============================+=============================+=============================+=============================+ | key | No | String | Specifies the key of match | | | | | item. This parameter is | | | | | left blank. | | | | | | | | | | Minimum: **1** | | | | | | | | | | Maximum: **128** | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ | value | Yes | 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 | | | | | \ | | | | | _~';@^-%#&$.*+?,=!:|/()[]{} | +-----------------------------+-----------------------------+-----------------------------+-----------------------------+ Response Parameters ^^^^^^^^^^^^^^^^^^^ **Status code: 201** .. table:: **Table 6** Response body parameters +------------+---------------------------------------------------+---------------------------------------------------+ | Parameter | Type | Description | +============+===================================================+===================================================+ | request_id | String | Specifies the request ID. The value is | | | | automatically generated. | +------------+---------------------------------------------------+---------------------------------------------------+ | rule | `L7Rule <#CreateL7Rule__response_L7Rule>`__ | Specifies the forwarding rule. | | | object | | +------------+---------------------------------------------------+---------------------------------------------------+ .. table:: **Table 7** 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**, | | | | this parameter can be set to | | | | **REGEX**, **STARTS_WITH**, or | | | | **EQUAL_TO**. | +---------------------------------------+---------------------------------------+---------------------------------------+ | key | String | Specifies the key of the match | | | | content. This parameter will not take | | | | effect when **type** is set to | | | | **HOST_NAME** or **PATH**. It can be | | | | updated but will not take effect. | | | | | | | | This parameter is unsupported. Please | | | | do not use it. | | | | | | | | Minimum: **1** | | | | | | | | Maximum: **255** | +---------------------------------------+---------------------------------------+---------------------------------------+ | project_id | String | Specifies the project ID. | +---------------------------------------+---------------------------------------+---------------------------------------+ | type | String | Specifies the match content. 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. | | | | | | | | If **type** is set to **HOST_NAME**, | | | | **PATH**, **METHOD**, or | | | | **SOURCE_IP**, only one forwarding | | | | rule 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. | | | | | | | | - 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 | | | | \_~';@^-%#&$.*+?,=!:|/()[]{} | | | | | | | | Minimum: **1** | | | | | | | | Maximum: **128** | +---------------------------------------+---------------------------------------+---------------------------------------+ | provisioning_status | String | Specifies the provisioning status of | | | | the forwarding rule. | | | | | | | | The value can only be **ACTIVE**. | +---------------------------------------+---------------------------------------+---------------------------------------+ | invert | Boolean | Specifies whether reverse matching is | | | | supported. The value is fixed at | | | | **false**. This parameter can be | | | | updated but remains invalid. | | | | | | | | Default: **false** | +---------------------------------------+---------------------------------------+---------------------------------------+ | id | String | Specifies the forwarding policy ID. | +---------------------------------------+---------------------------------------+---------------------------------------+ | conditions | Array of | Specifies the matching conditions of | | | `RuleCondition <#Cre | the forwarding rule. | | | ateL7Rule__response_RuleCondition>`__ | | | | objects | - 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. | | | | | | | | - If **conditions** is not | | | | specified, the values of **key** | | | | and **value** are displayed. | | | | | | | | This parameter is unsupported. Please | | | | do not use it. | +---------------------------------------+---------------------------------------+---------------------------------------+ .. table:: **Table 8** RuleCondition +---------------------------------------+---------------------------------------+---------------------------------------+ | Parameter | Type | Description | +=======================================+=======================================+=======================================+ | key | String | Specifies the key of match item. This | | | | parameter is left blank. | | | | | | | | 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 | | | | \_~';@^-%#&$.*+?,=!:|/()[]{} | | | | | | | | Minimum: **1** | | | | | | | | Maximum: **128** | +---------------------------------------+---------------------------------------+---------------------------------------+ Example Requests ^^^^^^^^^^^^^^^^ .. code:: screen POST https://{elb_endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/l7policies/cf4360fd-8631-41ff-a6f5-b72c35da74be/rules { "rule" : { "compare_type" : "EQUAL_TO", "type" : "PATH", "value" : "/bbb.html" } } Example Responses ^^^^^^^^^^^^^^^^^ **Status code: 201** Successful request. .. code:: screen { "rule" : { "compare_type" : "EQUAL_TO", "provisioning_status" : "ACTIVE", "project_id" : "99a3fff0d03c428eac3678da6a7d0f24", "invert" : false, "admin_state_up" : true, "value" : "/bbb.html", "type" : "PATH", "id" : "84f4fcae-9c15-4e19-a99f-72c0b08fd3d7" }, "request_id" : "3639f1b7-f04b-496e-9218-ec5a9e493f69" } Status Codes ^^^^^^^^^^^^ =========== =================== Status Code Description =========== =================== 201 Successful request. =========== =================== Error Codes ^^^^^^^^^^^ See `Error Codes `__. **Parent topic:** `Forwarding Rule `__