• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML>
2<html>
3<!-- SECTION: Specifications -->
4<head>
5	<title>CUPS Implementation of IPP</title>
6	<meta name='keywords' content='Programming, Internet Printing Protocol'>
7	<LINK REL="STYLESHEET" TYPE="text/css" HREF="../cups-printable.css">
8</head>
9<body>
10<!--
11  IPP specification for CUPS.
12
13  Copyright © 2020-2024 by OpenPrinting.
14  Copyright © 2007-2016 by Apple Inc.
15  Copyright © 1997-2007 by Easy Software Products.
16
17  Licensed under Apache License v2.0.  See the file "LICENSE" for more
18  information.
19-->
20
21<H1 CLASS="title">CUPS Implementation of IPP</H1>
22
23<h2 class='title'><a name='INTRODUCTION'>Introduction</a></h2>
24
25<p>CUPS implements <a href="http://ftp.pwg.org/pub/pwg/standards/std-ipp20-20151030-5100.12.pdf">IPP/2.1</a> and the operations and attributes defined in the following specifications:</p>
26
27<ul>
28
29	<li><a href="http://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext10-20101030-5100.11.pdf">PWG 5100.11: IPP Job and Printer Extensions - Set 2 (JPS2)</a> (all operations plus the "job-creation-attributes-supported", "job-ids", "job-password", "job-password-encryption", "media-col-database", and "which-jobs" attributes)</li>
30
31	<li><a href="http://ftp.pwg.org/pub/pwg/candidates/cs-ippjobprinterext3v10-20120727-5100.13.pdf">PWG 5100.13: IPP Job and Printer Extensions - Set 3 (JPS3)</a> (all operations/attributes required for IPP Everywhere except "printer-geo-location" and "printer-icc-profiles")</li>
32
33	<li><a href="http://ftp.pwg.org/pub/pwg/candidates/cs-ippeve10-20130128-5100.14.pdf">PWG 5100.14: IPP Everywhere</a> (conforming to the Client and most of the Printer requirements)</li>
34
35	<li><a href="http://ftp.pwg.org/pub/pwg/candidates/cs-ippfaxout10-20140618-5100.15.pdf">PWG 5100.15: IPP FaxOut Service</a> (for facsimile queues)</li>
36
37	<li><a href="http://ftp.pwg.org/pub/pwg/candidates/cs-ipptrans10-20131108-5100.16.pdf">PWG 5100.16: IPP Transaction-Based Printing Extensions</a></li>
38
39	<li><a href="http://tools.ietf.org/html/rfc3995">RFC 3995: IPP: Event Notifications and Subscriptions</a></li>
40
41	<li><a href="http://tools.ietf.org/html/rfc3996">RFC 3996: IPP: The 'ippget' Delivery Method for Event Notifications</li>
42
43	<li><a href="http://tools.ietf.org/html/rfc3998">RFC 3998: IPP: Job and Printer Administrative Operations</a> (Disable-Printer, Enable-Printer, Hold-New-Jobs, and Release-Held-New-Jobs operations)</li>
44
45	<li><a href="http://tools.ietf.org/html/rfc7472">RFC 7472: IPP over HTTPS Transport Binding and 'ipps' URI Scheme</a></li>
46
47</ul>
48
49<p>CUPS also provides 17 new operations and many new attributes to support multiple IPP printers and printer classes on a single host.</p>
50
51<h3 class='title'><a name='IPP_URIS'>IPP URIs</a></h3>
52
53<p>CUPS supports the "http", "https", "ipp", and "ipps" schemes. The following resource names are used:</p>
54
55<dl>
56
57	<dt><tt>scheme://hostname:port/</tt></dt>
58
59	<dd>Can be used for all "get" operations and for server subscriptions.</dd>
60
61	<dt><tt>scheme://hostname:port/admin/</tt></dt>
62
63	<dd>Used for all administrative operations.</dd>
64
65	<dt><tt>scheme://hostname:port/classes/name</tt></dt>
66
67	<dd>Specifies a printer class.</dd>
68
69	<dt><tt>scheme://hostname:port/jobs/id</tt></dt>
70
71	<dd>Specifies a job.</dd>
72
73	<dt><tt>scheme://hostname:port/printers/name</tt></dt>
74
75	<dd>Specifies a printer.</dd>
76
77</dl>
78
79<p>So a typical printer URI would be "ipp://foo.example.com/printers/LaserJet". In addition, the CUPS scheduler also supports (when enabled) normal browser access via "http://foo.example.com:port/" and "https://foo.example.com:port/".</p>
80
81<h3 class='title'><a name='IPP_OPERATIONS'>CUPS IPP Operations</a></h3>
82
83<p>CUPS provides 17 vendor extension operations in addition to most of the standard IPP and registered extension operations:</p>
84
85<div class='table'><table align='center' border='1' width='80%'
86summary='Supported Operations'>
87<thead>
88<tr>
89	<TH VALIGN="TOP">Operation Name</th>
90	<TH VALIGN="TOP">CUPS</th>
91	<TH VALIGN="TOP">Code</th>
92	<TH VALIGN="TOP">Brief Description</th>
93</tr>
94</thead>
95<tbody>
96<tr>
97	<td>Print-Job</td>
98	<td>1.0</td>
99	<td>0x0002</td>
100	<td>Print a file.</td>
101</tr>
102<tr>
103	<td>Validate-Job</td>
104	<td>1.0</td>
105	<td>0x0004</td>
106	<td>Validate job attributes.</td>
107</tr>
108<tr>
109	<td>Create-Job</td>
110	<td>1.1</td>
111	<td>0x0005</td>
112	<td>Create a print job.</td>
113</tr>
114<tr>
115	<td>Send-Document</td>
116	<td>1.1</td>
117	<td>0x0006</td>
118	<td>Send a file for a print job.</td>
119</tr>
120<tr>
121	<td><a href='#CANCEL_JOB'>Cancel-Job</a></td>
122	<td>1.0</td>
123	<td>0x0008</td>
124	<td>Cancel a print job.</td>
125</tr>
126<tr>
127	<td>Get-Job-Attributes</td>
128	<td>1.0</td>
129	<td>0x0009</td>
130	<td>Get job attributes.</td>
131</tr>
132<tr>
133	<td>Get-Jobs</td>
134	<td>1.0</td>
135	<td>0x000A</td>
136	<td>Get all jobs.</td>
137</tr>
138<tr>
139	<td>Get-Printer-Attributes</td>
140	<td>1.0</td>
141	<td>0x000B</td>
142	<td>Get printer attributes.</td>
143</tr>
144<tr>
145	<td>Hold-Job</td>
146	<td>1.1</td>
147	<td>0x000C</td>
148	<td>Hold a job for printing.</td>
149</tr>
150<tr>
151	<td>Release-Job</td>
152	<td>1.1</td>
153	<td>0x000D</td>
154	<td>Release a job for printing.</td>
155</tr>
156<tr>
157	<td>Restart-Job</td>
158	<td>1.1</td>
159	<td>0x000E</td>
160	<td>Restarts a print job.</td>
161</tr>
162<tr>
163	<td>Pause-Printer</td>
164	<td>1.0</td>
165	<td>0x0010</td>
166	<td>Pause printing on a printer.</td>
167</tr>
168<tr>
169	<td>Resume-Printer</td>
170	<td>1.0</td>
171	<td>0x0011</td>
172	<td>Resume printing on a printer.</td>
173</tr>
174<tr>
175	<td><a href='#PURGE_JOBS'>Purge-Jobs</a></td>
176	<td>1.0</td>
177	<td>0x0012</td>
178	<td>Purge all jobs.</td>
179</tr>
180<tr>
181	<td>Set-Printer-Attributes</td>
182	<td>1.4</td>
183	<td>0x0013</td>
184	<td>Set attributes for a printer.</td>
185</tr>
186<tr>
187	<td>Set-Job-Attributes</td>
188	<td>1.1</td>
189	<td>0x0014</td>
190	<td>Set attributes for a pending or held job.</td>
191</tr>
192<tr>
193	<td><a href='#CREATE_PRINTER_SUBSCRIPTION'>Create-Printer-Subscription</a></td>
194	<td>1.2</td>
195	<td>0x0016</td>
196	<td>Creates a subscription associated with a printer or the server.</td>
197</tr>
198<tr>
199	<td>Create-Job-Subscription</td>
200	<td>1.2</td>
201	<td>0x0017</td>
202	<td>Creates a subscription associated with a job.</td>
203</tr>
204<tr>
205	<td>Get-Subscription-Attributes</td>
206	<td>1.2</td>
207	<td>0x0018</td>
208	<td>Gets the attributes for a subscription.</td>
209</tr>
210<tr>
211	<td>Get-Subscriptions</td>
212	<td>1.2</td>
213	<td>0x0019</td>
214	<td>Gets the attributes for zero or more subscriptions.</td>
215</tr>
216<tr>
217	<td>Renew-Subscription</td>
218	<td>1.2</td>
219	<td>0x001A</td>
220	<td>Renews a subscription.</td>
221</tr>
222<tr>
223	<td>Cancel-Subscription</td>
224	<td>1.2</td>
225	<td>0x001B</td>
226	<td>Cancels a subscription.</td>
227</tr>
228<tr>
229	<td>Get-Notifications</td>
230	<td>1.2</td>
231	<td>0x001C</td>
232	<td>Get notification events for <tt>ippget</tt> subscriptions.</td>
233</tr>
234<tr>
235	<td>Enable-Printer</td>
236	<td>1.2</td>
237	<td>0x0022</td>
238	<td>Accepts jobs on a printer.</td>
239</tr>
240<tr>
241	<td>Disable-Printer</td>
242	<td>1.2</td>
243	<td>0x0023</td>
244	<td>Rejects jobs on a printer.</td>
245</tr>
246<tr>
247	<td>Hold-New-Jobs</td>
248	<td>1.4</td>
249	<td>0x0025</td>
250	<td>Hold new jobs by default.</td>
251</tr>
252<tr>
253	<td>Release-Held-New-Jobs</td>
254	<td>1.4</td>
255	<td>0x0026</td>
256	<td>Releases all jobs that were previously held.</td>
257</tr>
258<tr>
259	<td>Cancel-Jobs</td>
260	<td>1.5</td>
261	<td>0x0038</td>
262	<td>Cancel all jobs (administrator).</td>
263</tr>
264<tr>
265	<td>Cancel-My-Jobs</td>
266	<td>1.5</td>
267	<td>0x0039</td>
268	<td>Cancel all jobs (user).</td>
269</tr>
270<tr>
271	<td>Close-Job</td>
272	<td>1.5</td>
273	<td>0x003b</td>
274	<td>Close a created job.</td>
275</tr>
276<tr>
277	<td><a href='#CUPS_GET_DEFAULT'>CUPS-Get-Default</a></td>
278	<td>1.0</td>
279	<td>0x4001</td>
280	<td>Get the default destination.</td>
281</tr>
282<tr>
283	<td><a href='#CUPS_GET_PRINTERS'>CUPS-Get-Printers</a></td>
284	<td>1.0</td>
285	<td>0x4002</td>
286	<td>Get all of the available printers.</td>
287</tr>
288<tr>
289	<td><a href='#CUPS_ADD_MODIFY_PRINTER'>CUPS-Add-Modify-Printer</a></td>
290	<td>1.0</td>
291	<td>0x4003</td>
292	<td>Add or modify a printer.</td>
293</tr>
294<tr>
295	<td><a href='#CUPS_DELETE_PRINTER'>CUPS-Delete-Printer</a></td>
296	<td>1.0</td>
297	<td>0x4004</td>
298	<td>Delete a printer.</td>
299</tr>
300<tr>
301	<td><a href='#CUPS_GET_CLASSES'>CUPS-Get-Classes</a></td>
302	<td>1.0</td>
303	<td>0x4005</td>
304	<td>Get all of the available printer classes.</td>
305</tr>
306<tr>
307	<td><a href='#CUPS_ADD_MODIFY_CLASS'>CUPS-Add-Modify-Class</a></td>
308	<td>1.0</td>
309	<td>0x4006</td>
310	<td>Add or modify a printer class.</td>
311</tr>
312<tr>
313	<td><a href='#CUPS_DELETE_CLASS'>CUPS-Delete-Class</a></td>
314	<td>1.0</td>
315	<td>0x4007</td>
316	<td>Delete a printer class.</td>
317</tr>
318<tr>
319	<td>CUPS-Accept-Jobs</td>
320	<td>1.0</td>
321	<td>0x4008</td>
322	<td>Accept jobs on a printer or printer class. This operation is deprecated - use the Enable-Printer operation instead.</td>
323</tr>
324<tr>
325	<td>CUPS-Reject-Jobs</td>
326	<td>1.0</td>
327	<td>0x4009</td>
328	<td>Reject jobs on a printer or printer class. This operation is deprecated - use the Disable-Printer operation instead.</td>
329</tr>
330<tr>
331	<td><a href='#CUPS_SET_DEFAULT'>CUPS-Set-Default</a></td>
332	<td>1.0</td>
333	<td>0x400A</td>
334	<td>Set the default destination.</td>
335</tr>
336<tr>
337	<td><a href='#CUPS_GET_DEVICES'>CUPS-Get-Devices</a></td>
338	<td>1.1</td>
339	<td>0x400B</td>
340	<td>Get all of the available devices.</td>
341</tr>
342<tr>
343	<td><a href='#CUPS_GET_PPDS'>CUPS-Get-PPDs</a></td>
344	<td>1.1</td>
345	<td>0x400C</td>
346	<td>Get all of the available PPDs.</td>
347</tr>
348<tr>
349	<td><a href='#CUPS_MOVE_JOB'>CUPS-Move-Job</a></td>
350	<td>1.1</td>
351	<td>0x400D</td>
352	<td>Move a job to a different printer.</td>
353</tr>
354<tr>
355	<td><a href='#CUPS_AUTHENTICATE_JOB'>CUPS-Authenticate-Job</a></td>
356	<td>1.2</td>
357	<td>0x400E</td>
358	<td>Authenticate a job for printing.</td>
359</tr>
360<tr>
361	<td><a href='#CUPS_GET_PPD'>CUPS-Get-PPD</a></td>
362	<td>1.3</td>
363	<td>0x400F</td>
364	<td>Get a PPD file.</td>
365</tr>
366<tr>
367	<td><a href='#CUPS_GET_DOCUMENT'>CUPS-Get-Document</a></td>
368	<td>1.4</td>
369	<td>0x4027</td>
370	<td>Get a document file from a job.</td>
371</tr>
372<tr>
373	<td><a href='#CUPS_CREATE_LOCAL_PRINTER'>CUPS-Create-Local-Printer</a></td>
374	<td>2.2</td>
375	<td>0x4028</td>
376	<td>Creates a local (temporary) print queue pointing to a remote IPP Everywhere printer.</td>
377</tr>
378</tbody>
379</table></div>
380
381<h2 class='title'><a name='OPERATIONS'>Operations</a></h2>
382
383<p>The following sections describe the operations supported by CUPS. In the interest of brevity, operations which use only the standard IPP attributes are not described.
384
385
386<h3 class='title'><a name='CANCEL_JOB'>Cancel Job Operation (Extension)</a></h3>
387
388<p>The Cancel-Job operation (0x0008) cancels the specified job. CUPS 1.4 added support for the <tt>purge-job (boolean)</tt> operation attribute that (if 'true') removes all history and document files for the job as well.</p>
389
390
391<h3 class='title'><a name='PURGE_JOBS'>Purge-Jobs Operation</a></h3>
392
393<p>The Purge-Jobs operation (0x0012) cancels all of the jobs on a given destination and optionally removes all history and document files for the jobs as well. CUPS 1.2 added support for the <tt>purge-job (boolean)</tt> operation attribute that (if 'false') retains all history and document files for the canceled jobs.</p>
394
395<blockquote><b>Note:</b>
396	<p>The Cancel-Jobs and Cancel-My-Jobs operations should be used instead of Purge-Jobs.</p>
397</blockquote>
398
399
400
401<h3 class='title'><span class='info'>CUPS 1.2/macOS 10.5</span><a
402name='CREATE_PRINTER_SUBSCRIPTION'>Create-Printer-Subscription</a></h3>
403
404<p>The Create-Printer-Subscription operation (0x0016) creates a subscription for printer or server event notifications. CUPS provides several additional events in addition to the standard events in the IPP notifications specification. CUPS adds the following <tt>notify-events (1setOf type2 keyword)</tt> values:<p>
405
406<ul>
407
408	<li><tt>printer-added</tt> - Get notified whenever a printer or class is added</li>
409
410	<li><tt>printer-deleted</tt> - Get notified whenever a printer or class is deleted</li>
411
412	<li><tt>printer-modified</tt> - Get notified whenever a printer or class is modified</li>
413
414	<li><tt>server-audit</tt> - Get notified when a security condition occurs</li>
415
416	<li><tt>server-restarted</tt> - Get notified when the server is restarted</li>
417
418	<li><tt>server-started</tt> - Get notified when the server is started</li>
419
420	<li><tt>server-stopped</tt> - Get notified when the server is stopped</li>
421
422</ul>
423
424
425<h3 class='title'><a name='CUPS_GET_DEFAULT'>CUPS-Get-Default Operation</a></h3>
426
427<p>The CUPS-Get-Default operation (0x4001) returns the default printer URI and attributes.
428
429<h4>CUPS-Get-Default Request</h4>
430
431<p>The following groups of attributes are supplied as part of the CUPS-Get-Default request:
432
433<p>Group 1: Operation Attributes
434
435<dl>
436
437	<dt>Natural Language and Character Set:
438
439	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
440
441	<dt>"requested-attributes" (1setOf keyword):
442
443	<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is interested. If the client omits this attribute, the server responds as if this attribute had been supplied with a value of 'all'.
444
445</dl>
446
447<h4>CUPS-Get-Default Response</h4>
448
449<p>The following groups of attributes are send as part of the CUPS-Get-Default Response:
450
451<p>Group 1: Operation Attributes
452
453<dl>
454
455	<dt>Natural Language and Character Set:
456
457	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
458
459	<dt>Status Message:
460
461	<dd>The standard response status message.
462
463</dl>
464
465<p>Group 2: Printer Object Attributes
466
467<dl>
468
469	<dt>The set of requested attributes and their current values.
470
471</dl>
472
473<h3 class='title'><a name='CUPS_GET_PRINTERS'>CUPS-Get-Printers Operation</a></h3>
474
475<p>The CUPS-Get-Printers operation (0x4002) returns the printer attributes for every printer known to the system. This may include printers that are not served directly by the server.
476
477<h4>CUPS-Get-Printers Request</h4>
478
479<p>The following groups of attributes are supplied as part of the CUPS-Get-Printers request:
480
481<p>Group 1: Operation Attributes
482
483<dl>
484
485	<dt>Natural Language and Character Set:
486
487	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
488
489	<dt>"first-printer-name" (name(127)): <span class='info'>CUPS 1.2/macOS 10.5</span>
490
491	<dd>The client OPTIONALLY supplies this attribute to select the first printer that is returned.
492
493	<dt>"limit" (integer (1:MAX)):
494
495	<dd>The client OPTIONALLY supplies this attribute limiting the number of printers that are returned.
496
497	<dt>"printer-id" (integer(0:65535)): <span class='info'>CUPS 2.2</span>
498
499	<dd>The client OPTIONALLY supplies this attribute to select which printer is returned.
500
501	<dt>"printer-location" (text(127)): <span class='info'>CUPS 1.1.7</span>
502
503	<dd>The client OPTIONALLY supplies this attribute to select which printers are returned.
504
505	<dt>"printer-type" (type2 enum): <span class='info'>CUPS 1.1.7</span>
506
507	<dd>The client OPTIONALLY supplies a printer type enumeration to select which printers are returned.
508
509	<dt>"printer-type-mask" (type2 enum): <span class='info'>CUPS 1.1.7</span>
510
511	<dd>The client OPTIONALLY supplies a printer type mask enumeration to select which bits are used in the "printer-type" attribute.
512
513	<dt>"requested-attributes" (1setOf keyword):
514
515	<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is interested. If the client omits this attribute, the server responds as if this attribute had been supplied with a value of 'all'.
516
517	<dt>"requested-user-name" (name(127)): <span class='info'>CUPS 1.2/macOS 10.5</span>
518
519	<dd>The client OPTIONALLY supplies a user name that is used to filter the returned printers.
520
521</dl>
522
523<h4>CUPS-Get-Printers Response</h4>
524
525<p>The following groups of attributes are send as part of the CUPS-Get-Printers Response:
526
527<p>Group 1: Operation Attributes
528
529<dl>
530
531	<dt>Natural Language and Character Set:
532
533	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
534
535	<dt>Status Message:
536
537	<dd>The standard response status message.
538
539</dl>
540
541<p>Group 2: Printer Object Attributes
542
543<dl>
544
545	<dt>The set of requested attributes and their current values for each printer.
546
547</dl>
548
549
550<h3 class='title'><a name='CUPS_ADD_MODIFY_PRINTER'>CUPS-Add-Modify-Printer Operation</a></h3>
551
552<p>The CUPS-Add-Modify-Printer operation (0x4003) adds a new printer or modifies an existing printer on the system.
553
554<h4>CUPS-Add-Modify-Printer Request</h4>
555
556<p>The following groups of attributes are supplied as part of the CUPS-Add-Modify-Printer request:
557
558<p>Group 1: Operation Attributes
559
560<dl>
561
562	<dt>Natural Language and Character Set:
563
564	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
565
566	<dt>"printer-uri" (uri):
567
568	<dd>The client MUST supply a URI for the specified printer.
569
570</dl>
571
572<p>Group 2: Printer Object Attributes
573
574<dl>
575
576	<dt>"auth-info-required" (1setOf type2 keyword): <span class='info'>CUPS 1.3/macOS 10.5</span>
577
578	<dd>The client OPTIONALLY supplies one or more authentication keywords that are required to communicate with the printer/remote queue.
579
580	<dt>"job-sheets-default" (1setOf name(127)): <span class='info'>CUPS 1.1.7</span>
581
582	<dd>The client OPTIONALLY supplies one or two banner page names that are printed before and after files in a job. The reserved name "none" is used to specify that no banner page should be printed.
583
584	<dt>"device-uri" (uri):
585
586	<dd>The client OPTIONALLY supplies a device URI for the specified printer.
587
588	<dt>"port-monitor" (name(127)):
589
590	<dd>The client OPTIONALLY supplies a port monitor name for the specified printer.
591
592	<dt>"ppd-name" (name(255)):
593
594	<dd>The client OPTIONALLY supplies a PPD name for the specified printer.
595
596	<dt>"printer-is-accepting-jobs" (boolean):
597
598	<dd>The client OPTIONALLY supplies this boolean attribute indicating whether the printer object should accept new jobs.
599
600	<dt>"printer-info" (text(127)):
601
602	<dd>The client OPTIONALLY supplies this attribute indicating the printer information string.
603
604	<dt>"printer-location" (text(127)):
605
606	<dd>The client OPTIONALLY supplies this attribute indicating a textual location of the printer.
607
608	<dt>"printer-more-info" (uri):
609
610	<dd>The client OPTIONALLY supplies this attribute indicating a URI for additional printer information.
611
612	<dt>"printer-state" (type2 enum):
613
614	<dd>The client OPTIONALLY supplies this attribute indicating the initial/current state of the printer. Only the 'idle(3)' and 'stopped(5)' enumerations are recognized.
615
616	<dt>"printer-state-message" (text(MAX)):
617
618	<dd>The client OPTIONALLY supplies this attribute indicating a textual reason for the current printer state.
619
620	<dt>"requesting-user-name-allowed" (1setof name(127) | delete)
621	<br><i>OR</i>
622	<br>"requesting-user-name-denied" (1setof name(127) | delete):
623
624	<dd>The client OPTIONALLY supplies one of these attributes to specify an access control list for incoming print jobs. To allow all users access to a printer, use the delete tag for the attribute value.
625
626</dl>
627
628<p>The CUPS-Add-Modify-Printer request can optionally be followed by a PPD file to be used for the printer. The "ppd-name" attribute overrides any file that is attached to the end of the request with a local CUPS PPD file.
629
630<h4>CUPS-Add-Modify-Printer Response</h4>
631
632<p>The following groups of attributes are send as part of the
633CUPS-Add-Modify-Printer Response:
634
635<p>Group 1: Operation Attributes
636
637<dl>
638
639	<dt>Natural Language and Character Set:
640
641	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
642
643	<dt>Status Message:
644
645	<dd>The standard response status message.
646
647</dl>
648
649
650<h3 class='title'><a name='CUPS_DELETE_PRINTER'>CUPS-Delete-Printer Operation</a></h3>
651
652<p>The CUPS-Delete-Printer operation (0x4004) removes an existing printer from the system.
653
654<h4>CUPS-Delete-Printer Request</h4>
655
656<p>The following groups of attributes are supplied as part of the CUPS-Delete-Printer request:
657
658<p>Group 1: Operation Attributes
659
660<dl>
661
662	<dt>Natural Language and Character Set:
663
664	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
665
666	<dt>"printer-uri" (uri):
667
668	<dd>The client MUST supply a URI for the specified printer.
669
670</dl>
671
672<h4>CUPS-Delete-Printer Response</h4>
673
674<p>The following groups of attributes are send as part of the CUPS-Delete-Printer Response:
675
676<p>Group 1: Operation Attributes
677
678<dl>
679
680	<dt>Natural Language and Character Set:
681
682	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
683
684	<dt>Status Message:
685
686	<dd>The standard response status message.
687
688</dl>
689
690
691<h3 class='title'><a name='CUPS_GET_CLASSES'>CUPS-Get-Classes Operation</a></h3>
692
693<p>The CUPS-Get-Classes operation (0x4005) returns the printer attributes for every printer class known to the system. This may include printer classes that are not served directly by the server.
694
695<h4>CUPS-Get-Classes Request</h4>
696
697<p>The following groups of attributes are supplied as part of the CUPS-Get-Classes request:
698
699<p>Group 1: Operation Attributes
700
701<dl>
702
703	<dt>Natural Language and Character Set:
704
705	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
706
707	<dt>"first-printer-name" (name(127)): <span class='info'>CUPS 1.2/macOS 10.5</span>
708
709	<dd>The client OPTIONALLY supplies this attribute to select the first printer that is returned.
710
711	<dt>"limit" (integer (1:MAX)):
712
713	<dd>The client OPTIONALLY supplies this attribute limiting the number of printer classes that are returned.
714
715	<dt>"printer-location" (text(127)): <span class='info'>CUPS 1.1.7</span>
716
717	<dd>The client OPTIONALLY supplies this attribute to select which printer classes are returned.
718
719	<dt>"printer-type" (type2 enum): <span class='info'>CUPS 1.1.7</span>
720
721	<dd>The client OPTIONALLY supplies a printer type enumeration to select which printer classes are returned.
722
723	<dt>"printer-type-mask" (type2 enum): <span class='info'>CUPS 1.1.7</span>
724
725	<dd>The client OPTIONALLY supplies a printer type mask enumeration to select which bits are used in the "printer-type" attribute.
726
727	<dt>"requested-attributes" (1setOf keyword):
728
729	<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is interested. If the client omits this attribute, the server responds as if this attribute had been supplied with a value of 'all'.
730
731	<dt>"requested-user-name" (name(127)): <span class='info'>CUPS 1.2/macOS 10.5</span>
732
733	<dd>The client OPTIONALLY supplies a user name that is used to filter the returned printers.
734
735</dl>
736
737<h4>CUPS-Get-Classes Response</h4>
738
739<p>The following groups of attributes are send as part of the CUPS-Get-Classes Response:
740
741<p>Group 1: Operation Attributes
742
743<dl>
744
745	<dt>Natural Language and Character Set:
746
747	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
748
749	<dt>Status Message:
750
751	<dd>The standard response status message.
752
753</dl>
754
755<p>Group 2: Printer Class Object Attributes
756
757<dl>
758
759	<dt>The set of requested attributes and their current values for each printer class.
760
761</dl>
762
763<h3 class='title'><a name='CUPS_ADD_MODIFY_CLASS'>CUPS-Add-Modify-Class Operation</a></h3>
764
765<p>The CUPS-Add-Modify-Class operation (0x4006) adds a new printer class or modifies and existing printer class on the system.
766
767<h4>CUPS-Add-Modify-Class Request</h4>
768
769<p>The following groups of attributes are supplied as part of the CUPS-Add-Modify-Class request:
770
771<p>Group 1: Operation Attributes
772
773<dl>
774
775	<dt>Natural Language and Character Set:
776
777	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
778
779	<dt>"printer-uri" (uri):
780
781	<dd>The client MUST supply a URI for the specified printer class.
782
783</dl>
784
785<p>Group 2: Printer Object Attributes
786
787<dl>
788
789	<dt>"auth-info-required" (1setOf type2 keyword): <span class='info'>CUPS 1.3/macOS 10.5</span>
790
791	<dd>The client OPTIONALLY supplies one or more authentication keywords that are required to communicate with the printer/remote queue.
792
793	<dt>"member-uris" (1setof uri):
794
795	<dd>The client OPTIONALLY supplies the "member-uris" set specifying the printers and printer classes that are part of the class.
796
797	<dt>"printer-is-accepting-jobs" (boolean):
798
799	<dd>The client OPTIONALLY supplies this boolean attribute indicating whether the class object should accept new jobs.
800
801	<dt>"printer-info" (text(127)):
802
803	<dd>The client OPTIONALLY supplies this attribute indicating the printer information string.
804
805	<dt>"printer-location" (text(127)):
806
807	<dd>The client OPTIONALLY supplies this attribute indicating a textual location of the class.
808
809	<dt>"printer-more-info" (uri):
810
811	<dd>The client OPTIONALLY supplies this attribute indicating a URI for additional class information.
812
813	<dt>"printer-state" (type2 enum):
814
815	<dd>The client OPTIONALLY supplies this attribute indicating the initial/current state of the class. Only the 'idle(3)' and 'stopped(5)' enumerations are recognized.
816
817	<dt>"printer-state-message" (text(MAX)):
818
819	<dd>The client OPTIONALLY supplies this attribute indicating a textual reason for the current class state.
820
821	<dt>"requesting-user-name-allowed" (1setof name(127))
822	<br><i>OR</i>
823	<br>"requesting-user-name-denied" (1setof name(127)):
824
825	<dd>The client OPTIONALLY supplies one of these attributes to specify an access control list for incoming print jobs. To allow all users access to a class, use the delete tag for the attribute value.
826
827</dl>
828
829<h4>CUPS-Add-Modify-Class Response</h4>
830
831<p>The following groups of attributes are send as part of the CUPS-Add-Modify-Class Response:
832
833<p>Group 1: Operation Attributes
834
835<dl>
836
837	<dt>Natural Language and Character Set:
838
839	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
840
841	<dt>Status Message:
842
843	<dd>The standard response status message.
844
845</dl>
846
847
848<h3 class='title'><a name='CUPS_DELETE_CLASS'>CUPS-Delete-Class Operation</a></h3>
849
850<p>The CUPS-Delete-Class operation (0x4007) removes an existing printer class from the system.
851
852<h4>CUPS-Delete-Class Request</h4>
853
854<p>The following groups of attributes are supplied as part of the CUPS-Delete-Class request:
855
856<p>Group 1: Operation Attributes
857
858<dl>
859
860	<dt>Natural Language and Character Set:
861
862	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
863
864	<dt>"printer-uri" (uri):
865
866	<dd>The client MUST supply a URI for the specified printer class.
867
868</dl>
869
870<h4>CUPS-Delete-Class Response</h4>
871
872<p>The following groups of attributes are send as part of the CUPS-Delete-Class Response:
873
874<p>Group 1: Operation Attributes
875
876<dl>
877
878	<dt>Natural Language and Character Set:
879
880	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
881
882	<dt>Status Message:
883
884	<dd>The standard response status message.
885
886</dl>
887
888
889<h3 class='title'><a name='CUPS_SET_DEFAULT'>CUPS-Set-Default Operation</a></h3>
890
891<p>The CUPS-Set-Default operation (0x400A) sets the default printer destination for all clients when a resource name of "/printers" is specified.
892
893<h4>CUPS-Set-Default Request</h4>
894
895<p>The following groups of attributes are supplied as part of the CUPS-Set-Default request:
896
897<p>Group 1: Operation Attributes
898
899<dl>
900
901	<dt>Natural Language and Character Set:
902
903	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
904
905	<dt>"printer-uri" (uri):
906
907	<dd>The client MUST supply a URI for the specified printer or printer class.
908
909</dl>
910
911<h4>CUPS-Set-Default Response</h4>
912
913<p>The following groups of attributes are send as part of the CUPS-Set-Default Response:
914
915<p>Group 1: Operation Attributes
916
917<dl>
918
919	<dt>Natural Language and Character Set:
920
921	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
922
923	<dt>Status Message:
924
925	<dd>The standard response status message.
926
927</dl>
928
929
930<h3 class='title'><span class='info'>Deprecated</span><a name='CUPS_GET_DEVICES'>CUPS-Get-Devices Operation</a></h3>
931
932<p>The CUPS-Get-Devices operation (0x400B) returns all of the supported device-uri's for the server.</p>
933
934<h4>CUPS-Get-Devices Request</h4>
935
936<p>The following groups of attributes are supplied as part of the CUPS-Get-Devices request:
937
938<p>Group 1: Operation Attributes
939
940<dl>
941
942	<dt>Natural Language and Character Set:
943
944	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
945
946	<dt>"device-class" (type1 keyword):
947
948	<dd>The client OPTIONALLY supplies a device class keyword to select which devices are returned.
949
950	<dt>"exclude-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 10.6</span>
951
952	<dd>The client OPTIONALLY supplies a set of scheme names that the requestor does not want to discover. If the client omits this attribute, the server responds with devices of all schemes specified by the "include-schemes" attribute.
953
954	<dt>"include-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 10.6</span>
955
956	<dd>The client OPTIONALLY supplies a set of scheme names that the requestor wants to discover. If the client omits this attribute, the server responds with devices of all schemes except those specified by the "exclude-schemes" attribute.
957
958	<dt>"limit" (integer (1:MAX)):
959
960	<dd>The client OPTIONALLY supplies this attribute limiting the number of devices that are returned.
961
962	<dt>"requested-attributes" (1setOf keyword):
963
964	<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is interested. If the client omits this attribute, the server responds as if this attribute had been supplied with a value of 'all'.
965
966	<dt>"timeout" (integer (1:MAX)): <span class='info'>CUPS 1.4/macOS 10.6</span>
967
968	<dd>The client OPTIONALLY supplies this attribute to limit the duration of the lookup. The default timeout is 15 seconds.
969
970</dl>
971
972<h4>CUPS-Get-Devices Response</h4>
973
974<p>The following groups of attributes are send as part of the CUPS-Get-Devices Response:
975
976<p>Group 1: Operation Attributes
977
978<dl>
979
980	<dt>Natural Language and Character Set:
981
982	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
983
984	<dt>Status Message:
985
986	<dd>The standard response status message.
987
988</dl>
989
990<p>Groups 2-N: Device Object Attributes (using printer-attributes-tag group)
991
992<dl>
993
994	<dt>The set of requested attributes and their current values for
995	each device.
996
997</dl>
998
999
1000<h3 class='title'><span class='info'>Deprecated</span><a name='CUPS_GET_PPDS'>CUPS-Get-PPDs Operation</a></h3>
1001
1002<p>The CUPS-Get-PPDs operation (0x400C) returns all of the locally available PPD files on the system.</p>
1003
1004<h4>CUPS-Get-PPDs Request</h4>
1005
1006<p>The following groups of attributes are supplied as part of the CUPS-Get-PPDs request:
1007
1008<p>Group 1: Operation Attributes
1009
1010<dl>
1011
1012	<dt>Natural Language and Character Set:
1013
1014	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
1015
1016	<dt>"exclude-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 10.6</span>
1017
1018	<dd>The client OPTIONALLY supplies a set of scheme names that the requestor does not want to list. If the client omits this attribute, the server responds with PPDs of all schemes specified by the "include-schemes" attribute.
1019
1020	<dt>"include-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 10.6</span>
1021
1022	<dd>The client OPTIONALLY supplies a set of scheme names that the requestor wants to list. If the client omits this attribute, the server responds with PPDs of all schemes except those specified by the "exclude-schemes" attribute.
1023
1024	<dt>"limit" (integer (1:MAX)):
1025
1026	<dd>The client OPTIONALLY supplies this attribute limiting the number of PPDs that are returned.
1027
1028	<dt>"ppd-make" (text(127)):
1029
1030	<dd>The client OPTIONALLY supplies a printer manufacturer to select which PPDs are returned.
1031
1032	<dt>"ppd-make-and-model" (text(127)): <span class='info'>CUPS 1.3/macOS 10.5</span>
1033
1034	<dd>The client OPTIONALLY supplies a make and model to select which PPDs are returned.
1035
1036	<dt>"ppd-model-number" (integer): <span class='info'>CUPS 1.3/macOS 10.5</span>
1037
1038	<dd>The client OPTIONALLY supplies a model number to select which PPDs are returned.
1039
1040	<dt>"ppd-natural-language" (naturalLanguage): <span class='info'>CUPS 1.3/macOS 10.5</span>
1041
1042	<dd>The client OPTIONALLY supplies a language to select which PPDs are returned.
1043
1044	<dt>"ppd-product" (text(127)): <span class='info'>CUPS 1.3/macOS 10.5</span>
1045
1046	<dd>The client OPTIONALLY supplies a PostScript product string to select which PPDs are returned.
1047
1048	<dt>"ppd-psversion" (text(127)): <span class='info'>CUPS 1.3/macOS 10.5</span>
1049
1050	<dd>The client OPTIONALLY supplies a PostScript version string to select which PPDs are returned.
1051
1052	<dt>"ppd-type" (type1 keyword): <span class='info'>CUPS 1.3/macOS 10.5</span>
1053
1054	<dd>The client OPTIONALLY supplies a driver type to select which PPDs are returned.
1055
1056	<dt>"requested-attributes" (1setOf keyword):
1057
1058	<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is interested. If the client omits this attribute, the server responds as if this attribute had been supplied with a value of 'all'. Specify "ppd-make" to get a list of manufacturers.
1059
1060</dl>
1061
1062<h4>CUPS-Get-PPDs Response</h4>
1063
1064<p>The following groups of attributes are send as part of the
1065CUPS-Get-PPDs Response:
1066
1067<p>Group 1: Operation Attributes
1068
1069<dl>
1070
1071	<dt>Natural Language and Character Set:
1072
1073	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
1074
1075	<dt>Status Message:
1076
1077	<dd>The standard response status message.
1078
1079</dl>
1080
1081<p>Groups 2-N: PPD Attributes (using printer-attributes-tag group)
1082
1083<dl>
1084
1085	<dt>The set of requested attributes and their current values for each PPD file.
1086
1087</dl>
1088
1089
1090<h3 class='title'><span class='info'>CUPS 1.1</span><a name='CUPS_MOVE_JOB'>CUPS-Move-Job Operation</a></h3>
1091
1092<p>The CUPS-Move-Job operation (0x400D) moves an active print job or all print jobs for a printer to a different printer.</p>
1093
1094<h4>CUPS-Move-Job Request</h4>
1095
1096<p>The following groups of attributes are supplied as part of the CUPS-Move-Job request:
1097
1098<p>Group 1: Operation Attributes
1099
1100<dl>
1101
1102	<dt>Natural Language and Character Set:
1103
1104	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
1105
1106	<dt>"printer-uri" (uri)
1107	<br><i>OR</i>
1108	<dt>"printer-uri" (uri) and "job-id" (integer)
1109	<br><i>OR</i>
1110	<br>"job-uri" (uri):
1111
1112	<dd>The client MUST supply a URI for the specified printer, the URI for the specified printer and a job ID number, or the job URI.
1113
1114</dl>
1115
1116<p>Group 2: Job Template Attributes
1117
1118<dl>
1119
1120	<dt>"job-printer-uri" (uri):
1121
1122	<dd>The client MUST supply a URI for a printer on the same server.
1123
1124</dl>
1125
1126<h4>CUPS-Move-Job Response</h4>
1127
1128<p>The following groups of attributes are send as part of the CUPS-Move-Job Response:
1129
1130<p>Group 1: Operation Attributes
1131
1132<dl>
1133
1134	<dt>Status Message:
1135
1136	<dd>The standard response status message.
1137
1138	<dt>Natural Language and Character Set:
1139
1140	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
1141
1142</dl>
1143
1144<h3 class='title'><span class='info'>CUPS 1.2/macOS 10.5</span><a name='CUPS_AUTHENTICATE_JOB'>CUPS-Authenticate-Job Operation</a></h3>
1145
1146<p>The CUPS-Authenticate-Job operation (0x400E) authenticates a print job for printing, releasing the job if it is held. Typically this is used when printing to a remote server. The authentication information is passed in the HTTP request; the HTTP connection is normally encrypted for this type of request.</p>
1147
1148<h4>CUPS-Authenticate-Job Request</h4>
1149
1150<p>The following groups of attributes are supplied as part of the CUPS-Authenticate-Job request:
1151
1152<p>Group 1: Operation Attributes
1153
1154<dl>
1155
1156	<dt>Natural Language and Character Set:
1157
1158	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
1159
1160	<dt>"printer-uri" (uri) and "job-id" (integer)
1161	<br><i>OR</i>
1162	<br>"job-uri" (uri):
1163
1164	<dd>The client MUST supply a URI for the specified printer and a job ID number, or the job URI.
1165
1166</dl>
1167
1168<p>Group 2: Job Attributes
1169
1170<dl>
1171
1172	<dt>"auth-info" (1setOf text(MAX)): <span class='info'>CUPS 1.3/macOS 10.5</span>
1173
1174	<dd>The client OPTIONALLY supplies one or more authentication values as specified by the "auth-info-required" attribute.
1175
1176	<dt>"job-hold-until" (keyword | name(MAX)): <span class='info'>CUPS 1.3/macOS 10.5</span>
1177
1178	<dd>The client OPTIONALLY supplies a new job-hold-until value for the job. If specified and not the "no-hold" value, the job is held instead of released for printing.
1179
1180</dl>
1181
1182<h4>CUPS-Authenticate-Job Response</h4>
1183
1184<p>The following groups of attributes are send as part of the CUPS-Authenticate-Job Response:
1185
1186<p>Group 1: Operation Attributes
1187
1188<dl>
1189
1190	<dt>Natural Language and Character Set:
1191
1192	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
1193
1194	<dt>Status Message:
1195
1196	<dd>The standard response status message.
1197
1198</dl>
1199
1200<p>Group 2: Unsupported Attributes (status=client-eror-attributes-or-values-not-supported)
1201
1202<dl>
1203
1204	<dt>auth-info-required (1setOf Type2 keyword)
1205
1206	<dd>The required authentication information.
1207
1208</dl>
1209
1210
1211<h3 class='title'><span class='info'>Deprecated</span><a name='CUPS_GET_PPD'>CUPS-Get-PPD Operation</a></h3>
1212
1213<p>The CUPS-Get-PPD operation (0x400F) gets a PPD file from the server. The PPD file can be specified using a <tt>ppd-name</tt> returned by <a href='#CUPS_GET_PPDS'><tt>CUPS-Get-PPDs</tt></a> or using the <tt>printer-uri</tt> for a queue.</p>
1214
1215<p>If the PPD file is found, <tt>successful-ok</tt> is returned with the PPD file following the response data.</p>
1216
1217<p>If the PPD file cannot be served by the local server because the <tt>printer-uri</tt> attribute points to an external printer, a <tt>cups-see-other</tt> status is returned with the correct URI to use.</p>
1218
1219<p>If the PPD file does not exist, <tt>client-error-not-found</tt> is returned.</p>
1220
1221<h4>CUPS-Get-PPD Request</h4>
1222
1223<p>The following group of attributes is supplied as part of the CUPS-Get-PPD request:
1224
1225<p>Group 1: Operation Attributes
1226
1227<dl>
1228
1229	<dt>Natural Language and Character Set:
1230
1231	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
1232
1233	<dt>"printer-uri" (uri)
1234	<br><i>OR</i>
1235	<br>"ppd-name" (name(255)):
1236
1237	<dd>The client MUST supply a printer URI or PPD name.
1238
1239</dl>
1240
1241<h4>CUPS-Get-PPD Response</h4>
1242
1243<p>The following group of attributes is sent as part of the CUPS-Get-PPD Response:
1244
1245<p>Group 1: Operation Attributes
1246
1247<dl>
1248
1249	<dt>Natural Language and Character Set:
1250
1251	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
1252
1253	<dt>Status Message:
1254
1255	<dd>The standard response status message.
1256
1257	<dt>"printer-uri" (uri):
1258
1259	<dd>The printer that provides the actual PPD file when the status code is cups-see-other (0x280).
1260
1261</dl>
1262
1263<p>If the status code is <tt>successful-ok</tt>, the PPD file follows the end of the IPP response.</p>
1264
1265
1266<h3 class='title'><span class='info'>CUPS 1.4/macOS 10.6</span><a name='CUPS_GET_DOCUMENT'>CUPS-Get-Document Operation</a></h3>
1267
1268<p>The CUPS-Get-Document operation (0x4027) gets a document file from a job on the server. The document file is specified using the <tt>document-number</tt> and either the <tt>job-uri</tt> or <tt>printer-uri</tt> and <tt>job-id</tt> identifying the job.</p>
1269
1270<p>If the document file is found, <tt>successful-ok</tt> is returned with the document file following the response data.</p>
1271
1272<p>If the document file does not exist, <tt>client-error-not-found</tt> is returned.</p>
1273
1274<p>If the requesting user does not have access to the document file, <tt>client-error-not-authorized</tt> is returned.
1275
1276<h4>CUPS-Get-Document Request</h4>
1277
1278<p>The following group of attributes is supplied as part of the CUPS-Get-Document request:
1279
1280<p>Group 1: Operation Attributes
1281
1282<dl>
1283
1284	<dt>Natural Language and Character Set:
1285
1286	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
1287
1288	<dt>"printer-uri" (uri) and "job-id" (integer)
1289	<br><i>OR</i>
1290	<br>"job-uri" (uri):
1291
1292	<dd>The client MUST supply a printer URI and job ID or job URI.
1293
1294	<dt>"document-number" (integer(1:MAX)):
1295
1296	<dd>The client MUST supply a document number to retrieve. The <tt>number-of-documents</tt> attribute for the job defines the maximum document number that can be specified. In the case of jobs with banners (<tt>job-sheets</tt> is not "none"), document number 1 will typically contain the start banner and document number N will typically contain the end banner.
1297
1298</dl>
1299
1300<h4>CUPS-Get-Document Response</h4>
1301
1302<p>The following group of attributes is sent as part of the CUPS-Get-Document Response:
1303
1304<p>Group 1: Operation Attributes
1305
1306<dl>
1307
1308	<dt>Natural Language and Character Set:
1309
1310	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
1311
1312	<dt>Status Message:
1313
1314	<dd>The standard response status message.
1315
1316	<dt>"document-format" (mimeType):
1317
1318	<dd>The format of the document file.
1319
1320	<dt>"document-number" (integer(1:MAX)):
1321
1322	<dd>The requested document number.
1323
1324	<dt>"document-name" (name(MAX)):
1325
1326	<dd>The name that was supplied with the document, if any.
1327
1328</dl>
1329
1330<p>If the status code is <tt>successful-ok</tt>, the document file follows the end of the IPP response.</p>
1331
1332
1333<h3 class='title'><a name='CUPS_CREATE_LOCAL_PRINTER'>CUPS-Create-Local-Printer</a></h3>
1334
1335<p>The CUPS-Create-Local-Printer operation (0x4028) creates a local (temporary) print queue pointing to a remote IPP Everywhere Printer. The queue will remain until the scheduler idle exits, is restarted, or the system is restarted or shutdown. Temporary print queues can be made permanent by an administrator by setting the "printer-is-shared" attribute to 'true'.</p>
1336
1337<p>At a minimum, the scheduler requires a name and URI for the Printer to add. When successful, the local "printer-uri" values are returned and may be used by the Client to submit Job Creation Requests, monitor for state changes, and so forth.</p>
1338
1339<p>If the named printer already exists, the scheduler will reject the request with the 'client-error-not-possible' status code.</p>
1340
1341<p>Access Rights: The authenticated user performing this operation MUST be a Local User of the system, and the request MUST be made over a local (domain socket or loopback interface) address. Otherwise, the request will be rejected with the 'client-error-forbidden' status code.</p>
1342
1343<h4>CUPS-Create-Local-Printer Request</h4>
1344
1345<p>The following group of attributes is supplied as part of the CUPS-Create-Local-Printer request:
1346
1347<p>Group 1: Operation Attributes
1348
1349<dl>
1350
1351	<dt>Natural Language and Character Set:
1352
1353	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.1 of the IPP Model and Semantics document.
1354
1355</dl>
1356
1357<p>Group 2: Printer Attributes
1358
1359<dl>
1360
1361	<dt>"printer-name" (name(127)):
1362
1363	<dd>The Client MUST supply this attribute which provides the name for the new Printer.
1364
1365	<dt>"device-uri" (uri):
1366
1367	<dd>The Client MUST supply this attribute which provides an "ipp" or "ipps" URI pointing to an IPP Everywhere Printer.
1368
1369	<dt>"printer-device-id" (text(1023)):
1370
1371	<dd>The Client OPTIONALLY supplies this attribute which provides the IEEE 1284 device ID for the new Printer.
1372
1373	<dt>"printer-geo-location" (uri):
1374
1375	<dd>The Client OPTIONALLY supplies this attribute which provides the geo-location of the new Printer as a "geo" URI.
1376
1377	<dt>"printer-info" (text(127)):
1378
1379	<dd>The Client OPTIONALLY supplies this attribute which provides the description for the new Printer.
1380
1381	<dt>"printer-location" (text(127)):
1382
1383	<dd>The Client OPTIONALLY supplies this attribute which provides the location of the new Printer.
1384
1385</dl>
1386
1387<h4>CUPS-Create-Local-Printer Response</h4>
1388
1389<p>The following group of attributes is sent as part of the CUPS-Create-Local-Printer Response:
1390
1391<p>Group 1: Operation Attributes
1392
1393<dl>
1394
1395	<dt>Natural Language and Character Set:
1396
1397	<dd>The "attributes-charset" and "attributes-natural-language" attributes as described in section 3.1.4.2 of the IPP Model and Semantics document.
1398
1399	<dt>Status Message:
1400
1401	<dd>The standard response status message.
1402
1403</dl>
1404
1405<p>Group 2: Printer Attributes
1406
1407<dl>
1408
1409	<dt>"printer-id" (integer(0:65535)):
1410
1411	<dd>The numeric identifier for the created Printer.
1412
1413	<dt>"printer-is-accepting-jobs" (boolean):
1414
1415	<dd>Whether the created Printer is accepting jobs at the time of the response.
1416
1417	<dt>"printer-state" (type1 enum):
1418
1419	<dd>The state of the created Printer at the time of the response.
1420
1421	<dt>"printer-state-reasons" (1setOf type2 keyword):
1422
1423	<dd>The state keywords for the created Printer at the time of the response.
1424
1425	<dt>"printer-uri-supported" (1setOf uri):
1426
1427	<dd>The URIs for the created Printer.
1428
1429</dl>
1430
1431
1432<h2 class='title'><a name='ATTRIBUTES'>Attributes</a></h2>
1433
1434<p>CUPS provides many extension attributes to support multiple devices, PPD files, standard job filters, printers, and printer classes.</p>
1435
1436<h3 class='title'><a name='DEVICE_ATTRIBUTES'>Device Attributes</a><span class="info">Deprecated</span></h3>
1437
1438<p>Device attributes are returned by the CUPS-Get-Devices operation and enumerate all of the available hardware devices and network protocols that are supported by the server. Device attributes are reported in the printer-attributes-tag group.</p>
1439
1440<h4><a name="device-class">device-class (type2 keyword)</a><span class="info">Deprecated</span></h4>
1441
1442<p>The "device-class" attribute provides the class of device and can be one of the following:
1443
1444<ul>
1445
1446	<li>'file': A disk file.
1447
1448	<li>'direct': A parallel or fixed-rate serial data port,
1449	currently used for Centronics, IEEE-1284, and USB printer
1450	ports.
1451
1452	<li>'serial': A variable-rate serial port.
1453
1454	<li>'network': A network connection, typically via AppSocket, HTTP, IPP, LPD, or SMB/CIFS protocols.
1455
1456</ul>
1457
1458<h4><a name="device-id">device-id (text(1023))</a><span class="info">Deprecated</span></h4>
1459
1460<p>The "device-id" attribute provides the IEEE-1284 device ID string for the device.</p>
1461
1462<h4><a name="device-info">device-info (text(127))</a><span class="info">Deprecated</span></h4>
1463
1464<p>The "device-info" attribute specifies a human-readable string describing the device, e.g., 'Parallel Port #1'.
1465
1466<h4><a name="device-location">device-location (text(127))</a><span class="info">Deprecated</span></h4>
1467
1468<p>The "device-location" attribute specifies the physical location of the printer, e.g., '2nd Floor Computer Lab'.
1469
1470<h4><a name="device-make-and-model">device-make-and-model (text(127))</a><span class="info">Deprecated</span></h4>
1471
1472<p>The "device-make-and-model" attribute specifies a device identification string provided by the printer connected to the device. If the device or printer does not support identification then this attribute contains the string 'unknown'.
1473
1474<h4><a name="device-uri">device-uri (uri)</a></h4>
1475
1476<p>The "device-uri" attribute specifies a unique identifier for the device. The actual format of the "device-uri" string depends on the value of the "device-class" attribute:
1477
1478<ul>
1479
1480	<li>'file': The "device-uri" will be of the form 'file:///path/to/filename'.
1481
1482	<li>'direct': The "device-uri" will be of the form 'scheme:/dev/filename' or 'scheme://vendor/identifier', where scheme may be 'parallel' or 'usb' in the current implementation.
1483
1484	<li>'serial': The "device-uri" will be of the form 'serial:/dev/filename?baud=value+parity=value+flow=value'. The baud value is the data rate in bits per second; the supported values depend on the underlying hardware. The parity value can be one of "none", "even", or "odd". The flow value can be one of "none", "soft" (XON/XOFF handshaking), "hard" or "rts/cts" (RTS/CTS handshaking), or "dtrdsr" (DTR/DSR handshaking).
1485
1486	<p>The URI returned by CUPS-Get-Devices will contain the maximum baud rate supported by the device and the best type of flow control available ("soft" or "hard").
1487
1488	<li>'network': The "device-uri" will be of the form 'scheme://[username:password@]hostname[:port]/[resource]', where scheme may be "http", "https", "ipp", "lpd", "smb", or "socket" in the current implementation.
1489
1490	<p>The URI returned by CUPS-Get-Devices MAY only contain the scheme name ('scheme'). It is up to the client application to add the appropriate host and other information when adding a new printer.
1491
1492	<p>The URI returned by Get-Printer-Attributes and CUPS-Get-Printers has any username and password information stripped; the information is still stored and used by the server internally to perform any needed authentication.
1493
1494</ul>
1495
1496
1497<h3 class='title'><a name='JOB_ATTRIBUTES'>Job Attributes</a></h3>
1498
1499<h4><a name="auth-info">auth-info (1setOf text(MAX))</a><span class="info">CUPS 1.3/macOS 10.5</span></h4>
1500
1501<p>The "auth-info" attribute specifies the authentication information to use when printing to a remote device. The order and content of each text value is specified by the <a href="#auth-info-required">auth-info-required</a> printer attribute.
1502
1503<h4><a name="job-cancel-after">job-cancel-after (integer(1:MAX))</a><span class='info'>CUPS 2.0</span></h4>
1504
1505<p>The "job-cancel-after" attribute provides the maximum number of seconds that are allowed for processing a job.</p>
1506
1507<h4><a name="job-hold-until">job-hold-until (keyword | name(MAX))</a><span class='info'>CUPS 1.1</span></h4>
1508
1509<p>The "job-hold-until" attribute specifies a hold time. In addition to the standard IPP/1.1 keyword names, CUPS supports name values of the form "HH:MM" and "HH:MM:SS" that specify a hold time. The hold time is in Universal Coordinated Time (UTC) and <i>not</i> in the local time zone. If the specified time is less than the current time, the job is held until the next day.
1510
1511<h4><a name="job-media-progress">job-media-progress (integer(0:100))</a><span class='info'>CUPS 1.4/macOS 10.6</span></h4>
1512
1513<p>The "job-media-progress" status attribute specifies the percentage of completion of the current page. It is only valid when the "job-state" attribute has the 'processing(5)' value.</p>
1514
1515<h4><a name="job-printer-state-message">job-printer-state-message (text(MAX))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
1516
1517<p>The "job-printer-state-message" status attribute provides the last known value of the "printer-state-message" attribute for the printer that processed (or is processing) the job.</p>
1518
1519<h4><a name="job-printer-state-reasons">job-printer-state-reasons (1setOf type2 keyword)</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
1520
1521<p>The "job-printer-state-reasons" status attribute provides the last known value of the "printer-state-reasons" attribute for the printer that processed (or is processing) the job.</p>
1522
1523<h4><a name="job-sheets">job-sheets (1setof type3 keyword | name(MAX))</a><span class='info'>CUPS 1.1</span></h4>
1524
1525<p>The "job-sheets" attribute specifies one or two banner files that are printed before and after a job. The reserved value of "none" disables banner printing. The default value is stored in the "job-sheets-default" attribute.
1526
1527<p>If only one value is supplied, the banner file is printed before the job. If two values are supplied, the first value is used as the starting banner file and the second as the ending banner file.
1528
1529<h4><a name="job-originating-host-name">job-originating-host-name (name(MAX))</a><span class='info'>CUPS 1.1.5/macOS 10.2</span></h4>
1530
1531<p>The "job-originating-host-name" status attribute specifies the host from which the job was queued. The value will be the hostname or IP address of the client depending on whether hostname resolution is enabled.  The localhost address (127.0.0.1) is <b>always</b> resolved to the name "localhost".
1532
1533<p>This attribute is read-only.
1534
1535<h4><a name="page-border">page-border (type2 keyword)</a><span class='info'>CUPS 1.1.15</span></h4>
1536
1537<p>The "page-border" attribute specifies whether a border is draw around each page. The following keywords are presently defined:
1538
1539<ul>
1540
1541	<li>'double': Two hairline borders are drawn</li>
1542
1543	<li>'double-thick': Two 1pt borders are drawn</li>
1544
1545	<li>'none': No border is drawn (default)</li>
1546
1547	<li>'single': A single hairline border is drawn</li>
1548
1549	<li>'single-thick': A single 1pt border is drawn</li>
1550
1551</ul>
1552
1553<h4><a name="page-set">page-set (type2 keyword)</a><span class="info">Deprecated</span></h4>
1554
1555<p>The "page-set" attribute specifies which pages to print in a file. The supported keywords are 'all', 'even', and 'odd'. The default value is 'all'.
1556
1557<h3 class='title'><a name='PPD_ATTRIBUTES'>PPD Attributes</a><span class="info">Deprecated</span></h3>
1558
1559<p>PPD attributes are returned in the printer-attributes-tag group.
1560
1561<h4><a name="ppd-device-id">ppd-device-id (text(127))</a><span class="info">Deprecated</span></h4>
1562
1563<p>The "ppd-device-id" attribute specifies the IEEE-1284 device ID string for the device described by the PPD file.</p>
1564
1565<h4><a name="ppd-make">ppd-make (text(127))</a><span class="info">Deprecated</span></h4>
1566
1567<p>The "ppd-make" attribute specifies the manufacturer of the printer (the Manufacturer attribute in the PPD file). If the manufacturer is not specified in the PPD file then an educated guess is made using the NickName attribute in the PPD file.
1568
1569<h4><a name="ppd-make-and-model">ppd-make-and-model (text(127))</a><span class="info">Deprecated</span></h4>
1570
1571<p>The "ppd-make-and-model" attribute specifies the manufacturer and model name of the PPD file (the NickName attribute in the PPD file). If the make and model is not specified in the PPD file then the ModelName or ShortNickName attributes are used instead.
1572
1573<h4><a name="ppd-model-number">ppd-model-number (integer)</a><span class="info">Deprecated</span></h4>
1574
1575<p>The "ppd-model-number" attribute provides the <tt>cupsModelNumber</tt> value from the PPD file.
1576
1577<h4><a name="ppd-name">ppd-name (name(255))</a><span class="info">Deprecated</span></h4>
1578
1579<p>The "ppd-name" attribute specifies either the PPD filename on the server relative to the model directory or a URI that maps to a specific driver interface in the driver directory. The forward slash (/) is used to delineate directories.
1580
1581<h4><a name="ppd-natural-language">ppd-natural-language (1setOf naturalLanguage)</a><span class="info">Deprecated</span></h4>
1582
1583<p>The "ppd-natural-language" attribute specifies the language encoding of the PPD file (the LanguageVersion attribute in the PPD file). If the language is unknown or undefined then "en" (English) is assumed.
1584
1585<h4><a name="ppd-product">ppd-product (1setOf text(127))</a><span class="info">Deprecated</span></h4>
1586
1587<p>The "ppd-product" attribute specifies the Product attribute values in the PPD file.
1588
1589<h4><a name="ppd-psversion">ppd-psversion (1setOf text(127))</a><span class="info">Deprecated</span></h4>
1590
1591<p>The "ppd-product" attribute specifies the PSVersion attribute values in the PPD file.
1592
1593<h4><a name="ppd-type">ppd-type (type1 keyword)</a><span class="info">Deprecated</span></h4>
1594
1595<p>The "ppd-type" attribute specifies the type of driver described by the PPD file:</p>
1596
1597<ul>
1598
1599	<li>'fax': A facsimile or multi-function device</li>
1600
1601	<li>'pdf': A PDF printer</li>
1602
1603	<li>'postscript': A PostScript printer (no filters)</li>
1604
1605	<li>'raster': A CUPS raster driver</li>
1606
1607	<li>'unknown': An unknown or hybrid driver</li>
1608
1609</ul>
1610
1611
1612<h3 class='title'><a name='PRINTER_ATTRIBUTES'>Printer Attributes</a></h3>
1613
1614<h4><a name="auth-info-required">auth-info-required (1setOf type2 keyword)</a><span class="info">CUPS 1.3/macOS 10.5</span></h4>
1615
1616<p>The "auth-info-required" attribute specifies the authentication information that is required for printing a job. The following keywords are recognized:</p>
1617
1618<ul>
1619
1620	<li>'domain': A domain name is required.</li>
1621
1622	<li>'negotiate': Kerberos is required - this keyword can only appear by itself and causes cupsd to collect the UID of the printing user.</li>
1623
1624	<li>'none': No authentication is required - this keyword can only appear by itself.</li>
1625
1626	<li>'password': A password is required.</li>
1627
1628	<li>'username': A username is required. Some protocols (like SMB) prefix the username with the domain, for example "DOMAIN\user".</li>
1629
1630</ul>
1631
1632<h4><a name="job-k-limit">job-k-limit (integer)</a><span class='info'>CUPS 1.1</span></h4>
1633
1634<p>The "job-k-limit" attribute specifies the maximum number of kilobytes that may be printed by a user, including banner files. The default value of 0 specifies that there is no limit.
1635
1636<h4><a name="job-page-limit">job-page-limit (integer)</a><span class='info'>CUPS 1.1</span></h4>
1637
1638<p>The "job-page-limit" attribute specifies the maximum number of pages that may be printed by a user, including banner files. The default value of 0 specifies that there is no limit.
1639
1640<h4><a name="job-quota-period">job-quota-period (integer)</a><span class='info'>CUPS 1.1</span></h4>
1641
1642<p>The "job-quota-period" attribute specifies the time period used for quota calculations, in seconds. The default value of 0 specifies that the limits apply to all jobs that have been printed by a user that are still known to the system.
1643
1644<h4><a name="marker-change-time">marker-change-time (integer)</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
1645
1646<p>The "marker-change-time" status attribute specifies the "printer-up-time" value when the last change to the marker-colors, marker-levels, marker-message, marker-names, or marker-types attributes was made.</p>
1647
1648<h4><a name="marker-colors">marker-colors (1setof name(MAX))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
1649
1650<p>The "marker-colors" status attribute specifies the color(s) for each supply in the printer. It is only available when the driver provides supply levels. The color is either 'none' or one or more hex-encoded sRGB colors of the form '#RRGGBB'.</p>
1651
1652<h4><a name="marker-high-levels">marker-high-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/macOS 10.6</span></h4>
1653
1654<p>The "marker-high-levels" status attribute specifies the supply levels that indicate a near-full condition. A value of 100 should be used for supplies that are consumed/emptied, e.g. ink cartridges.</p>
1655
1656<h4><a name="marker-levels">marker-levels (1setof integer(-3:100))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
1657
1658<p>The "marker-levels" status attribute specifies the current supply levels for the printer. It is only available when the driver provides supply levels. A value of -1 indicates the level is unavailable, -2 indicates unknown, and -3 indicates the level is unknown but has not yet reached capacity. Values from 0 to 100 indicate the corresponding percentage.</p>
1659
1660<h4><a name="marker-low-levels">marker-low-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/macOS 10.6</span></h4>
1661
1662<p>The "marker-low-levels" status attribute specifies the supply levels that indicate a near-empty condition. A value of 0 should be used for supplies that are filled, e.g. waste ink tanks.</p>
1663
1664<h4><a name="marker-message">marker-message (text(MAX))</a><span class='info'>CUPS 1.4/macOS 10.6</span></h4>
1665
1666<p>The "marker-message" status attribute provides a human-readable status message for the current supply levels, e.g. "12 pages of ink remaining." It is only available when the driver provides supply levels.</p>
1667
1668<h4><a name="marker-names">marker-names (1setof name(MAX))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
1669
1670<p>The "marker-names" status attribute specifies the name(s) for each supply in the printer. It is only available when the driver provides supply levels.</p>
1671
1672<h4><a name="marker-types">marker-types (1setof type3 keyword)</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
1673
1674<p>The "marker-types" status attribute specifies the type(s) of each supply in the printer. It is only available when the driver provides supply levels. The following (RFC 3805) types are currently supported:</p>
1675
1676<ul>
1677
1678	<li>'toner'</li>
1679
1680	<li>'waste-toner'</li>
1681
1682	<li>'ink'</li>
1683
1684	<li>'ink-cartridge'</li>
1685
1686	<li>'ink-ribbon'</li>
1687
1688	<li>'waste-ink'</li>
1689
1690	<li>'opc'</li>
1691
1692	<li>'developer'</li>
1693
1694	<li>'fuser-oil'</li>
1695
1696	<li>'solid-wax'</li>
1697
1698	<li>'ribbon-wax'</li>
1699
1700	<li>'waste-wax'</li>
1701
1702	<li>'fuser'</li>
1703
1704	<li>'corona-wire'</li>
1705
1706	<li>'fuser-oil-wick'</li>
1707
1708	<li>'cleaner-unit'</li>
1709
1710	<li>'fuser-cleaning-pad'</li>
1711
1712	<li>'transfer-unit'</li>
1713
1714	<li>'toner-cartridge'</li>
1715
1716	<li>'fuser-oiler'</li>
1717
1718	<li>'water'</li>
1719
1720	<li>'waste-water'</li>
1721
1722	<li>'binding-supply'</li>
1723
1724	<li>'banding-supply'</li>
1725
1726	<li>'stiching-wire'</li>
1727
1728	<li>'shrink-wrap'</li>
1729
1730	<li>'paper-wrap'</li>
1731
1732	<li>'staples'</li>
1733
1734	<li>'inserts'</li>
1735
1736	<li>'covers'</li>
1737
1738</ul>
1739
1740<h4><a name="port-monitor">port-monitor" (name(127))</a><span class="info">Deprecated</span></h4>
1741
1742<p>The "port-monitor" attribute specifies the port monitor to use when printing to this printer. The default port monitor is 'none'.
1743
1744<h4><a name="port-monitor-supported">port-monitor-supported" (1setOf name(127))</a><span class="info">Deprecated</span></h4>
1745
1746<p>The "port-monitor-supported" attribute specifies the available port monitors.
1747
1748<h4><a name="printer-commands">printer-commands (1setOf Type3 keyword)</a><span class='info'>Deprecated</span></h4>
1749
1750<p>The "printer-commands" attribute specifies the commands that are supported by the CUPS command file filter. The keyword 'none' indicates that no commands are supported.</p>
1751
1752<h4><a name="printer-dns-sd-name">printer-dns-sd-name (name(MAX) | noValue)</a><span class='info'>CUPS 1.4/macOS 10.6</span></h4>
1753
1754<p>The "printer-dns-sd-name" attribute specifies the registered DNS-SD service name for the printer. If the printer is not being shared using this protocol, "printer-dns-sd-name" will have the no-value value.</p>
1755
1756<h4><a name="printer-id">printer-id (integer(0:65535)</a><span class="info">CUPS 2.2</span></h4>
1757
1758<p>The "printer-id" status attribute provides a unique integer identifying the printer. It is used when only an IP address and integer are provided for identifying a print queue.</p>
1759
1760<h4><a name="printer-type">printer-type (type2 enum)</a></h4>
1761
1762<p>The "printer-type" status attribute specifies printer type and capability bits for the printer or class. The default value is computed from internal state information and the PPD file for the printer. The following bits are defined:</p>
1763
1764<div class='table'><table align='center' border='1' width='80%' summary='Printer Type Bits'>
1765<thead>
1766<tr>
1767	<th>Bit</th>
1768	<th>Description</th>
1769</tr>
1770</thead>
1771<tbody>
1772<tr>
1773	<td>0x00000001</td>
1774	<td>Is a printer class.</td>
1775</tr>
1776<tr>
1777	<td>0x00000002</td>
1778	<td>Is a remote destination.</td>
1779</tr>
1780<tr>
1781	<td>0x00000004</td>
1782	<td>Can print in black.</td>
1783</tr>
1784<tr>
1785	<td>0x00000008</td>
1786	<td>Can print in color.</td>
1787</tr>
1788<tr>
1789	<td>0x00000010</td>
1790	<td>Can print on both sides of the page in hardware.</td>
1791</tr>
1792<tr>
1793	<td>0x00000020</td>
1794	<td>Can staple output.</td>
1795</tr>
1796<tr>
1797	<td>0x00000040</td>
1798	<td>Can do fast copies in hardware.</td>
1799</tr>
1800<tr>
1801	<td>0x00000080</td>
1802	<td>Can do fast copy collation in hardware.</td>
1803</tr>
1804<tr>
1805	<td>0x00000100</td>
1806	<td>Can punch output.</td>
1807</tr>
1808<tr>
1809	<td>0x00000200</td>
1810	<td>Can cover output.</td>
1811</tr>
1812<tr>
1813	<td>0x00000400</td>
1814	<td>Can bind output.</td>
1815</tr>
1816<tr>
1817	<td>0x00000800</td>
1818	<td>Can sort output.</td>
1819</tr>
1820<tr>
1821	<td>0x00001000</td>
1822	<td>Can handle media up to US-Legal/A4.</td>
1823</tr>
1824<tr>
1825	<td>0x00002000</td>
1826	<td>Can handle media from US-Legal/A4 to ISO-C/A2.</td>
1827</tr>
1828<tr>
1829	<td>0x00004000</td>
1830	<td>Can handle media larger than ISO-C/A2.</td>
1831</tr>
1832<tr>
1833	<td>0x00008000</td>
1834	<td>Can handle user-defined media sizes.</td>
1835</tr>
1836<tr>
1837	<td>0x00010000</td>
1838	<td>Is an implicit (server-generated) class.</td>
1839</tr>
1840<tr>
1841	<td>0x00020000</td>
1842	<td>Is the a default printer on the network.</td>
1843</tr>
1844<tr>
1845	<td>0x00040000</td>
1846	<td>Is a facsimile device.</td>
1847</tr>
1848<tr>
1849	<td>0x00080000</td>
1850	<td>Is rejecting jobs.</td>
1851</tr>
1852<tr>
1853	<td>0x00100000</td>
1854	<td>Delete this queue.</td>
1855</tr>
1856<tr>
1857	<td>0x00200000</td>
1858	<td>Queue is not shared.</td>
1859</tr>
1860<tr>
1861	<td>0x00400000</td>
1862	<td>Queue requires authentication.</td>
1863</tr>
1864<tr>
1865	<td>0x00800000</td>
1866	<td>Queue supports CUPS command files.</td>
1867</tr>
1868<tr>
1869	<td>0x01000000</td>
1870	<td>Queue was automatically discovered and added.</td>
1871</tr>
1872<tr>
1873	<td>0x02000000</td>
1874	<td>Queue is a scanner with no printing capabilities.</td>
1875</tr>
1876<tr>
1877	<td>0x04000000</td>
1878	<td>Queue is a printer with scanning capabilities.</td>
1879</tr>
1880<tr>
1881	<td>0x08000000</td>
1882	<td>Queue is a printer with 3D capabilities.</td>
1883</tr>
1884</tbody>
1885</table></div>
1886
1887<h4>printer-type-mask (type2 enum)<span class='info'>CUPS 1.1</span></h4>
1888
1889<p>The "printer-type-mask" attribute is used to choose printers or classes with the CUPS-Get-Printers and CUPS-Get-Classes operations. The bits are defined identically to the printer-type attribute and default to all 1's.
1890
1891<h4>requesting-user-name-allowed (1setof name(127))<span class='info'>CUPS 1.1</span></h4>
1892
1893<p>The "requesting-user-name-allowed" attribute lists all of the users that are allowed to access a printer or class. Either this attribute or the "requesting-user-name-denied" attribute will be defined, but not both.
1894
1895<h4>requesting-user-name-denied (1setof name(127))<span class='info'>CUPS 1.1</span></h4>
1896
1897<p>The "requesting-user-name-denied" attribute lists all of the users that are not allowed to access a printer or class. Either this attribute or the "requesting-user-name-allowed" attribute will be defined, but not both.
1898
1899<h3 class='title'><a name='CLASS_ATTRIBUTES'>Printer Class Attributes</a></h3>
1900
1901<p>Printer class attributes are placed in the printer-attributes-tag group.</p>
1902
1903<h4>member-names (1setof name(127))</h4>
1904
1905<p>The "member-names" attribute specifies the "printer-name" attributes for each the member printer and class. Each name corresponds to the same element of the "member-uris" attribute.
1906
1907<h4>member-uris (1setof uri)</h4>
1908
1909<p>The "member-uris" attribute specifies the "printer-uri-supported" values for each member printer and class. Each URI corresponds to the same element of the "member-names" attribute.
1910
1911</body>
1912</html>
1913