1<!DOCTYPE HTML> 2<html> 3<!-- SECTION: Man Pages --> 4<head> 5 <link rel="stylesheet" type="text/css" href="../cups-printable.css"> 6 <title>ipptoolfile(5)</title> 7</head> 8<body> 9<h1 class="title">ipptoolfile(5)</h1> 10<h2 class="title"><a name="NAME">Name</a></h2> 11ipptoolfile - ipptool file format 12<h2 class="title"><a name="DESCRIPTION">Description</a></h2> 13The 14<a href="man-ipptool.html?TOPIC=Man+Pages"><b>ipptool</b>(1)</a> 15program accepts free-form plain text files that describe one or more IPP requests. 16Comments start with the "#" character and continue to the end of the line. 17Each request is enclosed by curly braces, for example: 18<pre class="man"> 19 # This is a comment 20 { 21 # The name of the test 22 NAME "Print PDF File" 23 24 # The request to send 25 OPERATION Print-Job 26 27 GROUP operation-attributes-tag 28 ATTR charset attributes-charset utf-8 29 ATTR language attributes-natural-language en 30 ATTR uri printer-uri $uri 31 ATTR name requesting-user-name $user 32 ATTR mimeMediaType document-format application/pdf 33 34 GROUP job-attributes-tag 35 ATTR collection media-col { 36 # US Letter plain paper from the "main" tray 37 MEMBER collection media-size { 38 MEMBER integer x-dimension 21590 39 MEMBER integer y-dimension 27940 40 } 41 MEMBER integer media-top-margin 423 42 MEMBER integer media-bottom-margin 423 43 MEMBER integer media-left-margin 423 44 MEMBER integer media-right-margin 423 45 MEMBER keyword media-source "main" 46 MEMBER keyword media-type "stationery" 47 } 48 49 FILE testfile.pdf 50 51 # The response to expect 52 STATUS successful-ok 53 EXPECT job-id OF-TYPE integer WITH-VALUE >0 54 EXPECT job-uri OF-TYPE uri 55 } 56 { 57 # The name of the test 58 NAME "Wait for Job to Complete" 59 60 # The request to send 61 OPERATION Get-Job-Attributes 62 63 GROUP operation-attributes-tag 64 ATTR charset attributes-charset utf-8 65 ATTR language attributes-natural-language en 66 ATTR uri printer-uri $uri 67 ATTR integer job-id $job-id 68 ATTR name requesting-user-name $user 69 70 # The response to expect 71 STATUS successful-ok 72 EXPECT job-id OF-TYPE integer WITH-VALUE $job-id 73 EXPECT job-uri OF-TYPE uri 74 EXPECT job-state OF-TYPE enum WITH-VALUE >5 REPEAT-NO-MATCH 75 EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user" 76 77 # Show the job state until completed... 78 DISPLAY job-state 79 DISPLAY job-state-reasons 80 } 81</pre> 82<h3><a name="TOP_LEVEL_DIRECTIVES">Top-level Directives</a></h3> 83The following directives can be used outside of a <i>test</i>: 84<dl class="man"> 85<dt><b>{ </b><i>test </i><b>}</b> 86<dd style="margin-left: 5.0em">Defines a test. 87<dt><b>DEFINE </b><i>variable-name value</i> 88<dd style="margin-left: 5.0em">Defines the named variable to the given value. This is equivalent to specifying <i>-d variable-name=value</i> on the 89<b>ipptool</b>(8) 90command-line. 91<dt><b>DEFINE-DEFAULT </b><i>variable-name value</i> 92<dd style="margin-left: 5.0em">Defines the named variable to the given value if it does not already have a value. 93<dt><b>FILE-ID "</b><i>identifier</i><b>"</b> 94<dd style="margin-left: 5.0em">Specifies an identifier string for the current file. 95<dt><b>IGNORE-ERRORS yes</b> 96<dd style="margin-left: 5.0em"><dt><b>IGNORE-ERRORS no</b> 97<dd style="margin-left: 5.0em">Specifies whether, by default, 98<b>ipptool</b>(8) 99will ignore errors and continue with subsequent tests. 100<dt><b>INCLUDE "</b><i>filename</i><b>"</b> 101<dd style="margin-left: 5.0em"><dt><b>INCLUDE <</b><i>filename</i><b>></b> 102<dd style="margin-left: 5.0em">Includes another test file. The first form includes a file relative to the current test file, while the second form includes a file from the 103<b>ipptool</b>(8) 104include directory. 105<dt><b>INCLUDE-IF-DEFINED </b><i>name </i><b>"</b><i>filename</i><b>"</b> 106<dd style="margin-left: 5.0em"><dt><b>INCLUDE-IF-DEFINED </b><i>name </i><b><</b><i>filename</i><b>></b> 107<dd style="margin-left: 5.0em">Includes another test file if the named variable is defined. The first form includes a file relative to the current test file, while the second form includes a file from the 108<b>ipptool</b>(8) 109include directory. 110<dt><b>INCLUDE-IF-NOT-DEFINED </b><i>name </i><b>"</b><i>filename</i><b>"</b> 111<dd style="margin-left: 5.0em"><dt><b>INCLUDE-IF-NOT-DEFINED </b><i>name </i><b><</b><i>filename</i><b>></b> 112<dd style="margin-left: 5.0em">Includes another test file if the named variable is not defined. The first form includes a file relative to the current test file, while the second form includes a file from the 113<b>ipptool</b>(8) 114include directory. 115<dt><b>SKIP-IF-DEFINED </b><i>variable-name</i> 116<dd style="margin-left: 5.0em"><dt><b>SKIP-IF-NOT-DEFINED </b><i>variable-name</i> 117<dd style="margin-left: 5.0em">Specifies that the remainder of the test file should be skipped when the variable is or is not defined. 118<dt><b>STOP-AFTER-INCLUDE-ERROR no</b> 119<dd style="margin-left: 5.0em"><dt><b>STOP-AFTER-INCLUDE-ERROR yes</b> 120<dd style="margin-left: 5.0em">Specifies whether tests will be stopped after an error in an included file. 121<dt><b>TRANSFER auto</b> 122<dd style="margin-left: 5.0em">Specifies that tests will, by default, use "Transfer-Encoding: chunked" for requests with attached files and "Content-Length:" for requests without attached files. 123<dt><b>TRANSFER chunked</b> 124<dd style="margin-left: 5.0em">Specifies that tests will, by default, use the HTTP/1.1 "Transfer-Encoding: chunked" header. This is the default and is equivalent to specifying <i>-c</i> on the 125<b>ipptool</b>(8) 126command-line. Support for chunked requests is required for conformance with all versions of IPP. 127<dt><b>TRANSFER length</b> 128<dd style="margin-left: 5.0em">Specifies that tests will, by default, use the HTTP/1.0 "Content-Length:" header. This is equivalent to specifying <i>-l</i> on the 129<b>ipptool</b>(8) 130command-line. Support for content length requests is required for conformance with all versions of IPP. 131<dt><b>VERSION 1.0</b> 132<dd style="margin-left: 5.0em"><dt><b>VERSION 1.1</b> 133<dd style="margin-left: 5.0em"><dt><b>VERSION 2.0</b> 134<dd style="margin-left: 5.0em"><dt><b>VERSION 2.1</b> 135<dd style="margin-left: 5.0em"><dt><b>VERSION 2.2</b> 136<dd style="margin-left: 5.0em">Specifies the default IPP version number to use for the tests that follow. 137</dl> 138<h3><a name="TEST_DIRECTIVES">Test Directives</a></h3> 139The following directives are understood within a <i>test</i>: 140<dl class="man"> 141<dt><b>ATTR </b><i>out-of-band-tag attribute-name</i> 142<dd style="margin-left: 5.0em"><dt><b>ATTR </b><i>tag attribute-name value(s)</i> 143<dd style="margin-left: 5.0em">Adds an attribute to the test request. 144Out-of-band tags (admin-define, delete-attribute, no-value, not-settable, unknown, unsupported) have no value. 145Values for other tags are delimited by the comma (",") character - escape commas using the "\" character. 146Common attributes and values are listed in the IANA IPP registry - see references below. 147<dt><b>ATTR collection </b><i>attribute-name </i><b>{ MEMBER </b><i>tag member-name value(s) ... </i><b>}</b> [ <i>... </i><b>,{ </b><i>... </i><b>} </b>] 148<dd style="margin-left: 5.0em">Adds a collection attribute to the test request. 149Member attributes follow the same syntax as regular attributes and can themselves be nested collections. 150Multiple collection values can be supplied as needed, separated by commas. 151<dt><b>COMPRESSION deflate</b> 152<dd style="margin-left: 5.0em"><dt><b>COMPRESSION gzip</b> 153<dd style="margin-left: 5.0em"><dt><b>COMPRESSION none</b> 154<dd style="margin-left: 5.0em">Uses the specified compression on the document data following the attributes in a Print-Job or Send-Document request. 155<dt><b>DELAY </b><i>seconds</i>[<i>,repeat-seconds</i>] 156<dd style="margin-left: 5.0em">Specifies a delay in seconds before this test will be run. 157If two values are specified, the second value is used as the delay between repeated tests. 158A default repeat interval of 5 seconds is used if this directive is not provided. 159<dt><b>DISPLAY </b><i>attribute-name</i> 160<dd style="margin-left: 5.0em">Specifies that value of the named attribute should be output as part of the 161test report. 162<dt><b>EXPECT </b><i>attribute-name </i>[ <i>predicate(s) </i>] 163<dd style="margin-left: 5.0em"><dt><b>EXPECT ?</b><i>attribute-name predicate(s)</i> 164<dd style="margin-left: 5.0em"><dt><b>EXPECT !</b><i>attribute-name</i> 165<dd style="margin-left: 5.0em">Specifies that the response must/may/must not include the named attribute. Additional requirements can be added as predicates - see the "EXPECT PREDICATES" section for more information on predicates. Attribute names can specify member attributes by separating the attribute and member names with the forward slash, for example "media-col/media-size/x-dimension". 166<dt><b>EXPECT-ALL </b><i>attribute-name </i>[ <i>predicate(s) </i>] 167<dd style="margin-left: 5.0em"><dt><b>EXPECT-ALL ?</b><i>attribute-name predicate(s)</i> 168<dd style="margin-left: 5.0em">Specifies that the response must/may include the named attribute and that all occurrences of that attribute must match the given predicates. 169<dt><b>FILE filename</b> 170<dd style="margin-left: 5.0em">Specifies a file to include at the end of the request. This is typically used when sending a test print file. 171<dt><b>GROUP tag</b> 172<dd style="margin-left: 5.0em">Specifies the group tag for subsequent attributes in the request. 173<dt><b>IGNORE-ERRORS yes</b> 174<dd style="margin-left: 5.0em"><dt><b>IGNORE-ERRORS no</b> 175<dd style="margin-left: 5.0em">Specifies whether 176<b>ipptool</b>(8) 177will ignore errors and continue with subsequent tests. 178<dt><b>MONITOR-PRINTER-STATE </b>[ <i>printer-uri </i>] <b>{ EXPECT </b><i>attribute-name </i>[ <i>predicate(s) </i>] <b>}</b> 179<dd style="margin-left: 5.0em">Specifies printer state monitoring tests to run in parallel with the test operation. 180The monitoring tests will run until all of the <b>EXPECT</b> conditions are satisfied or the primary test operation has completed, whichever occurs first. 181<dt><b>NAME "</b><i>literal string</i><b>"</b> 182<dd style="margin-left: 5.0em">Specifies the human-readable name of the test. 183<dt><b>OPERATION </b><i>operation-code</i> 184<dd style="margin-left: 5.0em">Specifies the operation to be performed. 185<dt><b>PASS-IF-DEFINED </b><i>variable-name</i> 186<dd style="margin-left: 5.0em"><dt><b>PASS-IF-NOT-DEFINED </b><i>variable-name</i> 187<dd style="margin-left: 5.0em">Specifies that the current test should be passed automatically when the variable is or is not defined. 188<dt><b>PAUSE "</b><i>message</i><b>"</b> 189<dd style="margin-left: 5.0em">Displays the provided message and waits for the user to press a key to continue. 190<dt><b>REQUEST-ID </b><i>number</i> 191<dd style="margin-left: 5.0em"><dt><b>REQUEST-ID random</b> 192<dd style="margin-left: 5.0em">Specifies the request-id value to use in the request, either an integer or the word "random" to use a randomly generated value (the default). 193<dt><b>RESOURCE </b><i>path</i> 194<dd style="margin-left: 5.0em">Specifies an alternate resource path that is used for the HTTP POST request. The default is the resource from the URI provided to the 195<b>ipptool</b>(8) 196program. 197<dt><b>SKIP-IF-DEFINED </b><i>variable-name</i> 198<dd style="margin-left: 5.0em"><dt><b>SKIP-IF-NOT-DEFINED </b><i>variable-name</i> 199<dd style="margin-left: 5.0em">Specifies that the current test should be skipped when the variable is or is not defined. 200<dt><b>SKIP-PREVIOUS-ERROR yes</b> 201<dd style="margin-left: 5.0em"><dt><b>SKIP-PREVIOUS-ERROR no</b> 202<dd style="margin-left: 5.0em">Specifies whether 203<b>ipptool</b>(8) 204will skip the current test if the previous test resulted in an error/failure. 205<dt><b>STATUS </b><i>status-code </i>[ <i>predicate</i> ] 206<dd style="margin-left: 5.0em">Specifies an expected response status-code value. Additional requirements can be added as predicates - see the "STATUS PREDICATES" section for more information on predicates. 207<dt><b>TEST-ID "</b><i>identifier</i>" 208<dd style="margin-left: 5.0em">Specifies an identifier string for the current test. 209<dt><b>TRANSFER auto</b> 210<dd style="margin-left: 5.0em">Specifies that this test will use "Transfer-Encoding: chunked" if it has an attached file or "Content-Length:" otherwise. 211<dt><b>TRANSFER chunked</b> 212<dd style="margin-left: 5.0em">Specifies that this test will use the HTTP/1.1 "Transfer-Encoding: chunked" header. 213<dt><b>TRANSFER length</b> 214<dd style="margin-left: 5.0em">Specifies that this test will use the HTTP/1.0 "Content-Length:" header. 215<dt><b>VERSION 1.0</b> 216<dd style="margin-left: 5.0em"><dt><b>VERSION 1.1</b> 217<dd style="margin-left: 5.0em"><dt><b>VERSION 2.0</b> 218<dd style="margin-left: 5.0em"><dt><b>VERSION 2.1</b> 219<dd style="margin-left: 5.0em"><dt><b>VERSION 2.2</b> 220<dd style="margin-left: 5.0em">Specifies the IPP version number to use for this test. 221</dl> 222<h3><a name="EXPECT_PREDICATES">Expect Predicates</a></h3> 223The following predicates are understood following the <b>EXPECT</b> test directive: 224<dl class="man"> 225<dt><b>COUNT </b><i>number</i> 226<dd style="margin-left: 5.0em">Requires the <b>EXPECT</b> attribute to have the specified number of values. 227<dt><b>DEFINE-MATCH </b><i>variable-name</i> 228<dd style="margin-left: 5.0em">Defines the variable to "1" when the <b>EXPECT</b> condition matches. 229A side-effect of this predicate is that this <b>EXPECT</b> will never fail a test. 230<dt><b>DEFINE-NO-MATCH </b><i>variable-name</i> 231<dd style="margin-left: 5.0em">Defines the variable to "1" when the <b>EXPECT</b> condition does not match. 232A side-effect of this predicate is that this <b>EXPECT</b> will never fail a test. 233<dt><b>DEFINE-VALUE </b><i>variable-name</i> 234<dd style="margin-left: 5.0em">Defines the variable to the value of the attribute when the <b>EXPECT</b> condition matches. 235A side-effect of this predicate is that this <b>EXPECT</b> will never fail a test. 236<dt><b>DISPLAY-MATCH </b><i>"message"</i> 237<dd style="margin-left: 5.0em">Displays the specified message when the <b>EXPECT</b> condition matches. 238<dt><b>IF-DEFINED </b><i>variable-name</i> 239<dd style="margin-left: 5.0em">Makes the <b>EXPECT</b> conditions apply only if the specified variable is defined. 240<dt><b>IF-NOT-DEFINED </b><i>variable-name</i> 241<dd style="margin-left: 5.0em">Makes the <b>EXPECT</b> conditions apply only if the specified variable is not defined. 242<dt><b>IN-GROUP </b><i>tag</i> 243<dd style="margin-left: 5.0em">Requires the <b>EXPECT</b> attribute to be in the specified group tag. 244<dt><b>OF-TYPE </b><i>tag[(limits)|tag|...]</i> 245<dd style="margin-left: 5.0em">Requires the <b>EXPECT</b> attribute to use one of the specified value tag(s). 246Most value tags also support the specification of limits in parenthesis, for example "name(42)" would allow nameWith/WithoutLanguage strings up to 42 octets in length, "name(4:MAX)" would allow nameWith/WithoutLanguage strings between 4 and 255 octets in length, and "integer(-273:MAX)" would allow integers between -273 and 2147483647. 247<dt><b>REPEAT-LIMIT </b><i>number</i> 248<dd style="margin-left: 5.0em"><br> 249Specifies the maximum number of times to repeat if the <b>REPEAT-MATCH</b> or <b>REPEAT-NO-MATCH</b> predicate is specified. The default value is 1000. 250<dt><b>REPEAT-MATCH</b> 251<dd style="margin-left: 5.0em"><dt><b>REPEAT-NO-MATCH</b> 252<dd style="margin-left: 5.0em">Specifies that the current test should be repeated when the <b>EXPECT</b> condition matches or does not match. 253<dt><b>SAME-COUNT-AS </b><i>attribute-name</i> 254<dd style="margin-left: 5.0em">Requires the <b>EXPECT</b> attribute to have the same number of values as the specified parallel attribute. 255<dt><b>WITH-ALL-HOSTNAMES "</b><i>literal string</i><b>"</b> 256<dd style="margin-left: 5.0em"><dt><b>WITH-ALL-HOSTNAMES "/</b><i>regular expression</i><b>/"</b> 257<dd style="margin-left: 5.0em">Requires that all URI values contain a matching hostname. 258<dt><b>WITH-ALL-RESOURCES "</b><i>literal string</i><b>"</b> 259<dd style="margin-left: 5.0em"><dt><b>WITH-ALL-RESOURCES "/</b><i>regular expression</i><b>/"</b> 260<dd style="margin-left: 5.0em">Requires that all URI values contain a matching resource (including leading /). 261<dt><b>WITH-ALL-SCHEMES "</b><i>literal string</i><b>"</b> 262<dd style="margin-left: 5.0em"><dt><b>WITH-ALL-SCHEMES "/</b><i>regular expression</i><b>/"</b> 263<dd style="margin-left: 5.0em">Requires that all URI values contain a matching scheme. 264<dt><b>WITH-ALL-VALUES "</b><i>literal string</i><b>"</b> 265<dd style="margin-left: 5.0em">Requires that all values of the <b>EXPECT</b> attribute match the literal string. Comparisons are case-sensitive. 266<dt><b>WITH-ALL-VALUES <</b><i>number</i> 267<dd style="margin-left: 5.0em"><dt><b>WITH-ALL-VALUES =</b><i>number</i> 268<dd style="margin-left: 5.0em"><dt><b>WITH-ALL-VALUES ></b><i>number</i> 269<dd style="margin-left: 5.0em"><dt><b>WITH-ALL-VALUES </b><i>number</i>[<i>,...,number</i>] 270<dd style="margin-left: 5.0em">Requires that all values of the <b>EXPECT</b> attribute match the number(s) or numeric comparison. When comparing rangeOfInteger values, the "<" and ">" operators only check the upper bound of the range. 271<dt><b>WITH-ALL-VALUES "false"</b> 272<dd style="margin-left: 5.0em"><dt><b>WITH-ALL-VALUES "true"</b> 273<dd style="margin-left: 5.0em">Requires that all values of the <b>EXPECT</b> attribute match the boolean value given. 274<dt><b>WITH-ALL-VALUES "/</b><i>regular expression</i><b>/"</b> 275<dd style="margin-left: 5.0em">Requires that all values of the <b>EXPECT</b> attribute match the regular expression, which must conform to the POSIX regular expression syntax. 276Comparisons are case-sensitive. 277<dt><b>WITH-DISTINCT-VALUES</b> 278<dd style="margin-left: 5.0em">Requires that all values of the <b>EXPECT</b> attribute are unique. 279Comparisons are case-sensitive. 280Only charset, collection, enum, integer, keyword, mimeMediaType, naturalLanguage, rangeOfInteger, resolution, uriScheme attributes support this predicate. 281<dt><b>WITH-HOSTNAME "</b><i>literal string</i><b>"</b> 282<dd style="margin-left: 5.0em"><dt><b>WITH-HOSTNAME "/</b><i>regular expression</i><b>/"</b> 283<dd style="margin-left: 5.0em">Requires that at least one URI value contains a matching hostname. 284<dt><b>WITH-RESOURCE "</b><i>literal string</i><b>"</b> 285<dd style="margin-left: 5.0em"><dt><b>WITH-RESOURCE "/</b><i>regular expression</i><b>/"</b> 286<dd style="margin-left: 5.0em">Requires that at least one URI value contains a matching resource (including leading /). 287<dt><b>WITH-SCHEME "</b><i>literal string</i><b>"</b> 288<dd style="margin-left: 5.0em"><dt><b>WITH-SCHEME "/</b><i>regular expression</i><b>/"</b> 289<dd style="margin-left: 5.0em">Requires that at least one URI value contains a matching scheme. 290<dt><b>WITH-VALUE "</b><i>literal string</i><b>"</b> 291<dd style="margin-left: 5.0em">Requires that at least one value of the <b>EXPECT</b> attribute matches the literal string. Comparisons are case-sensitive. 292<dt><b>WITH-VALUE <</b><i>number</i> 293<dd style="margin-left: 5.0em"><dt><b>WITH-VALUE =</b><i>number</i> 294<dd style="margin-left: 5.0em"><dt><b>WITH-VALUE ></b><i>number</i> 295<dd style="margin-left: 5.0em"><dt><b>WITH-VALUE </b><i>number</i>[<i>,...,number</i>] 296<dd style="margin-left: 5.0em">Requires that at least one value of the <b>EXPECT</b> attribute matches the number(s) or numeric comparison. When comparing rangeOfInteger values, the "<" and ">" operators only check the upper bound of the range. 297<dt><b>WITH-VALUE "false"</b> 298<dd style="margin-left: 5.0em"><dt><b>WITH-VALUE "true"</b> 299<dd style="margin-left: 5.0em">Requires that at least one value of the <b>EXPECT</b> attribute matches the boolean value given. 300<dt><b>WITH-VALUE "/</b><i>regular expression</i><b>/"</b> 301<dd style="margin-left: 5.0em">Requires that at least one value of the <b>EXPECT</b> attribute matches the regular expression, which must conform to the POSIX regular expression syntax. Comparisons are case-sensitive. 302<dt><b>WITH-VALUE-FROM </b><i>attribute-name</i> 303<dd style="margin-left: 5.0em">Requires that the value(s) of the <b>EXPECT</b> attribute matches the value(s) in the specified attribute. 304For example, "EXPECT job-sheets WITH-VALUE-FROM job-sheets-supported" requires that the "job-sheets" value is listed as a value of the "job-sheets-supported" attribute. 305</dl> 306<h3><a name="STATUS_PREDICATES">Status Predicates</a></h3> 307The following predicates are understood following the <b>STATUS</b> test directive: 308<dl class="man"> 309<dt><b>DEFINE-MATCH </b><i>variable-name</i> 310<dd style="margin-left: 5.0em">Defines the variable to "1" when the <b>STATUS</b> matches. A side-effect of this predicate is that this <b>STATUS</b> will never fail a test. 311<dt><b>DEFINE-NO-MATCH </b><i>variable-name</i> 312<dd style="margin-left: 5.0em">Defines the variable to "1" when the <b>STATUS</b> does not match. A side-effect of this predicate is that this <b>STATUS</b> will never fail a test. 313<dt><b>IF-DEFINED </b><i>variable-name</i> 314<dd style="margin-left: 5.0em">Makes the <b>STATUS</b> apply only if the specified variable is defined. 315<dt><b>IF-NOT-DEFINED </b><i>variable-name</i> 316<dd style="margin-left: 5.0em">Makes the <b>STATUS</b> apply only if the specified variable is not defined. 317<dt><b>REPEAT-LIMIT </b><i>number</i> 318<dd style="margin-left: 5.0em"><br> 319Specifies the maximum number of times to repeat. The default value is 1000. 320<dt><b>REPEAT-MATCH</b> 321<dd style="margin-left: 5.0em"><dt><b>REPEAT-NO-MATCH</b> 322<dd style="margin-left: 5.0em">Specifies that the current test should be repeated when the response status-code matches or does not match the value specified by the STATUS directive. 323</dl> 324<h3><a name="OPERATION_CODES">Operation Codes</a></h3> 325Operation codes correspond to the hexadecimal numbers (0xHHHH) and names from RFC 8011 and other IPP extension specifications. Here is a complete list of names supported by 326<b>ipptool</b>(8): 327<pre class="man"> 328 Acknowledge-Document 329 Acknowledge-Identify-Printer 330 Acknowledge-Job 331 Activate-Printer 332 Add-Document-Images 333 Allocate-Printer-Resources 334 Cancel-Current-Job 335 Cancel-Job 336 Cancel-Jobs 337 Cancel-My-Jobs 338 Cancel-Resource 339 Cancel-Subscription 340 Close-Job 341 Create-Job 342 Create-Job-Subscriptions 343 Create-Printer 344 Create-Printer-Subscriptions 345 Create-Resource 346 Create-Resource-Subscriptions 347 Create-System-Subscriptions 348 CUPS-Accept-Jobs 349 CUPS-Accept-Jobs 350 CUPS-Add-Modify-Class 351 CUPS-Add-Modify-Printer 352 CUPS-Authenticate-Job 353 CUPS-Create-Local-Printer 354 CUPS-Delete-Class 355 CUPS-Delete-Printer 356 CUPS-Get-Classes 357 CUPS-Get-Default 358 CUPS-Get-Devices 359 CUPS-Get-Document 360 CUPS-Get-PPD 361 CUPS-Get-PPDs 362 CUPS-Get-Printers 363 CUPS-Move-Job 364 CUPS-Reject-Jobs 365 CUPS-Set-Default 366 Deactivate-Printer 367 Deallocate-Printer-Resources 368 Delete-Printer 369 Deregister-Output-Device 370 Disable-All-Printers 371 Disable-Printer 372 Enable-All-Printers 373 Enable-Printer 374 Fetch-Document 375 Fetch-Job 376 Get-Job-Attributes 377 Get-Jobs 378 Get-Next-Document-Data 379 Get-Notifications 380 Get-Output-Device-Attributes 381 Get-Printer-Attributes 382 Get-Printer-Support-Files 383 Get-Printer-Supported-Values 384 Get-Printers 385 Get-Subscription-Attributes 386 Get-Subscriptions 387 Get-System-Attributes 388 Get-System-Supported-Values 389 Hold-Job 390 Hold-New-Jobs 391 Identify-Printer 392 Install-Resource 393 Pause-All-Printers 394 Pause-All-Printers-After-Current-Job 395 Pause-Printer 396 Pause-Printer-After-Current-Job 397 Print-Job 398 Print-URI 399 Promote-Job 400 Purge-Jobs 401 Register-Output-Device 402 Release-Held-New-Jobs 403 Release-Job 404 Renew-Subscription 405 Reprocess-Job 406 Restart-Job 407 Restart-Printer 408 Restart-System 409 Resubmit-Job 410 Resume-All-Printers 411 Resume-Job 412 Resume-Printer 413 Schedule-Job-After 414 Send-Document 415 Send-Hardcopy-Document 416 Send-Notifications 417 Send-Resource-Data 418 Send-URI 419 Set-Job-Attributes 420 Set-Printer-Attributes 421 Set-Resource-Attributes 422 Set-System-Attributes 423 Shutdown-All-Printers 424 Shutdown-One-Printer 425 Shutdown-Printer 426 Startup-All-Printers 427 Startup-One-Printer 428 Startup-Printer 429 Suspend-Current-Job 430 Update-Active-Jobs 431 Update-Document-Status 432 Update-Job-Status 433 Update-Output-Device-Attributes 434 Validate-Document 435 Validate-Job 436</pre> 437<h3><a name="STATUS_CODES">Status Codes</a></h3> 438Status codes correspond to the hexadecimal numbers (0xHHHH) and names from RFC 8011 and other IPP extension specifications. Here is a complete list of the names supported by 439<b>ipptool</b>(8): 440<pre class="man"> 441 client-error-account-authorization-failed 442 client-error-account-closed 443 client-error-account-info-needed 444 client-error-account-limit-reached 445 client-error-attributes-not-settable 446 client-error-attributes-or-values-not-supported 447 client-error-bad-request 448 client-error-charset-not-supported 449 client-error-compression-error 450 client-error-compression-not-supported 451 client-error-conflicting-attributes 452 client-error-document-access-error 453 client-error-document-format-error 454 client-error-document-format-not-supported 455 client-error-document-password-error 456 client-error-document-permission-error 457 client-error-document-security-error 458 client-error-document-unprintable-error 459 client-error-forbidden 460 client-error-gone 461 client-error-ignored-all-notifications 462 client-error-ignored-all-subscriptions 463 client-error-not-authenticated 464 client-error-not-authorized 465 client-error-not-fetchable 466 client-error-not-found 467 client-error-not-possible 468 client-error-print-support-file-not-found 469 client-error-request-entity-too-large 470 client-error-request-value-too-long 471 client-error-timeout 472 client-error-too-many-subscriptions 473 client-error-uri-scheme-not-supported 474 cups-error-account-authorization-failed 475 cups-error-account-closed 476 cups-error-account-info-needed 477 cups-error-account-limit-reached 478 cups-see-other 479 redirection-other-site 480 server-error-busy 481 server-error-device-error 482 server-error-internal-error 483 server-error-job-canceled 484 server-error-multiple-document-jobs-not-supported 485 server-error-not-accepting-jobs 486 server-error-operation-not-supported 487 server-error-printer-is-deactivated 488 server-error-service-unavailable 489 server-error-temporary-error 490 server-error-version-not-supported 491 successful-ok 492 successful-ok-but-cancel-subscription 493 successful-ok-conflicting-attributes 494 successful-ok-events-complete 495 successful-ok-ignored-notifications 496 successful-ok-ignored-or-substituted-attributes 497 successful-ok-ignored-subscriptions 498 successful-ok-too-many-events 499</pre> 500<h3><a name="TAGS">Tags</a></h3> 501Value and group tags correspond to the names from RFC 8011 and other IPP extension specifications. Here are the group tags: 502<pre class="man"> 503 document-attributes-tag 504 event-notification-attributes-tag 505 job | job-attributes-tag 506 operation | operation-attributes-tag 507 printer | printer-attributes-tag 508 resource-attributes-tag 509 subscription-attributes-tag 510 system-attributes-tag 511 unsupported-attributes-tag 512</pre> 513<p>Here are the value tags: 514<pre class="man"> 515 admin-define 516 boolean 517 charset 518 collection | begCollection 519 dateTime 520 default 521 delete-attribute 522 enum 523 integer 524 keyword 525 language | naturalLanguage 526 mimetype | mimeMediaType 527 name | nameWithLanguage | nameWithoutLanguage 528 no-value 529 not-settable 530 octetString 531 rangeOfInteger 532 resolution 533 text | textWithLanguage | textWithoutLanguage 534 unknown 535 unsupported 536 uri 537 uriScheme 538</pre> 539<h3><a name="VARIABLES">Variables</a></h3> 540The 541<b>ipptool</b>(8) 542program maintains a list of variables that can be used in any literal string or attribute value by specifying "<i>$variable-name</i>". Aside from variables defined using the <i>-d</i> option or <b>DEFINE</b> directive, the following pre-defined variables are available: 543<dl class="man"> 544<dt><b>$$</b> 545<dd style="margin-left: 5.0em">Inserts a single "$" character. 546<dt><b>$ENV[</b><i>name</i><b>]</b> 547<dd style="margin-left: 5.0em">Inserts the value of the named environment variable, or an empty string if the environment variable is not defined. 548<dt><b>$date-current</b> 549<dd style="margin-left: 5.0em">Inserts the current date and time using the ISO-8601 format ("yyyy-mm-ddThh:mm:ssZ"). 550<dt><b>$date-start</b> 551<dd style="margin-left: 5.0em">Inserts the starting date and time using the ISO-8601 format ("yyyy-mm-ddThh:mm:ssZ"). 552<dt><b>$filename</b> 553<dd style="margin-left: 5.0em">Inserts the filename provided to 554<b>ipptool</b>(8) 555with the <i>-f</i> option. 556<dt><b>$filetype</b> 557<dd style="margin-left: 5.0em">Inserts the MIME media type for the filename provided to 558<b>ipptool</b>(8) 559with the <i>-f</i> option. 560<dt><b>$hostname</b> 561<dd style="margin-left: 5.0em">Inserts the hostname from the URI provided to 562<b>ipptool</b>(8). 563<dt><b>$job-id</b> 564<dd style="margin-left: 5.0em">Inserts the last "job-id" attribute value returned in a test response or 0 if no "job-id" attribute has been seen. 565<dt><b>$job-uri</b> 566<dd style="margin-left: 5.0em">Inserts the last "job-uri" attribute value returned in a test response or an empty string if no "job-uri" attribute has been seen. 567<dt><b>$notify-subscription-id</b> 568<dd style="margin-left: 5.0em">Inserts the last "notify-subscription-id" attribute value returned in a test response or 0 if no "notify-subscription-id" attribute has been seen. 569<dt><b>$port</b> 570<dd style="margin-left: 5.0em">Inserts the port number from the URI provided to 571<b>ipptool</b>(8). 572<dt><b>$resource</b> 573<dd style="margin-left: 5.0em">Inserts the resource path from the URI provided to 574<b>ipptool</b>(8). 575<dt><b>$scheme</b> 576<dd style="margin-left: 5.0em">Inserts the scheme from the URI provided to 577<b>ipptool</b>(8). 578<dt><b>$uri</b> 579<dd style="margin-left: 5.0em">Inserts the URI provided to 580<b>ipptool</b>(8). 581<dt><b>$uriuser</b> 582<dd style="margin-left: 5.0em">Inserts the username from the URI provided to 583<b>ipptool</b>(8), 584if any. 585<dt><b>$user</b> 586<dd style="margin-left: 5.0em">Inserts the current user's login name. 587</dl> 588<h2 class="title"><a name="SEE_ALSO">See Also</a></h2> 589<a href="man-ipptool.html?TOPIC=Man+Pages"><b>ipptool</b>(1),</a> 590IANA IPP Registry (<a href="https://www.iana.org/assignments/ipp-registrations">https://www.iana.org/assignments/ipp-registrations</a>), 591PWG Internet Printing Protocol Workgroup (<a href="https://www.pwg.org/ipp">https://www.pwg.org/ipp</a>), 592RFC 8011 (<a href="https://datatracker.ietf.org/doc/html/rfc8011">https://datatracker.ietf.org/doc/html/rfc8011</a>) 593<h2 class="title"><a name="COPYRIGHT">Copyright</a></h2> 594Copyright © 2020-2024 by OpenPrinting. 595 596</body> 597</html> 598