]> git.ipfire.org Git - thirdparty/cups.git/blob - standards/rfc3380.txt
Load cups into easysw/current.
[thirdparty/cups.git] / standards / rfc3380.txt
1
2
3
4
5
6
7 Network Working Group T. Hastings
8 Request for Comments: 3380 Xerox Corporation
9 Updates: 2910, 2911 R. Herriot
10 Category: Standards Track Consultant
11 C. Kugler
12 H. Lewis
13 IBM Corporation
14 September 2002
15
16
17 Internet Printing Protocol (IPP):
18 Job and Printer Set Operations
19
20 Status of this Memo
21
22 This document specifies an Internet standards track protocol for the
23 Internet community, and requests discussion and suggestions for
24 improvements. Please refer to the current edition of the "Internet
25 Official Protocol Standards" (STD 1) for the standardization state
26 and status of this protocol. Distribution of this memo is unlimited.
27
28 Copyright Notice
29
30 Copyright (C) The Internet Society (2002). All Rights Reserved.
31
32 Abstract
33
34 This document is an OPTIONAL extension to the Internet Printing
35 Protocol (IPP/1.0 and IPP/1.1). This document specifies 3 additional
36 OPTIONAL operations for use with the Internet Printing Protocol/1.0
37 (IPP) and IPP/1.1. The end user, operator, and administrator Set-
38 Job-Attributes and Set-Printer-Attributes operations are used to
39 modify IPP Job objects and Printer objects, respectively. The Get-
40 Printer-Supported-Values administrative operation returns values that
41 the IPP Printer will accept for setting its "xxx-supported"
42 attributes.
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 Hastings, et. al. Standards Track [Page 1]
59 \f
60 RFC 3380 IPP: Job and Printer Set Operations September 2002
61
62
63 Table of Contents
64
65 1 Introduction......................................................4
66 2 Terminology.......................................................5
67 2.1 Conformance Terminology.........................................5
68 2.2 Other terminology...............................................5
69 3 Requirements and Use Cases........................................5
70 4 Definition of the Set operations..................................6
71 4.1 Set-Printer-Attributes Operation................................7
72 4.1.1 Settable and READ-ONLY Printer Description attributes.........9
73 4.1.2 Set-Printer-Attributes Request...............................10
74 4.1.3 Set-Printer-Attributes Response..............................12
75 4.2 Set-Job-Attributes Operation...................................13
76 4.2.1 Settable and READ-ONLY Job Description attributes............16
77 4.2.2 Set-Job-Attributes Request...................................17
78 4.2.3 Set-Job-Attributes Response..................................18
79 4.3 Get-Printer-Supported-Values Operation.........................19
80 4.3.1 Definition of the usage of the 'admin-define' out-of-band
81 attribute value..............................................20
82 5 New Operation attributes.........................................22
83 5.1 printer-message-from-operator (text(127))......................22
84 5.2 job-message-from-operator (text(127))..........................23
85 6 New Printer Description Attributes...............................24
86 6.1 printer-settable-attributes-supported (1setOf type2 keyword)...24
87 6.2 job-settable-attributes-supported (1setOf type2 keyword).......25
88 6.3 document-format-varying-attributes (1setOf type2 keyword)......25
89 6.4 printer-message-time (integer(MIN:MAX))........................25
90 6.5 printer-message-date-time (dateTime)...........................26
91 6.6 printer-xri-supported (1setOf collection)......................26
92 6.7 xri-uri-scheme-supported (1setOf uriScheme)....................28
93 6.8 xri-authentication-supported (1setOf type2 keyword)............29
94 6.9 xri-security-supported (1setOf type2 keyword)..................29
95 7 Additional status codes..........................................29
96 7.1 client-error-attributes-not-settable (0x0413)..................29
97 8 Additional out-of-band values....................................30
98 8.1 'not-settable' out-of-band value...............................30
99 8.1.1 Encoding of the 'not-settable' out-of-band attribute value...30
100 8.2 'delete-attribute' out-of-band value...........................30
101 8.2.1 Encoding of the 'delete-attribute' out-of-band value.........31
102 8.3 'admin-define' out-of-band attribute value.....................31
103 8.3.1 Encoding of the 'admin-define' out-of-band attribute value...32
104 9 New Values for Existing Printer Description Attributes...........33
105 9.1 operations-supported (1setOf type2 enum).......................33
106 10 Conformance Requirements........................................33
107 11 IANA Considerations.............................................34
108 11.1 Operation Registrations.......................................35
109 11.2 Additional Enum Attribute Value Registrations for the
110 "operations-supported" Printer Attribute......................35
111
112
113
114 Hastings, et. al. Standards Track [Page 2]
115 \f
116 RFC 3380 IPP: Job and Printer Set Operations September 2002
117
118
119 11.3 Attribute Registrations.......................................35
120 11.4 Status code Registrations.....................................36
121 11.5 Out-of-band Attribute Value Registrations.....................36
122 12 Internationalization Considerations.............................37
123 13 Security Considerations.........................................37
124 14 References......................................................38
125 14.1 Normative References..........................................38
126 14.2 Informative References........................................38
127 Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job-
128 Attributes requests (Normative)........................39
129 Appendix B: Attributes returned from Get-Printer-Supported-Values
130 (Normative)............................................50
131 Appendix C: Description of the Base IPP Documents (Informative)....55
132 Authors' Addresses.................................................56
133 Full Copyright Statement...........................................58
134
135 Table of Tables
136
137 Table 1 - Operation-Id assignments.................................7
138 Table 2 - Job State Transition Table for the Set-Job-Attributes
139 operation ..............................................15
140 Table 3 - Member attributes of "printer-xri-supported" (1setOf
141 collection) ............................................27
142 Table 4 - Operation-id assignments................................33
143 Table 5 - Validation rules for 'Any of "xxx-supported" '..........40
144 Table 6 - Validation rules for 'From Get-Printer-Supported-Values'41
145 Table 7 - Values allowed for Job Template Attributes in the Set-Job-
146 Attributes Operation ...................................42
147 Table 8 - Values allowed for Job Description Attributes in the Set-
148 Job-Attributes Operation ...............................43
149 Table 9 - Values allowed for Printer Job Template Attributes in the
150 Set-Printer-Attributes Operation .......................44
151 Table 10 - Values allowed for Printer Description Attributes in the
152 Set-Printer-Attributes Operation .......................47
153 Table 11 - Printer Job Template Attributes returned from Get-Printer-
154 Supported-Values .......................................51
155 Table 12 - Printer Job Template Attributes returned from Get-Printer-
156 Supported-Values .......................................51
157 Table 13 - Printer Description Attributes returned from Get-Printer-
158 Supported-Values .......................................51
159 Table 14 - Printer Job Template Attributes returned from Get-Printer-
160 Supported-Values .......................................52
161 Table 15 - Printer Job Template Attributes returned from Get-Printer-
162 Supported-Values .......................................52
163 Table 16 - Printer Description Attributes returned from Get-Printer-
164 Supported-Values .......................................53
165
166
167
168
169
170 Hastings, et. al. Standards Track [Page 3]
171 \f
172 RFC 3380 IPP: Job and Printer Set Operations September 2002
173
174
175 1 Introduction
176
177 This document is an OPTIONAL extension to IPP/1.0 [RFC2565, RFC2566]
178 and IPP/1.1 [RFC2911, RFC2910]. For a description of the base IPP
179 documents see Appendix C.
180
181 The Internet Printing Protocol (IPP) is an application level protocol
182 that can be used for distributed printing using Internet tools and
183 technologies. IPP version 1.1 [RFC2911, RFC2910] focuses on end user
184 functionality with a few administrative operations included. This
185 document defines additional OPTIONAL end user, operator, and
186 administrator Set-Job-Attributes and Set-Printer-Attributes
187 operations used to modify IPP Job objects and Printer objects,
188 respectively. It also defines a third Get-Printer-Supported-Values
189 administrator operation that returns values that the IPP Printer will
190 accept for setting its "xxx-supported" attributes. The Get-Printer-
191 Supported-Values operation MUST be supported, if the implementation
192 supports setting any "xxx-supported" Printer attributes using the
193 Set-Printer-Attributes operation.
194
195 Nine Printer Description attributes are defined:
196
197 printer-settable-attributes-supported (1setOf type2 keyword)
198 job-settable-attributes-supported (1setOf type2 keyword)
199 document-format-varying-attributes (1setOf type2 keyword)
200 printer-message-time (integer(MIN:MAX))
201 printer-message-date-time (dateTime)
202 printer-xri-supported (1setOf collection)
203 xri-uri-scheme-supported (1setOf uriScheme)
204 xri-authentication-supported (1setOf type2 keyword)
205 xri-security-supported (1setOf type2 keyword)
206
207 Three out-of-band values are defined for use with these three
208 operations: 'delete-attribute' for deleting Job attributes with the
209 Set-Job-Attributes request, 'not-settable' for use in either the
210 Set-Job-Attributes or Set-Printer-Attributes responses, and 'admin-
211 define' for use in the Get-Printer-Supported-Values response.
212
213 Two operation attributes: "printer-message-from-operator" (text) and
214 "job-message-from-operator" (text) are defined to set the
215 corresponding IPP/1.1 Printer and Job Description attributes with the
216 same names. These operation attributes may be used with any
217 operation that affect the Printer or Job object for which an
218 operation might want to indicate a message. For the Set-Job-
219 Attributes and Set-Printer-Attributes operations, the client MUST
220 explicitly set them, rather than using these operation attributes.
221
222
223
224
225
226 Hastings, et. al. Standards Track [Page 4]
227 \f
228 RFC 3380 IPP: Job and Printer Set Operations September 2002
229
230
231 A Printer implementation can make the value of some attributes
232 dependent on the document-format, e.g., "resolution-supported".
233
234 2 Terminology
235
236 This section defines terminology used throughout this document.
237
238 2.1 Conformance Terminology
239
240 Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD
241 NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to
242 conformance as defined in BCP 14, RFC 2119 [RFC2119] and [RFC2911]
243 section 12.1. If an implementation supports the extension defined in
244 this document, then these terms apply; otherwise, they do not. These
245 terms define conformance to this document only; they do not affect
246 conformance to other documents, unless explicitly stated otherwise.
247
248 2.2 Other terminology
249
250 This document uses terms such as Job object (or Job), IPP Printer
251 object (or Printer), "operation", "request", response", "attributes",
252 "keywords", and "support". These terms have special meaning and are
253 defined in the model terminology [RFC2911], section 12.2. The
254 following additional terms are introduced in this document:
255
256 READ-ONLY: used in an attribute definition document to indicate that
257 the attribute MUST NOT be settable using an IPP protocol Set
258 operation. In other words, the attribute is not settable by
259 definition.
260
261 not-settable: an implementation does not support setting an attribute
262 (whether or not the attribute's definition is READ-ONLY).
263
264 3 Requirements and Use Cases
265
266 The following requirements and usage are intended to be met by the
267 specification in this document.
268
269 1. The end-user and the operator need a way to modify a Job that is
270 in the 'pending' or 'pending-held' state.
271
272 Usage: The end-user discovers that he/she forgot to include a
273 print instruction, such as "finishings" = 'staple' after
274 submitting a job. Rather than canceling the job and resubmitting
275 it to the same IPP Printer, the end-user is able to modify the job
276 on the IPP Printer.
277
278
279
280
281
282 Hastings, et. al. Standards Track [Page 5]
283 \f
284 RFC 3380 IPP: Job and Printer Set Operations September 2002
285
286
287 The operator needs to modify a job because it is requesting a
288 particular kind of media for which there is no more, but the
289 policy is to print the job on a comparable medium.
290
291 2. The system administrator needs a way to re-configure or change the
292 policy of the IPP Printer remotely.
293
294 Usage: The system administrator is adding additional named media
295 to the supported media list (setting 'name' values to the "media-
296 supported" Printer attribute).
297
298 The system administrator is reducing the capability of the IPP
299 Printer by removing one of the operations from the supported
300 operations list, such as Cancel-Job, because the policy is to run
301 the IPP Printer like a public facsimile machine. After having
302 removed Cancel-Job from the list of supported operations, an
303 administrative client needs to be able to display to an
304 administrator that the implementation is capable of being
305 reconfigured to support Cancel-Job once again.
306
307 The system administrator is remotely configuring the IPP Printer
308 after installing it, and so is replacing the Printer Description
309 attributes that have the out-of-band 'no-value' value (see
310 [RFC2911], section 4.1) with the proper values.
311
312 The operator is changing the media loaded in the input tray, and
313 so is replacing the "media-ready" Job Template Printer attribute
314 value with the proper values.
315
316 4 Definition of the Set operations
317
318 The Set-Printer-Attributes operations (as are all Printer operations)
319 are directed at Printer objects. A client MUST always supply the
320 "printer-uri" operation attribute in order to identify the correct
321 target of the operation. These descriptions assume all of the common
322 semantics of the IPP/1.1 Model and Semantics document [RFC2911],
323 section 3.1.
324
325 The Set-Job-Attributes operations (as are all Job operations) are
326 directed at Job objects. A client MUST always supply some means of
327 identifying the Job object in order to identify the correct target of
328 the operation. That job identification MAY either be a single Job
329 URI or a combination of a Printer URI with a Job ID, as defined in
330 [RFC2911]. The IPP object implementation MUST support both forms of
331 identification for every job. If possible, a client SHOULD use the
332 Printer URI with a Job ID rather than a Job URI, since the 32-bit
333
334
335
336
337
338 Hastings, et. al. Standards Track [Page 6]
339 \f
340 RFC 3380 IPP: Job and Printer Set Operations September 2002
341
342
343 "job-id" is more readily translated to and from other print protocols
344 that MAY be serving as gateways into or out of the IPP
345 implementation.
346
347 The Set Printer operations are summarized in Table 1:
348
349 Table 1 - Operation-Id assignments
350
351 Operation Name Operation Brief description
352 -Id
353
354 Set-Printer- 0x0013 Sets attribute values of the target
355 Attributes Printer object
356
357 Set-Job-Attributes 0x0014 Sets attribute values of the target
358 Job object
359
360 Get-Printer- 0x0015 Gets values that are valid for
361 Supported-Values setting "xxx-supported" attributes
362 using the Set-Printer-Attributes
363 operation
364
365 4.1 Set-Printer-Attributes Operation
366
367 This OPTIONAL operation allows a client to set the values of the
368 attributes of a Printer object. In the request, the client supplies
369 the set of Printer keyword attribute names and values that are to be
370 set. In the response, the Printer object returns success or rejects
371 the entire request with indications of which attribute or attributes
372 could not be set.
373
374 The Printer object validates the client-supplied attributes in the
375 Set-Printer-Attributes request. For an attribute to validate, it
376 MUST meet all of the following rules:
377
378 1. The number of attributes supplied by the client MUST NOT exceed
379 the maximum number that the Printer supports in a Set-Printer-
380 Attributes request. A Printer MUST accept at least one attribute,
381 but SHOULD accept a reasonable number in a single Set-Printer-
382 Attributes request.
383
384 Note: There is no way for the client to determine the maximum
385 number of attributes that the Printer supports in a Set-Printer-
386 Attributes request, except to try a reasonable number.
387
388 2. The Printer MUST support the attribute.
389
390
391
392
393
394 Hastings, et. al. Standards Track [Page 7]
395 \f
396 RFC 3380 IPP: Job and Printer Set Operations September 2002
397
398
399 3. The attribute MUST NOT be READ-ONLY, i.e., the definition of the
400 attribute MUST NOT indicate that the attribute is READ-ONLY (see
401 Appendix A for an indication of which IPP/1.1 attributes are
402 READ-ONLY).
403
404 4. The attribute MUST be settable in this implementation.
405
406 5. The Printer MUST support the value, according to the rules defined
407 in Appendix A, i.e., each value of each supplied "xxx" attribute
408 MUST be validated against the value of a corresponding "xxx-
409 supported" Printer attribute. One of those rules permits an
410 administrator to set arbitrary 'name' values to those "xxx-
411 supported" Printer attributes that include the 'name' attribute
412 syntax if the implementation supports the 'admin-define' out-of-
413 band value for that "xxx-supported" attribute (see section 8.3 and
414 Appendix A).
415
416 6. The attribute's values MUST NOT conflict with the values of other
417 Printer attributes, including ones being set in this same
418 operation.
419
420 If any of the supplied attributes are not validate, the Printer
421 object MUST reject the entire operation; the Printer object MUST NOT
422 partially set some of the supplied attributes. In other words, after
423 the operation, all the supplied attributes MUST be set or none of
424 them MUST be set, thus making the Set-Printer-Attributes an atomic
425 operation.
426
427 The Printer MUST accept this operation when its READ-ONLY "printer-
428 state" attribute (see [RFC2911], section 4.4.11) is 'idle' or
429 'stopped', and SHOULD accept it when the value is 'processing'. The
430 Printer MUST accept this operation for any of the values of the
431 Printer object's READ-ONLY "printer-state-reasons" and "printer-is-
432 accepting-jobs" attributes, unless explicitly defined otherwise in
433 the definition of these attributes' values.
434
435 This operation MUST NOT change the value of attributes not specified
436 in the operation unless the definition of the attribute explicitly
437 specifies such side-effects. For example, this document explicitly
438 specifies that when this operation sets "printer-message-from-
439 operator", the Printer also MUST set the READ-ONLY "printer-message-
440 time" and READ-ONLY "printer-message-date-time" attributes to the
441 time of the operation as a side effect. In particular, if this
442 operation changes an "xxx-default" attribute, the new value MUST be
443 in the "xxx-supported" attributes or the request MUST contain a new
444 value for "xxx-supported", which contains the new value for the
445 "xxx-default". Otherwise, the Printer MUST reject the operation. In
446 general, Printer attribute definitions that are settable will not
447
448
449
450 Hastings, et. al. Standards Track [Page 8]
451 \f
452 RFC 3380 IPP: Job and Printer Set Operations September 2002
453
454
455 define side-effects on other attributes that are settable, only side
456 effects on READ-ONLY attributes, if any.
457
458 4.1.1 Settable and READ-ONLY Printer Description attributes
459
460 If the Printer supports the Set-Printer-Attributes operation, then it
461 SHOULD support the setting of:
462
463 all Job Template Default ("xxx-default") attributes
464 all Job Template Supported ("xxx-supported") attributes
465 all Job Template Ready ("xxx-ready") attributes
466
467 that the implementation supports (see [RFC2911] section 4.2 and
468 extensions).
469
470 Some Printer Description attributes (see [RFC2911] section 4.4) MUST
471 NOT be settable, i.e., they are defined to be READ-ONLY. An
472 attribute marked as "READ-ONLY" in the Printer Description attribute
473 table in Appendix A is such an attribute. The Printer attributes
474 that are not marked as "READ-ONLY" MAY be settable using the Set-
475 Printer-Attributes operation, depending on implementation.
476
477 Note: From now on, all extensions that define new object attributes
478 will indicate whether or not the attributes are READ-ONLY, by
479 including the "READ-ONLY" adjective in their descriptions and/or
480 explicitly stating whether they MAY be settable.
481
482 The current values of each "xxx-supported" Printer attribute MUST
483 reflect the current policy for support of the corresponding "xxx"
484 attribute. If an "xxx-supported" Printer attribute is settable in an
485 implementation, then its value(s) MUST affect the behavior of the
486 implementation. If an "xxx-supported" Printer attribute is defined
487 to be READ-ONLY or is not-settable in an implementation, then its
488 values MUST NOT be settable using the Set-Printer-Attributes
489 operation. Consider the following examples:
490
491 For example, if the "operations-supported" Printer Description
492 attribute (see [RFC2911] section 4.4.15) is settable in a
493 particular implementation, then changing its value with a Set-
494 Printer-Attributes operation MUST affect the operations that the
495 implementation accepts or rejects. Such an implementation will
496 need to be able to reject values for operations that it contains
497 no code support for (see section 4.3). If the "operations-
498 supported" Printer Description attribute is not settable in a
499 particular implementation, then that implementation MUST reject an
500 attempt to set it with a Set-Printer-Attributes operation, return
501 the 'client-error-attributes-not-settable' status code (see
502 section 7.1), and return the "operations-supported" attribute,
503
504
505
506 Hastings, et. al. Standards Track [Page 9]
507 \f
508 RFC 3380 IPP: Job and Printer Set Operations September 2002
509
510
511 with the out-of-band 'not-settable' value in the Unsupported
512 Attributes Group.
513
514 As another example, consider an implementation in which the
515 "media-default" and "media-supported" are settable. If a client
516 supplies a Set-Printer-Attributes request that contains the
517 "media-default" attribute with a value that is not a member of the
518 Printer's "media-supported" attribute, the Printer MUST reject the
519 request and return the "client-error-conflicting-attributes"
520 status code with the "media-default" and "media-supported"
521 attributes and their values (see [RFC2911] section 3.1.7).
522
523 As a third example, if a client supplies a Set-Printer-Attributes
524 request that contains both the "media-default" and the "media-
525 supported" attributes, but includes a value in the "media-default"
526 that is not a member of the supplied "media-supported" attribute,
527 the Printer MUST reject the request and return the "client-error-
528 conflicting-attributes" status code with the "media-default" and
529 "media-supported" attributes and their values (see [RFC2911]
530 section 3.1.7).
531
532 Access Rights: The authenticated user (see [RFC2911] section 8.3)
533 performing this operation must be an operator or administrator of the
534 Printer object (see [RFC2911] Sections 1 and 8.5). Most Printer
535 attributes will require administrator access rights to set, such as
536 "xxx-supported", while some will require operator access rights only,
537 such as "media-ready" and "printer-message-from-operator". Which
538 attributes require which access rights depends on implementation, and
539 MAY depend on site policy.
540
541 4.1.2 Set-Printer-Attributes Request
542
543 The following sets of attributes are part of the Set-Printer-
544 Attributes Request:
545
546 Group 1: Operation Attributes
547
548 Natural Language and Character Set:
549 The "attributes-charset" and "attributes-natural-language"
550 attributes, as described in [RFC2911], section 3.1.4.1.
551
552 Target:
553 The "printer-uri" (uri) operation attribute, which is the
554 target for this operation, as described in [RFC2911], section
555 3.1.5.
556
557
558
559
560
561
562 Hastings, et. al. Standards Track [Page 10]
563 \f
564 RFC 3380 IPP: Job and Printer Set Operations September 2002
565
566
567 Requesting User Name:
568 The "requesting-user-name" (name(MAX)) attribute SHOULD be
569 supplied by the client, as described in [RFC2911], section 8.3.
570
571 "document-format" (mimeMediaType):
572 The client OPTIONALLY supplies this attribute. The Printer
573 object MUST support this attribute. This attribute is useful
574 for a client to select the document-format to which the
575 attribute modification should be applied. A Printer
576 implementation MAY allow some attributes to have different
577 values for each document format that it supports. See
578 [RFC2911], section 3.2.5.1 "Get-Printer-Attributes Request".
579
580 If the client includes this attribute, the Printer MUST change
581 the supplied attributes for the document format specified by
582 this attribute. If a supplied attribute is a member of the
583 "document-format-varying-attributes" (i.e., the attribute
584 varies by document format, see section 6.3), the Printer MUST
585 change the supplied attribute for the document format specified
586 by this attribute, but not for other document formats. If a
587 supplied attribute isn't a member of the "document-format-
588 varying-attributes" (i.e., it doesn't vary by document format),
589 the Printer MUST change the supplied attribute for all document
590 formats.
591
592 If the client omits this attribute, the Printer MUST change the
593 supplied attributes for all document formats, whether or not
594 they vary by document-format.
595
596 If the client supplies a value for the "document-format"
597 Operation attribute, that is either 'application/octet-stream'
598 or not supported by the Printer, i.e., is not among the values
599 of the Printer object's "document-format-supported" attribute,
600 the Printer object MUST reject the operation and return the
601 'client-error-document-format-not-supported' status code.
602 Note: the document-format 'application/octet-stream' is the
603 union of several document-formats (see [RFC2911] section
604 3.2.5.1, Get-Printer-Attributes) and is not a true document-
605 format.
606
607 Group 2: Printer Attributes
608
609 The client MUST supply a set of Printer attributes with one or
610 more values (including explicitly allowed out-of-band values) as
611 defined in [RFC2911] section 4.2 Job Template Attributes ("xxx-
612 default", "xxx-supported", and "xxx-ready" attributes), section
613 4.4 Printer Description Attributes, and any attribute extensions
614 supported by the Printer. The value(s) of each Printer attribute
615
616
617
618 Hastings, et. al. Standards Track [Page 11]
619 \f
620 RFC 3380 IPP: Job and Printer Set Operations September 2002
621
622
623 supplied in Group 2 replaces the value(s) of the corresponding
624 Printer attribute on the target Printer object. For attributes
625 that can have multiple values (1setOf), all values supplied by the
626 client replace all values of the corresponding Printer object
627 attribute. If a Printer object attribute had not yet been
628 configured, and so assumed the 'no-value' out-of-band value (see
629 [RFC2911] section 4.1), the supplied value(s) replaces the 'no-
630 value' value.
631
632 4.1.3 Set-Printer-Attributes Response
633
634 The Printer object returns the following sets of attributes as part
635 of the Get-Printer-Attributes Response:
636
637 Group 1: Operation Attributes
638
639 Status Message:
640 In addition to the REQUIRED status code returned in every
641 response, the response OPTIONALLY includes a "status-message"
642 (text(255)) and/or a "detailed-status-message" (text(MAX))
643 operation attribute, as described in [RFC2911] sections 3.1.6
644 and 13.
645
646 Natural Language and Character Set:
647 The "attributes-charset" and "attributes-natural-language"
648 attributes, as described in [RFC2911], section 3.1.4.2.
649
650 Group 2: Unsupported Attributes
651
652 See [RFC2911], section 3.1.7, for details on returning Unsupported
653 Attributes.
654
655 If some of the attributes in the operation fail to validate, the
656 Printer MUST reject the operation, MUST NOT change any Printer
657 attributes, and MUST return the indicated status code below. In
658 this group, the Printer MUST also return all attributes that fail
659 to validate. The following are the reasons that an attribute
660 fails to validate and the value returns for the attribute, along
661 with the indicated status code and order of detection:
662
663 1. The number of attributes supplied by the client exceeds the
664 maximum number that the Printer supports in a Set-Printer-
665 Attributes request: return the 'client-error-request-entity-
666 too-large' (see [RFC2911], section 13.1.4.9).
667
668
669
670
671
672
673
674 Hastings, et. al. Standards Track [Page 12]
675 \f
676 RFC 3380 IPP: Job and Printer Set Operations September 2002
677
678
679 2. The Printer doesn't support the attribute: return the attribute
680 with the "out-of-band" value 'unsupported' (see [RFC2911]
681 section 3.1.7 and [RFC2910]) and the 'client-error-attributes-
682 or-values-not-supported (see [RFC2911], section 13.1.4.12).
683
684 3. The attribute is either READ-ONLY (in its definition) or is
685 not-settable in this implementation: return the attribute with
686 the "out-of-band" value 'not-settable' (see section 8.1) and
687 the 'client-error-attributes-not-settable' status code (see
688 section 7.1).
689
690 4. The Printer doesn't support the value: if the attribute in the
691 operation has a single value, return it. If the attribute in
692 the operation is multi-valued, return only those values in a
693 1setOf that are not supported. Return the 'client-error-
694 attributes-or-values-not-supported' status code (see [RFC2911],
695 section 13.1.4.12).
696
697 5. The values of some of the supplied attributes conflict with one
698 another and/or other Printer attribute values not being set: if
699 the conflicting attribute in the operation has a single value,
700 return the attribute and the value. If the attribute in the
701 operation is multi-valued, return only the attribute and those
702 values in a 1setOf that are conflicting with other attributes.
703 Return the 'client-error-conflicting-attributes' status code
704 (see [RFC2911], section 13.1.4.15).
705
706 4.2 Set-Job-Attributes Operation
707
708 This OPTIONAL operation allows a client to set the values of the
709 attributes of a Job object. In the request, the client supplies the
710 set of Job keyword attribute names and values that are to be set. In
711 the response, the IPP object returns success or rejects the entire
712 request with indications of which attribute or attributes could not
713 be set.
714
715 This operation is almost identical to the Set-Printer-Attributes
716 operation and follows the same rules for validation (see section
717 4.1). The only differences are that the Set-Job-Attributes operation
718 is directed at a Job object rather than a Printer object, there is no
719 "document-format" operation attribute used when setting a Job object,
720 the operation can add an attribute to the (Job) object, the 'delete-
721 attributes' out-of-band value is permitted to remove an attribute,
722 and the validation is the same as the Job Creation operations
723 (Print-Job, Print-URI, and Create-Job), i.e., depends on the "xxx-
724 supported" Printer Description attributes (see [RFC2911] section
725 3.1). Using the Set-Printer-Attributes operation, the administrator
726 can set arbitrary 'name' values to those "xxx-supported" Printer
727
728
729
730 Hastings, et. al. Standards Track [Page 13]
731 \f
732 RFC 3380 IPP: Job and Printer Set Operations September 2002
733
734
735 attributes, that include the 'name' attribute syntax, if the
736 implementation supports the 'admin-define' out-of-band value for that
737 "xxx-supported" attribute (see section 8.3 and Appendix A). However,
738 the Set-Job-Attributes cannot be used to add unsupported names to the
739 Job object.
740
741 If a client supplies a job attribute in a Set-Job-Attributes request
742 that the Printer supports, and the job was originally submitted
743 without supplying that attribute, the Printer adds the attribute to
744 the Job object.
745
746 If the client supplies a job attribute with the "out-of-band" value
747 'delete-attribute' (see section 8.2), then the Printer MUST remove
748 the attribute and all of its values from the Job object, if present.
749 The semantic effect of the client supplying the 'delete-attribute'
750 value in a Set-Job-Attributes operation MUST be the same as if the
751 attribute had not been supplied with the Job object in the Job
752 Creation operation, i.e., the Printer applies its default attribute
753 or behavior with lower precedence that the PDL (see the beginning of
754 [RFC2911] section 4.2 and [RFC2911] 3.2.1.1). Any subsequent query
755 of the Job object using Get-Job-Attributes or Get-Jobs, MUST NOT
756 return any attribute that has been deleted using the 'delete-
757 attribute' out-of-band value. However, a client can re-establish
758 such a deleted Job attribute with any supported value(s), using a
759 subsequent Set-Job-Attributes operation.
760
761 If the client supplies an attribute in a Set-Job-Attributes request
762 with the 'delete-attribute' value and that attribute is not present
763 on the Job object, the Printer ignores that supplied attribute in the
764 request, does not return the attribute in the Unsupported Attributes
765 group, and returns the 'successful-ok' status code, if there are no
766 other problems with the request.
767
768 The validation of the Set-Job-Attributes request is performed by the
769 Printer as if the job had been submitted originally with the new
770 attribute values (and the deleted attributes removed) and with "ipp-
771 attribute-fidelity" set to 'true', i.e., all modified attributes Job
772 attributes and values MUST be supported in combination with the Job
773 attributes not modified. If such a Job Creation operation would have
774 been accepted, then the Set-Job-Attributes MUST be accepted. If such
775 a Job Creation operation would have been rejected, then the Set-Job-
776 Attributes MUST be rejected and the Job MUST be unchanged. In
777 addition, if any of the supplied attributes are not supported, are
778 not settable, or the values are not supported, the Printer object
779 MUST reject the entire operation; the Printer object MUST NOT
780 partially set some of the supplied attributes. In other words, after
781
782
783
784
785
786 Hastings, et. al. Standards Track [Page 14]
787 \f
788 RFC 3380 IPP: Job and Printer Set Operations September 2002
789
790
791 the operation, all the supplied attributes MUST be set or none of
792 them MUST be set, thus making the Set-Job-Attributes an atomic
793 operation.
794
795 The IPP object MUST accept or reject this operation when the Job's
796 READ-ONLY "job-state" attribute has the values shown in Table 2. The
797 job's current state MUST affect whether the IPP object accepts or
798 rejects the request. For example, in the case where the operation
799 creates a request for unavailable resources, the Job transitions to a
800 new state. Table 2 shows the allowed behaviors in each job state and
801 the transitions.
802
803 Table 2 - Job State Transition Table for the Set-Job-Attributes
804 operation
805
806 Current New IPP object's response status code
807 "job-state" "job-state" and "action":
808
809
810 'pending' 'pending' 'successful-ok'
811
812 'pending' 'pending-held' 'successful-ok' - needed resources
813 are not ready
814
815 'pending-held' 'pending-held' 'successful-ok'
816
817 'pending-held' 'pending' 'successful-ok' - needed resources
818 are ready
819
820 'processing' 'processing' 'successful-ok' or 'client-error-
821 not-possible' depending on
822 implementation, including the
823 attributes being set, whether the
824 job has started marking media,
825 etc.
826
827 'processing- 'processing- 'successful-ok' or 'client-error-
828 stopped' stopped' not-possible' depending on
829 implementation, including the
830 attributes being set, whether the
831 job has started marking media,
832 etc.
833
834 'completed' 'completed' 'client-error-not-possible'
835
836 'canceled' 'canceled' 'client-error-not-possible'
837
838 'aborted' 'aborted' 'client-error-not-possible'
839
840
841
842 Hastings, et. al. Standards Track [Page 15]
843 \f
844 RFC 3380 IPP: Job and Printer Set Operations September 2002
845
846
847 This operation MUST NOT change the value of attributes not specified
848 in the operation unless the definition of the attribute explicitly
849 specifies such side-effects. In general, Job attribute definitions
850 that are settable will not define side-effects on other attributes
851 that are settable, only side effects on READ-ONLY attributes, if any.
852
853 4.2.1 Settable and READ-ONLY Job Description attributes
854
855 If the Printer supports the "job-message-from-operator" Job
856 Description attribute (see [RFC2911] section 4.3.16) and the client
857 explicitly supplies a new value for the "job-message-from-operator"
858 Job Description attribute in Group 2 in the Set-Job-Attributes
859 request, then the Printer MUST set the "job-message-from-operator"
860 Job Description attribute to this new value.
861
862 If the Printer supports the Set-Job-Attributes operation, then it
863 SHOULD support the setting of:
864
865 all Job Template job ("xxx") attributes
866
867 that the implementation supports (see [RFC2911] section 4.2 and
868 extensions).
869
870 Some Job Description attributes (see [RFC2911] section 4.3) MUST NOT
871 be settable, i.e., they are defined to be READ-ONLY. An attribute
872 marked as "READ-ONLY" in the Job Description attribute table in
873 Appendix A is such an attribute. The Job attributes not marked as
874 "READ-ONLY" MAY be settable using the Set-Job-Attributes operation,
875 depending on implementation.
876
877 Note: From now on, all extensions that define new object attributes
878 will indicate whether or not the attributes are READ-ONLY, by
879 including the "READ-ONLY" adjective in their descriptions and/or
880 explicitly stating whether they MAY be settable.
881
882 Access Rights: The authenticated user (see [RFC2911] section 8.3)
883 performing this operation must either be the job owner (as determined
884 in the Job Creation operation) or an operator or administrator of the
885 Printer object (see [RFC2911] Sections 1 and 8.5).
886
887
888
889
890
891
892
893
894
895
896
897
898 Hastings, et. al. Standards Track [Page 16]
899 \f
900 RFC 3380 IPP: Job and Printer Set Operations September 2002
901
902
903 4.2.2 Set-Job-Attributes Request
904
905 The following sets of attributes are part of the Set-Job-Attributes
906 Request:
907
908 Group 1: Operation Attributes
909
910 Natural Language and Character Set:
911 The "attributes-charset" and "attributes-natural-language"
912 attributes as described in [RFC2911], section 3.1.4.1.
913
914 Target:
915 Either (1) the "printer-uri" (uri) plus "job-id"
916 (integer(1:MAX)) or (2) the "job-uri" (uri) operation
917 attribute(s), which defines the target for this operation as
918 described in [RFC2911], section 3.1.5.
919
920 Requesting User Name:
921 The "requesting-user-name" (name(MAX)) attribute SHOULD be
922 supplied by the client, as described in [RFC2911], section 8.3.
923
924 Group 2: Job Attributes
925
926 The client MUST supply a set of Job attributes with one or more
927 values (including explicitly allowed out-of-band values) as
928 defined in [RFC2911], section 4.2, Job Template Attributes ("xxx"
929 attributes), section 4.3, Job Description Attributes, and any
930 attribute extensions supported by the Printer. The value(s) of
931 each Job attribute supplied in Group 2 replaces the value(s) of
932 the corresponding Job attribute on the target Job object. For
933 attributes that can have multiple values (1setOf), all values
934 supplied by the client replace all values of the corresponding Job
935 object attribute.
936
937 If the client supplies an "xxx" attribute with the 'delete-
938 attribute' out-of-band value (see section 8.2), the Printer MUST
939 remove the "xxx" attribute from the Job object, if present.
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954 Hastings, et. al. Standards Track [Page 17]
955 \f
956 RFC 3380 IPP: Job and Printer Set Operations September 2002
957
958
959 4.2.3 Set-Job-Attributes Response
960
961 The IPP object returns the following sets of attributes as part of
962 the Set-Job-Attributes Response:
963
964 Group 1: Operation Attributes
965
966 Status Message:
967 In addition to the REQUIRED status code returned in every
968 response, the response OPTIONALLY includes a "status-message"
969 (text(255)) and/or a "detailed-status-message" (text(MAX))
970 operation attribute as described in [RFC2911], sections 3.1.6
971 and 13.
972
973 Natural Language and Character Set:
974 The "attributes-charset" and "attributes-natural-language"
975 attributes as described in [RFC2911], section 3.1.4.2.
976
977 Group 2: Unsupported Attributes
978
979 See [RFC2911], section 3.1.7, for details on returning Unsupported
980 Attributes.
981
982 If some of the attributes in the operation fail to validate, the
983 Printer MUST reject the operation, MUST NOT change any Job
984 attributes, and MUST return the indicated status code below. In
985 this group, the Printer MUST also return all attributes that fail
986 to validate. The following are the reasons that an attribute
987 fails to validate and the value returns for the attribute, along
988 with the indicated status code and order of detection:
989
990 1. The number of attributes supplied by the client exceeds the
991 maximum number that the Printer supports in a Set-Printer-
992 Attributes request: return the 'client-error-request-entity-
993 too-large' (see [RFC2911], section 13.1.4.9).
994
995 2. The Printer doesn't support the attribute: return the attribute
996 with the 'unsupported' out-of-band attribute value (see
997 [RFC2911], section 3.1.7 and [RFC2910]) and the 'client-error-
998 attributes-or-values-not-supported (see [RFC2911], section
999 13.1.4.12).
1000
1001 3. The attribute is READ-ONLY (in its definition) or is not-
1002 settable in this implementation: return the attribute with the
1003 'not-settable' out-of-band attribute value (see section 8.1)
1004 and the 'client-error-attributes-not-settable' status code (see
1005 section 7.1).
1006
1007
1008
1009
1010 Hastings, et. al. Standards Track [Page 18]
1011 \f
1012 RFC 3380 IPP: Job and Printer Set Operations September 2002
1013
1014
1015 4. The Printer doesn't support the value: if the attribute in the
1016 operation has a single value return it. If the attribute in
1017 the operation is multi-valued, return only those values in a
1018 1setOf that are not supported. Return the 'client-error-
1019 attributes-or-values-not-supported' status code (see [RFC2911],
1020 section 13.1.4.12).
1021
1022 5. The values of some of the supplied attributes conflict with one
1023 another and/or other Job attribute values not being set: if
1024 the conflicting attribute in the operation has a single value,
1025 return the attribute and the value. If the attribute in the
1026 operation is multi-valued, return only the attribute and those
1027 values in a 1setOf that are conflicting with other attributes.
1028 Return the 'client-error-conflicting-attributes' status code
1029 (see [RFC2911],y section 13.1.4.15).
1030
1031 4.3 Get-Printer-Supported-Values Operation
1032
1033 This OPTIONAL operation allows a client to request the values that
1034 the Printer allows in the Set-Printer-Attributes operation for "xxx-
1035 supported" attributes. If the Printer supports the Set-Printer-
1036 Attributes operation AND some of its "xxx-supported" Printer
1037 attributes are settable, then the Printer MUST also support this
1038 operation.
1039
1040 The Printer MUST return in the Get-Printer-Supported-Values response,
1041 those, and only those, "xxx-supported" Printer attributes that it
1042 supports setting with the Set-Printer-Attributes operation.
1043 Furthermore, if a client requests the value of an attribute that is
1044 not settable or is not supported (as in the Get-Printer-Attributes
1045 response), the Unsupported Attributes Group of the response NEED NOT
1046 contain the "requested-attributes" operation attribute with any such
1047 requested (attribute keyword) values.
1048
1049 This operation has identical request/response attributes to the Get-
1050 Printer-Attributes operation in IPP/1.1 [RFC2911]. The operation
1051 also behaves identically to the Get-Printer-Attributes operation in
1052 IPP/1.1 [RFC2911], with the following exceptions:
1053
1054 1. The Get-Printer-Supported-Values operation supports only "xxx-
1055 supported" attributes.
1056
1057 2. The Get-Printer-Attributes operation returns the few "xxx-
1058 supported" attributes that are defined to be single valued, such
1059 as "page-ranges-supported" (boolean) or "pdl-override-supported"
1060 (type2 keyword), as single values, while Get-Printer-Supported-
1061
1062
1063
1064
1065
1066 Hastings, et. al. Standards Track [Page 19]
1067 \f
1068 RFC 3380 IPP: Job and Printer Set Operations September 2002
1069
1070
1071 Values returns the possible values that can be set as a 1setOf of
1072 the same attribute syntax type (See Appendix B: Attributes
1073 returned from Get-Printer-Supported-Values).
1074
1075 3. The Get-Printer-Attributes operation returns the current values of
1076 requested attributes, while the Get-Printer-Supported-Values
1077 operation returns the values that are inherently supported by the
1078 implementation code, i.e., the values that an administrative
1079 client can set in a Set-Printer-Attributes request.
1080
1081 4. The Get-Printer-Attributes operation returns the current values of
1082 requested "xxx-supported" attributes that the Printer is
1083 configured to accept in Job Creation operations, including
1084 additional values defined by the administrator, while the Get-
1085 Printer-Supported-Values operation returns only the values of
1086 "xxx-supported" attributes that are inherently supported by the
1087 implementation and does not return any additional values defined
1088 by the administrator, where the implementation supports the
1089 'admin-define' out-of-band value.
1090
1091 5. The Get-Printer-Attributes never returns the 'admin-define' out-
1092 of-band attribute value, while the Get-Printer-Supported-
1093 Attributes operation does, if the implementation allows the
1094 administrator to define name values by setting that "xxx-
1095 supported" attribute with any 'name' value(s).
1096
1097 6. The Get-Printer-Attributes operation only requires end-user access
1098 rights, while the Get-Printer-Supported-Values requires
1099 administrator access rights.
1100
1101 Access Rights: The authenticated user (see [RFC2911], section 8.3)
1102 performing this operation must be an administrator of the Printer
1103 object (see [RFC2911], Sections 1 and 8.5).
1104
1105 4.3.1 Definition of the usage of the 'admin-define' out-of-band
1106 attribute value
1107
1108 If the Set-Printer-Attributes operation allows the System
1109 Administrator to define arbitrary 'name' values for an "xxx-
1110 supported" attribute, then the Get-Printer-Supported-Values operation
1111 MUST return the 'admin-define' out-of-band attribute value (see
1112 section 8.3) as one of the values of the "xxx-supported" attribute.
1113 In other words, the 'admin-define' out-of-band attribute value
1114 indicates that the Printer implementation supports clients setting
1115 arbitrary 'name' attribute syntax values for that "xxx-supported"
1116 attribute using the Set-Printer-Attributes operation, as long as the
1117 attribute is defined with the 'name' attribute syntax.
1118
1119
1120
1121
1122 Hastings, et. al. Standards Track [Page 20]
1123 \f
1124 RFC 3380 IPP: Job and Printer Set Operations September 2002
1125
1126
1127 For example, if the Get-Printer-Supported-Values operation returns
1128 several keywords as the value of the "media-supported" attribute,
1129 then the Set-Printer-Attributes operation MUST accept any of these
1130 keywords as values for the "media-supported" attribute. If the Get-
1131 Printer-Supported-Values operation returns an 'admin-define' out-of-
1132 band attribute value as one of the values of the "media-supported"
1133 attribute, then the Set-Printer-Attributes operation MUST accept any
1134 value whose attribute syntax is 'name', as a value for the "media-
1135 supported" attribute (provided that the user is properly
1136 authenticated to use the Set-Printer-Attributes operation, e.g., has
1137 administrative access rights).
1138
1139 The Get-Printer-Supported-Values MAY return the 'admin-define' out-
1140 of-band attribute value for any IPP/1.1 or extension Job Template
1141 attribute if the implementation supports allowing the System
1142 Administrator to add values to the "xxx-supported" attribute using
1143 the Set-Printer-Attributes operation. In this case, the Printer MUST
1144 accept any 'name' value of the correct attribute syntax in a Set-
1145 Printer-Attributes operation that is setting that attribute. For
1146 "xxx-supported" attributes that are defined with a choice of
1147 attribute syntaxes, such as 'keyword | name', it is the 'name'
1148 attribute syntax that the System Administrator can use to add new
1149 values, not the 'keyword' attribute syntax. For IPP/1.1, this
1150 requirement includes the following Job Template attributes:
1151
1152 media-supported
1153 job-hold-until-supported
1154 job-sheets-supported
1155
1156 Implementations that support additional Job Template attributes that
1157 include the 'name' attribute syntax, MAY use the 'admin-define' out-
1158 of-band value with them.
1159
1160 If the 'admin-define' out-of-band attribute value is not one of the
1161 values of an "xxx-supported" attribute returned in a Get-Printer-
1162 Supported-Values response, then the Printer MUST NOT allow the Set-
1163 Printer-Attributes operation for that attribute to contain a value
1164 that is not one of the explicit 'keyword' or 'name' values returned
1165 in a Get-Printer-Supported-Values response.
1166
1167 See Appendix B: Attributes returned from Get-Printer-Supported-Values
1168 for a full list of values returned by this operation.
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178 Hastings, et. al. Standards Track [Page 21]
1179 \f
1180 RFC 3380 IPP: Job and Printer Set Operations September 2002
1181
1182
1183 5 New Operation attributes
1184
1185 This section defines new operation attributes for use with the
1186 IPP/1.1 operations indicated. As new operations are defined, they
1187 will also indicate explicitly whether these operation attributes are
1188 defined for use with them.
1189
1190 5.1 printer-message-from-operator (text(127))
1191
1192 The Printer SHOULD support this Operation attribute in following
1193 operations if it supports the corresponding "printer-message-from-
1194 operator" Printer Description attribute.
1195
1196 Pause-Printer
1197 Resume-Printer
1198 Purge-Jobs
1199
1200 The client OPTIONALLY supplies this Operation attribute in the above
1201 operations. The value of this attribute is a message from the
1202 operator about the Printer object on which the operator is performing
1203 the operation. If this operation attribute is supported, the Printer
1204 copies the value to its "printer-message-from-operator" Printer
1205 Description attribute (see [RFC2911], section 4.4.25), even if this
1206 Operation attribute is a zero-length text value or consists solely of
1207 white space.
1208
1209 If the Printer supports this operation attribute, it MUST support
1210 both a zero-length text value and the 'no-value' out-of-band value
1211 (see [RFC2911] section 4.1) to indicate that the operator has sent no
1212 message. In this case, the Printer sets the value of the "printer-
1213 message-from-operator" to the zero-length value or 'no-value' out-
1214 of-band value, respectively. If the client queries the "printer-
1215 message-from-operator" Printer attribute, the Printer returns the
1216 attribute with the zero-length value or the 'no-value' value,
1217 respectively.
1218
1219 In addition, the Printer automatically copies:
1220
1221 1. the value of its "printer-up-time" attribute (see [RFC2911],
1222 section 4.4.29) to its "printer-message-time" attribute,
1223
1224 2. the value of its printer-current-time" (dateTime) attribute (see
1225 [RFC2911], section 4.4.30) to its "printer-message-date-time"
1226 attribute, if supported.
1227
1228
1229
1230
1231
1232
1233
1234 Hastings, et. al. Standards Track [Page 22]
1235 \f
1236 RFC 3380 IPP: Job and Printer Set Operations September 2002
1237
1238
1239 If the client omits this operation attribute, the Printer does not
1240 change the value of its "printer-message-from-operator", "printer-
1241 message-time" and "printer-message-date-time" Printer Description
1242 attributes.
1243
1244 The "printer-message-from-operator" operation attribute MUST NOT be
1245 supported as an operation attribute for the Set-Printer-Attributes
1246 operation. If the operator wants to set the Printer's "printer-
1247 message-from-operator" Printer Description attribute when issuing the
1248 Set-Printer-Attributes operation, the client supplies the "printer-
1249 message-from-operator" explicitly with its new value as one of the
1250 Printer Description attributes in Group 2 in the request; the Printer
1251 also updates its "printer-message-time" and "printer-message-date-
1252 time" Printer Description attributes. If the client does not
1253 explicitly supply the "printer-message-from-operator" with its new
1254 value in the Set-Printer-Attributes request, the Printer leaves the
1255 value of the Printer's "printer-message-from-operator" Printer
1256 Description attribute unchanged.
1257
1258 5.2 job-message-from-operator (text(127))
1259
1260 The Printer SHOULD support this Operation attribute in following
1261 operations if it supports the corresponding "job-message-from-
1262 operator" Job Description attribute.
1263
1264 Cancel-Job
1265 Hold-Job
1266 Release-Job
1267 Restart-Job
1268
1269 The client OPTIONALLY supplies this attribute in the above
1270 operations. The value of this attribute is a message from the
1271 operator about the Job object on which the operator has just
1272 performed an operation. If supported, the Printer copies the value
1273 to the Job's "job-message-from-operator" Job Description attribute
1274 (see [RFC2911], section 4.3.16) (even if this Operation attribute is
1275 a zero-length text value or consists solely of white space).
1276
1277 If the Printer supports this operation attribute, it MUST support
1278 both a zero-length text value and the 'no-value' out-of-band value
1279 (see [RFC2911], section 4.1), to indicate that the operator has sent
1280 no message. In this case, the Printer sets the value of the "job-
1281 message-from-operator" to the zero-length value or 'no-value' out-
1282 of-band value, respectively. If the client queries the "job-
1283 message-from-operator" Job attribute, the IPP object returns the
1284 attribute with the zero-length value or the 'no-value' value,
1285 respectively.
1286
1287
1288
1289
1290 Hastings, et. al. Standards Track [Page 23]
1291 \f
1292 RFC 3380 IPP: Job and Printer Set Operations September 2002
1293
1294
1295 If the client omits this attribute, the Printer does not change the
1296 value of its "job-message-from-operator" Job Description attribute.
1297
1298 Note: There are no corresponding 'job-message-time" and "job-
1299 message-date-time" Job Description attributes, since the usual
1300 lifetime of a job is limited.
1301
1302 The "job-message-from-operator" operation attribute MUST NOT be
1303 supported as an operation attribute for the Set-Job-Attributes
1304 operation. If the operator wants to set the Job's "job-message-
1305 from-operator" Job Description attribute when issuing the Set-Job-
1306 Attributes operation, the client MUST supply the "job-message-from-
1307 operator" with its new value as one of the Job Description attributes
1308 in Group 2 in the request. Otherwise, the Printer leaves the value
1309 of the Job's "job-message-from-operator" Job Description attribute
1310 unchanged by not explicitly setting the attribute. If the client
1311 does not explicitly supply the "job-message-from-operator" with its
1312 new value in the Set-Job-Attributes request, the Printer leaves the
1313 value of the Job's "job-message-from-operator" Job Description
1314 attribute unchanged.
1315
1316 6 New Printer Description Attributes
1317
1318 The following new Printer Description attributes are needed to
1319 support the new operations defined in this document.
1320
1321 6.1 printer-settable-attributes-supported (1setOf type2 keyword)
1322
1323 This REQUIRED READ-ONLY Printer Description attribute identifies the
1324 Printer object attributes that are settable in this implementation,
1325 i.e., that are settable using the Set-Printer-Attributes operations
1326 (see section 4.1). This attribute MUST be supported if the Set-
1327 Printer-Attributes operations is supported. The Printer MUST reject
1328 attempts to set any Printer attributes that are not one of the values
1329 of this attribute, returning the 'client-error-attributes-not-
1330 settable' status code (see section 7.1). The value of this attribute
1331 MAY depend on the value of the "document-format" operation attribute
1332 supplied in the Get-Printer-Attributes operation (see [RFC2911],
1333 section 3.2.5.1).
1334
1335 Standard keyword values are:
1336
1337 'none': There are no settable Printer attributes.
1338 'xxx': Where 'xxx' is any of the keyword attribute names allowed
1339 by section 4.1.1.
1340
1341
1342
1343
1344
1345
1346 Hastings, et. al. Standards Track [Page 24]
1347 \f
1348 RFC 3380 IPP: Job and Printer Set Operations September 2002
1349
1350
1351 6.2 job-settable-attributes-supported (1setOf type2 keyword)
1352
1353 This REQUIRED READ-ONLY Printer Description attribute identifies the
1354 Job object attributes that are settable in this implementation, i.e.,
1355 that are settable using the Set-Job-Attributes operation (see section
1356 4.2). This attribute MUST be supported if the Set-Job-Attributes
1357 operations are supported. The Printer MUST reject attempts to set
1358 any Job attributes that are not one of the values of this attribute,
1359 returning the 'client-error-attributes-not-settable' status code (see
1360 section 7.1).
1361
1362 Standard keyword values are:
1363
1364 'none': There are no settable Job attributes.
1365 'xxx': Where 'xxx' is any of the keyword attribute names allowed
1366 by section 4.2.1.
1367
1368 6.3 document-format-varying-attributes (1setOf type2 keyword)
1369
1370 This OPTIONAL READ-ONLY Printer Description attribute contains a set
1371 of attribute name keywords. This attribute SHOULD be supported by a
1372 Printer object if the Printer object has Printer attributes whose
1373 value vary depending on document format (see [RFC2911], Get-Printer-
1374 Attributes operation). This attribute specifies which attribute
1375 values can vary by document-format. If an attribute's name, "xxx",
1376 is a member of this attribute and the value of attribute "xxx" is
1377 changed with the Set-Printer-Attributes operation that included the
1378 "document-format" operation attribute, then the Printer MUST change
1379 the value for the specified document format and no other document
1380 formats (see section 4.1.2). If an attribute's name, "xxx", is not a
1381 member of this attribute and the value of attribute "xxx" is changed
1382 with the Set-Printer-Attributes operation, then the attribute is
1383 changed for all document formats (whether or not the client supplied
1384 the "document-format" operation attribute).
1385
1386 6.4 printer-message-time (integer(MIN:MAX))
1387
1388 This OPTIONAL READ-ONLY Printer Description attribute contains the
1389 time that the Printer's "printer-message-from-operator" was changed
1390 by the operator using any operation where the client supplied the
1391 "printer-message-from-operator" operation attribute (see section 5.1)
1392 or was explicitly set using the Set-Printer-Attributes operation (see
1393 section 4.1). This attribute allows the users to know when the
1394 "printer-message-from-operator" Printer Description attribute was
1395 last set.
1396
1397
1398
1399
1400
1401
1402 Hastings, et. al. Standards Track [Page 25]
1403 \f
1404 RFC 3380 IPP: Job and Printer Set Operations September 2002
1405
1406
1407 The Printer sets the value of this attribute by copying the value of
1408 the Printer's "printer-up-time" attribute (see [RFC2911], section
1409 4.3.14). If the Printer resets its "printer-up-time" attribute to 1
1410 on power-up, then it MUST change the value of the "printer-message-
1411 time" to 0 or a negative number as specified in [RFC2911], section
1412 4.3.14.
1413
1414 Note: This attribute helps users better understand the context for
1415 the "printer-message-from-operator" message.
1416
1417 6.5 printer-message-date-time (dateTime)
1418
1419 This OPTIONAL READ-ONLY Printer Description attribute contains the
1420 date and time that the Printer's "printer-message-from-operator" was
1421 changed by the operator, using any operation where the client
1422 supplied the "printer-message-from-operator" operation attribute (see
1423 section 5.1) or was explicitly set using the Set-Printer-Attributes
1424 operation (see section 4.1). This attribute allows the users to know
1425 when the "printer-message-from-operator" Printer Description
1426 attribute was last set.
1427
1428 This attribute MUST be supported if the Printer supports both the
1429 "printer-message-time" and the "printer-current-time" (dateTime)
1430 attributes (see [RFC2911], section 4.4.30).
1431
1432 Note: This attribute helps users better understand the context for
1433 the "printer-message-from-operator" message.
1434
1435 6.6 printer-xri-supported (1setOf collection)
1436
1437 This OPTIONAL Printer Description attribute is a multi-valued
1438 attribute where each value has the 'collection' attribute syntax (see
1439 [RFC3382]), containing member attributes with the same semantics as
1440 the following IPP/1.1 READ-ONLY Printer Description attributes,
1441 except for cardinality:
1442
1443 printer-uri-supported (1setOf uri)
1444 - see [RFC2911], section 4.4.1
1445 uri-authentication-supported (1setOf type2 keyword)
1446 - see [RFC2911], section 4.4.2.
1447 uri-security-supported (1setOf type2 keyword)
1448 - see [RFC2911], section 4.4.3.
1449
1450 When setting the "printer-xri-supported" attribute with a Set-
1451 Printer-Attributes request, the Printer MUST also set these three
1452 IPP/1.1 READ-ONLY Printer Description attributes as a defined side
1453
1454
1455
1456
1457
1458 Hastings, et. al. Standards Track [Page 26]
1459 \f
1460 RFC 3380 IPP: Job and Printer Set Operations September 2002
1461
1462
1463 effect. Thus, this collection attribute provides the means to set
1464 these three IPP/1.1 READ-ONLY attributes atomically so that they are
1465 never left in a partially inconsistent state.
1466
1467 An IPP Printer MUST NOT provide any other way, using IPP, to set
1468 these three IPP/1.1 READ-ONLY Printer Description attributes, since
1469 they are READ-ONLY and MUST have consistent values at all times.
1470 Note: The "printer-xri-supported" (1setOf collection) attribute can
1471 be put into a directory schema that requires a single text string
1472 value, such as could be used with SLPv2 [RFC2608], [RFC2609] or
1473 LDAPv3 [RFC2251], [RFC2252], [RFC2926], by using suitable delimiting
1474 characters to separate member attributes of the collection and/or
1475 terminating collection values.
1476
1477 The member attributes of the "printer-xri-supported" (1setOf
1478 collection) are given in Table 3.
1479
1480 Table 3 - Member attributes of "printer-xri-supported" (1setOf
1481 collection)
1482
1483 Member attribute client Printer
1484 MUST MUST
1485 supply support
1486
1487 xri-uri (uri) yes yes
1488
1489 xri-authentication (type2 keyword) yes yes
1490
1491 xri-security (type2 keyword) yes yes
1492
1493 Other than the uniqueness and the cardinality requirements, the
1494 semantics of these three member attributes is given in [RFC2911]
1495 sections 4.4.1, 4.4.2, and 4.4.3, respectively.
1496
1497 A client can query the current values using the Get-Printer-
1498 Attributes operation by supplying either:
1499
1500 1. the three IPP/1.1 attribute names: "printer-uri-supported", "uri-
1501 authentication-supported", "uri-security-supported" and getting
1502 back the parallel values OR
1503
1504 2. the single attribute name: "printer-xri-supported" and getting
1505 back the 1setOf collection which contains the same information
1506 semantically, but in a different form.
1507
1508 A client can query what member attribute values can be set by
1509 supplying the three attribute names: "xri-uri-scheme-supported",
1510 "xri-authentication-supported", and "xri-security-supported" in a
1511
1512
1513
1514 Hastings, et. al. Standards Track [Page 27]
1515 \f
1516 RFC 3380 IPP: Job and Printer Set Operations September 2002
1517
1518
1519 Get-Printer-Supported-Values request and getting back the uriScheme
1520 and type2 keyword values that can be set. Since the "printer-xri-
1521 supported", "uri-authentication-supported", and "uri-security-
1522 supported" attributes are READ-ONLY, they are not queriable with the
1523 Get-Printer-Supported-Values operation (see section 4.3). See Table
1524 16.
1525
1526 For example:
1527
1528 "printer-xri-supported =
1529 { "xri-uri" = ipp://abc.com/p1
1530 "xri-authentication" = basic
1531 "xri-security" = tls
1532 },
1533 { "xri-uri" = ipp://abc.com/p2
1534 "xri-authentication" = digest
1535 "xri-security" = tls
1536 },
1537 { "xri-uri" = ipp://abc.com/p3
1538 "xri-authentication" = none
1539 "xri-security" = none
1540 }
1541
1542 would cause the Printer to set the three corresponding IPP/1.1 READ-
1543 ONLY attributes, each with three parallel values as follows:
1544
1545 "printer-uri-supported" = { ipp://abc.com/p1, ipp://abc.com/p2,
1546 ipp://abc.com/p3 }
1547 "uri-authentication-supported" = { basic, digest, none }
1548 "uri-security-supported" = { tls, tls, none }
1549
1550 6.7 xri-uri-scheme-supported (1setOf uriScheme)
1551
1552 This OPTIONAL READ-ONLY Printer Description attribute identifies the
1553 URI schemes that the implementation supports for use in the
1554 "printer-uri-supported" (1setOf uri) Printer Description attribute
1555 (see [RFC2911] section 4.4.1) and the "xri-uri" member attribute of
1556 the "printer-xri-supported" (1setOf collection) Printer Description
1557 attribute (see section 6.6).
1558
1559 A Printer MUST support this attribute if it supports the setting of
1560 the "printer-xri-supported" (1setOf collection) with the Set-
1561 Printer-Attributes operation.
1562
1563
1564
1565
1566
1567
1568
1569
1570 Hastings, et. al. Standards Track [Page 28]
1571 \f
1572 RFC 3380 IPP: Job and Printer Set Operations September 2002
1573
1574
1575 6.8 xri-authentication-supported (1setOf type2 keyword)
1576
1577 This OPTIONAL READ-ONLY Printer Description attribute identifies the
1578 Client Authentication mechanisms that the implementation supports for
1579 use in the "uri-authentication-supported" (1setOf type2 keyword)
1580 Printer Description attribute (see [RFC2911], section 4.4.2) and the
1581 "xri-authentication" member attribute of the "printer-xri-supported"
1582 (1setOf collection) Printer Description attribute (see section 6.6).
1583
1584 A Printer MUST support this attribute if it supports setting the
1585 "printer-xri-supported" (1setOf collection) with the Set-Printer-
1586 Attributes operation.
1587
1588 6.9 xri-security-supported (1setOf type2 keyword)
1589
1590 This OPTIONAL READ-ONLY Printer Description attribute identifies the
1591 URI schemes that the implementation supports for use in the "uri-
1592 security-supported" (1setOf type2 keyword) Printer Description
1593 attribute (see [RFC2911], section 4.4.3) and the "xri-security"
1594 member attribute of the "printer-xri-supported" (1setOf collection)
1595 Printer Description attribute (see section 6.6).
1596
1597 A Printer MUST support this attribute if it supports setting the
1598 "printer-xri-supported" (1setOf collection) with the Set-Printer-
1599 Attributes operation.
1600
1601 7 Additional status codes
1602
1603 This section defines new status codes used by the operations defined
1604 in this document.
1605
1606 7.1 client-error-attributes-not-settable (0x0413)
1607
1608 The Set-Printer-Attributes or Set-Job-Attributes operation failed
1609 because one or more of the specified attributes cannot be set, either
1610 because the attribute is defined to be READ-ONLY or the attribute is
1611 not settable in this implementation (see sections 4.1.3 and 4.2.3).
1612 The Printer MUST return this error code and the attribute keyword
1613 name(s) and the 'not-settable' out-of-band value (see section 8.1) in
1614 the Unsupported Attributes Group (see [RFC2911], section 3.1.7) for
1615 all of the attributes that could not be set. When the Printer
1616 returns this status, it MUST NOT change any of the attributes
1617 supplied in the operation.
1618
1619
1620
1621
1622
1623
1624
1625
1626 Hastings, et. al. Standards Track [Page 29]
1627 \f
1628 RFC 3380 IPP: Job and Printer Set Operations September 2002
1629
1630
1631 8 Additional out-of-band values
1632
1633 This section defines additional out-of-band values. As with all
1634 out-of-band values, a client or a Printer MUST NOT use an out-of-band
1635 value unless the definition of the attribute in an operation request
1636 and/or response explicitly allows such usage. See the beginning of
1637 [RFC2911], section 4.1.
1638
1639 8.1 'not-settable' out-of-band value
1640
1641 The 'not-settable' out-of-band attribute value is returned by the IPP
1642 Printer in the Unsupported Attributes group of a response to indicate
1643 that the attribute supplied by the client in the request is READ-ONLY
1644 by definition or is not settable in this implementation.
1645
1646 The 'not-settable' out-of-band attribute value is defined for use
1647 with the Set-Job-Attributes and Set-Printer-Attributes responses
1648 only. If a future additional "set" operation allows the 'not-
1649 settable' out-of-band value, its definition document MUST indicate
1650 such use explicitly, including with which attributes.
1651
1652 An IPP object MUST support the 'not-settable' out-of-band value in a
1653 Set-Job-Attributes or Set-Printer-Attributes request if it supports
1654 those operations. A client MUST NOT supply the 'not-settable' out-
1655 of-band value in any request. An IPP object MUST NOT support the
1656 'not-settable' out-of-band value in other operations, unless the
1657 operations' definition document explicitly defines such usage. If a
1658 Printer receives this out-of-band value in any operation request, the
1659 Printer MUST either (1) reject the entire request and return the
1660 'client-error-bad-request' status code or (2) ignore the attribute
1661 and return it with the 'unsupported' out-of-band value.
1662
1663 See sections 4.1.3 and 4.2.3 in this document for an example
1664 definition of the usage of the 'not-settable' out-of-band value in
1665 the Set-Printer-Attributes and Set-Job-Attributes responses.
1666
1667 8.1.1 Encoding of the 'not-settable' out-of-band attribute value
1668
1669 The encoding of the 'not-settable' out-of-band value is 0x15 (see
1670 [RFC2910]). The value-length MUST be 0 and the value empty.
1671
1672 8.2 'delete-attribute' out-of-band value
1673
1674 The 'delete-attribute' out-of-band attribute value is supplied by the
1675 client in a request to indicate that the Printer is to remove the
1676 supplied attribute and all of its values from the target object, if
1677 present.
1678
1679
1680
1681
1682 Hastings, et. al. Standards Track [Page 30]
1683 \f
1684 RFC 3380 IPP: Job and Printer Set Operations September 2002
1685
1686
1687 The 'delete-attribute' out-of-band attribute value is defined for use
1688 with the Set-Job-Attributes request only. If a future additional
1689 "set" operation allows the 'delete-attribute' out-of-band value, its
1690 definition document MUST indicate such use explicitly, including with
1691 which attributes.
1692
1693 An IPP Printer MUST support the 'delete-attribute' out-of-band value
1694 if it supports the Set-Job-Attributes operation. A client MUST NOT
1695 supply, and an IPP object MUST NOT support, the 'delete-attribute'
1696 out-of-band value in other operations, unless the operations'
1697 definition document explicitly defines such usage. For example, the
1698 'delete-attribute' out-of-band value MUST NOT be used in the Set-
1699 Printer-Attributes operation, where the absence of an attribute from
1700 an IPP object indicates that the attribute is not supported. If a
1701 Printer receives this out-of-band value in other operation requests,
1702 the Printer MUST either (1) reject the entire request and return the
1703 'client-error-bad-request' status code or (2) ignore the attribute
1704 and return it with the 'unsupported' out-of-band value.
1705
1706 See section 4.2 in this document for the definition of the usage of
1707 the 'delete-attribute' out-of-band value in the Set-Job-Attributes
1708 request.
1709
1710 8.2.1 Encoding of the 'delete-attribute' out-of-band value
1711
1712 The encoding of the 'delete-attribute' out-of-band value is 0x16 (see
1713 [RFC2910]). The value-length MUST be 0 and the value empty.
1714
1715 8.3 'admin-define' out-of-band attribute value
1716
1717 Section 4.3 defines the Get-Printer-Supported-Values response to
1718 contain the values of an "xxx-supported" attribute that are supported
1719 by the implementation before any additional values are defined by the
1720 administrator. The 'admin-define' out-of-band attribute value is
1721 returned as an additional value of an "xxx-supported" attribute in a
1722 Get-Printer-Supported-Values response to indicate that the
1723 implementation supports allowing an administrator to define
1724 additional arbitrary 'name' values for that "xxx-supported"
1725 attribute.
1726
1727 For example, if the "media-supported" (1setOf (type3 keyword | name))
1728 attribute contains this value, then the Printer MUST permit an
1729 administrator to add new media names to the Printer's "media-
1730 supported" attribute. In order for an administrator to add new
1731 values to a Printer's "xxx-supported" attribute, the client supplies
1732 the existing and new values in a Set-Printer-Attributes request for
1733
1734
1735
1736
1737
1738 Hastings, et. al. Standards Track [Page 31]
1739 \f
1740 RFC 3380 IPP: Job and Printer Set Operations September 2002
1741
1742
1743 that attribute. The client MUST supply any such administratively
1744 defined values in the Set-Printer-Attributes request, using the
1745 'name' attribute syntax.
1746
1747 The 'admin-define' out-of-band attribute value is defined for use
1748 with the Get-Printer-Supported-Values response only. A Printer MUST
1749 NOT return the 'admin-define' out-of-band value in a Get-Printer-
1750 Attributes response, since such a response indicates what an end-user
1751 client can supply in a Job Creation operation. If a future
1752 additional "get" operation allows the 'admin-define' out-of-band
1753 value, its definition document MUST indicate such use explicitly,
1754 including with which attributes.
1755
1756 An IPP Printer MUST support the 'admin-define' out-of-band value, if
1757 it supports a client setting arbitrary 'name' values of an "xxx-
1758 supported" Printer attribute using the Set-Printer-Attributes
1759 operation. A client MUST NOT supply the 'admin-define' out-of-band
1760 value in any request. An IPP object MUST NOT support the 'admin-
1761 define' out-of-band value in other operations, unless the operations'
1762 definition document explicitly defines such usage. If a Printer
1763 receives this out-of-band value in any operation request, the Printer
1764 MUST either (1) reject the entire request and return the 'client-
1765 error-bad-request' status code or (2) ignore the attribute and return
1766 it with the 'unsupported' out-of-band value.
1767
1768 This document defines that the 'admin-define' out-of-band value MUST
1769 be used only with "xxx-supported" attributes that are defined to
1770 include the 'name' attribute syntax. This out-of-band value is not
1771 intended to be used with "xxx-supported" attributes of other
1772 attribute syntaxes, such as 'uri', even though the administrator
1773 defines arbitrary values for such attributes. If other documents
1774 extend the use of the 'admin-define' out-of-band value to other
1775 attribute syntaxes, such a document MUST define such use explicitly,
1776 including with which attributes.
1777
1778 See section 4.3 in this document for an example definition of the
1779 usage of the 'admin-define' out-of-band attribute value in any "xxx-
1780 supported" attribute returned in a Get-Printer-Supported-Values
1781 response that is defined to include the 'name' attribute syntax.
1782
1783 8.3.1 Encoding of the 'admin-define' out-of-band attribute value
1784
1785 The encoding of the 'admin-define' out-of-band attribute value is
1786 0x17 (see [RFC2910]). The value-length MUST be 0 and the value
1787 empty.
1788
1789
1790
1791
1792
1793
1794 Hastings, et. al. Standards Track [Page 32]
1795 \f
1796 RFC 3380 IPP: Job and Printer Set Operations September 2002
1797
1798
1799 9 New Values for Existing Printer Description Attributes
1800
1801 This section contains those attributes for which additional values
1802 are added.
1803
1804 9.1 operations-supported (1setOf type2 enum)
1805
1806 The following "operation-id" values are added in order to support the
1807 new operations defined in this document:
1808
1809 Table 4 - Operation-id assignments
1810
1811 Value Operation Name
1812
1813 0x0013 Set-Printer-Attributes
1814
1815 0x0014 Set-Job-Attributes
1816
1817 0x0015 Get-Printer-Supported-Values
1818
1819 10 Conformance Requirements
1820
1821 This section specifies the conformance requirements for clients and
1822 IPP objects.
1823
1824 Both the Set-Job-Attributes and the Set-Printer-Attributes operations
1825 defined in the document are OPTIONAL for an IPP object to support.
1826 Either one MAY be supported without the other or both MAY be
1827 supported. However, if the Set-Printer-Attributes operation is
1828 supported, then the Get-Printer-Supported-Values operation MUST be
1829 supported if any "xxx-supported" attributes are settable. Otherwise,
1830 the Get-Printer-Supported-Values operation is OPTIONAL for an IPP
1831 Printer to support.
1832
1833 If the Set-Printer-Attributes operation is supported, then the
1834 Printer MUST support the following additional items:
1835
1836 1. the Get-Printer-Supported-Values operation (see section 5), if
1837 any "xxx-supported" attributes are settable.
1838
1839 2. the "printer-settable-attributes-supported" Printer Description
1840 attribute (see section 6.1).
1841
1842 3. the 'not-settable' out-of-band value in responses (see section
1843 8.1).
1844
1845 4. the 'client-error-not-settable' status code (see section 7.1).
1846
1847
1848
1849
1850 Hastings, et. al. Standards Track [Page 33]
1851 \f
1852 RFC 3380 IPP: Job and Printer Set Operations September 2002
1853
1854
1855 5. if the "printer-message-from-operator" Printer Description
1856 attribute is supported (see [RFC2911], section 4.4.25), then it
1857 MUST be settable.
1858
1859 6. the Get-Printer-Supported-Values operation (see section 4.3),
1860 if any "xxx-supported" attributes are settable.
1861
1862 7. If a client can set a value with the 'name' attribute syntax
1863 for one or more "xxx-supported" attributes, then the 'admin-
1864 define' out-of-band attribute value (see section 8.3) MUST be
1865 supported in the Get-Printer-Supported-Values response for each
1866 such settable attribute (see section 4.3)
1867
1868 If the Set-Job-Attributes operation is supported, then the Printer
1869 MUST support the following additional items:
1870
1871 1. the "job-settable-attributes-supported" Printer Description
1872 attribute (see section 6.2).
1873
1874 2. the 'not-settable' out-of-band value in responses (see section
1875 8.1).
1876
1877 3. the 'delete-attribute' out-of-band value in requests (see
1878 section 8.2).
1879
1880 4. the 'client-error-not-settable' status code (see section 7.1).
1881
1882 5. if the "job-message-from-operator" Printer Description
1883 attribute is supported (see [RFC2911], 4.3.16), then it MUST be
1884 settable.
1885
1886 It is OPTIONAL for the Printer object to support the "printer-
1887 message-time" (integer) and "printer-message-date-time" (dateTime)
1888 Printer Description attributes. If both the "printer-message-time"
1889 (integer) and the "printer-current-time" (dateTime) (see [RFC2911],
1890 section 4.4.30) attributes are supported, then the "printer-message-
1891 date-time" (dateTime) Printer Description attribute MUST be
1892 supported.
1893
1894 As with all out-of-band values, a client or a Printer MUST NOT use an
1895 out-of-band value, unless the definition document for the attribute
1896 in an operation request and/or response explicitly allows such usage.
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906 Hastings, et. al. Standards Track [Page 34]
1907 \f
1908 RFC 3380 IPP: Job and Printer Set Operations September 2002
1909
1910
1911 11 IANA Considerations
1912
1913 This section contains registration information for IANA to add to the
1914 various IPP Registries according to the procedures defined in RFC
1915 2911 [RFC2911], section 6. The resulting registrations will be
1916 published in the http://www.iana.org/assignments/ipp-registrations
1917 registry.
1918
1919 11.1 Operation Registrations
1920
1921 The following table lists all of the operations defined in this
1922 document. These are to be registered according to the procedures
1923 defined in RFC 2911 [RFC2911], section 6.4.
1924
1925 Operations: Ref. Section:
1926 Set-Printer-Attributes RFC 3380 4.1
1927 Set-Job-Attributes RFC 3380 4.2
1928 Get-Printer-Supported-Values RFC 3380 4.3
1929
1930 11.2 Additional Enum Attribute Value Registrations for the
1931 "operations-supported" Printer Attribute
1932
1933 The following table lists all the new enum attribute values defined
1934 in this document as additional type2 enum values for use with the
1935 "operations-supported" Printer Description attribute. These are to
1936 be registered according to the procedures defined in RFC 2911 [RFC
1937 2911], section 6.1.
1938
1939 Enum Attribute Values: Value Ref. Section:
1940 Set-Printer-Attributes 0x0013 RFC 3380 4
1941 Set-Job-Attributes 0x0014 RFC 3380 4
1942 Get-Printer-Supported-Values 0x0015 RFC 3380 4
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962 Hastings, et. al. Standards Track [Page 35]
1963 \f
1964 RFC 3380 IPP: Job and Printer Set Operations September 2002
1965
1966
1967 11.3 Keyword attribute value registrations
1968
1969 The following table lists all of the attributes defined in this
1970 standard which have keywords values defined:
1971
1972 printer-settable-attributes-supported (1setOf type2 keyword)
1973 RFC 3380 6.1
1974 none RFC 3380 6.1
1975 <Any other Printer attribute keyword name>
1976 job-settable-attributes-supported (1setOf type2 keyword)
1977 RFC 3380 6.2
1978 none RFC 3380 6.2
1979 <Any other Job attribute keyword name>
1980 document-format-varying-attributes (1setOf type2 keyword)
1981 RFC 3380 6.3
1982 none
1983 <Any Printer attribute keyword name>
1984 xri-security-supported (1setOf type2 keyword) RFC 3380 6.9
1985 none RFC 2911 4.4.3
1986 ssl3 RFC 2911 4.4.3
1987 tls' RFC 2911 4.4.3
1988 xri-authentication-supported (1setOf type2 keyword)
1989 none RFC 2911 4.4.2
1990 requesting-user-name RFC 2911 4.4.2
1991 basic RFC 2911 4.4.2
1992 digest RFC 2911 4.4.2
1993 certificate RFC 2911 4.4.2
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018 Hastings, et. al. Standards Track [Page 36]
2019 \f
2020 RFC 3380 IPP: Job and Printer Set Operations September 2002
2021
2022
2023 11.4 Attribute Registrations
2024
2025 The following table lists all of the attributes defined in this
2026 document. These are to be registered according to the procedures in
2027 RFC 2911 [RFC2911], section 6.2.
2028
2029 Operation attributes: Ref. Section:
2030 printer-message-from-operator (text(127)) RFC 3380 5.1
2031 job-message-from-operator (text(127)) RFC 3380 5.2
2032
2033 Printer Description attributes: Ref. Section:
2034 printer-settable-attributes-supported (1setOf type2 keyword)
2035 RFC 3380 6.1
2036 job-settable-attributes-supported (1setOf type2 keyword)
2037 RFC 3380 6.2
2038 document-format-varying-attributes (1setOf type2 keyword)
2039 RFC 3380 6.3
2040 printer-message-time (integer(MIN:MAX)) RFC 3380 6.4
2041 printer-message-date-time (dateTime) RFC 3380 6.5
2042 printer-xri-supported (1setOf collection) RFC 3380 6.6
2043 xri-uri (uri) RFC 3380 6.6
2044 xri-authentication (type2 keyword) RFC 3380 6.6
2045 xri-security (type2 keyword) RFC 3380 6.6
2046 xri-uri-scheme-supported (1setOf uriScheme) RFC 3380 6.7
2047 xri-authentication-supported (1setOf type2 keyword) 6.8
2048 xri-security-supported (1setOf type2 keyword) RFC 3380 6.9
2049
2050 11.5 Status code Registrations
2051
2052 The following table lists the status code defined in this document.
2053 This is to be registered according to the procedures in RFC 2911
2054 [RFC2911], section 6.6.
2055
2056 Status codes: Ref. Section:
2057 client-error-attributes-not-settable (0x0413) RFC 3380 7.1
2058
2059 11.6 Out-of-band Attribute Value Registrations
2060
2061 The following table lists all of the out-of-band attribute values
2062 defined in this document. These are to be registered according to
2063 the procedures in RFC 2911 [RFC2911] section 6.7.
2064
2065 Value: Out-of-band Attribute value name: Ref. Section:
2066 0x15 not-settable RFC 3380 8.1
2067 0x16 delete-attribute RFC 3380 8.2
2068 0x17 admin-define RFC 3380 8.3
2069
2070
2071
2072
2073
2074 Hastings, et. al. Standards Track [Page 37]
2075 \f
2076 RFC 3380 IPP: Job and Printer Set Operations September 2002
2077
2078
2079 12 Internationalization Considerations
2080
2081 This document has the same localization considerations as [RFC2911].
2082
2083 13 Security Considerations
2084
2085 The IPP Model and Semantics document ([RFC2911], section 8) discusses
2086 high level security requirements (Client Authentication, Server
2087 Authentication and Operation Privacy). Client Authentication is the
2088 mechanism by which the client proves its identity to the server in a
2089 secure manner. Server Authentication is the mechanism by which the
2090 server proves its identity to the client in a secure manner.
2091 Operation Privacy is defined as a mechanism for protecting operations
2092 from eavesdropping.
2093
2094 In addition, the introduction of the Set-Printer-Attributes and Set-
2095 Job-Attributes operations creates another security threat, since the
2096 client is able to modify the Printer and Job attributes stored in the
2097 Printer. Such modifications could lead to denial of service.
2098
2099 A malicious user could alter the policy established by the system
2100 administrator and stored in the Printer attributes. Such alteration
2101 could either grant access to more resources or deny access to
2102 resources that the system administrator has established. For
2103 example, the malicious user could remove all of the document-format
2104 values from the "document-format-supported" Printer attribute so that
2105 the Printer would refuse to accept all jobs.
2106
2107 The general remedy for such malicious user actions against Printer
2108 attributes is to have strong Client Authentication coupled with
2109 Printer access control, to limit the users who have System
2110 Administrator or Operator privileges.
2111
2112 A malicious user could modify the Job Template attributes of another
2113 user's Job, such as the "copies" attribute. For example, setting the
2114 number of copies to a large number.
2115
2116 The general remedy for such malicious user actions against another
2117 user's job is to have strong Client Authentication coupled with
2118 Printer access control to limit the users who have System
2119 Administrator or Operator privileges who can modify any job and, in
2120 addition, store the Client Authentication with each Job so that only
2121 the job owner End User can modify his/her own job.
2122
2123
2124
2125
2126
2127
2128
2129
2130 Hastings, et. al. Standards Track [Page 38]
2131 \f
2132 RFC 3380 IPP: Job and Printer Set Operations September 2002
2133
2134
2135 14 References
2136
2137 14.1 Normative References
2138
2139 [RFC2565] Herriot, R., Butler, S., Moore, P. and R. Tuner, "Internet
2140 Printing Protocol/1.0: Encoding and Transport", RFC 2565,
2141 April 1999.
2142
2143 [RFC2566] deBry, R., Hastings, T., Herriot, R., Isaacson, S. and P.
2144 Powell, "Internet Printing Protocol/1.0: Model and
2145 Semantics", RFC 2566, April 1999.
2146
2147 [RFC2910] Herriot, R., Butler, S., Moore, P. and R. Turner,
2148 "Internet Printing Protocol/1.1: Encoding and Transport",
2149 RFC 2910, September 2000.
2150
2151 [RFC2911] Hastings, T., Herriot, R., deBry, R., Isaacson, S. and P.
2152 Powell, "Internet Printing Protocol/1.0: Model and
2153 Semantics", RFC 2911, September 2000.
2154
2155 [RFC3382] deBry, R., Hastings, T., Herriot, R., Ocke, K. and P.
2156 Zehler, "Internet Printing Protocol (IPP): The
2157 'collection' attribute syntax", RFC 3382, September 2002.
2158
2159 14.2 Informative References
2160
2161 [RFC2251] Wahl, M., Howes, T. abd S. Kille, "Lightweight Directory
2162 Access Protocol (v3)", RFC 2251, December 1997.
2163
2164 [RFC2252] Wahl, M., Coulbeck, A., Howes, T. and S. Kille,
2165 "Lightweight Directory Access Protocol (v3): Attribute
2166 Syntax Definitions", RFC 2252, December 1997.
2167
2168 [RFC2608] Guttman, E., Perkins, C., Veizades, J. and M. Day,
2169 "Service Location Protocol, Version 2", RFC 2608, June
2170 1999.
2171
2172 [RFC2609] Guttman, E., Perkins, C. and J. Kempf, "Service Templates
2173 and service: Schemes", RFC 2609, June 1999.
2174
2175 [RFC3196] Hastings, T., Manros, C., Zehler, P., Kugler, C. and H.
2176 Holst, "Internet Printing Protocol/1.1: Implementor's
2177 Guide", RFC 3196, November 2001.
2178
2179
2180
2181
2182
2183
2184
2185
2186 Hastings, et. al. Standards Track [Page 39]
2187 \f
2188 RFC 3380 IPP: Job and Printer Set Operations September 2002
2189
2190
2191 Appendix A: Allowed Values for Set-Printer-Attributes and
2192 Set-Job-Attributes requests (Normative)
2193
2194 This appendix is a normative part of this document and contains a
2195 table of all IPP/1.1 attributes. Each row contains:
2196
2197 - an attribute and
2198
2199 - the values allowed in the Set-Printer-Attributes or Set-Job-
2200 Attributes request for the attribute. The entry in each cell
2201 is the name (first few words) of each item below 1, 2, 3, 4a-g,
2202 and 5.
2203
2204 The allowed values include the following cases:
2205
2206 1. READ-ONLY: the Set-Printer-Attributes or Set-Job-Attributes
2207 operation MUST NOT change this attribute and MUST reject the
2208 entire operation (see section 7.1).
2209
2210 2. Any of "xxx-supported": the Set-Printer-Attributes or Set-
2211 Job-Attributes operation accepts values that are allowed
2212 according to the IPP/1.1 rules for validating the value(s) of
2213 an "xxx" Printer or Job attribute against the value(s) of the
2214 corresponding "xxx-supported" Printer attribute. Table 5
2215 summarizes those validation rules depending on each attribute
2216 syntax and value of an "xxx" attribute supplied in the request
2217 and that of the corresponding "xxx-supported" Printer
2218 attribute. The "xxx-supported" attribute syntax type and
2219 value(s) are obtained from a Get-Printer-Supported-Values
2220 response (see the tables in this Appendix).
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242 Hastings, et. al. Standards Track [Page 40]
2243 \f
2244 RFC 3380 IPP: Job and Printer Set Operations September 2002
2245
2246
2247 Table 5 - Validation rules for 'Any of "xxx-supported" '
2248
2249 Type of "xxx" Type of "xxx- Validates if:
2250 value to be supported" value
2251 set
2252
2253 integer rangeOfInteger each value is in one of the
2254 "xxx-supported" ranges
2255
2256 uri uriScheme each uri scheme matches one
2257 of the "xxx-supported"
2258 schemes
2259
2260 any boolean if the boolean "xxx-
2261 supported" is 'true'
2262
2263 any same type each value matches an "xxx-
2264 supported" value of the same
2265 type
2266
2267 For additional non-normative explanatory information see section
2268 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's Guide"
2269 [RFC3196].
2270
2271 3. From Get-Printer-Supported-Values: the Set-Printer-Attributes
2272 operation accepts values that are allowed according to the
2273 IPP/1.1 rules for validating the value(s) of an "xxx" Printer
2274 attribute against the value(s) of the corresponding "xxx-
2275 supported" Printer attribute. Table 6 summarizes those
2276 validation rules depending on each attribute syntax and value
2277 of an "xxx" attribute supplied in the request and that of the
2278 corresponding "xxx-supported" Printer attribute. The "xxx-
2279 supported" attribute syntax type and attribute value(s) are
2280 obtained from a Get-Printer-Supported-Values response (see
2281 Appendix B: Attributes returned from Get-Printer-Supported-
2282 Values below).
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298 Hastings, et. al. Standards Track [Page 41]
2299 \f
2300 RFC 3380 IPP: Job and Printer Set Operations September 2002
2301
2302
2303 Table 6 - Validation rules for 'From Get-Printer-Supported-Values'
2304
2305 Type of -
2306 "xxx" supported" value Validates if:
2307 value to
2308 be set Type of "xxx
2309
2310
2311 integer rangeOfInteger each 'integer' value is in one of
2312 the "xxx-supported" ranges
2313
2314 uri uriScheme the uri scheme of each value
2315 matches one of the "xxx-supported"
2316 schemes
2317
2318 any boolean if the boolean "xxx-supported" is
2319 'true'
2320
2321 name 'admin-define' any 'name' value matches
2322 out-of-band
2323 value
2324
2325 any same type each value matches an "xxx-
2326 supported" value of the same type
2327
2328 For additional non-normative explanatory information see section
2329 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's Guide"
2330 [RFC3196].
2331
2332 4. Any value of the proper attribute syntax: the Set-Printer-
2333 Attributes or Set-Job-Attributes operation accepts any value of
2334 the specified attribute syntax. The attribute syntaxes
2335 supported are enumerated below.
2336
2337 a. Any text(127)
2338 b. Any name(127)
2339 c. Any uri
2340 d. Any boolean
2341 e. Any positive integer
2342 f. Any dateTime
2343 g. 1setOf any uri
2344
2345 5. Combination of 'Any of "xxx-supported"' or 'Any name'. If a
2346 Printer implementation doesn't want to allow setting values
2347 indicated in this Appendix as "any xxx", it can make the value
2348 be not-settable.
2349
2350
2351
2352
2353
2354 Hastings, et. al. Standards Track [Page 42]
2355 \f
2356 RFC 3380 IPP: Job and Printer Set Operations September 2002
2357
2358
2359 Table 7 - Values allowed for Job Template Attributes in the
2360 Set-Job-Attributes Operation
2361
2362 Job Template Attributes Values allowed for
2363 Set
2364
2365 job-priority (integer(1:100)) Any of "xxx-
2366 supported"
2367
2368 job-hold-until (type3 keyword | name (MAX)) Any of "xxx-
2369 supported"
2370
2371 job-sheets (type3 keyword | name(MAX)) Any of "xxx-
2372 supported"
2373
2374 multiple-document-handling (type2 keyword) Any of "xxx-
2375 supported"
2376
2377 copies (integer(1:MAX)) Any of "xxx-
2378 supported"
2379
2380 finishings (1setOf type2 enum) Any of "xxx-
2381 supported"
2382
2383 page-ranges (1setOf rangeOfInteger (1:MAX)) Any of "xxx-
2384 supported"
2385
2386 sides (type2 keyword) Any of "xxx-
2387 supported"
2388
2389 number-up (integer(1:MAX)) Any of "xxx-
2390 supported"
2391
2392 orientation-requested (type2 enum) Any of "xxx-
2393 supported"
2394
2395 media (type3 keyword | name(MAX)) Any of "xxx-
2396 supported"
2397
2398 printer-resolution (resolution) Any of "xxx-
2399 supported"
2400
2401 print-quality (type2 enum) Any of "xxx-
2402 supported"
2403
2404
2405
2406
2407
2408
2409
2410 Hastings, et. al. Standards Track [Page 43]
2411 \f
2412 RFC 3380 IPP: Job and Printer Set Operations September 2002
2413
2414
2415 Table 8 - Values allowed for Job Description Attributes in the
2416 Set-Job-Attributes Operation
2417
2418 Job Description Attributes Values allowed for
2419 Set
2420
2421 job-uri (uri) READ-ONLY
2422
2423 job-id (integer(1:MAX)) READ-ONLY
2424
2425 job-printer-uri (uri) READ-ONLY
2426
2427 job-more-info (uri) READ-ONLY
2428
2429 job-name (name(MAX)) Any name(MAX)
2430
2431 job-originating-user-name (name(MAX)) READ-ONLY
2432
2433 job-state (type1 enum) READ-ONLY
2434
2435 job-state-reasons (1setOf type2 keyword) READ-ONLY
2436
2437 job-state-message (text(MAX)) READ-ONLY
2438
2439 job-detailed-status-messages (1setOf READ-ONLY
2440 text(MAX))
2441
2442 job-document-access-errors (1setOf READ-ONLY
2443 text(MAX))
2444
2445 number-of-documents (integer(0:MAX)) READ-ONLY
2446
2447 output-device-assigned (name(127)) READ-ONLY
2448
2449 time-at-creation (integer(MIN:MAX)) READ-ONLY
2450
2451 time-at-processing (integer(MIN:MAX)) READ-ONLY
2452
2453 time-at-completed (integer(MIN:MAX)) READ-ONLY
2454
2455 job-printer-up-time (integer(1:MAX)) READ-ONLY
2456
2457 date-time-at-creation (dateTime) READ-ONLY
2458
2459
2460
2461
2462
2463
2464
2465
2466 Hastings, et. al. Standards Track [Page 44]
2467 \f
2468 RFC 3380 IPP: Job and Printer Set Operations September 2002
2469
2470
2471 Job Description Attributes Values allowed for
2472 Set
2473
2474 date-time-at-processing (dateTime) READ-ONLY
2475
2476 date-time-at-completed (dateTime) READ-ONLY
2477
2478 number-of-intervening-jobs (integer(0:MAX)) READ-ONLY
2479
2480 job-message-from-operator (text(127)) Any text(127)
2481
2482 job-k-octets (integer(0:MAX)) READ-ONLY
2483
2484 job-impressions (integer(0:MAX)) READ-ONLY
2485
2486 job-media-sheets (integer(0:MAX)) READ-ONLY
2487
2488 job-k-octets-processed (integer(0:MAX)) READ-ONLY
2489
2490 job-impressions-completed (integer(0:MAX)) READ-ONLY
2491
2492 job-media-sheets-completed (integer(0:MAX)) READ-ONLY
2493
2494 attributes-charset (charset) READ-ONLY
2495
2496 attributes-natural-language READ-ONLY
2497 (naturalLanguage)
2498
2499 Table 9 - Values allowed for Printer Job Template Attributes in
2500 the Set-Printer-Attributes Operation
2501
2502 Printer Job Template Attributes Values allowed
2503 for Set
2504
2505 job-priority-default (integer(1:100)) Any of "xxx-
2506 supported"
2507
2508 job-hold-until-default (type3 keyword | name Any of "xxx-
2509 (MAX)) supported"
2510
2511 job-sheets-default (type3 keyword | name(MAX)) Any of "xxx-
2512 supported"
2513
2514 multiple-document-handling-default (type2 Any of "xxx-
2515 keyword) supported"
2516
2517 copies-default (integer(1:MAX)) Any of "xxx-
2518 supported"
2519
2520
2521
2522 Hastings, et. al. Standards Track [Page 45]
2523 \f
2524 RFC 3380 IPP: Job and Printer Set Operations September 2002
2525
2526
2527 Printer Job Template Attributes Values allowed
2528 for Set
2529
2530 finishings-default (1setOf type2 enum) Any of "xxx-
2531 supported"
2532
2533 sides-default (type2 keyword) Any of "xxx-
2534 supported"
2535
2536 number-up-default (integer(1:MAX)) Any of "xxx-
2537 supported"
2538
2539 orientation-requested-default (type2 enum) Any of "xxx-
2540 supported"
2541
2542 media-default (type3 keyword | name(MAX)) Any of "xxx-
2543 supported"
2544
2545 printer-resolution-default (resolution) Any of "xxx-
2546 supported"
2547
2548 print-quality-default (type2 enum) Any of "xxx-
2549 supported"
2550
2551 job-priority-supported (integer(1:100)) From Get-
2552 Printer-
2553 Supported-Values
2554
2555 job-hold-until-supported (1setOf(type3 keyword From Get-
2556 | name (MAX))) Printer-
2557 Supported-Values
2558
2559 job-sheets-supported (1setOf(type3 keyword | From Get-
2560 name(MAX))) Printer-
2561 Supported-Values
2562
2563 multiple-document-handling-supported (1setOf From Get-
2564 type2 keyword) Printer-
2565 Supported-Values
2566
2567 copies-supported (rangeOfInteger(1:MAX)) From Get-
2568 Printer-
2569 Supported-Values
2570
2571 finishings-supported (1setOf type2 enum) From Get-
2572 Printer-
2573 Supported-Values
2574
2575
2576
2577
2578 Hastings, et. al. Standards Track [Page 46]
2579 \f
2580 RFC 3380 IPP: Job and Printer Set Operations September 2002
2581
2582
2583 Printer Job Template Attributes Values allowed
2584 for Set
2585
2586 page-ranges-supported (boolean) From Get-
2587 Printer-
2588 Supported-Values
2589
2590 sides-supported (1setOf type2 keyword) From Get-
2591 Printer-
2592 Supported-Values
2593
2594 number-up-supported (1setOf (integer(1:MAX) | From Get-
2595 rangeOfInteger(1:MAX))) Printer-
2596 Supported-Values
2597
2598 orientation-requested-supported (1setOf type2 From Get-
2599 enum) Printer-
2600 Supported-Values
2601
2602 media-supported (1setOf (type3 keyword | From Get-
2603 name(MAX))) Printer-
2604 Supported-Values
2605
2606 printer-resolution-supported (1setOf From Get-
2607 resolution) Printer-
2608 Supported-Values
2609
2610 print-quality-supported (1setOf type2 enum) From Get-
2611 Printer-
2612 Supported-Values
2613
2614 media-ready (type3 keyword | name(MAX)) From Get-
2615 Printer-
2616 Supported-Values
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634 Hastings, et. al. Standards Track [Page 47]
2635 \f
2636 RFC 3380 IPP: Job and Printer Set Operations September 2002
2637
2638
2639 Table 10 - Values allowed for Printer Description Attributes in
2640 the Set-Printer-Attributes Operation
2641
2642 Printer Description Attributes Values allowed for
2643 Set
2644
2645 printer-uri-supported (1setOf uri) READ-ONLY
2646
2647 uri-authentication-supported (1setOf type2 READ-ONLY
2648 keyword)
2649
2650 uri-security-supported (1setOf type2 READ-ONLY
2651 keyword)
2652
2653 printer-xri-supported (1setOf collection)
2654 member attributes:
2655
2656 xri-uri (uri) any uriScheme of
2657 "xri-uri-scheme-
2658 supported" from
2659 Get-Printer-
2660 Attributes
2661
2662 xri-authentication (type2 keyword) any keyword of
2663 "xri-
2664 authentication-
2665 supported" from
2666 Get-Printer-
2667 Attributes
2668
2669 xri-security (type2 keyword) any keyword of
2670 "xri-security-
2671 supported" from
2672 Get-Printer-
2673 Attributes
2674
2675 xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY
2676
2677 xri-authentication-supported (1setOf type2 READ-ONLY
2678 keyword)
2679
2680 xri-security-supported (1setOf type2 READ-ONLY
2681 keyword)
2682
2683
2684
2685
2686
2687
2688
2689
2690 Hastings, et. al. Standards Track [Page 48]
2691 \f
2692 RFC 3380 IPP: Job and Printer Set Operations September 2002
2693
2694
2695 Printer Description Attributes Values allowed for
2696 Set
2697
2698 printer-name (name(127)) Any name(127)
2699
2700 printer-location (text(127)) Any text(127)
2701
2702 printer-info (text(127)) Any text(127)
2703
2704 printer-more-info (uri) Any uri
2705
2706 printer-driver-installer (uri) Any uri
2707
2708 printer-make-and-model (text(127)) Any text(127)
2709
2710 printer-more-info-manufacturer (uri) Any uri
2711
2712 printer-state (type1 enum) READ-ONLY
2713
2714 printer-state-reasons (1setOf type2 READ-ONLY
2715 keyword)
2716
2717 printer-state-message (text(MAX)) READ-ONLY
2718
2719 ipp-versions-supported (1setOf type2 From Get-Printer-
2720 keyword) Supported-Values
2721
2722 operations-supported (1setOf type2 enum) From Get-Printer-
2723 Supported-Values
2724
2725 multiple-document-jobs-supported (boolean) From Get-Printer-
2726 Supported-Values
2727
2728 charset-configured (charset) Any of "xxx-
2729 supported", use
2730 "charset-supported"
2731
2732 charset-supported (1setOf charset) From Get-Printer-
2733 Supported-Values
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746 Hastings, et. al. Standards Track [Page 49]
2747 \f
2748 RFC 3380 IPP: Job and Printer Set Operations September 2002
2749
2750
2751 Printer Description Attributes Values allowed for
2752 Set
2753
2754 natural-language-configured Any of "xxx-
2755 (naturalLanguage) supported", use
2756 "generated-natural-
2757 language-supported"
2758
2759 generated-natural-language-supported From Get-Printer-
2760 (1setOf naturalLanguage) Supported-Values
2761
2762 document-format-default (mimeMediaType) Any of "xxx-
2763 supported"
2764
2765 document-format-supported (1setOf From Get-Printer-
2766 mimeMediaType) Supported-Values
2767
2768 printer-is-accepting-jobs (boolean) READ-ONLY
2769
2770 queued-job-count (integer(0:MAX)) READ-ONLY
2771
2772 printer-message-from-operator (text(127)) Any text(127)
2773
2774 color-supported (boolean) From Get-Printer-
2775 Supported-Values
2776
2777 reference-uri-schemes-supported (1setOf From Get-Printer-
2778 uriScheme) Supported-Values
2779
2780 pdl-override-supported (type2 keyword) From Get-Printer-
2781 Supported-Values
2782
2783 printer-up-time (integer(1:MAX)) READ-ONLY
2784
2785 printer-current-time (dateTime) Any dateTime **
2786
2787 multiple-operation-time-out any positive
2788 (integer(1:MAX)) integer
2789
2790 compression-supported (1setOf type3 From Get-Printer-
2791 keyword) Supported-Values
2792
2793 job-k-octets-supported From Get-Printer-
2794 (rangeOfInteger(0:MAX)) Supported-Values
2795
2796
2797
2798
2799
2800
2801
2802 Hastings, et. al. Standards Track [Page 50]
2803 \f
2804 RFC 3380 IPP: Job and Printer Set Operations September 2002
2805
2806
2807 Printer Description Attributes Values allowed for
2808 Set
2809
2810 job-impressions-supported From-Get-Printer-
2811 (rangeOfInteger(0:MAX)) Supported-Values
2812
2813 job-media-sheets-supported From Get-Printer-
2814 (rangeOfInteger(0:MAX)) Supported-Values
2815
2816 pages-per-minute (integer(0:MAX)) READ-ONLY
2817
2818 pages-per-minute-color (integer(0:MAX)) READ-ONLY
2819
2820 printer-settable-attributes-supported From Get-Printer-
2821 (1setOf type2 keyword) Supported-Values
2822
2823 job-settable-attributes-supported (1setOf From Get-Printer-
2824 type2 keyword) Supported-Values
2825
2826 document-format-varying-attributes (1setOf READ-ONLY
2827 type2 keyword)
2828
2829 printer-message-time (integer(MIN:MAX)) READ-ONLY
2830
2831 printer-message-date-time(dateTime) READ-ONLY
2832
2833 ** - The "printer-current-time" (dateTime) attribute is settable in
2834 order to allow an administrator to correct an incorrect dateTime or
2835 time zone.
2836
2837 Appendix B: Attributes returned from Get-Printer-Supported-Values
2838 (Normative)
2839
2840 This Appendix is a normative part of this document and lists all the
2841 attributes that are possible for an implementation to return in a
2842 Get-Printer-Supported-Values response, i.e., all the "xxx-supported"
2843 attributes that can be supplied in a Set-Printer-Attributes request.
2844 READ-ONLY attributes MUST NOT be returned in a Get-Printer-
2845 Supported-Values response and are indicated in the tables as "READ-
2846 ONLY - MUST NOT be returned."
2847
2848 For the following attributes, the value allowed by the Set-Printer-
2849 Attributes operation MUST be a single integer value in the range
2850 specified by the value returned by the Get-Printer-Supported-Values
2851 operation.
2852
2853
2854
2855
2856
2857
2858 Hastings, et. al. Standards Track [Page 51]
2859 \f
2860 RFC 3380 IPP: Job and Printer Set Operations September 2002
2861
2862
2863 Table 11 - Printer Job Template Attributes returned from
2864 Get-Printer-Supported-Values
2865
2866 Printer Job Template Attributes Values Returned
2867
2868 job-priority-supported (integer(1:100)) rangeOfInteger(1:100)
2869
2870 For the following attributes, the value allowed by the Set-Printer-
2871 Attributes operation MUST be a single rangeOfInteger value whose
2872 bounds do not exceed those of the range specified by the value
2873 returned by the Get-Printer-Supported-Values operation.
2874
2875 Table 12 - Printer Job Template Attributes returned from
2876 Get-Printer-Supported-Values
2877
2878 Printer Job Template Attributes Values Returned
2879
2880 copies-supported (rangeOfInteger(1:MAX)) rangeOfInteger(1:MAX)
2881
2882 The following table has the same criteria as the last, but is for
2883 Printer Description attributes.
2884
2885 Table 13 - Printer Description Attributes returned from
2886 Get-Printer-Supported-Values
2887
2888 Printer Description Attributes Values allowed for Set
2889
2890 job-k-octets-supported rangeOfInteger(0:MAX)
2891 (rangeOfInteger(0:MAX))
2892
2893 job-impressions-supported
2894 (rangeOfInteger(0:MAX)) rangeOfInteger(0:MAX)
2895
2896 job-media-sheets-supported rangeOfInteger(0:MAX)
2897 (rangeOfInteger(0:MAX))
2898
2899 For the following attributes, the value allowed by the Set-Printer-
2900 Attributes operation MUST be one or more integers and rangeOfInteger
2901 values, such that the integer values described by these integers and
2902 rangeOfInteger is the same as or a subset of the integers described
2903 by the integers and rangeOf Integer of values returned by the Get-
2904 Printer-Supported-Values operation.
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914 Hastings, et. al. Standards Track [Page 52]
2915 \f
2916 RFC 3380 IPP: Job and Printer Set Operations September 2002
2917
2918
2919 Table 14 - Printer Job Template Attributes returned from
2920 Get-Printer-Supported-Values
2921
2922 Printer Job Template Attributes Values Returned
2923
2924 number-up-supported (1setOf (integer(1:MAX) 1setOf
2925 | rangeOfInteger(1:MAX))) (integer(1:MAX) |
2926 rangeOfInteger(1:MA
2927 X))
2928
2929 For the following attributes, the value allowed by the Set-Printer-
2930 Attributes operation MUST be one or more values, where each such
2931 value matches a value returned by the Get-Printer-Supported-Values
2932 operation. A keyword, enum, boolean, charset, naturalLanguage,
2933 uriScheme, mimeMediaType or resolution value matches if it is equal.
2934 For Job Template attributes, with the attribute syntax 'type3 keyword
2935 | name', any 'name' attribute syntax value matches the 'admin-define'
2936 out-of-band value, if the implementation allows the administrator to
2937 set any name values for the attribute.
2938
2939 Table 15 - Printer Job Template Attributes returned from
2940 Get-Printer-Supported-Values
2941
2942 Printer Job Template Attributes Values Returned
2943
2944 job-hold-until-supported (1setOf(type3 1setOf (type3
2945 keyword | name (MAX))) keyword | 'admin-
2946 define')
2947
2948 job-sheets-supported (1setOf(type3 keyword 1setOf (type3
2949 | name(MAX))) keyword | 'admin-
2950 define')
2951
2952 multiple-document-handling-supported 1setOf type2
2953 (1setOf type2 keyword) keyword
2954
2955 finishings-supported (1setOf type2 enum) 1setOf type2 enum
2956
2957 page-ranges-supported (boolean) 1setOf boolean **
2958
2959 sides-supported (1setOf type2 keyword) 1setOf type2
2960 keyword
2961
2962 orientation-requested-supported (1setOf 1setOf type2 enum
2963 type2 enum)
2964
2965
2966
2967
2968
2969
2970 Hastings, et. al. Standards Track [Page 53]
2971 \f
2972 RFC 3380 IPP: Job and Printer Set Operations September 2002
2973
2974
2975 Printer Job Template Attributes Values Returned
2976
2977 media-supported (1setOf (type3 keyword | 1setOf (type3
2978 name(MAX))) keyword | 'admin-
2979 define')
2980
2981 printer-resolution-supported (1setOf 1setOf resolution
2982 resolution)
2983
2984 print-quality-supported (1setOf type2 enum) 1setOf type2 enum
2985
2986 ** Note: the Get-Printer-Supported-Values returns a '1setOf boolean'
2987 so that all possible values are indicated, while ** Get-Printer-
2988 Attributes returns only a single 'boolean' value.
2989
2990 The following table has the same criteria as the last, but is for
2991 Printer Description attributes.
2992
2993 Table 16 - Printer Description Attributes returned from
2994 Get-Printer-Supported-Values
2995
2996 Printer Description Attributes Values allowed for
2997 Set
2998
2999 printer-uri-supported (1setOf uri) READ-ONLY - MUST
3000 NOT be returned
3001
3002 uri-authentication-supported (1setOf type2 READ-ONLY - MUST
3003 keyword) NOT be returned
3004
3005 uri-security-supported (1setOf type2 READ-ONLY - MUST
3006 keyword) NOT be returned
3007
3008 printer-xri-supported (1setOf collection) MUST NOT be
3009 returned; see next
3010 three attributes
3011 returned with Get-
3012 Printer-Attributes:
3013
3014 xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY - MUST
3015 NOT be returned
3016
3017 xri-authentication-supported (1setOf type2 READ-ONLY - MUST
3018 keyword) NOT be returned
3019
3020 xri-security-supported (1setOf type2 READ-ONLY - MUST
3021 keyword) NOT be returned
3022
3023
3024
3025
3026 Hastings, et. al. Standards Track [Page 54]
3027 \f
3028 RFC 3380 IPP: Job and Printer Set Operations September 2002
3029
3030
3031 Printer Description Attributes Values allowed for
3032 Set
3033
3034 ipp-versions-supported (1setOf type2 1setOf type2
3035 keyword) keyword
3036
3037 operations-supported (1setOf type2 enum) 1setOf type2
3038 keyword
3039
3040 multiple-document-jobs-supported (boolean) 1setOf boolean **
3041
3042 charset-supported (1setOf charset) 1setOf charset
3043
3044 generated-natural-language-supported 1setOf
3045 (1setOf naturalLanguage) naturalLanguage
3046
3047 document-format-supported (1setOf 1setOf
3048 mimeMediaType) mimeMediaType
3049
3050 color-supported (boolean) 1setOf boolean **
3051
3052 reference-uri-schemes-supported (1setOf 1setOf uriScheme
3053 uriScheme)
3054
3055 pdl-override-supported (type2 keyword) 1setOf type2
3056 keyword **
3057
3058 compression-supported (1setOf type3 1setOf type3
3059 keyword) keyword
3060
3061 printer-settable-attributes-supported 1setOf type2
3062 (1setOf type2 keyword) keyword
3063
3064 job-settable-attributes-supported (1setOf 1setOf type2
3065 type2 keyword) keyword
3066
3067 ** Note: the Get-Printer-Supported-Values returns a '1setOf X' so
3068 that all possible values are indicated, while Get-Printer-Attributes
3069 returns only a single 'X' value.
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082 Hastings, et. al. Standards Track [Page 55]
3083 \f
3084 RFC 3380 IPP: Job and Printer Set Operations September 2002
3085
3086
3087 Appendix C: Description of the Base IPP Documents (Informative)
3088
3089 The base set of IPP documents includes:
3090
3091 Design Goals for an Internet Printing Protocol [RFC2567]
3092 Rationale for the Structure and Model and Protocol for the
3093 Internet Printing Protocol [RFC2568]
3094 Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
3095 Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
3096 Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
3097 Mapping between LPD and IPP Protocols [RFC2569]
3098
3099 The "Design Goals for an Internet Printing Protocol" document takes a
3100 broad look at distributed printing functionality, and it enumerates
3101 real-life scenarios that help to clarify the features that need to be
3102 included in a printing protocol for the Internet. It identifies
3103 requirements for three types of users: end users, operators, and
3104 administrators. It calls out a subset of end user requirements that
3105 are satisfied in IPP/1.0 [RFC2566, RFC2565]. A few OPTIONAL operator
3106 operations have been added to IPP/1.1 [RFC2911, RFC2910].
3107
3108 The "Rationale for the Structure and Model and Protocol for the
3109 Internet Printing Protocol" document describes IPP from a high level
3110 view, defines a roadmap for the various documents that form the suite
3111 of IPP specification documents, and gives background and rationale
3112 for the IETF IPP working group's major decisions.
3113
3114 The "Internet Printing Protocol/1.1: Model and Semantics" document
3115 describes a simplified model with abstract objects, their attributes,
3116 and their operations. The model introduces a Printer and a Job. The
3117 Job supports multiple documents per Job. The model document also
3118 addresses how security, internationalization, and directory issues
3119 are addressed.
3120
3121 The "Internet Printing Protocol/1.1: Encoding and Transport" document
3122 is a formal mapping of the abstract operations and attributes defined
3123 in the model document onto HTTP/1.1 [RFC2616]. It also defines the
3124 encoding rules for a new Internet MIME media type called
3125 "application/ipp". This document also defines the rules for
3126 transporting over HTTP, a message body whose Content-Type is
3127 "application/ipp". This document defines the 'ipp' scheme for
3128 identifying IPP printers and jobs.
3129
3130 The "Internet Printing Protocol/1.1: Implementer's Guide" document
3131 gives insight and advice to implementers of IPP clients and IPP
3132 objects. It is intended to help them understand IPP/1.1 and some of
3133 the considerations that may assist them in the design of their client
3134
3135
3136
3137
3138 Hastings, et. al. Standards Track [Page 56]
3139 \f
3140 RFC 3380 IPP: Job and Printer Set Operations September 2002
3141
3142
3143 and/or IPP object implementations. For example, a typical order of
3144 processing requests is given, including error checking. Motivation
3145 for some of the specification decisions are also included.
3146
3147 The "Mapping between LPD and IPP Protocols" document gives some
3148 advice to implementers of gateways between IPP and LPD (Line Printer
3149 Daemon) implementations.
3150
3151 Authors' Addresses
3152
3153 Carl Kugler
3154 IBM
3155 P.O. Box 1900
3156 Boulder, CO 80301-9191
3157
3158 Phone: (303) 924-5060
3159 EMail: kugler@us.ibm.com
3160
3161
3162 Tom Hastings
3163 Xerox Corporation
3164 737 Hawaii St. ESAE 231
3165 El Segundo, CA 90245
3166
3167 Phone: 310-333-6413
3168 Fax: 310-333-5514
3169 EMail: hastings@cp10.es.xerox.com
3170
3171
3172 Robert Herriot
3173 Consultant
3174 706 Colorado Ave
3175 Palo Alto, CA 94303
3176
3177 Phone: 650-327-4466
3178 Fax: 650-327-4466
3179 EMail: bob@Herriot.com
3180
3181
3182 Harry Lewis
3183 IBM
3184 6300 Diagonal Hwy.
3185 Boulder, CO 80301-9191
3186
3187 Phone: (303) 924-5337
3188 EMail: harryl@us.ibm.com
3189
3190
3191
3192
3193
3194 Hastings, et. al. Standards Track [Page 57]
3195 \f
3196 RFC 3380 IPP: Job and Printer Set Operations September 2002
3197
3198
3199 IPP Web Page: http://www.pwg.org/ipp/
3200 IPP Mailing List: ipp@pwg.org
3201
3202 To subscribe to the ipp mailing list, send the following email:
3203
3204 1) send it to majordomo@pwg.org
3205 2) leave the subject line blank
3206 3) put the following two lines in the message body:
3207 subscribe ipp
3208 end
3209
3210 Implementers of this specification document are encouraged to join
3211 the IPP Mailing List in order to participate in any discussions of
3212 clarification issues and review of registration proposals for
3213 additional attributes and values. In order to reduce spam the
3214 mailing list rejects mail from non-subscribers, so you must subscribe
3215 to the mailing list in order to send a question or comment to the
3216 mailing list.
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250 Hastings, et. al. Standards Track [Page 58]
3251 \f
3252 RFC 3380 IPP: Job and Printer Set Operations September 2002
3253
3254
3255 Full Copyright Statement
3256
3257 Copyright (C) The Internet Society (2002). All Rights Reserved.
3258
3259 This document and translations of it may be copied and furnished to
3260 others, and derivative works that comment on or otherwise explain it
3261 or assist in its implementation may be prepared, copied, published
3262 and distributed, in whole or in part, without restriction of any
3263 kind, provided that the above copyright notice and this paragraph are
3264 included on all such copies and derivative works. However, this
3265 document itself may not be modified in any way, such as by removing
3266 the copyright notice or references to the Internet Society or other
3267 Internet organizations, except as needed for the purpose of
3268 developing Internet standards in which case the procedures for
3269 copyrights defined in the Internet Standards process must be
3270 followed, or as required to translate it into languages other than
3271 English.
3272
3273 The limited permissions granted above are perpetual and will not be
3274 revoked by the Internet Society or its successors or assigns.
3275
3276 This document and the information contained herein is provided on an
3277 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
3278 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
3279 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
3280 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
3281 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
3282
3283 Acknowledgement
3284
3285 Funding for the RFC Editor function is currently provided by the
3286 Internet Society.
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306 Hastings, et. al. Standards Track [Page 59]
3307 \f