Citrix ADC 12.1 NITRO API Reference

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 <string\_builder\_expr>. 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 <string\_builder\_expr>. 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 <header\_string\_builder\_expr> <contents\_string\_builder\_expr>. Inserts the HTTP header specified by <header\_string\_builder\_expr> and header contents specified by <contents\_string\_builder\_expr>.
\* 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 <string\_builder\_expr1> <string\_builder\_expr1>. Finds the string specified in <string\_builder\_expr1> and inserts the string in <string\_builder\_expr2> 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 <string\_builder\_expr1> <string\_builder\_expr2>. Finds the string specified in <string\_builder\_expr1>, and inserts the string specified in <string\_builder\_expr2> 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.
__count Read-only count parameter

Operations

(click to see Properties)

ADD DELETE UPDATE UNSET RENAME GET (ALL) GET COUNT

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 Citrix ADC appliance, the URL is as follows:

    http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC 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 redand placeholder content is marked in <green>.

add

URL:http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC specific errors). The response payload provides details of the error

delete

URL:http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC specific errors). The response payload provides details of the error

update

URL:http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC specific errors). The response payload provides details of the error

unset

URL:http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC specific errors). The response payload provides details of the error

rename

URL:http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC specific errors). The response payload provides details of the error

get (all)

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/rewriteaction

Query-parameters:

attrs

http://<Citrix-ADC-IP-address(NSIP)>/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://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC. Filtering can be done on any of the properties of the resource.

view

http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/rewriteaction?view=summary

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

pagination

http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC specific errors). The response payload provides details of the errorResponse Headers:

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>
}]}

<!--NeedCopy-->

get

URL:http://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/rewriteaction/name_value<String>

Query-parameters:

attrs

http://<Citrix-ADC-IP-address(NSIP)>/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://<Citrix-ADC-IP-address(NSIP)>/nitro/v1/config/rewriteaction/name_value<String>?view=summary

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 Citrix ADC specific errors). The response payload provides details of the errorResponse Headers:

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>
}]}

<!--NeedCopy-->

count

URL:http://<Citrix-ADC-IP-address(NSIP)>/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 Citrix ADC specific errors). The response payload provides details of the errorResponse Headers:

Content-Type:application/json

Response Payload:


{ "rewriteaction": [ { "__count": "#no"} ] }

<!--NeedCopy-->
rewriteaction