ADC NITRO APIs

rewriteaction

Configuration for rewrite action resource.

Properties

(click to see Operations )

Name Data Type Permissions Description
name Read-write Name for the user-defined rewrite action. Must begin with a letter, number, or the underscore character (_), and must contain only letters, numbers, and the hyphen (-), period (.) hash (#), space ( ), at (@), equals (=), colon (:), and underscore characters. Can be changed after the rewrite policy is added. The following requirement applies only to the Citrix ADC CLI If the name includes one or more spaces, enclose the name in double or single quotation marks (for example, “my rewrite action” or ‘my rewrite action’).
type Read-write Type of user-defined rewrite action. The information that you provide for, and the effect of, each type are as follows:
  • REPLACE . Replaces the string with the string-builder expression. \* REPLACE\_ALL <string\_builder\_expr1> -\(pattern\|search) <string\_builder\_expr2>. In the request or response specified by , replaces all occurrences of the string defined by <string\_builder\_expr1> with the string defined by <string\_builder\_expr2>. You can use a PCRE-format pattern or the search facility to find the strings to be replaced.
  • REPLACE_HTTP_RES . Replaces the complete HTTP response with the string defined by the string-builder expression.
  • REPLACE_SIP_RES - Replaces the complete SIP response with the string specified by .
  • INSERT_HTTP_HEADER . Inserts the HTTP header specified by and header contents specified by .
  • DELETE_HTTP_HEADER . Deletes the HTTP header specified by .
  • CORRUPT_HTTP_HEADER . Replaces the header name of all occurrences of the HTTP header specified by with a corrupted name, so that it will not be recognized by the receiver Example: MY_HEADER is changed to MHEY_ADER.
  • INSERT_BEFORE . Finds the string specified in and inserts the string in before it. \* INSERT\_BEFORE\_ALL <string\_builder\_expr1> -\(pattern\|search) <string\_builder\_expr2>. In the request or response specified by , locates all occurrences of the string specified in <string\_builder\_expr1> and inserts the string specified in <string\_builder\_expr2> before each. You can use a PCRE-format pattern or the search facility to find the strings.
  • INSERT_AFTER . Finds the string specified in , and inserts the string specified in after it. \* INSERT\_AFTER\_ALL <string\_builder\_expr1> -\(pattern\|search) <string\_builder\_expr>. In the request or response specified by , locates all occurrences of the string specified by <string\_builder\_expr1> and inserts the string specified by <string\_builder\_expr2> after each. You can use a PCRE-format pattern or the search facility to find the strings.
  • DELETE . Finds and deletes the specified target. \* DELETE\_ALL -\(pattern\|search) <string\_builder\_expr>. In the request or response specified by , locates and deletes all occurrences of the string specified by <string\_builder\_expr>. You can use a PCRE-format pattern or the search facility to find the strings.
  • REPLACE_DIAMETER_HEADER_FIELD . In the request or response modify the header field specified by . Use Diameter.req.flags.SET() or Diameter.req.flags.UNSET as 'stringbuilderexpression' to set or unset flags.
  • REPLACE_DNS_HEADER_FIELD . In the request or response modify the header field specified by .
  • REPLACE_DNS_ANSWER_SECTION . Replace the DNS answer section in the response. This is currently applicable for A and AAAA records only. Use DNS.NEW_RRSET_A ; DNS.NEW_RRSET_AAAA expressions to configure the new answer section . Possible values = noop, delete, insert_http_header, delete_http_header, corrupt_http_header, insert_before, insert_after, replace, replace_http_res, delete_all, replace_all, insert_before_all, insert_after_all, clientless_vpn_encode, clientless_vpn_encode_all, clientless_vpn_decode, clientless_vpn_decode_all, insert_sip_header, delete_sip_header, corrupt_sip_header, replace_sip_res, replace_diameter_header_field, replace_dns_header_field, replace_dns_answer_section
  • target Read-write Expression that specifies which part of the request or response to rewrite.

    Minimum length = 1
    stringbuilderexpr Read-write Expression that specifies the content to insert into the request or response at the specified location, or that replaces the specified string.
    pattern Read-write DEPRECATED in favor of -search: Pattern that is used to match multiple strings in the request or response. The pattern may be a string literal (without quotes) or a PCRE-format regular expression with a delimiter that consists of any printable ASCII non-alphanumeric character except for the underscore (_) and space ( ) that is not otherwise used in the expression. Example: re~https?://|HTTPS?://~ The preceding regular expression can use the tilde (~) as the delimiter because that character does not appear in the regular expression itself. Used in the INSERT_BEFORE_ALL, INSERT_AFTER_ALL, REPLACE_ALL, and DELETE_ALL action types.
    search Read-write Search facility that is used to match multiple strings in the request or response. Used in the INSERT_BEFORE_ALL, INSERT_AFTER_ALL, REPLACE_ALL, and DELETE_ALL action types. The following search types are supported
  • Text (“text(string)”) - A literal string. Example: -search text(“hello”)
  • Regular expression (“regex(reregular exp)") - Pattern that is used to match multiple strings in the request or response. The pattern may be a PCRE-format regular expression with a delimiter that consists of any printable ASCII non-alphanumeric character except for the underscore (_) and space ( ) that is not otherwise used in the expression. Example: -search regex(re~^hello*~) The preceding regular expression can use the tilde (~) as the delimiter because that character does not appear in the regular expression itself.
  • XPath (“xpath(xpxpath expression)") - An XPath expression to search XML. The delimiter has the same rules as for regex. Example: -search xpath(xp%/a/b%)
  • JSON (“xpath_json(xpxpath expression)") - An XPath expression to search JSON. The delimiter has the same rules as for regex. Example: -search xpath_json(xp%/a/b%) NOTE: JSON searches use the same syntax as XPath searches, but operate on JSON files instead of standard XML files.
  • HTML (“xpath_html(xpxpath expression)") - An XPath expression to search HTML. The delimiter has the same rules as for regex. Example: -search xpath_html(xp%/html/body%) NOTE: HTML searches use the same syntax as XPath searches, but operate on HTML files instead of standard XML files; HTML 5 rules for the file syntax are used; HTML 4 and later are supported.
  • Patset (“patset(patset)”) - A predefined pattern set. Example: -search patset(“patset1”).
  • Datset (“dataset(dataset)”) - A predefined dataset. Example: -search dataset(“dataset1”).
  • AVP (“avp(avp number)”) - AVP number that is used to match multiple AVPs in a Diameter/Radius Message. Example: -search avp(999) Note: for all these the TARGET prefix can be used in the replacement expression to specify the text that was selected by the -search parameter, optionally adjusted by the -refineSearch parameter. Example: TARGET.BEFORE_STR(“,”).
  • bypasssafetycheck Read-write Bypass the safety check and allow unsafe expressions. An unsafe expression is one that contains references to message elements that might not be present in all messages. If an expression refers to a missing request element, an empty string is used instead.

    Default value: NO

    Possible values = YES, NO
    refinesearch Read-write Specify additional criteria to refine the results of the search.

    Always starts with the “extend(m,n)” operation, where ‘m’ specifies number of bytes to the left of selected data and ‘n’ specifies number of bytes to the right of selected data to extend the selected area.

    You can use refineSearch only on body expressions, and for the INSERT_BEFORE_ALL, INSERT_AFTER_ALL, REPLACE_ALL, and DELETE_ALL action types.

    Example: -refineSearch ‘EXTEND(10, 20).REGEX_SELECT(re~0x[0-9a-zA-Z]+~).
    comment Read-write Comment. Can be used to preserve information about this rewrite action.
    newname Read-write New name for the rewrite action. Must begin with a letter, number, or the underscore character (_), and must contain only letters, numbers, and the hyphen (-), period (.) hash (#), space ( ), at (@), equals (=), colon (:), and underscore characters. Can be changed after the rewrite policy is added. The following requirement applies only to the Citrix ADC CLI If the name includes one or more spaces, enclose the name in double or single quotation marks (for example, “my rewrite action” or ‘my rewrite action’). Minimum length = 1
    hits Read-only The number of times the action has been taken.
    undefhits Read-only The number of times the action resulted in UNDEF.
    referencecount Read-only The number of references to the action.
    description Read-only Description of the action.
    isdefault Read-only A value of true is returned if it is a default rewriteaction.
    builtin <String[]> Read-only Flag to determine whether rewrite action is built-in or not.

    Possible values = MODIFIABLE, DELETABLE, IMMUTABLE, PARTITION_ALL
    feature Read-only The feature to be checked while applying this config.
    __count Read-only count parameter

    Operations

    (click to see Properties )

    • ADD
    • DELETE
    • UPDATE
    • UNSET
    • GET (ALL)
    • GET
    • COUNT
    • RENAME

    Some options that you can use for each operations:

    • Getting warnings in response: NITRO allows you to get warnings in an operation by specifying the 'warning' query parameter as 'yes'. For example, to get warnings while connecting to the NetScaler appliance, the URL is as follows:

      http:// <netscaler-ip-address> /nitro/v1/config/login?warning=yes

      If any, the warnings are displayed in the response payload with the HTTP code '209 X-NITRO-WARNING'.

    • Authenticated access for individual NITRO operations: NITRO allows you to logon to the NetScaler appliance to perform individual operations. You can use this option instead of creating a NITRO session (using the login object) and then using that session to perform all operations,

      To do this, you must specify the username and password in the request header of the NITRO request as follows:

      X-NITRO-USER: <username>

      X-NITRO-PASS: <password>

      Note: In such cases, make sure that the request header DOES not include the following:

      Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    *Note: *

    Mandatory parameters are marked in red and placeholder content is marked in green

    add

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction

    HTTP Method: POST

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Content-Type:application/json

    Request Payload:

    
    {"rewriteaction":{
    <b>      "name":<String_value>,
    </b><b>      "type":<String_value>,
    </b><b>      "target":<String_value>,
    </b>      "stringbuilderexpr":<String_value>,
          "pattern":<String_value>,
          "search":<String_value>,
          "bypasssafetycheck":<String_value>,
          "refinesearch":<String_value>,
          "comment":<String_value>
    }}
    
    <!--NeedCopy-->
    

    Response:

    HTTP Status Code on Success: 201 Created

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    delete

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction/ name_value<String>

    HTTP Method: DELETE

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Response:

    HTTP Status Code on Success: 200 OK

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    update

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction

    HTTP Method: PUT

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Content-Type:application/json

    Request Payload:

    
    {"rewriteaction":{
    <b>      "name":<String_value>,
    </b>      "target":<String_value>,
          "stringbuilderexpr":<String_value>,
          "bypasssafetycheck":<String_value>,
          "pattern":<String_value>,
          "search":<String_value>,
          "bypasssafetycheck":<String_value>,
          "refinesearch":<String_value>,
          "comment":<String_value>
    }}
    
    <!--NeedCopy-->
    

    Response:

    HTTP Status Code on Success: 200 OK

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    unset

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction? action=unset

    HTTP Method: POST

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Content-Type:application/json

    Request Payload:

    
    {"rewriteaction":{
    <b>      "name":<String_value>,
    </b>      "stringbuilderexpr":true,
          "refinesearch":true,
          "comment":true
    }}
    
    <!--NeedCopy-->
    

    Response:

    HTTP Status Code on Success: 200 OK

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    rename

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction? action=rename

    HTTP Method: POST

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Content-Type:application/json

    Request Payload:

    
    {"rewriteaction":{
    <b>      "name":<String_value>,
    </b><b>      "newname":<String_value>
    </b>}}
    
    <!--NeedCopy-->
    

    Response:

    HTTP Status Code on Success: 200 OK

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    get (all)

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction

    Query-parameters:

    attrs

    http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction? attrs=property-name1,property-name2

    Use this query parameter to specify the resource details that you want to retrieve.

    filter

    http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction? filter=property-name1:property-val1,property-name2:property-val2

    Use this query-parameter to get the filtered set of rewriteaction resources configured on NetScaler.Filtering can be done on any of the properties of the resource.

    view

    http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction? view=summary

    Use this query-parameter to get the summary output of rewriteaction resources configured on NetScaler.

    Note: By default, the retrieved results are displayed in detail view (?view=detail).

    pagination

    http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction? pagesize=#no;pageno=#no

    Use this query-parameter to get the rewriteaction resources in chunks.

    HTTP Method: GET

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Accept:application/json

    Response:

    HTTP Status Code on Success: 200 OK

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    Response Header:

    Content-Type:application/json

    Response Payload:

    
    { "rewriteaction": [ {
          "name":<String_value>,
          "type":<String_value>,
          "target":<String_value>,
          "stringbuilderexpr":<String_value>,
          "pattern":<String_value>,
          "search":<String_value>,
          "bypasssafetycheck":<String_value>,
          "refinesearch":<String_value>,
          "hits":<Double_value>,
          "undefhits":<Double_value>,
          "referencecount":<Double_value>,
          "description":<String_value>,
          "isdefault":<Boolean_value>,
          "comment":<String_value>,
          "builtin":<String[]_value>,
          "feature":<String_value>
    }]}
    
    <!--NeedCopy-->
    

    get

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction/ name_value<String>

    Query-parameters:

    attrs

    http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction/ name_value<String> ? attrs=property-name1,property-name2

    Use this query parameter to specify the resource details that you want to retrieve.

    view

    http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction/ name_value<String> ? view=summary

    Use this query-parameter to get the summary output of rewriteaction resources configured on NetScaler.

    Note: By default, the retrieved results are displayed in detail view (?view=detail).

    HTTP Method: GET

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Accept:application/json

    Response:

    HTTP Status Code on Success: 200 OK

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    Response Header:

    Content-Type:application/json

    Response Payload:

    
    {  "rewriteaction": [ {
          "name":<String_value>,
          "type":<String_value>,
          "target":<String_value>,
          "stringbuilderexpr":<String_value>,
          "pattern":<String_value>,
          "search":<String_value>,
          "bypasssafetycheck":<String_value>,
          "refinesearch":<String_value>,
          "hits":<Double_value>,
          "undefhits":<Double_value>,
          "referencecount":<Double_value>,
          "description":<String_value>,
          "isdefault":<Boolean_value>,
          "comment":<String_value>,
          "builtin":<String[]_value>,
          "feature":<String_value>
    }]}
    
    <!--NeedCopy-->
    

    count

    URL: http:// <netscaler-ip-address> /nitro/v1/config/rewriteaction? count=yes

    HTTP Method: GET

    Request Headers:

    Cookie:NITRO_AUTH_TOKEN= <tokenvalue>

    Accept:application/json

    Response:

    HTTP Status Code on Success: 200 OK

    HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). The response payload provides details of the error

    Response Header:

    Content-Type:application/json

    Response Payload:

    
    { "rewriteaction": [ { "__count": "#no"} ] }
    
    <!--NeedCopy-->
    
    rewriteaction