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