ADC Advanced Policy Expressions

HTTP_URL_T

HTTP.REQ.URL provides operations for parsing and operating on the

URL that is present in the first line of the HTTP request header. The supported format is [<protocol>://<hostname>]<path>?<query>. The

Text object backing a HTTP URL object has the Text Mode set to

URLENCODED by default.

This topic lists the expressions that are provided by this class.

Note:Expressions with the *symbol are inherited/promoted from text_t.

* AFTER_REGEX(re regex)

Selects the text after the portion that matches the given

regular expression argument. The first match is returned

when multiple matches occur in the text. The match may occur

anywhere within the text - if you wish to "anchor" this,

use "^" at the start of the regex and/or "$" at the end of

the regex. When the regular expression does not match the

given string, a Text object of length of 0 is returned.

Example:

 HTTP.REQ.HEADER("etag").AFTER_REGEX(re/KX/) will select

 "DAPPER" from "KXDAPPER".

Parameters(expressions not allowed):

regex -

                        Regular Expression

Returns: text_t

* AFTER_STR_ANY(text_tpatset_name)

Selects the Text that is present after the first occurrence

of any of the strings that are bound to the patset named by

the string argument. If there is no match to any of the strings

bound to the patset in the current Text object then the result

Text object has 0 length.

The patset cannot have strings longer than 255 characters.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: text_t

* AFTER_STR(text_ts)

Selects the Text that is present after the first occurrence

of the string argument. If there is no match for the

argument in the current Text then the result Text object has

0 length.

The input string cannot be bigger than 255 characters.

Parameters(expressions not allowed):

s -

                        String

Returns: text_t

* APPEND(bool_atb)

Appends the given boolean's string representation to the

current string.

Parameters:

b -

                        the boolean value to append.

Returns: text_t

* APPEND(double_ati)

Appends the given double's string representation to the current

string.

Parameters:

i -

                        the double value to append.

Returns: text_t

* APPEND(ip_address_ataddr)

Appends the given IPv4's string representation to the current string.

Parameters:

addr -

                        the IPv4 address to append.

Returns: text_t

* APPEND(num_ati)

Appends the given number's string representation to the current

string.

Parameters:

i -

                        the number value to append.

Returns: text_t

* APPEND(time_att)

Appends the given time's string representation to the current string.

Parameters:

t -

                        the time value to append.

Returns: text_t

* APPEND(unsigned_long_ati)

Appends the given unsigned long's string representation to the

current string.

Parameters:

i -

                        the unsigned long value to append.

Returns: text_t

* APPEND(ipv6_address_ataddr)

Appends the given IPv6's string representation to the current string.

Parameters:

addr -

                        the IPv6 address to append.

Returns: text_t

* APPEND(ipv6_subnet_ataddr)

Appends the given IPv6 subnet's string representation to the current string.

Parameters:

addr -

                        the IPv6 subnet to append.

Returns: text_t

* APPEND(mac_address_ataddr)

Appends the given MAC's string representation to the current string.

Parameters:

addr -

                        the MAC address to append.

Returns: text_t

APPEND_QUERY_PARAMETER(text_tname, text_tvalue)

Returns the URL string with a query parameter

appended. This function appends query parameter

after Converting URL unsafe characters into

corresponding '%xx' values and retains the rest.

Parameters(expressions not allowed):

name -

                        query parameter name

value -

                        query parameter value

Returns: http_url_t

* APPEND(text_tstr)

Appends the given string to the current string.

Parameters:

str -

                        the string to append.

Returns: text_t

* APPEND(time_att)

Appends the given time's string representation to the current string.

Parameters:

t -

                        the time value to append.

Returns: text_t

* B64DECODE

Decodes the selected text using base64 decoding.

For example, the string "TWFu" is converted to "Man"

Returns: text_t

* B64ENCODE

Encodes the selected text using base64 encoding.

For example, the string "Man" is converted to "TWFu"

Returns: text_t

* BEFORE_REGEX(re regex)

Selects the text before the portion that matches the given

regular expression argument. The first match is returned

when multiple matches occur in the text. The match may occur

anywhere within the text - if you wish to "anchor" this,

use "^" at the start of the regex and/or "$" at the end of

the regex. When the regular expression does not match the

given string, a Text object of length of 0 is returned.

For example:

 HTTP.RES.HEADER("content-type").BEFORE_REGEX(re#/#) will select "text" from "text/plain".

Parameters(expressions not allowed):

regex -

                        Regular Expression

Returns: text_t

* BEFORE_STR_ANY(text_tpatset_name)

Selects the Text that is present before the first occurrence

of any of the strings that are bound to the patset or

datasetnamed by the string argument.

If there is no match to any of the strings

bound to the patset in the current Text object then the result

Text object has 0 length.

The patset cannot have strings longer than 255 characters.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: text_t

* BEFORE_STR(text_ts)

Selects the Text that is present before the first occurrence

of the string argument. If there is no match for the

argument in the current Text object then the result Text

object has 0 length.

The input string cannot be bigger than 255 characters.

Parameters(expressions not allowed):

s -

                        String

Returns: text_t

* BETWEEN(text_tstart, text_tend)

Results in Boolean TRUE value if length of the Text object

is greater than or equal to the sum of the Start and End argument

lengths and if the prefix of the Text object

matches the Start string argument and if the Suffix of the Text

object matches the End string argument.

Parameters:

start -

                        Start

end -

                        End

Returns: bool_at

* BIN_DECODE(binary_encoding_eencoding)

Decode the encoded input into its original byte sequence. An incorrectly

enooded input will result in an Undef error.

Parameters(expressions not allowed):

encoding -

                        specifies how the bytes are encoded.

Returns: text_t

* BIN_ENCODE(binary_encoding_eencoding)

Encode the input byte sequence. Note that BIN_ENCODE(hex_colons) is

equivalent to BLOB_TO_HEX().

Parameters(expressions not allowed):

encoding -

                        specifies how the bytes are to be encoded.

Returns: text_t

* BLOB_TO_HEX

Convert to hexadecimal representation and select text.

For example, the byte string abc is converted to 61:62:63.

Returns: text_t

* COMPARE(text_ts)

Results in a Number Value which is the result of comparison of

the input argument with the Text object. The result is

greater than 0 if the Text object is lexicographically

greater than the argument. The result is 0 if the Text

object and the argument match. The result is less than 0 if

the Text object is lexicographically lesser than the argument.

Parameters:

s -

                        String

Returns: num_at

* CONTAINS_ANY(text_tpatset_name)

Results in Boolean TRUE value if the Text contains any of

the strings that are bound to the patset or dataset named by the

string argument.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: bool_at

* CONTAINS_INDEX(text_tpatset_name)

Returns the numerical index of the matching string, if the Text

contains any of the strings that are bound to the patset or dataset

named by the string argument. Returns 0 if there is no

match.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: num_at

* CONTAINS(text_ts)

Results in Boolean TRUE value if the Text contains the

string given in the argument.

The input string cannot be bigger than 255 characters.

Parameters(expressions not allowed):

s -

                        String

Returns: bool_at

* CRC32

Returns a 32-bit integer computed by applying a

CRC (cyclic redundancy check) function to the selected

text. This is the CRC function used by Ethernet,

MPEG-2, PKZIP, GZIP, PNG, and many other applications.

For example, the expression to compute the CRC value

of the (first 1000 bytes of the) body of an HTTP request is:

HTTP.REQ.BODY(1000).CRC32

Returns: num_at

* DECODE_USING_TEXT_MODE

Decodes the selected text using the currently configured

text encoding methods like URLENCODED, BACKSLASH_ENCODED,

PLUS_AS_SPACE, NOURLENCODED, NO_BACKSLASH_ENCODED and

NO_PLUS_AS_SPACE. Text encoding methods are set

using SET_TEXT_MODE method.

Returns: text_t

* DECRYPT

Decrypt the selected base64-encoded ciphertext using the

configured encryptionParams.

Returns: text_t

* DECRYPT(binary_encoding_ein_encoding)

Decrypt the selected ciphertext using the configured encryptionParams.

Parameters(expressions not allowed):

in_encoding -

                        specifies how the input ciphertext is encoded.

If the ciphertext is not encoded as specified, causes an Undef error.

Returns: text_t

* DECRYPT(text_tencryptionKey)

Decrypt the selected base64-encoded encrypted bytes using the

configured encryption key.

Parameters(expressions not allowed):

encryptionKey -

                        identifies the encryptionKey object

to provide the cipher method, mode, padding, key, encrypted format

and optional initialization vector (IV).

Returns: text_t

* DECRYPT(text_tencryptionKey, binary_encoding_ein_encoding)

Decrypt the selected base64-encoded encrypted bytes using the

configured encryption key.

Parameters(expressions not allowed):

encryptionKey -

                        identifies the encryptionKey object

to provide the cipher method, mode, padding, key, encrypted format,

and optional initialization vector (IV).

in_encoding -

                        specifies how the input ciphertext is encoded.

If the ciphertext is not encoded as specified, causes an Undef error.

Returns: text_t

* DIGEST(digest_method_emethod)

Returns a byte sequence computed by applying the

the specified message digest method to the selected

text.

Parameters(expressions not allowed):

method -

                        digest method to apply to the input text

Returns: text_t

* ENCRYPT

Encrypt the selected plaintext bytes using the configured

encryptionParams. The resulting ciphertext is base64-encoded.

Returns: text_t

* ENCRYPT(binary_encoding_eout_encoding)

Encrypt the selected plaintext bytes using the configured

encryptionParams.

Parameters(expressions not allowed):

out_encoding -

                        specifies how the resulting ciphertext is encoded.

Returns: text_t

* ENCRYPT(text_tencryptionKey)

Encrypt the selected cleartext bytes using the configured

encryption key.

Parameters(expressions not allowed):

encryptionKey -

                        identifies the encryptionKey object

to provide the cipher method, mode, padding, key, encrypted format

and optional initialization vector (IV).

Returns: text_t

* ENCRYPT(text_tencryptionKey, binary_encoding_eout_encoding)

Encrypt the selected cleartext bytes using the configured

encryption key.

Parameters(expressions not allowed):

encryptionKey -

                        identifies the encryptionKey object

to provide the cipher method, mode, padding, key, encrypted format

and optional initialization vector (IV).

out_encoding -

                        specifies how the resulting ciphertext is encoded.

Returns: text_t

* ENDSWITH_ANY(text_tpatset_name)

Results in Boolean TRUE value if the Text ends with any of

the strings that are bound to the patset or dataset named by the

string argument.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: bool_at

* ENDSWITH_INDEX(text_tpatset_name)

Returns the numerical index of the matching string, if the Text

ends with any of the strings that are bound to the patset or dataset

named by the string argument. Returns 0 if there is no match.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: num_at

* ENDSWITH(text_tend)

Results in Boolean TRUE value if a suffix of the Text

object matches the string argument.

Parameters:

end -

                        String

Returns: bool_at

* EQUALS_ANY(text_tpatset_name)

Results in Boolean TRUE value if the Text equals any of

the strings that are bound to the patset or

dataset named by the string argument.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: bool_at

* EQUALS_INDEX(text_tpatset_name)

Returns the numerical index of the matching string, if the Text

equals any of the strings that are bound to the patset or dataset

named by the string argument. Returns 0 if there is no match.

Parameters(expressions not allowed):

patset_name -

                        Pattern Set Name

Returns: num_at

* EQ(text_ts)

Results in Boolean TRUE value if the Text object matches the

input argument.

Parameters:

s -

                        String

Returns: bool_at

* GET_SIGNED16(uint n, endian_eendianness)

Get the 16-bit signed binary integer at the given offset.

Parameters:

n -

                        Offset in bytes

endianness -

                        Select little or big endian

Returns: num_at

* GET_SIGNED32(uint n, endian_eendianness)

Get the 32-bit signed binary integer at the given offset.

Parameters:

n -

                        Offset in bytes

endianness -

                        Select little or big endian

Returns: num_at

* GET_SIGNED8(uint n)

Get the 8-bit signed binary integer at the given offset.

Parameters:

n -

                        Offset in bytes

Returns: num_at

* GET_UNSIGNED16(uint n, endian_eendianness)

Get the 16-bit unsigned binary integer at the given offset.

Parameters:

n -

                        Offset in bytes

endianness -

                        Select little or big endian

Returns: num_at

* GET_UNSIGNED32(uint n, endian_eendianness)

Get the 32-bit unsigned binary integer at the given offset.

Parameters:

n -

                        Offset in bytes

endianness -

                        Select little or big endian

Returns: unsigned_long_at

* GET_UNSIGNED64(uint n, endian_eendianness)

Get the 64-bit unsigned binary integer at the given offset.

Parameters:

n -

                        Offset in bytes

endianness -

                        Select little or big endian

Returns: unsigned_long_at

* GET_UNSIGNED8(uint n)

Get the 8-bit unsigned binary integer at the given offset.

Parameters:

n -

                        Offset in bytes

Returns: num_at

* GET_URLSET_METADATA(text_turlset_name)

Returns metadata value corresponding to pattern in the urlset.

The matching is case-insensitive for domains, but case-sensitive

for paths. If no pattern is matched within the urlset, the return

value is a NULL string.

For example:

  • HTTP.REQ.HOST.APPEND(HTTP.REQ.URL).GET_URLSET_METADATA("urlset_forbidden")

    returns value when the combined domain and URL is looked up in the

    urlset whose name is "urlset_forbidden".

  • Parameters(expressions not allowed):

    urlset_name -

                            urlset name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>GE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>Results in Boolean TRUE value if the Text object is greater than or
    

    equal to the input argument.

    Parameters:

    s -

                            String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>GT</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>Results in Boolean TRUE value if the Text object is greater than the
    

    input argument.

    Parameters:

    s -

                            String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>HASH</b></p><div><p>Returns a positive 31 bit integer value computed
    

    by applying a proprietary Citrix ADC hash function

    to the selected text. This function is not case-

    sensitive and ignores whitespaces. For example,

    applying the HASH function to two strings "Ab c"

    and "abc" would produce the same value. This

    function should not be used for security purposes;

    use instead the DIGEST function with one of the

    standard digest methods.

    Returns: num_at

    * HMAC(text_thmacKey)

    Returns a byte sequence computed by applying the HMAC

    (Hash Message Authenticastion Code) function to the selected

    text using the configured HMAC key.

    Parameters(expressions not allowed):

    hmacKey -

                            indentifies the hmacKey object to provide the
    

    digest (hash) method and the key.

    Returns: text_t

    * HMAC(text_thmacKey, binary_encoding_eout_encoding)

    Returns a byte sequence computed by applying the HMAC

    (Hash Message Authenticastion Code) function to the selected

    text using the configured HMAC key .

    Parameters(expressions not allowed):

    hmacKey -

                            indentifies the hmacKey object to provide the
    

    digest (hash) method and the key.

    out_encoding -

                            specifies how the resulting HMAC is encoded.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>HOSTNAME</b></p><div><p>Operate as HTTP Host Name on the hostname present in the
    

    URL.

    It can not be used in bi-directional policies.

    Returns: http_hostname_t

    * HTML_XML_SAFE

    Apply XML safe transform and select text.





    Converts '<', '>' and ';'

    in the input text to ';lt;', ';gt;' and ';amp;'

    respectively; other characters in the input are not modified.

    This transform safeguards against XSS based attacks.

    This is a read only operation.

    Returns: text_t

    * HTTP_HEADER_SAFE

    Apply Header safe transform and select text. Converts all new line

    ('\n') characters present in the input text to '%0A' so that they can

    safely be used in HTTP headers. This transform safeguards against

    response-splitting attacks. This is a read only operation.

    Returns: text_t

    * HTTP_URL_SAFE

    Apply URL safe transform and select text. Converts URL unsafe

    characters to corresponding '%xx' values and retains the rest.

    This is a read only operation.

    Based on RFC2396, following are considered URL safe characters:
    
    
    Alpha-numeric characters: a-z, A-Z, 0-9
    
    Hyphen and underscore: "-", "_"
    
    Dot: "."
    
    Exclamation mark: "!"
    
    Tilde: "~"
    
    Asterix: "*"
    
    Single quote: "'"
    
    Open and close parentheses: "(", ")"
    
    Semi-colon: ";"
    
    Colon: ":"
    
    At symbol: "@"
    
    Question mark: "?"
    
    Equals: "="
    
    Dollar: "$"
    
    Percent: "%"
    
    Ampersand: ";"
    
    Plus: "+"
    
    Comma: ","
    
    Forward slash: "/"
    

    The rest are converted to %XX encoding, 'XX' is the hex-based

    representation of the input character.

    If the requirement is to encode all but URL unreserved

    characters, please consider using URL_RESERVED_CHARS_SAFE

    method.

    Returns: text_t

    IS_BOOL_AT

    Results in Boolean TRUE value if the Text is of boolean type.

    Returns: bool_at

    IS_DOUBLE_AT

    Results in Boolean TRUE value if the Text is of double data type.

    Returns: bool_at

    IS_IPV6_AT

    Results in Boolean TRUE value if the Text is of IPv6 data type.

    Returns: bool_at

    IS_IPV6_SUBNET_AT

    Results in Boolean TRUE value if the Text is of IPv6 subnet data type.

    Returns: bool_at

    IS_IP_AT

    Results in Boolean TRUE value if the Text is of IPv4 data type.

    Returns: bool_at

    IS_MAC_ADDRESS_AT

    Results in Boolean TRUE value if the Text is of mac address data type.

    Returns: bool_at

    IS_NUM_AT

    Results in Boolean TRUE value if the Text is of number type.

    Returns: bool_at

    IS_NUM_AT(num_format_eformat)

    Results in Boolean TRUE value if the Text is of number type

    with given input base.

    Parameters(expressions not allowed):

    format -

                            number format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>IS_STRINGMAP_KEY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>string_map_name)</p><div><p>Returns true if the string that it operates on is
    

    present in the string map.

    IGNORECASE, NOIGNORECASE - controls whether key

    lookup in string map is case sensitive or not.

    For example:

    • HTTP.REQ.URL.IS_STRINGMAP_KEY("url_stringmap") returns

      true if value of HTTP.REQ.URL is present as key in the

      string map whose name is "url_stringmap".

    • HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).

      IS_STRINGMAP_KEY("url_stringmap")

      returns true if value of HTTP.REQ.URL is present as key in

      the string map whose name is "url_stringmap".

      Key lookup in this case is done case-insensitively.

    Parameters(expressions not allowed):

    string_map_name -

                            identifies the string map.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>IS_TIME_AT</b></p><div><p>Results in Boolean TRUE if the Text follows any of the
    

    standard time formats given below, otherwise false.

    Tue, 05 Nov 1994 08:12:31 GMT RFC822

    Tuesday, 05-Nov-94 08:12:31 GMT RFC850

    Tue Nov 4 08:12:31 1994 asctime

    Returns: bool_at

    IS_UNSIGNED_LONG_AT

    Results in Boolean TRUE value if the Text is of unsigned long data type.

    Returns: bool_at

    IS_UNSIGNED_LONG_AT(num_format_eformat)

    Results in Boolean TRUE value if the Text is of unsigned long data type

    with given input base.

    Parameters(expressions not allowed):

    format -

                            number format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>JWT_VERIFY_CERTKEY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>certkey_name)</p><div><p>Verifies the signature on the input JSON Web Token (JWT), using the RSA public key in
    

    the X.509 certificate in the specified certkey object. The token has the format

    HEADER.PAYLOAD.SIGNATURE

    where

    • HEADER is a base64-encoded JSON structure indicating a signature algorithm and

      token type, e.g.'{"alg":"RS256","typ":"JWT"}'

    • PAYLOAD is a base64-encoded JSON structure with asserted claims, e.g.

      '{"loggedInAs":"admin","iat":1422779638}'

    • SIGNATURE is the base64-encoded bytes for the signature on HEADER.PAYLOAD.
    Returns true if the signature is verified for the header and payload using the specified

    public key; false if the signature is not verified

    Parameters:

    certkey_name -

                            identifies the certkey object containing an X.509 certificate
    

    holding the RSA public key.

    Results in an Undef error if the certkey object does not exist or does not

    contain an X.509 certificate with an RSA public key, if the token is not

    correctly formatted, or if the verification operation cannot complete.

    Returns: bool_at

    * JWT_VERIFY_XML(text_txml_pkey)

    Verifies the signature on the input JSON Web Token (JWT), using the RSA public key

    supplied by the specified XML element. The token has the format

    HEADER.PAYLOAD.SIGNATURE

    where

    • HEADER is a base64-encoded JSON structure indicating a signature algorithm and

      token type, e.g.'{"alg":"RS256","typ":"JWT"}'

    • PAYLOAD is a base64-encoded JSON structure with asserted claims, e.g.

      '{"loggedInAs":"admin","iat":1422779638}'

    • SIGNATURE is the base64-encoded bytes for the signature on HEADER.PAYLOAD.
    Returns true if the signature is verified for the header and payload using the specified

    public key; false if the signature is not verified

    Parameters:

    xml_pkey -

                            an expression that supplies an &lt;RSAKeyValue&gt; element with
    

    the public key.

    Results in an Undef error if the XML element is invalid or does not correctly

    specify an RSA public key, if the token is not correctly formatted, or if the

    verification operation cannot complete.

    Returns: bool_at

    * LENGTH

    Results in a Number Value that is the number of characters

    (not bytes) in the Text object.

    Returns: num_at

    * LE(text_ts)

    Results in Boolean TRUE value if the Text object is less than or

    equal to the input argument.

    Parameters:

    s -

                            String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>LOCATION_LONG</b></p><div><p>Get the location qualifier from CLIENT.IP.SRC.LOCATION.GET(n)
    

    (ISO short name) and then convert it to human readable long name.

    This conversion is valid only for country names. Correct Country

    qualifier value (number) in GET(n) is left up to the user as

    qualifiers are user configurable.

    Expression example: CLIENT.IP.SRC.LOCATION.GET(1).LOCATION_LONG

    For example: Data from each expression

    CLIENT.IP.SRC.LOCATION: NA.US.California.SantaClara..

    CLIENT.IP.SRC.LOCATION.GET(1): US

    CLIENT.IP.SRC.LOCATION.GET(1).LOCATION_LONG: United States

    Returns: text_t

    * LT(text_ts)

    Results in Boolean TRUE value if the Text object is less than the

    input argument.

    Parameters:

    s -

                            String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>MAP_STRING_DEFAULT_TO_KEY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>string_map_name)</p><div><p>Returns the value corresponding to the key in the
    

    string map. This is similar to the MAP_STRING method, but if

    the key is not present then instead of returning a null

    string, it returns the key itself.

    Parameters(expressions not allowed):

    string_map_name -

                            identifies the string map.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MAP_STRING</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>string_map_name)</p><div><p>Returns value corresponding to key in the string map.
    

    Key is the string that it is given as input.

    IGNORECASE, NOIGNORECASE - controls whether key

    lookup in string map is case sensitive or not.

    For example:

    • HTTP.REQ.URL.MAP_STRING("url_stringmap") returns value

      when the value of HTTP.REQ.URL is used as key in the

      string map whose name is "url_stringmap".

    • HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).

      MAP_STRING("url_stringmap") returns value

      when the value of HTTP.REQ.URL is used as key in the

      string map whose name is "url_stringmap".

      Key lookup in this case is done case-insensitively.

    Parameters(expressions not allowed):

    string_map_name -

                            identifies the string map.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MARK_SAFE</b></p><div><p>Mark the PIXL expression safe without applying any safe transform.</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MAX</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>Compares the string argument with the current string and
    

    returns the max string.

    Parameters:

    s -

                            String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>MIN</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>Compares the string argument with the current string and
    

    returns the min string.

    Parameters:

    s -

                            String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>NE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>Results in Boolean TRUE value if the Text object is not equal to the
    

    input argument.

    Parameters:

    s -

                            String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>NORMALIZE_URL</b></p><div><p>Normalize URL.
    

    Normalizes a URL by doing "percent" decoding. See the

    description for URLENCODED in the SET_TEXT_MODE

    function.

    This performs the equivalent of

    SET_TEXT_MODE(URLENCODED).DECODE_USING_TEXT_MODE,

    except that it does not change the value of the

    current text mode.

    Returns: text_t

    PATH

    Operate as a / separated List on the path component of the

    URL.

    For example: If the URL is http://www.foo.com/a/b/c/bar.html?a=1 then

    operation will select /a/b/c/bar.html. HTTP.REQ.URL.PATH.GET(1)

    in the above example will select "a".

    Returns: list_t

    PATH_AND_QUERY

    Operate as Text on the portion of the URL following the

    hostname.

    For example: If the URL is http://www.foo.com/a/b/c/bar.html?a=1 then

    it will return /a/b/c/bar.html?a=1.

    Returns: text_t

    * PKEY_ENCRYPT_PEM_NO_PADDING(text_tpem_pkey)

    Encrypts the input text using the RSA public key provided by the PEM string

    and RSA_NO_PADDING padding method. The input text to be encrypted cannot be

    longer than the public key length minus 11 bytes for padding. For example,

    for a 1024-bit (128 byte) key, the input text cannot be longer than

    128 - 11 = 117 bytes. An Undef error will occur if the input text is

    too long. A null input will also cause an Undef error.

    Returns the (unencoded binary) encrypted text, which is typically

    base-64 encoded for use in a message.

    Parameters:

    pem_pkey -

                            a text expression that supplies a RSA public key in the
    

    PEM format. If the text value is not a valid PEM RSA PUBLIC KEY

    encoding, an Undef error will occur. Example (a 1024-bit public key):

    "-----BEGIN RSA PUBLIC KEY-----" +
    
    

    "MIGJAoGBAKl5vgQEj73Kxp+9yn1v5gPR1pnc4oLM2a0kaWwBOsB6rzCIy6znwnvw" +

    "CY1xRvQhRlJSAyJbloL7wZFIJ2FOR8Cz+8ZQWXU2syG+udi4EnWqLgFYowF9zK+o" +

    "79az597eNPAjsHZ/C2oL/+6qY5a/f1z8bQPrHC4GpFfAEJhh/+NnAgMBAAE=" +

    "-----END RSA PUBLIC KEY-----"

    Returns: text_t

    * PKEY_ENCRYPT_PEM(text_tpem_pkey)

    Encrypts the input text using the RSA public key provided by the PEM string

    and the RSA_PKCS1_PADDING padding method. The input text to be encrypted

    cannot be longer than the public key length minus 11 bytes for padding.

    For example, for a 1024-bit (128 byte) key, the input text cannot be

    longer than 128 - 11 = 117 bytes. An Undef error will occur if the input

    text is too long. A null input will also cause an Undef error.

    Returns the (unencoded binary) encrypted text, which is typically

    base-64 encoded for use in a message.

    Parameters:

    pem_pkey -

                            a text expression that supplies a RSA public key in the
    

    PEM format. If the text value is not a valid PEM RSA PUBLIC KEY

    encoding, an Undef error will occur. Example (a 1024-bit public key):

    "-----BEGIN RSA PUBLIC KEY-----" +
    
    

    "MIGJAoGBAKl5vgQEj73Kxp+9yn1v5gPR1pnc4oLM2a0kaWwBOsB6rzCIy6znwnvw" +

    "CY1xRvQhRlJSAyJbloL7wZFIJ2FOR8Cz+8ZQWXU2syG+udi4EnWqLgFYowF9zK+o" +

    "79az597eNPAjsHZ/C2oL/+6qY5a/f1z8bQPrHC4GpFfAEJhh/+NnAgMBAAE=" +

    "-----END RSA PUBLIC KEY-----"

    Returns: text_t

    * PKEY_SIGN_CERTKEY(text_tcertkey_name)

    Generates a binary digital signature using the SHA-256 message digest function

    and an RSA private key from the specified SSL certKey object.

    Parameters:

    certkey_name -

                            identifies the configured certKey object.
    

    Results in an Undef error if the certkey object does not exist or does not

    contain an RSA private key, or if the signing operation cannot complete.

    Returns: text_t

    * PKEY_SIGN_XML(text_txml_pkey)

    Generates a binary digital signature using the SHA-256 message digest function

    and an RSA private key from the specified XML element.

    Parameters:

    xml_pkey -

                            an expression that supplies an &lt;RSAKeyValue&gt; element with
    

    the private key. Example:

    <RSAKeyValue>

    <Modulus>qXm+BASPvcrGn73KfW/mA9HWmdzigszZrSRpbAE6wHqvMIjLrOfCe/AJjXFG9CFGUlIDIluWgvvBkUgnYU5HwLP7xlBZdTazIb652LgSdaouAVijAX3Mr6jv1rPn3t408COwdn8Lagv/7qpjlr9/XPxtA+scLgakV8AQmGH/42c=</Modulus>

    <Exponent>AQAB</Exponent>

    <P>08udZRun1Ts4Fs7ctk8znvr6LEoqIDaAI8GpmE8MXF9OCr0Z3847kNd/loKFgRZSV4KABJPu6T2l8Pr1xma8iQ==</P>

    <Q>zNjysxcIJV/J9cTpIgPp2/x1IXHT5GTH8OMuNad0qtRSLjU1QYUmmkm9QcJJAN+7h8FEXWGabySUzBrHj/IEbw==</Q>

    <DP>QavUDQLLQpnPJXtVAo6CYhxOMCd68mwTxYKKNLjmC0pd54SFHllTLPE1FZU5EjK6q3nCeijonpfH+XXHeZJniQ==</DP>

    <DQ>EiXOKouJzzXTQJC3TqomF7Uf81yQNxWumOqnd11kepXgyfMwyqMvLlAGEkNSEF/Bz18R3Wv+MIZ/IC3nLBt2xQ==</DQ>

    <InverseQ>ocuCmz36CP+N2aGqxaU+BKD5+3RLgRq9LFhULEz2jKx0iV9r76jsAxn3sLcTYYO9eqRPy2cz74AUToD6u1Q/nw==</InverseQ>

    <D>fTBD773a3GzcmgVdfZlaBLpN1ux2mf5uUVrTUQf7eVFm9egm4/tzC5A9zjC+I/oscwTH8epL3UfRLdtp05Q6pWfJBXEnGo0QmOFFBK4pLx/5JJpPGZ69ovDFEVOUHyiCfKE/g97T4WX3us0nFe1272zwGlHarM1YYwvfeE08UdE=</D>

    </RSAKeyValue>

    Results in an Undef error if the XML element is invalid or does not correctly

    specify an RSA private key, or if the signing operation cannot complete.

    Returns: text_t

    * PKEY_VERIFY_CERTKEY(text_tcertkey_name, text_tsignature)

    Verifies if the input text matches the specified signature generated using the

    SHA-256 messge digest function and the RSA private key associated with the specified

    RSA public key in the X.509 certificate in the specified certKey object.

    Returns true if the signature is verified, false otherwise.

    Parameters:

    certkey_name -

                            identifies the certkey object containing an X.509 certificate
    

    holding the RSA public key.

    signature -

                            the binary signature.
    

    Results in an Undef error if the certkey object does not exist or does not

    contain an X.509 certificate with an RSA public key, or if the verification

    operation cannot complete.

    Returns: bool_at

    * PKEY_VERIFY_XML(text_txml_pkey, text_tsignature)

    Verifies if the input text matches the specified signature generated using the

    SHA-256 messge digest function and the RSA private key associated with the RSA

    public key supplied by the specified XML element. Returns true if the signature

    is verified, false otherwise.

    Parameters:

    xml_pkey -

                            an expression that supplies an &lt;RSAKeyVAlue&gt; element with
    

    the public key. Example:

    <RSAKeyValue>

    <Modulus>qXm+BASPvcrGn73KfW/mA9HWmdzigszZrSRpbAE6wHqvMIjLrOfCe/AJjXFG9CFGUlIDIluWgvvBkUgnYU5HwLP7xlBZdTazIb652LgSdaouAVijAX3Mr6jv1rPn3t408COwdn8Lagv/7qpjlr9/XPxtA+scLgakV8AQmGH/42c=</Modulus>

    <Exponent>AQAB</Exponent>

    </RSAKeyValue>

    signature -

                            the binary signature.
    

    Results in an Undef error if the XML element is invalid or does not correctly

    specify an RSA public key, or if the verification operation cannot complete.

    Returns: bool_at

    * PREFIX(char c, uint i)

    Select a prefix of the Text. The selected prefix is the

    longest prefix that has at most Count (2nd argument) occurrences

    of character in the 1st argument.

    Parameters:

    c -

                            Character</p><p>i -
    
                            Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>PREFIX</b>(uint i)</p><div><p>Select a prefix of the Text. The length of the
    

    prefix is equal to the number in the argument. If there

    aren't enough characters in the Text object then the entire

    Text is selected.

    Parameters:

    i -

                            Prefix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>PROTOCOL</b></p><div><p>Operate as Text on the protocol present in the URL.
    

    It can not be used in bi-directional policies.

    Returns: text_t

    QUERY

    Operate as a Name-Value List (with delimiters = and ;) on the

    query component of the URL.

    Returns: nvlist_t

    * REGEX_MATCH(re regex)

    Returns TRUE if and only if the text contains at least one match

    of the regular expression argument. The match may occur anywhere

    within the text - if you wish to "anchor" this, use "^" at the

    start of the regex and/or "$" at the end of the regex.





    The regular expression has to be of the format:

     <code>re&lt;delimiter&gt;regular expression&lt;same delimiter&gt;
    
     </code><br /><br /><br /><br />The regular expression cannot be bigger than 1499 characters.
    





    The regular expression should be acceptable by the PCRE regular

    expression library. Look at http://www.pcre.org/pcre.txt for

    documentation on the regular expression syntax. In particular,

    look at the pcrepattern man page.





    There are some differences in the allowed syntax w.r.t PCRE syntax.

    Backreferences are not allowed. It is recommended not to use

    recursive regular expressions. The dot metacharacter matches

    newlines also. Unicode is not supported. SET_TEXT_MODE(IGNORECASE)

    overrides the (?i) internal option specified in the regular

    expression.





    The PCRE library configuration can be seen in the system log, after

    executing 'nsapimgr -B" call ns_pixl_regex_show_config()"' at the

    shell prompt.





    Some examples:

    • HTTP.REQ.HOSTNAME.REGEX_MATCH(re/[[:alpha:]]+(abc){2,3}/)
    • HTTP.REQ.URL.SET_TEXT_MODE(URLENCODED).REGEX_MATCH(re#(ab+c)#)
    • HTTP.REQ.URL.REGEX_MATCH(re/a(?i)b/) matches ab and aB
    • HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).REGEX_MATCH(re/ab/) matches
          ab, aB, Ab and AB</li><li>HTTP.REQ.BODY.REGEX_MATCH(re/(?ixm)  (^ab (.*) cd$) /) does a
      
          case-insensitive, multiline match where the dot
      
          metacharacter matches newline also. The regex itself
      
          can contain whitespace which will be ignored during
      
          the matching (x - extended regex).</li></ul></p><p><b>Parameters</b>(expressions not allowed):</p><div><p>regex -
      
                              Regular Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>REGEX_SELECT</b>(re regex)</p><div><p>Selects the text that matches the given regular expression
      

      argument. The first match is returned when multiple matches

      occur in the text. The match may occur anywhere within the

      text - if you wish to "anchor" this, use "^" at the start

      of the regex and/or "$" at the end of the regex. When the

      regular expression does not match the given string, a Text

      object of length of 0 is returned.





      For example:

       HTTP.REQ.HEADER("via").REGEX_SELECT(re!NS-CACHE-\d\.\d:\s*\d{1,3}!) will select "NS-CACHE-7.0:  70"</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>regex -
      
                              Regular Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>REPEAT</b>(uint i)</p><div><p>Produces a string which contains 'i' sequential copies of the input
      

      string.

      Parameters:

      i -

                              the number of times to repeat the string (0 or more)</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SET_CHAR_SET</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/charset_e/charset_e.html">charset_e</a>charset)</p><div><p>Set the character set to use for subsequent functions that
      

      use text.

      Parameters(expressions not allowed):

      charset -

                              Character Set</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/http_url_t/http_url_t.html">http_url_t</a></p></div></div></div><div><div><p><b>* </b><b>SET_TEXT_MODE</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/textmode_e/textmode_e.html">textmode_e</a>mode)</p><div><p>The mode setting of a Text object controls the behavior of
      

      many Text operations. The Text mode settings may also

      control the behavior of some operations in objects (like

      List) that build upon the Text object.

      IGNORECASE, NOIGNORECASE - controls whether string

      comparison is case sensitive or not.

      URLENCODED - If set then all Text operations are

      carried out after translating all %HH or %uHHHH encodings in the

      underlying byte stream.

      1. %HH will be translated to the character Y where HH denotes the

        ascii value of character Y in hexadecimal.

        For example, the encoded text "http%3a//" will be decoded to

        "http://"

      2. %uWWHH will be translated to the character sequence YZ where

        WW denotes the ascii value of character Y in hexadecimal and HH

        denotes the ascii value of character Z in hexadecimal.

        For example, the encoded text "http%u3a2f/" and "http%u003a//"

        will both be decoded to"http://"

      NOURLENCODED - Indicates that no percent encodings are present in

      the Text object. No percent decoding will be performed on the Text

      object.

      PLUS_AS_SPACE - If set then all Text operations are carried out

      after converting occurrences of the plus character to whitespace.

      For example, the text "hello+world" will be decoded to "hello world"

      NO_PLUS_AS_SPACE - If set, then the plus character will not be

      converted to whitespace in the Text object.

      BACKSLASH_ENCODED - If set, then all Text operations are carried

      out after performing the following operations:

      1. \XXX will be translated to the character Y where XXX denotes the

        ascii value of character Y in octal. The valid range of octal

        values for this type of encoding is \0 to \377.

        For example, the encoded text "http\72//" and "http\072//" will

        both be decoded to "http://"

      2. \xHH will be translated to the character Y where HH denotes the

        ascii value of character Y in hexadecimal.

        For example, the encoded text "http\x3a//" will be decoded to

        "http://"

      3. \uWWXX will be translated to the character sequence YZ where WW

        denotes the ascii value of character Y in hexadecimal and XX

        denotes the ascii value of character Z in hexadecimal.

        For example, the encoded text "http%u3a2f/" and "http%u003a//"

        will both be decoded to"http://"

      4. Occurences of "\b", "\n", "\t", "\f" and "\r" are translated to

        the corresponding ascii characters.

      NO_BACKSLASH_ENCODED - If set, then backslash decoding will not be

      performed on the Text object.

      BAD_ENCODE_RAISE_UNDEF - If set, then UNDEF is raised if either the

      URLENCODED or BACKSLASH_ENCODED mode is set and a bad encoding

      corresponding to the specified encoding mode is encountered.

      NO_BAD_ENCODE_RAISE_UNDEF - If set, then UNDEF will not be raised

      when a bad encoding is encountered in the Text object.

      The Text operations operate on characters (as opposed to operating

      on bytes). By default a single byte represents a character

      using the ASCII encoding. But if URLENCODED mode is set then

      3 bytes may represent a character. A PREFIX(3) operation

      will select the first 3 characters in the Text object. That

      means it may select up to 9 bytes for URLENCODED Text

      object.

      In the case of multibyte decodings as a result of %uXXXX or \uXXXX,

      Text operations which attempt to treat the multiple decoded bytes as

      distinct characters are not allowed.

      Parameters(expressions not allowed):

      mode -

                              Text Mode</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/http_url_t/http_url_t.html">http_url_t</a></p></div></div></div><div><div><p><b>* </b><b>SKIP</b>(char c, uint i)</p><div><p>Select the Text after skipping over a prefix of the current Text.
      

      The skipped over prefix is the longest prefix that has at most

      Count (2nd argument) occurrences of character in the 1st argument.

      Parameters:

      c -

                              Character</p><p>i -
      
                              Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SKIP</b>(uint i)</p><div><p>Select the Text after skipping over a prefix in the
      

      current Text. The length of the prefix is equal to the

      number in the argument. If there aren't enough characters in

      the Text object then the entire Text is skipped over.

      Parameters(expressions not allowed):

      i -

                              Prefix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STARTSWITH_ANY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>patset_name)</p><div><p>Results in Boolean TRUE value if the Text starts with any of
      

      the strings that are bound to the patset or dataset named by the

      string argument.

      Parameters(expressions not allowed):

      patset_name -

                              Pattern Set Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>STARTSWITH_INDEX</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>patset_name)</p><div><p>Returns the numerical index of the matching string, if the Text
      

      starts with any of the strings that are bound to the patset

      or dataset named by the string argument. Returns 0 if there

      is no match.

      Parameters(expressions not allowed):

      patset_name -

                              Pattern Set Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/num_at/num_at.html">num_at</a></p></div></div></div><div><div><p><b>* </b><b>STARTSWITH</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>start)</p><div><p>Results in Boolean TRUE value if a prefix of the  Text
      

      object matches the string argument.

      Parameters:

      start -

                              String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_CHARS</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>From the selected text remove the characters specified
      

      in the string.





      For example: Say the selected text is / "foo.xyz=bar" /.

      Then on executing STRIP_CHARS('.=') or STRIP_CHARS('..=') the

      selected text will become /fooxyzbar /. Note that repeating

      character has same effect as it would be if it present only

      once.

      Parameters(expressions not allowed):

      s -

                              String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_END_CHARS</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>Selects the Text after stripping off characters in the
      

      end of the current Text object.





      For example: Say the selected text is / "foo.xyz=bar" /.

      Then on executing STRIP_END_CHARS('ar') the

      selected text will become /foo.xyz=b /. Note that repeating

      character has same effect as it would be if it present only

      once.

      Parameters(expressions not allowed):

      s -

                              String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_END_WS</b></p><div><p>Selects the Text after stripping off white space in the
      

      end of the current Text object.

      Returns: text_t

      * STRIP_START_CHARS(text_ts)

      Selects the Text after stripping off characters in the

      beginning of the current Text object.





      For example: Say the selected text is / "foo.xyz=bar" /.

      Then on executing STRIP_START_CHARS('of') the

      selected text will become /.xyz=bar /. Note that repeating

      character has same effect as it would be if it present only

      once.

      Parameters(expressions not allowed):

      s -

                              String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>STRIP_START_WS</b></p><div><p>Selects the Text after stripping off white space in the
      

      beginning of the current Text object.

      Returns: text_t

      * SUBSTR_ANY(text_tpatset_name)

      Select any one sub-string that matches any string

      in the given patset or dataset.

      The patset cannot have strings longer than 255 characters.

      Parameters(expressions not allowed):

      patset_name -

                              Pattern Set Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SUBSTR</b>(uint start, uint len)</p><div><p>Select the Text object of the given length at the given
      

      offset. Offset it 0 based. If there aren't enough characters

      after the offset then all the remaining characters are

      selected.

      Parameters:

      start -

                              Offset</p><p>len -
      
                              Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SUBSTR</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>s)</p><div><p>Select the first Text object that matches the input string
      

      argument.

      The input string cannot be bigger than 255 characters.

      Parameters(expressions not allowed):

      s -

                              String</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>SUFFIX</b></p><div><p>Operate as Text on the filename suffix present in the
      

      filename component of the URL.

      For example: If the PATH is /a/b/c/foo.bar.html

      then this operation will select html.

      Returns: text_t

      * SUFFIX(char c, uint i)

      Select a suffix of the Text. The selected suffix is the

      longest possible suffix containing at most Count (2nd arg)

      occurrences of the character in the 1st argument.

      Parameters:

      c -

                              Character</p><p>i -
      
                              Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>SUFFIX</b>(uint i)</p><div><p>Select a suffix of the Text. The length of the
      

      suffix is equal to the number in the argument. If there

      aren't enough characters in the Text object then the entire

      Text is selected.

      Parameters:

      i -

                              Suffix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TO_LOWER</b></p><div><p>Converts the selected text to lower case.<br /><br /><br /><br />For example, the string "ABCd" is converted to "abcd"</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TO_UPPER</b></p><div><p>Converts the selected text to upper case.<br /><br /><br /><br />For example, the string "abcD" is converted to "ABCD"</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TRUNCATE</b>(char c, uint i)</p><div><p>Select the Text after truncating a suffix from the current
      

      Text object. The truncated suffix is the longest possible

      suffix containing at most Count (2nd arg) occurrences of the

      character in the 1st argument.

      Parameters:

      c -

                              Character</p><p>i -
      
                              Count</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TRUNCATE</b>(uint i)</p><div><p>Select the Text after truncating a suffix of the Text. The
      

      length of the suffix truncated is equal to the number in the

      argument. If there aren't enough characters in the Text then

      then all the characters are truncated.

      Parameters:

      i -

                              Suffix Length</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_AVP_T</b></p><div><p>Convert text_t to avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (avp_t : Operations that can be performed on the returned AVPs.
      





      Note:An AVP can have multiple instances in a Diameter message.

      However, the system can access only the first 16 instances.





      Example:

      • To get the first value of AVP code 266 from a request, use: DIAMETER.REQ.AVP(266).VALUE(0).
      • To get the fourth value of AVP code 266 from a request, use: DIAMETER.REQ.AVP(266).VALUE(3).
      • To check if AVP code 1000 in the response has the vendor-specific bit set, use: DIAMETER.RES.AVP(1000).IS_VENDOR_SPECIFIC.
      )

      Returns: avp_t

      * TYPECAST_AVP_UNUM_T

      Convert text_t to avp_unum_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (avp_unum_t : In Diameter AVP based expressions can be written as DIAMETER.REQ.AVP(<avpcode>).

      For example Auth-Application-Id AVP (AVP code 258) can be extracted as DIAMETER.REQ.AVP(258)

      For few of the important AVPs we provide aliases.

      For example this AVP based expression can also be written as

      DIAMETER.REQ.AUTH_APPLICATION_ID.

      This expression returns either a object of class avp_t or

      returns a numerical value (object of class unsigned_long_at).

      The numerical value for this object is derived from the value in first instance of

      the AVP.)

      Returns: avp_unum_t

      TYPECAST_BOOL_AT

      Convert text_t to bool_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (bool_at : Boolean Operations)

      Returns: bool_at

      TYPECAST_COOKIE_T

      Convert text_t to cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (cookie_t : The HTTP Cookie type provides operations for a

      cookie as it appears in the Set-Cookie and Set-Cookie2 header.

      In this type the Name-Value List operations are also available. The

      first delimiter is = and the element delimiter is ;. Multiple

      consecutive ; are treated as one. (Same as applying the method

      IGNORE_EMPTY_ELEMENTS on a Name-Value List. You can use the

      Name-value List operations to access cookie attributes.

      In this type Text operations are also available.



      Each cookie begins with a COOKIE_NAME=COOKIE_VALUE pair followed by

      zero or more semi-colon separated attribute-value pairs. If an

      attribute appears more than once in a cookie, the value associated

      with the first appearance of the attribute is returned.





      Format Cookie:

      Cookie1=Value;Version=decimal;Value;Domain=Value;Path=Value)

      Returns: cookie_t

      * TYPECAST_DIAMETER_FLAG_T

      Convert text_t to diameter_flag_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (diameter_flag_t : Provides operation to treat the underlying 1 byte as set of bit

      flags. then set/unset/test/reset_all operations can be done on flag)

      Returns: diameter_flag_t

      * TYPECAST_DNS_DOMAINNAME_T

      Convert text_t to dns_domainname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (dns_domainname_t : This object provides operations for parsing the DNS domain name as it

      appears at various places in the DNS data. The format is

      abc.foo.com.)

      Returns: dns_domainname_t

      TYPECAST_DNS_FLAG_T

      Convert text_t to dns_flag_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (dns_flag_t : Provides operations to test/set/unset a flag in dns header.)

      Returns: dns_flag_t

      TYPECAST_DOUBLE_AT

      Convert text_t to double_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_at : Double Value)

      Returns: double_at

      * TYPECAST_DOUBLE_T(double_format_eformat)

      Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The

      supported formats are DECIMAL, DECIMAL_PREFIX. All

      the formats strip off the beginning white space. DECIMAL

      also strips off trailing white space. DECIMAL requires that all

      the remaining characters must be a proper double value.

      DECIMAL_PREFIX requires that at least one or more

      more characters in the prefix must be a proper double value. In

      case of overflow, there will be a parsing error.)

      Parameters(expressions not allowed):

      format -

                              Format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_at/double_at.html">double_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
      

      supported formats are DECIMAL, DECIMAL_PREFIX. All

      the formats strip off the beginning white space. DECIMAL

      also strips off trailing white space. DECIMAL requires that all

      the remaining characters must be a proper double value.

      DECIMAL_PREFIX requires that at least one or more

      more characters in the prefix must be a proper double value. In

      case of overflow, there will be a parsing error.

      In case of parsing error the default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/ip_address_at/ip_address_at.html">ip_address_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
      

      supported formats are DECIMAL, DECIMAL_PREFIX. All

      the formats strip off the beginning white space. DECIMAL

      also strips off trailing white space. DECIMAL requires that all

      the remaining characters must be a proper double value.

      DECIMAL_PREFIX requires that at least one or more

      more characters in the prefix must be a proper double value. In

      case of overflow, there will be a parsing error.

      In case of parsing error the default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/num_at/num_at.html">num_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
      

      supported formats are DECIMAL, DECIMAL_PREFIX. All

      the formats strip off the beginning white space. DECIMAL

      also strips off trailing white space. DECIMAL requires that all

      the remaining characters must be a proper double value.

      DECIMAL_PREFIX requires that at least one or more

      more characters in the prefix must be a proper double value. In

      case of overflow, there will be a parsing error.

      In case of parsing error the default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/time_at/time_at.html">time_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
      

      supported formats are DECIMAL, DECIMAL_PREFIX. All

      the formats strip off the beginning white space. DECIMAL

      also strips off trailing white space. DECIMAL requires that all

      the remaining characters must be a proper double value.

      DECIMAL_PREFIX requires that at least one or more

      more characters in the prefix must be a proper double value. In

      case of overflow, there will be a parsing error.

      In case of parsing error the default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_DOUBLE_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_format_e/double_format_e.html">double_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_at/unsigned_long_at.html">unsigned_long_at</a>default_value)</p><div><p>Convert text_t to double_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (double_t : Treat the underlying text as a Double in the given format. The
      

      supported formats are DECIMAL, DECIMAL_PREFIX. All

      the formats strip off the beginning white space. DECIMAL

      also strips off trailing white space. DECIMAL requires that all

      the remaining characters must be a proper double value.

      DECIMAL_PREFIX requires that at least one or more

      more characters in the prefix must be a proper double value. In

      case of overflow, there will be a parsing error.

      In case of parsing error the default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Double</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_t/double_t.html">double_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_HTTP_CACHE_CONTROL_T</b></p><div><p>Convert text_t to http_cache_control_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_cache_control_t : This object provides for the ability to work on HTTP Cache-Control headers.)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/http_cache_control_t/http_cache_control_t.html">http_cache_control_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_HTTP_CONTENT_LENGTH_T</b></p><div><p>Convert text_t to http_content_length_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_content_length_t : The HTTP.REQ.CONTENT_LENGTH or HTTP.RES.CONTENT_LENGTH object can be
      

      treated as a HTTP Header or as a Number. The numerical value for

      this object is derived from the value in the last instance of the

      Content-Length header.)

      Returns: http_content_length_t

      * TYPECAST_HTTP_COOKIE_T

      Convert text_t to http_cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_cookie_t : This object provides operations for parsing the HTTP cookie header.

      The name-value pair is derived from the value in the last instance of

      Cookie header. The format is Cookie : name0=value0; name1=value1;

      An HTTP Cookie header can have multiple occurrences. COUNT will

      return a Number containing how many headers of the current type

      exist.

      The system does not keep track of more than 15 HTTP headers. The

      result will be undefined if there are more than 15 instances of

      the header.)

      Returns: http_cookie_t

      * TYPECAST_HTTP_DATE_T

      Convert text_t to http_date_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_date_t : The HTTP.REQ.DATE or HTTP.RES.DATE object can be treated as a HTTP

      header or a Time object. The Time value is derived from the value in

      the last instance of the Date header. The date formats supported are

      RFC 822 (updated by RFC 1123), RFC 1036 (obsoletes RFC850) and ANSI C

      asctime() formats.)

      Returns: http_date_t

      * TYPECAST_HTTP_HEADER_T(text_tname)

      Convert text_t to http_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_header_t : When typecasting a Text object to HTTP Header a header name

      must be provided.For example:

      HTTP.REQ.HEADER("MyHdr").TYPECAST_HTTP_HEADER_T("InHdr"))

      Parameters(expressions not allowed):

      name -

                              Header Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/http_header_t/http_header_t.html">http_header_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_HTTP_HOSTNAME_T</b></p><div><p>Convert text_t to http_hostname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_hostname_t : This object provides operations for parsing the HTTP hostname as it
      

      appears at various places in the HTTP protocol data. The format is

      abc.foo.com:8080.)

      Returns: http_hostname_t

      * TYPECAST_HTTP_METHOD_T

      Convert text_t to http_method_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_method_t : This object provides Text operations and HTTP Request Method Enum

      operations on the HTTP request method.)

      Returns: http_method_t

      * TYPECAST_HTTP_SET_COOKIE_T

      Convert text_t to http_set_cookie_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_set_cookie_t : HTTP.RES.SET_COOKIE provides operations for parsing and operating on the

      SET-COOKIE header that is present in the HTTP response.

      HTTP Set-Cookie header supports Text and HTTP Header operations.

      For most Text operations the value in the last Set-Cookie header is

      selected.

      HTTP Set-Cookie header also supports special operations to extract

      cookies from the response. It is assumed that there will be only one

      cookie in a Set-Cookie header.)

      Returns: http_set_cookie_t

      * TYPECAST_HTTP_URL_T

      Convert text_t to http_url_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_url_t : HTTP.REQ.URL provides operations for parsing and operating on the

      URL that is present in the first line of the HTTP request header.

      The supported format is [<protocol>://<hostname>]<path>?<query>. The

      Text object backing a HTTP URL object has the Text Mode set to

      URLENCODED by default.)

      Returns: http_url_t

      * TYPECAST_HTTP_VERSION_T

      Convert text_t to http_version_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (http_version_t : HTTP.REQ.VERSION or HTTP.RES.VERSION provide operations to extract HTTP

      version information.)

      Returns: http_version_t

      * TYPECAST_IPV6_ADDRESS_AT

      Convert text_t to ipv6_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_address_at : Provides operations for the 128-bit IPv6 address value.

      Some general information regarding IPv6 expressions:

      IPv6 PIXL expressions can be combined with other PIXL expressions

      using the '+' operator.  The output is expected to be the
      
      concatenation of the string representations of the individual PIXL
      
      expressions.  No other operator other than '+' is expected to work
      
      when any of the operands is an IPv6 PIXL expression.  Also, IPv6
      
      PIXL expressions can be combined with any other type of PIXL
      
      expression except a PIXL expression that produces a bool result.
      
      In other words, if A and/or B are two IPv6 addresses, A+B should result
      
      in the string AB.  When one of A or B is an IPv6 address, the other
      
      can only be a number or a string and not a boolean.  Further, when
      
      A and/or B is an IPv6 address, the only operator allowed between
      
      them is '+'.
      
      <br /><br /><br /><br />Example: Let the client source IPv6 address be ABCD:1234::ABCD.
      
      Let the server destination IPv4 address be 10.100.10.100.
      
      Then the expression CLIENT.IPV6.SRC + SERVER.IP.DST should
      
      produce the output "ABCD:1234::ABCD10.100.10.100".
      
      <br /><br />Similarly, CLIENT.IPV6.SRC + 5 should produce the result
      
      ABCD:1234::ABCD5)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/ipv6_address_at/ipv6_address_at.html">ipv6_address_at</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_IPV6_ADDRESS_T</b></p><div><p>Convert text_t to ipv6_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_address_t : This object represents an IPv6 address present in the
      

      1000:1001:CD10:0000:0000:89AB:4567:CDEF format.)

      Returns: ipv6_address_t

      TYPECAST_IPV6_SUBNET_AT

      Convert text_t to ipv6_subnet_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_subnet_at : Provides operations for the integral IPv6 subnet address value.)

      Returns: ipv6_subnet_at

      TYPECAST_IPV6_SUBNET_T

      Convert text_t to ipv6_subnet_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ipv6_subnet_t : This object represents an IPv6 subnet address present in the

      1000:1001:CD10:0000:0000:89AB:4567:CDEF/64 format.)

      Returns: ipv6_subnet_t

      TYPECAST_IP_ADDRESS_AT

      Convert text_t to ip_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ip_address_at : Provides operations for the 32-bit integral IP address value.)

      Returns: ip_address_at

      TYPECAST_IP_ADDRESS_T

      Convert text_t to ip_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ip_address_t : Represents an IP address present in the 10.100.200.1

      format.)

      Returns: ip_address_t

      * TYPECAST_LIST_T(char sep)

      Convert text_t to list_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (list_t : The character separator has to be provided when typecasting

      a textual context to list type. The current text mode has no

      effect on the character separator. For example if the

      current text mode is IGNORECASE and the separator is p then

      P will not be treated as a separator.)

      Parameters(expressions not allowed):

      sep -

                              Separator</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/list_t/list_t.html">list_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_MAC_ADDRESS_AT</b></p><div><p>Convert text_t to mac_address_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (mac_address_at : Provides operations for the 48-bit MAC address value.)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/mac_address_at/mac_address_at.html">mac_address_at</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_MAC_ADDRESS_T</b></p><div><p>Convert text_t to mac_address_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (mac_address_t : Represents a MAC address present in the 12:34:56:78:9a:bc
      

      format.)

      Returns: mac_address_t

      TYPECAST_NUM_AT

      Convert text_t to num_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_at : Number Value)

      Returns: num_at

      TYPECAST_NUM_T(num_format_eformat)

      Convert text_t to num_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_t : Treat the underlying text as a Number in the given format. The

      supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All

      the formats strip off the beginning white space. DECIMAL and HEX

      also strip off trailing white space. DECIMAL and HEX require that all

      the remaining characters must be proper digits.

      DECIMAL_PREFIX and HEX_PREFIX require that at least one or more

      more characters in the prefix must be proper digits. In case of

      overflow, there will be a parsing error.)

      Parameters(expressions not allowed):

      format -

                              Format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/num_t/num_t.html">num_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_NUM_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/num_format_e/num_format_e.html">num_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/num_at/num_at.html">num_at</a>default_value)</p><div><p>Convert text_t to num_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (num_t : Treat the underlying text as a Number in the given format. The
      

      supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All

      the formats strip off the beginning white space. DECIMAL and HEX

      also strip off trailing white space. DECIMAL and HEX require that all

      the remaining characters must be proper digits.

      DECIMAL_PREFIX and HEX_PREFIX require that at least one or more

      more characters in the prefix must be proper digits. In case of

      overflow, there will be a parsing error. In case of parsing error the

      default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/num_t/num_t.html">num_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_NVLIST_T</b>(char sep1, char sep2)</p><div><p>Convert text_t to nvlist_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (nvlist_t : Two character delimiters have to be provided when
      

      typecasting a Text object to a Name-Value List.

      The first delimited separates the name from the value.

      The second delimiter separates list items.

      For example typecast_nvlist_t('=', '&') handles a URL

      query string.

      The Text Mode has no effect on the character delimiters.

      For example if the current text mode is IGNORECASE and a

      delimiter is p then P will not be treated as a delimiter.)

      Parameters(expressions not allowed):

      sep1 -

                              delimiter1</p><p>sep2 -
      
                              delimiter2</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/nvlist_t/nvlist_t.html">nvlist_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_NVLIST_T</b>(char sep1, char sep2, char quote)</p><div><p>Convert text_t to nvlist_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (nvlist_t : Two character delimiters and quote-character have to be provided
      

      when typecasting a Text object to a Name-Value List that supports

      quote-character.

      The first delimited separates the name from the value.

      The second delimiter separates list items.

      The third value specifies the quote character.

      For example typecast_nvlist_t('=', ';', '"') handles a

      name-value list separated by semi-colons that allows quoting.

      The quote-character specifies that the value can occur within the

      quotes and the delimiters within the quote-characters should not

      be taken into account.

      The Text Mode has no effect on the character

      delimiters. For example if the current text mode is IGNORECASE and

      a delimiter is p then P will not be treated as a delimiter.)

      Parameters(expressions not allowed):

      sep1 -

                              delimiter1</p><p>sep2 -
      
                              delimiter2</p><p>quote -
      
                              quote-character.</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/nvlist_t/nvlist_t.html">nvlist_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_RADIUS_AVP_T</b></p><div><p>Convert text_t to radius_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (radius_avp_t : Operations that can be performed on the returned AVPs.
      





      Note:An AVP can have multiple instances in a radius message.

      However, the system can access only the first 16 instances.





      Example:

      • To get the first value of AVP code 26 from a request, use: radius.REQ.AVP(26).VALUE(0).
      • To get the fourth value of AVP code 26 from a request, use: radius.REQ.AVP(26).VALUE(3).
      )

      Returns: radius_avp_t

      * TYPECAST_RADIUS_AVP_VALUE_T

      Convert text_t to radius_avp_value_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (radius_avp_value_t : Provides operations to typecast RADIUS AVP value to

      Integer value or IP Address.)

      Returns: radius_avp_value_t

      TYPECAST_SEQ_TEXT_T

      Convert text_t to seq_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (seq_text_t : Represents the Text Sequence class.)

      Returns: seq_text_t

      TYPECAST_SERVICEPATH_T

      Convert text_t to servicepath_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (servicepath_t : Operations that can be performed on the service path.





      Example:

      • To get the name of the service path applicable to current subscriber, use: SUBSCRIBER.SERVICEPATH
      • To determine If the service function is the next in the service path applicable to scubscriber,

        use: SUBSCRIBER.SERVICEPATH.IS_NEXT().

      )

      Returns: servicepath_t

      TYPECAST_SIP_CALLID_HEADER_T

      Convert text_t to sip_callid_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_callid_header_t : This object provides operations for parsing the SIP callid header.)

      Returns: sip_callid_header_t

      TYPECAST_SIP_CONTENT_LENGTH_T

      Convert text_t to sip_content_length_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_content_length_t : The SIP.REQ.CONTENT_LENGTH or SIP.RES.CONTENT_LENGTH object can be

      treated as a SIP Header or as a Number. The numerical value for

      this object is derived from the value in the last instance of the

      Content-Length header.)

      Returns: sip_content_length_t

      TYPECAST_SIP_FROM_HEADER_T

      Convert text_t to sip_from_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_from_header_t : This object provides operations for parsing the SIP From header.)

      Returns: sip_from_header_t

      TYPECAST_SIP_HEADER_T(text_tname)

      Convert text_t to sip_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_header_t : When typecasting a Text object to SIP Header a header name

      must be provided.For example:

      SIP.REQ.HEADER("MyHdr").TYPECAST_SIP_HEADER_T("InHdr"))

      Parameters(expressions not allowed):

      name -

                              Header Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/sip_header_t/sip_header_t.html">sip_header_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_SIP_HOSTNAME_T</b></p><div><p>Convert text_t to sip_hostname_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_hostname_t : This object provides operations for parsing the SIP hostname as it
      

      appears at various places in the SIP protocol data. The format is

      abc.foo.com:5060.)

      Returns: sip_hostname_t

      * TYPECAST_SIP_METHOD_T

      Convert text_t to sip_method_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_method_t : This object provides Text operations and SIP Request Method Enum

      operations on the SIP request method.)

      Returns: sip_method_t

      TYPECAST_SIP_TO_HEADER_T

      Convert text_t to sip_to_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_to_header_t : This object provides operations for parsing the SIP From header.)

      Returns: sip_to_header_t

      TYPECAST_SIP_URL_T

      Convert text_t to sip_url_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_url_t : SIP.REQ.URL provides operations for parsing and operating on the

      URL that is present in the first line of the SIP request header.

      The supported format is [<protocol>://<hostname>]<path>?<query>. The

      Text object backing a SIP URL object has the Text Mode set to

      URLENCODED by default.)

      Returns: sip_url_t

      * TYPECAST_SIP_VERSION_T

      Convert text_t to sip_version_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_version_t : SIP.REQ.VERSION or SIP.RES.VERSION provide operations to extract SIP

      version information.)

      Returns: sip_version_t

      TYPECAST_SIP_VIA_HEADER_T

      Convert text_t to sip_via_header_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sip_via_header_t : This object provides operations for parsing the SIP Via header.)

      Returns: sip_via_header_t

      TYPECAST_SSLVPN_MODE_T

      Convert text_t to sslvpn_mode_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (sslvpn_mode_t : This object provides Text operations and SSLVPN Mode Enum

      operations on the SSLVPN request method.)

      Returns: sslvpn_mode_t

      * TYPECAST_SSL_TEXT_T(text_tname)

      Convert text_t to ssl_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (ssl_text_t : Treat the underlying text object as SSL Text.)

      Parameters(expressions not allowed):

      name -

                              Name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/ssl_text_t/ssl_text_t.html">ssl_text_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TCP_OPTIONS_T</b></p><div><p>Convert text_t to tcp_options_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_options_t : TCP Protocol Options)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/tcp_options_t/tcp_options_t.html">tcp_options_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TCP_OPTIONS_TYPE_T</b></p><div><p>Convert text_t to tcp_options_type_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_options_type_t : TCP Protocol Options Type)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/tcp_options_type_t/tcp_options_type_t.html">tcp_options_type_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TCP_REPEATER_OPTION_T</b></p><div><p>Convert text_t to tcp_repeater_option_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (tcp_repeater_option_t : TCP Protocol Option : Repeater)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/tcp_repeater_option_t/tcp_repeater_option_t.html">tcp_repeater_option_t</a></p></div></div></div><div><div><p><b>TYPECAST_TEXT_T</b></p><div><p>Convert http_url_t to text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (text_t : Designates any piece of text.)</p><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_TIME_AT</b></p><div><p>Convert text_t to time_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (time_at : Treats a number value as number of seconds since GMT Jan 1
      

      1970 0h 0m 0s.)

      Returns: time_at

      * TYPECAST_TIME_T

      Convert text_t to time_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (time_t : This object treats a Text object as a date string. The formats

      supported are



      1. RFC822 :: Sun, 06 Nov 1994 08:49:37 GMT

      2. RFC850 :: Sunday, 06-Nov-94 08:49:37 GMT

      3. ASCTIME :: Sun Nov 6 08:49:37 1994

      4. ASCTIME like :: Sun Nov 6 08:49:37 1994

      5. ASCTIME like :: Sun Nov 06 08:49:37 1994

      6. Http Set-Cookie Expiry date :: Sun, 06-Nov-1994 08:49:37 GMT)

      Returns: time_t

      TYPECAST_UNSIGNED_LONG_AT

      Convert text_t to unsigned_long_at. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_at : Unsigned Long(64bit) Value)

      Returns: unsigned_long_at

      TYPECAST_UNSIGNED_LONG_T(unsigned_long_format_eformat)

      Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The

      supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All

      the formats strip off the beginning white space. DECIMAL and HEX

      also strip off trailing white space. DECIMAL and HEX require that all

      the remaining characters must be proper digits.

      DECIMAL_PREFIX and HEX_PREFIX require that at least one or more

      more characters in the prefix must be proper digits. In case of

      overflow, there will be a parsing error.)

      Parameters(expressions not allowed):

      format -

                              Format</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/ip_address_at/ip_address_at.html">ip_address_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
      

      supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All

      the formats strip off the beginning white space. DECIMAL and HEX

      also strip off trailing white space. DECIMAL and HEX require that all

      the remaining characters must be proper digits.

      DECIMAL_PREFIX and HEX_PREFIX require that at least one or more

      more characters in the prefix must be proper digits. In case of

      overflow, there will be a parsing error. In case of parsing error the

      default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_at/unsigned_long_at.html">unsigned_long_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
      

      supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All

      the formats strip off the beginning white space. DECIMAL and HEX

      also strip off trailing white space. DECIMAL and HEX require that all

      the remaining characters must be proper digits.

      DECIMAL_PREFIX and HEX_PREFIX require that at least one or more

      more characters in the prefix must be proper digits. In case of

      overflow, there will be a parsing error. In case of parsing error the

      default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/num_at/num_at.html">num_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
      

      supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All

      the formats strip off the beginning white space. DECIMAL and HEX

      also strip off trailing white space. DECIMAL and HEX require that all

      the remaining characters must be proper digits.

      DECIMAL_PREFIX and HEX_PREFIX require that at least one or more

      more characters in the prefix must be proper digits. In case of

      overflow, there will be a parsing error. In case of parsing error the

      default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNSIGNED_LONG_T</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_format_e/unsigned_long_format_e.html">unsigned_long_format_e</a>format, <a href="/en-us/adc-advanced-policy-expression-reference/12-1/time_at/time_at.html">time_at</a>default_value)</p><div><p>Convert text_t to unsigned_long_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unsigned_long_t : Treat the underlying text as a Unsigned Long in the given format. The
      

      supported formats are DECIMAL, HEX, DECIMAL_PREFIX, HEX_PREFIX. All

      the formats strip off the beginning white space. DECIMAL and HEX

      also strip off trailing white space. DECIMAL and HEX require that all

      the remaining characters must be proper digits.

      DECIMAL_PREFIX and HEX_PREFIX require that at least one or more

      more characters in the prefix must be proper digits. In case of

      overflow, there will be a parsing error. In case of parsing error the

      default value will be assumed.)

      Parameters(expressions not allowed):

      format -

                              Format</p><p>default_value -
      
                              Number</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/unsigned_long_t/unsigned_long_t.html">unsigned_long_t</a></p></div></div></div><div><div><p><b>* </b><b>TYPECAST_UNUM_TEXT_T</b></p><div><p>Convert text_t to unum_text_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (unum_text_t : Provides operations to treat the underlying OctectString as Binary
      

      String or unsigned long value .)

      Returns: unum_text_t

      TYPECAST_URL_CATEGORY_T

      Convert text_t to url_category_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (url_category_t : Retrieves URL category and attributes from an URL)

      Returns: url_category_t

      TYPECAST_VENDOR_SPEC_APPID_AVP_T

      Convert text_t to vendor_spec_appid_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (vendor_spec_appid_avp_t : Retrieves AVPs that are nested in the grouped AVP

      Vendor-Specific-Application-Id (code 260). The nested AVPs are:



      • Vendor-Id
      • Auth-Application-Id
      • Acct-Application-Id
      For example, to retrieve the Auth-Application-Id AVP from the

      Vendor-Specific-Application-Id AVP:



      • For requests: DIAMETER.REQ.VENDOR_SPECIFIC_APPLICATION_ID.AUTH_APPLICATION_ID
      • For responses: DIAMETER.RES.VENDOR_SPECIFIC_APPLICATION_ID.AUTH_APPLICATION_ID
      )

      Returns: vendor_spec_appid_avp_t

      * TYPECAST_VENDOR_SPEC_RADIUS_AVP_T

      Convert text_t to vendor_spec_radius_avp_t. Will raise an undef if the value is null, empty, or the value has an invalid format for the destination type. (vendor_spec_radius_avp_t :

      • Vendor-Id
      To retrieve the Vendor-Id from the

      Vendor-Specific AVP:



      • RADIUS.REQ.VENDOR_SPECIFIC.VENDORID
      )

      Returns: vendor_spec_radius_avp_t

      * UNQUOTE(char c)

      If selected text is quoted by character c, Remove character c from

      beginning and end.





      For example: Say the selected text is / "foo xyz bar " /.

      Then on executing UNQUOTE('"') the selected text will become

      /foo xyz bar /

      Parameters(expressions not allowed):

      c -

                              Character</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>URLSET_MATCHES_ANY</b>(<a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a>urlset_name)</p><div><p>Results in Boolean TRUE value if and only if the Text matches any of
      

      the patterns that are specified in the urlset named by the

      string argument. The matching is case-insensitive for

      domains, but case-sensitive for paths.

      For example:

      • HTTP.REQ.HOST.APPEND(HTTP.REQ.URL).URLSET_MATCHES_ANY("urlset_forbidden")

        returns true when the combined domain and URL matches any pattern in the

        urlset whose name is "urlset_forbidden".

      Parameters(expressions not allowed):

      urlset_name -

                              urlset name</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>URL_CATEGORIZE</b>(uint min_reputation, uint max_reputation)</p><div><p>Returns the URL category for the supplied URL with the given minimum
      

      and maximum reputation score. Where a score of 5 is most risky and 1

      is least risky. If either score is set to 0, that bound would be ignored.

      By specifying the reputation scores, the function will returned the category

      with the highest score (most risky) based on the bounds.

      If there was an error getting the category or if the URL is invalid then it

      will result in an Undef error.

      For example:



      HTTP.REQ.HOST.APPEND(HTTP.REQ.URL).URL_CATEGORIZE(0, 0)

      returns value when the combined domain and URL is looked up for

      the URL category with the highest reputation score (most risky).

      Parameters(expressions not allowed):

      min_reputation -

                              Minimum reputation score of URL category</p><p>max_reputation -
      
                              Maximum reputation score of URL category</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/url_category_t/url_category_t.html">url_category_t</a></p></div></div></div><div><div><p><b>* </b><b>URL_RESERVED_CHARS_SAFE</b></p><div><p>Converts URL reserved characters to corresponding '%XX'
      

      values and retains the rest. This is a read only operation.

      Based on RFC3986, following are considered URL unreserved characters:
      
      
      Alpha-numeric characters: a-z, A-Z, 0-9
      
      Hyphen and underscore: "-", "_"
      
      Dot: "."
      
      Tilde: "~"
      

      The rest are converted to %XX encoding, 'XX' is the hex-based

      representation of the input character.

      If the requirement is to encode all but URL safe characters,

      please consider using HTTP_URL_SAFE method.

      Returns: text_t

      * XML_DECRYPT(text_tcertKeyName)

      Decrypt the selected content, which was encrypted using the W3C XML

      Encryption standard.

      Parameters(expressions not allowed):

      certKeyName -

                              identifies the certkey object containing the RSA
      

      private key to be used to decrypt the bulk encryption key in the

      selected EncryptedData element.

      Returns: text_t

      * XML_ENCRYPT(text_tcertKeyName, encrypt_method_emethod)

      Encrypt the selected cleartext using the W3C XML Encryption standard.

      Parameters(expressions not allowed):

      certKeyName -

                              identifies the certkey object containing an X.509
      

      certificate with the RSA public key to be used to encrypt the

      generated bulk encryption key. Note that the certKey object need not,

      and usually will not, include the associated RSA private key.

      method -

                              specifies the bulk encryption method (rc4, des3, aes128,
      

      aes192, or aes256) used to encrypt the content.

      Returns: text_t

      * XML_ENCRYPT(text_tcertKeyName, encrypt_method_emethod, uint flags)

      Encrypt the selected cleartext using the W3C XML Encryption standard.

      Parameters(expressions not allowed):

      certKeyName -

                              identifies the certkey object containing an X.509
      

      certificate with the RSA public key to be used to encrypt the

      generated bulk encryption key. Note that the certKey object need not,

      and usually will not, include the associated RSA private key.

      method -

                              specifies the bulk encryption method (rc4, des3, aes128,
      

      aes192, or aes256) used to encrypt the content.

      flags -

                              optional bit mask to specify optional elements in the
      

      EncryptedData element. These are hints to tell the receiver what private

      key to use to decrypt the bulk encryption key, providing information from

      the certKey's X.509 certificate.

      • 1 - include a KeyName element with the certKeyName;
      • 2 - include a KeyValue element with the RSA public key from the

        certificate;

      • 4 - include an X509IssuerSerial element with the certificate serial

        number and issuer DN;

      • 8 - include an X509SubjectName element with the certificate subject

        DN;

      • 16 - include an X509Certificate element with the entire

        certificate;

      Returns: text_t

      * XPATH_HTML_WITH_MARKUP(xpath_str xpathex)

      Applies an XPath expression to the DOM for an HTML document

      and returns the selected node-set or string, including

      markup like element tags. node-sets are converted to

      strings using the standard XPath string conversion routine.

      The selected portion of the document can be used as the

      target for rewrite actions.





      Examples:

        HTTP.REQ.BODY(1000).XPATH_HTML_WITH_MARKUP(xp%//html/head/title%)
      
        returns the &lt;title&gt; element in the document's
      
        &lt;head&gt; This can be used in a rewrite action
      
        to replace or delete the &lt;title&gt; element.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_HTML</b>(xpath_bool xpathex)</p><div><p>Applies an XPath expression to the DOM for an HTML document
      

      and a boolean value.





      Examples:

        HTTP.RES.BODY(1000).XPATH_HTML(xp%boolean(/html/head/meta)%)
      
        returns true if the &lt;meta&gt; element exists as a child
      
        of &lt;head&gt; element.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_HTML</b>(xpath_double xpathex)</p><div><p>Applies an XPath expression to the DOM for an HTML document
      

      and a double value.





      Examples:

        HTTP.RES.BODY(1000).XPATH_HTML(xp%number(//video/@height)%)
      
        returns the numeric value of the height attribute of the
      
        first &lt;video&gt; element.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_at/double_at.html">double_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_HTML</b>(xpath_str xpathex)</p><div><p>Applies an XPath expression to the DOM for an HTML document
      

      and returns the selected node-set or string. node-sets are

      converted to strings using the standard XPath string

      conversion routine.





      Examples:

        HTTP.REQ.BODY(1000).XPATH_HTML(xp%//img/@src%)
      
        returns the string value of the src attribute of
      
        the first &lt;img&gt; element in the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON_WITH_MARKUP</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json_with_markup operates on
      

      XML file and returns a string that contains the entire portion of the

      document for the result node including markup, such as

      including the enclosing element tags





      Examples:

        For the JSON file:
      
        {
      
           "Book":{
      
              "creator":{
      
                 "person":{
      
                   "name":'Milton'
      
                 }
      
              },
      
              "title":'Paradise Lost'
      
           }
      
        }
      
        HTTP.REQ.BODY(1000).XPATH_JSON_WITH_MARKUP(xp%/Top/Book/creator%)
      
            This expression when operated on the above JSON file,
      
            will select "all the nodes enclosed by
      
            /Book/creator"
      
            in the first 1000 bytes of the body which is
      
              creator:{
      
                 person:{
      
                   name:'Milton'
      
                 }
      
              }
      
            The original JSON document is not disturbed but the
      
            part of the JSON body selected by the
      
            expression is marked for further processing.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON</b>(xpath_bool xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json operates on JSON file
      

      and returns boolean value.





      Examples:

        For the JSON file:
      
        {
      
           "Book":{
      
              "creator":{
      
                 "person":{
      
                   "name":'Milton'
      
                 }
      
              },
      
              "title":'Paradise Lost'
      
           }
      
        }
      
        HTTP.REQ.BODY(1000).XPATH_JSON(xp%boolean(/Top/Book/creator)%)
      
            This will return true as there is a node named
      
            'creator' with parent 'Book' in the first 1000 bytes of the
      
            document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Boolean Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON</b>(xpath_double xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json operates on JSON file
      

      and returns double value.





      Examples:

        For the JSON file:
      
        {
      
           "Book":{
      
              "creator":{
      
                 "person":{
      
                   "name":'Milton'
      
                 }
      
              },
      
              "title":'Paradise Lost',
      
              "price":"36"
      
           }
      
        }
      
        HTTP.REQ.BODY(1000).XPATH_JSON(xp%number(/Top/Book/price)%)
      
            This will convert the string '36' string to double if it is
      
            in the first 1000 bytes of the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Numeric Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_at/double_at.html">double_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_JSON</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath_json operates on JSON file
      

      and returns node-set or string.

      node-sets are converted into corresponding strings using the

      standard xpath string conversion routine.





      Examples:

        For the JSON file:
      
        {
      
           "Book":{
      
              "creator":{
      
                 "person":{
      
                   "name":'Milton'
      
                 }
      
              },
      
              "title":'Paradise Lost'
      
           }
      
        }
      
        HTTP.REQ.BODY(1000).XPATH_JSON(xp%/Top/Book%)
      
            This will select "all the nodes enclosed by /Book"
      
            in the first 1000 bytes of the body.
      
            Since this is a node-set the corresponding string
      
            value will be returned which is "MiltonParadise
      
            Lost".</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH_WITH_MARKUP</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
      

      returns a string that contains the entire portion of the

      document for the result node including markup, such as

      including the enclosing element tags





      Examples:

        <book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title></book>HTTP.REQ.BODY(1000).XPATH_WITH_MARKUP(xp%/Book/creator%)
      
            This expression when operated on the above XML file,
      
            will select "all the nodes enclosed by
      
            /Book/creator"
      
            in the first 1000 bytes of the body which is
      
            <creator><person><name>Milton</name></person></creator>The original XML document is not disturbed but the
      
            part of the XML body selected by the
      
            xpath expression is marked for further processing.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div><div><div><p><b>* </b><b>XPATH</b>(xpath_bool xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
      

      returns boolean value.





      Examples:

        For the XML file:
      
        <book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title></book>HTTP.REQ.BODY(1000).XPATH(xp%boolean(//Book/creator)%)
      
            This will return true as there is a node called creator
      
            under the node Book with in the first 1000 bytes of the
      
            document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Boolean Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/bool_at/bool_at.html">bool_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH</b>(xpath_double xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
      

      returns double value.





      Examples:

        For the XML file:
      
        <book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title><price>36</price></book>HTTP.REQ.BODY(1000).XPATH(xp%number(/Book/price)%)
      
            This will convert the string '36' to double
      
            if it is in the first 1000 bytes of the document.</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Numeric Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/double_at/double_at.html">double_at</a></p></div></div></div><div><div><p><b>* </b><b>XPATH</b>(xpath_str xpathex)</p><div><p>xpath(1.0) expression evaluation. xpath operates on XML file and
      

      returns node-set or string.

      node-sets are converted into corresponding strings using the

      standard xpath string conversion routine.





      Examples:

        For the XML file:
      
        <book><creator><person><name>Milton</name></person></creator><title>Paradise Lost</title></book>HTTP.REQ.BODY(1000).XPATH(xp%/Book/creator%)
      
            This expression will select
      
            "all the nodes enclosed by /Book/creator"
      
            in the first 1000 bytes of the body. Since this is a node-set
      
            its string value is returned which is: "Milton"</p><p><b>Parameters</b>(expressions not allowed):</p><div><p>xpathex -
      
                              XPath Expression</p></div><p><b>Returns: </b><a href="/en-us/adc-advanced-policy-expression-reference/12-1/text_t/text_t.html">text_t</a></p></div></div></div></body></html>
      
HTTP_URL_T

In this article