• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 &lt;</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>&lt;</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>&lt;</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 &lt;</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 "&lt;" 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 &lt;</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 "&lt;" 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 &copy; 2020-2024 by OpenPrinting.
595
596</body>
597</html>
598