LbRule (schema)

Load balancer rules

Load balancer rules allow customization of load balancing behavior using
match/action rules. Currently, load balancer rules are supported for only
layer 7 virtual servers with application profile LbHttpProfile.
Each application rule consists of one or more match conditions and one or
more actions.
Load balancer rules could be used by different load balancer services.
Name Description Type Notes
_create_time Timestamp of resource creation EpochMsTimestamp Readonly
Sortable
_create_user ID of the user who created this resource string Readonly
_last_modified_time Timestamp of last modification EpochMsTimestamp Readonly
Sortable
_last_modified_user ID of the user who last modified this resource string Readonly
_links References related to this resource

The server will populate this field when returing the resource. Ignored on PUT and POST.
array of ResourceLink Readonly
_protection Indicates protection status of this resource

Protection status is one of the following:
PROTECTED - the client who retrieved the entity is not allowed
to modify it.
NOT_PROTECTED - the client who retrieved the entity is allowed
to modify it
REQUIRE_OVERRIDE - the client who retrieved the entity is a super
user and can modify it, but only when providing
the request header X-Allow-Overwrite=true.
UNKNOWN - the _protection field could not be determined for this
entity.
string Readonly
_revision Generation of this resource config

The _revision property describes the current revision of the resource. To prevent clients from overwriting each other's changes, PUT operations must include the current _revision of the resource, which clients should obtain by issuing a GET operation. If the _revision provided in a PUT request is missing or stale, the operation will be rejected.
int
_schema Schema for this resource string Readonly
_self Link to this resource SelfResourceLink Readonly
_system_owned Indicates system owned resource boolean Readonly
actions Actions to be executed

A list of actions to be executed at specified phase when load balancer
rule matches. The actions are used to manipulate application traffic,
such as rewrite URI of HTTP messages, redirect HTTP messages, etc.
array of LbRuleAction
(Abstract type: pass one of the following concrete types)
LbConnectionDropAction
LbHttpRedirectAction
LbHttpRejectAction
LbHttpRequestHeaderDeleteAction
LbHttpRequestHeaderRewriteAction
LbHttpRequestUriRewriteAction
LbHttpResponseHeaderDeleteAction
LbHttpResponseHeaderRewriteAction
LbJwtAuthAction
LbSelectPoolAction
LbSslModeSelectionAction
LbVariableAssignmentAction
LbVariablePersistenceLearnAction
LbVariablePersistenceOnAction
Required
Maximum items: 60
description Description of this resource string Maximum length: 1024
Sortable
display_name Identifier to use when displaying entity in logs or GUI

Defaults to ID if not set
string Maximum length: 255
Sortable
id Unique identifier of this resource string Sortable
match_conditions Conditions to match application traffic

A list of match conditions used to match application traffic. Multiple
match conditions can be specified in one load balancer rule, each match
condition defines a criterion to match application traffic.
If no match conditions are specified, then the load balancer rule will
always match and it is used typically to define default rules. If more
than one match condition is specified, then match strategy determines
if all conditions should match or any one condition should match for the
load balancer rule to considered a match.
array of LbRuleCondition
(Abstract type: pass one of the following concrete types)
LbHttpRequestBodyCondition
LbHttpRequestCookieCondition
LbHttpRequestHeaderCondition
LbHttpRequestMethodCondition
LbHttpRequestUriArgumentsCondition
LbHttpRequestUriCondition
LbHttpRequestVersionCondition
LbHttpResponseHeaderCondition
LbHttpSslCondition
LbIpHeaderCondition
LbSslSniCondition
LbTcpHeaderCondition
LbVariableCondition
Maximum items: 60
match_strategy Strategy to match multiple conditions

Strategy to define how load balancer rule is considered a match when
multiple match conditions are specified in one rule. If match_stragety
is set to ALL, then load balancer rule is considered a match only if all
the conditions match. If match_strategy is set to ANY, then load
balancer rule is considered a match if any one of the conditions match.
string Required
Enum: ALL, ANY
phase Load balancer processing phase

Each load balancer rule is used at a specific phase of load balancer
processing. Currently five phases are supported, HTTP_REQUEST_REWRITE,
HTTP_FORWARDING, HTTP_RESPONSE_REWRITE, HTTP_ACCESS and TRANSPORT.
When an HTTP request message is received by load balancer, all
HTTP_REQUEST_REWRITE rules, if present are executed in the order they
are applied to virtual server. And then if HTTP_FORWARDING rules
present, only first matching rule's action is executed, remaining rules
are not checked. HTTP_FORWARDING rules can have only one action. If the
request is forwarded to a backend server and the response goes back to
load balancer, all HTTP_RESPONSE_REWRITE rules, if present, are executed
in the order they are applied to the virtual server.
In HTTP_ACCESS phase, user can define action to control access using
JWT authentication.
In TRANSPORT phase, user can define the condition to match SNI in TLS
client hello and define the action to do SSL end-to-end, SSL offloading
or SSL passthrough using a specific load balancer server pool.
string Required
Enum: HTTP_REQUEST_REWRITE, HTTP_FORWARDING, HTTP_RESPONSE_REWRITE, HTTP_ACCESS, TRANSPORT
resource_type Must be set to the value LbRule string
tags Opaque identifiers meaningful to the API user array of Tag Maximum items: 30