idnits 2.17.1 draft-ietf-ipp-job-printer-set-ops-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. ** The document is more than 15 pages and seems to lack a Table of Contents. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 50 longer pages, the longest (page 24) being 68 lines == It seems as if not all pages are separated by form feeds - found 0 form feeds but 51 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** The abstract seems to contain references ([RFC2568], [RFC2616], [RFC2569], [IPP-PRO], [IPP-IIG], [RFC2565,RFC2566], [RFC2567]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. == There are 4 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 34: '...ies 3 additional OPTIONAL operations f...' RFC 2119 keyword, line 82: '... IPP/1.0. A few OPTIONAL operator ope...' RFC 2119 keyword, line 238: '...fines additional OPTIONAL end user, op...' RFC 2119 keyword, line 244: '...Values operation MUST be supported, if...' RFC 2119 keyword, line 260: '...ions, the client MUST explicitly set t...' (193 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 961 has weird spacing: '... set in a Set...' == Line 1295 has weird spacing: '... supply sup...' == Line 1507 has weird spacing: '...onse to indic...' == Line 2237 has weird spacing: '...(1setOf type2...' == Line 2438 has weird spacing: '...hose of the r...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (March 23, 2000) is 8797 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC2026' is mentioned on line 21, but not defined == Missing Reference: 'RFC2567' is mentioned on line 68, but not defined == Missing Reference: 'RFC2568' is mentioned on line 70, but not defined == Missing Reference: 'IPP-PRO' is mentioned on line 72, but not defined == Missing Reference: 'IPP-IIG' is mentioned on line 73, but not defined == Missing Reference: 'RFC2569' is mentioned on line 74, but not defined == Missing Reference: 'RFC2616' is mentioned on line 93, but not defined ** Obsolete undefined reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) == Missing Reference: 'RFC2119' is mentioned on line 278, but not defined ** Obsolete normative reference: RFC 2565 (Obsoleted by RFC 2910) ** Obsolete normative reference: RFC 2566 (Obsoleted by RFC 2911) Summary: 11 errors (**), 0 flaws (~~), 18 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 INTERNET-DRAFT T. Hastings 2 R. Herriot 3 Xerox Corporation 4 Carl Kugler 5 H. Lewis 6 IBM Corporation 7 March 23, 2000 9 Internet Printing Protocol (IPP): 10 Job and Printer Set Operations 12 Copyright (C) The Internet Society (2000). All Rights Reserved. 14 Status of this Memo 16 This document is an Internet-Draft and is in full conformance with all 17 provisions of Section 10 of [RFC2026]. Internet-Drafts are working 18 documents of the Internet Engineering Task Force (IETF), its areas, and 19 its working groups. Note that other groups may also distribute working 20 documents as Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at any 24 time. It is inappropriate to use Internet-Drafts as reference material 25 or to cite them other than as "work in progress". 27 The list of current Internet-Drafts can be accessed at 28 http://www.ietf.org/ietf/1id-abstracts.txt 29 The list of Internet-Draft Shadow Directories can be accessed as 30 http://www.ietf.org/shadow.html. 32 Abstract 34 This document specifies 3 additional OPTIONAL operations for use with 35 the Internet Printing Protocol/1.0 (IPP) [RFC2565, RFC2566], IPP/1.1 36 [ipp-mod, ipp-pro], and future versions. The end user, operator, and 37 administrator Set-Job-Attributes and Set-Printer-Attributes operations 38 are used to modify IPP Job objects and Printer objects, respectively. 39 The third administrator Get-Printer-Supported-Values operation returns 40 values that the IPP Printer will accept for setting its "xxx-supported" 41 attributes. 43 Three out-of-band values are defined for use with these operations: 44 'delete-attribute', 'admin-define', and 'not-settable', along with a 45 'client-error-attributes-not-settable' status code. 47 Two operation attributes: "printer-message-from-operator" (text) and 48 "job-message-from-operator" (text) are defined to set the corresponding 49 IPP/1.1 Printer and Job Description attributes with the same names. 51 Nine Printer Description attributes are defined: 52 printer-settable-attributes-supported (1setOf type2 keyword) 53 job-settable-attributes-supported (1setOf type2 keyword) 54 document-format-varying-attributes (1setOf type2 keyword) 55 printer-message-time (integer(MIN:MAX)) 56 printer-message-date-time (dateTime) 58 Expires: September 23, 2000 59 printer-xri-supported (1setOf collection) 60 xri-uri-scheme-supported (1setOf uriScheme) 61 xri-authentication-supported (1setOf type2 keyword) 62 xri-security-supported (1setOf type2 keyword) 64 Expires: September 23, 2000 66 The full set of IPP documents includes: 68 Design Goals for an Internet Printing Protocol [RFC2567] 69 Rationale for the Structure and Model and Protocol for the Internet 70 Printing Protocol [RFC2568] 71 Internet Printing Protocol/1.1: Model and Semantics (this document) 72 Internet Printing Protocol/1.1: Encoding and Transport [IPP-PRO] 73 Internet Printing Protocol/1.1: Implementer's Guide [IPP-IIG] 74 Mapping between LPD and IPP Protocols [RFC2569] 76 The "Design Goals for an Internet Printing Protocol" document takes a 77 broad look at distributed printing functionality, and it enumerates 78 real-life scenarios that help to clarify the features that need to be 79 included in a printing protocol for the Internet. It identifies 80 requirements for three types of users: end users, operators, and 81 administrators. It calls out a subset of end user requirements that are 82 satisfied in IPP/1.0. A few OPTIONAL operator operations have been 83 added to IPP/1.1. 85 The "Rationale for the Structure and Model and Protocol for the Internet 86 Printing Protocol" document describes IPP from a high level view, 87 defines a roadmap for the various documents that form the suite of IPP 88 specification documents, and gives background and rationale for the IETF 89 working group's major decisions. 91 The "Internet Printing Protocol/1.1: Encoding and Transport" document is 92 a formal mapping of the abstract operations and attributes defined in 93 the model document onto HTTP/1.1 [RFC2616]. It defines the encoding 94 rules for a new Internet MIME media type called "application/ipp". This 95 document also defines the rules for transporting over HTTP a message 96 body whose Content-Type is "application/ipp". This document defines a 97 new scheme named 'ipp' for identifying IPP printers and jobs. 99 The "Internet Printing Protocol/1.1: Implementer's Guide" document gives 100 insight and advice to implementers of IPP clients and IPP objects. It 101 is intended to help them understand IPP/1.1 and some of the 102 considerations that may assist them in the design of their client and/or 103 IPP object implementations. For example, a typical order of processing 104 requests is given, including error checking. Motivation for some of the 105 specification decisions is also included. 107 The "Mapping between LPD and IPP Protocols" document gives some advice 108 to implementers of gateways between IPP and LPD (Line Printer Daemon) 109 implementations. 111 Expires: September 23, 2000 112 Table of Contents 114 1 Introduction.....................................................7 116 2 Terminology......................................................7 117 2.1 Conformance Terminology.......................................7 118 2.2 Other terminology.............................................8 120 3 Requirements and Use Cases.......................................8 122 4 Definition of the Set operations.................................9 123 4.1 Set-Printer-Attributes Operation..............................9 124 4.1.1 Settable and READ-ONLY Printer Description attributes....11 125 4.1.2 Set-Printer-Attributes Request...........................12 126 4.1.3 Set-Printer-Attributes Response..........................13 127 4.2 Set-Job-Attributes Operation.................................15 128 4.2.1 Settable and READ-ONLY Job Description attributes........17 129 4.2.2 Set-Job-Attributes Request...............................17 130 4.2.3 Set-Job-Attributes Response..............................18 131 4.3 Get-Printer-Supported-Values Operation.......................19 132 4.3.1 Definition of the usage of the 'admin-define' out-of-band 133 attribute value..................................................20 135 5 New Operation attributes........................................21 136 5.1 "printer-message-from-operator" (text(127))..................22 137 5.2 "job-message-from-operator" (text(127))......................23 139 6 New Printer Description Attributes..............................24 140 6.1 printer-settable-attributes-supported (1setOf type2 keyword).24 141 6.2 job-settable-attributes-supported (1setOf type2 keyword).....24 142 6.3 document-format-varying-attributes (1setOf type2 keyword)....24 143 6.4 printer-message-time (integer(MIN:MAX))......................25 144 6.5 printer-message-date-time (dateTime).........................25 145 6.6 printer-xri-supported (1setOf collection)....................25 146 6.7 xri-uri-scheme-supported (1setOf uriScheme)..................27 147 6.8 xri-authentication-supported (1setOf type2 keyword)..........28 148 6.9 xri-security-supported (1setOf type2 keyword)................28 150 7 Additional status codes.........................................28 151 7.1 'client-error-attributes-not-settable' (0x0413)..............28 153 8 Additional out-of-band values...................................29 154 8.1 'not-settable' out-of-band value.............................29 155 8.1.1 Encoding of the 'not-settable' out-of-band attribute value29 156 8.2 'delete-attribute' out-of-band value.........................29 157 8.2.1 Encoding of the 'delete-attribute' out-of-band value.....30 158 8.3 'admin-define' out-of-band attribute value...................30 159 8.3.1 Encoding of the 'admin-define' out-of-band attribute value31 161 9 Conformance Requirements........................................31 163 10 IANA Considerations.............................................32 165 Expires: September 23, 2000 166 11 Internationalization Considerations.............................33 168 12 Security Considerations.........................................33 170 13 Author's Addresses..............................................33 172 14 References......................................................34 174 15 Change History..................................................35 175 15.1 Changes to the March 21, 2000 version to make the March 23, 2000 176 version 35 177 15.2 Changes to the March 8, 2000 version to make the March 21, 2000 178 version 36 179 15.3 Changes to the March 1, 2000 version to make the March 8, 2000 180 version 37 181 15.4 Changes to the January 30, 2000 version to make the March 1, 2000 182 version 37 183 15.5 Changes to the January 20, 2000 version to make the January 30, 184 2000 version39 185 15.6 Changes to the January 4, 2000 version to make the January 20, 186 2000 version39 187 15.7 Changes to the December 8, 1999 version to make the January 4, 188 2000 version41 190 16 Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job- 191 Attributes requests................................................42 193 17 Appendix B: Attributes returned from Get-Printer-Supported-Values47 195 18 Appendix C: Full Copyright Statement............................50 197 Table of Tables 199 Table 1 - Operation-Id assignments....................................9 200 Table 2 - Job State Transition Table for the Set-Job-Attributes 201 operation........................................................16 202 Table 3 - Member attributes of "printer-xri-supported" (1setOf 203 collection)......................................................26 204 Table 4 - Validation rules for 'Any of "xxx-supported" '.............42 205 Table 5 - Validation rules for 'From Get-Printer-Supported-Values'...43 206 Table 6 - Values allowed for Job Template Attributes in the Set-Job- 207 Attributes Operation.............................................43 208 Table 7 - Values allowed for Job Description Attributes in the Set-Job- 209 Attributes Operation.............................................44 210 Table 8 - Values allowed for Printer Job Template Attributes in the Set- 211 Printer-Attributes Operation.....................................45 212 Table 9 - Values allowed for Printer Description Attributes in the Set- 213 Printer-Attributes Operation.....................................45 214 Table 10 - Printer Job Template Attributes returned from Get-Printer- 215 Supported-Values.................................................48 216 Table 11 - Printer Job Template Attributes returned from Get-Printer- 217 Supported-Values.................................................48 218 Table 12 - Printer Description Attributes returned from Get-Printer- 219 Supported-Values.................................................48 221 Expires: September 23, 2000 223 Table 13 - Printer Job Template Attributes returned from Get-Printer- 224 Supported-Values.................................................48 225 Table 14 - Printer Job Template Attributes returned from Get-Printer- 226 Supported-Values.................................................49 227 Table 15 - Printer Description Attributes returned from Get-Printer- 228 Supported-Values.................................................49 230 Expires: September 23, 2000 232 1 Introduction 234 The Internet Printing Protocol (IPP) is an application level protocol 235 that can be used for distributed printing using Internet tools and 236 technologies. IPP version 1.1 [ipp-mod, ipp-pro] focuses on end user 237 functionality with a few administrative operations included. This 238 document defines additional OPTIONAL end user, operator, and 239 administrator Set-Job-Attributes and Set-Printer-Attributes operations 240 used to modify IPP Job objects and Printer objects, respectively. It 241 also defines a third administrator Get-Printer-Supported-Values 242 operation that returns values that the IPP Printer will accept for 243 setting its "xxx-supported" attributes. The Get-Printer-Supported- 244 Values operation MUST be supported, if the implementation supports 245 setting any "xxx-supported" Printer attributes using the Set-Printer- 246 Attributes operation. 248 Three out-of-band values are defined for use with these three 249 operations: 'delete-attribute' for deleting Job attributes with the 250 Set-Job-Attributes request, 'not-settable' for use in either the Set- 251 Job-Attributes or Set-Printer-Attributes responses, and 'admin-define' 252 for use in the Get-Printer-Supported-Values response. 254 Two operation attributes: "printer-message-from-operator" (text) and 255 "job-message-from-operator" (text) are defined to set the corresponding 256 IPP/1.1 Printer and Job Description attributes with the same names. 257 These operation attributes may be used with any operation that affect 258 the Printer or Job object for which an operation might want to indicate 259 a message. For the Set-Job-Attributes and Set-Printer-Attributes 260 operations, the client MUST explicitly set them, rather than using these 261 operation attributes. 263 A Printer implementation can make the value of some attributes dependent 264 on the document-format, e.g. "resolution-supported". 266 This document is an extension to IPP/1.0 [RFC2565, RFC2566] and IPP/1.1 267 [ipp-mod, ipp-pro], and future versions. 269 2 Terminology 271 This section defines terminology used throughout this document. 273 2.1 Conformance Terminology 275 Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, 276 MAY, NEED NOT, and OPTIONAL, have special meaning relating to 277 conformance. These terms are defined in [ipp-mod] section 12.1 on 278 conformance terminology, most of which is taken from RFC 2119 [RFC2119]. 280 The following specialization of these terms apply to this document: 282 REQUIRED: if an implementation supports the extensions described in 283 this document, it MUST support a REQUIRED feature. 285 Expires: September 23, 2000 287 OPTIONAL: if an implementation supports the extensions described in 288 this document, it MAY support an OPTIONAL feature. 290 2.2 Other terminology 292 This document uses terms such as Job object (or Job), IPP Printer object 293 (or Printer), "operation", "request", response", "attributes", 294 "keywords", and "support". These terms have special meaning and are 295 defined in the model terminology [ipp-mod] section 12.2. The following 296 additional terms are introduced in this document: 298 READ-ONLY: used in an attribute definition document to indicate that 299 the attribute MUST NOT be settable using an IPP protocol Set 300 operation. In other words, the attribute is not settable by 301 definition. 302 not-settable: an implementation does not support setting an 303 attribute (whether or not the attribute's definition is READ-ONLY). 305 3 Requirements and Use Cases 307 The following requirements and usage are intended to be met by the 308 specification in this document. 310 1.The end-user and the operator need a way to modify a Job that is in 311 the 'pending' or 'pending-held' state. 313 Usage: The end-user discovers that he/she forgot to include a print 314 instruction, such as "finishings" = 'staple' after submitting a job. 315 Rather than canceling the job and resubmitting it to the same IPP 316 Printer, the end-user is able to modify the job on the IPP Printer. 318 The operator needs to modify a job because it is requesting a 319 particular kind of media for which there is no more, but the policy 320 is to print the job on a comparable medium. 322 2.The system administrator needs a way to re-configure or change the 323 policy of the IPP Printer remotely. 325 Usage: The system administrator is adding additional named media to 326 the supported media list (setting 'name' values to the "media- 327 supported" Printer attribute). 329 The system administrator is reducing the capability of the IPP 330 Printer by removing one of the operations from the supported 331 operations list, such as Cancel-Job, because the policy is to run the 332 IPP Printer like a public facsimile machine. After having removed 333 Cancel-Job from the list of supported operations, an administrative 334 client needs to be able to display to an administrator that the 335 implementation is capable of being reconfigured to support Cancel-Job 336 once again. 338 Expires: September 23, 2000 339 The system administrator is remotely configuring the IPP Printer 340 after installing it, and so is replacing the Printer Description 341 attributes that have the out-of-band 'no-value' value (see [ipp-mod] 342 section 4.1) with the proper values. 344 The operator is changing the media loaded in the input tray and so is 345 replacing the "media-ready" Job Template Printer attribute value with 346 the proper values 348 4 Definition of the Set operations 350 The Set-Printer-Attributes operation (as are all Printer operations) are 351 directed at Printer objects. A client MUST always supply the "printer- 352 uri" operation attribute in order to identify the correct target of the 353 operation. These descriptions assume all of the common semantics of 354 IPP/1.1 Model and Semantics document [ipp-mod] section 3.1. 356 The Set-Job-Attributes operation (as are all Job operations) are 357 directed at Job objects. A client MUST always supply some means of 358 identifying the Job object in order to identify the correct target of 359 the operation. That job identification MAY either be a single Job URI 360 or a combination of a Printer URI with a Job ID as defined in [ipp-mod]. 361 The IPP object implementation MUST support both forms of identification 362 for every job. If possible, a client SHOULD use the Printer URI with a 363 Job ID rather than a Job URI, since the 32-bit "job-id" is more readily 364 translated to and from other print protocols that MAY be serving as 365 gateways into or out of the IPP implementation. 367 The Set Printer operations are summarized in Table 1: 369 Table 1 - Operation-Id assignments 371 Operation Name Operation Brief description 372 -Id 373 Set-Printer- 0x0013 Sets attribute values of the target 374 Attributes Printer object 375 Set-Job-Attributes 0x0014 Sets attribute values of the target 376 Job object 377 Get-Printer- 0x0015 Gets values that are valid for 378 Supported-Values setting "xxx-supported" attributes 379 using the Set-Printer-Attributes 380 operation 382 4.1 Set-Printer-Attributes Operation 384 This OPTIONAL operation allows a client to set the values of the 385 attributes of a Printer object. In the request, the client supplies 386 the set of Printer keyword attribute names and values that are to be 387 set. In the response, the Printer object returns success or rejects the 388 entire request with indications of which attribute or attributes could 389 not be set. 391 Expires: September 23, 2000 392 The Printer object validates the client-supplied attributes in the Set- 393 Printer-Attributes request. For an attribute to validate it MUST meet 394 all of the following rules: 396 1. The number of attributes supplied by the client MUST NOT exceed the 397 maximum number that the Printer supports in a Set-Printer- 398 Attributes request. A Printer MUST accept at least one attribute, 399 but SHOULD accept a reasonable number in a single Set-Printer- 400 Attributes request. 402 Note: There is no way for the client to determine the maximum 403 number of attributes that the Printer supports in a Set-Printer- 404 Attributes request, except to try a reasonable number. 406 2. The Printer MUST support the attribute. 408 3. The attribute MUST NOT be READ-ONLY, i.e., the definition of the 409 attribute MUST NOT indicate that the attribute is READ-ONLY (see 410 Appendix A for an indication of which IPP/1.1 attributes are READ- 411 ONLY). 413 4. The attribute MUST be settable in this implementation. 415 5. The Printer MUST support the value according to the rules defined 416 in Appendix A, i.e., each value of each supplied "xxx" attribute 417 MUST be validated against a value of a corresponding "xxx- 418 supported" Printer attribute. One of those rules permits an 419 administrator to set arbitrary 'name' values to those "xxx- 420 supported" Printer attributes that include the 'name' attribute 421 syntax if the implementation supports the 'admin-define' out-of- 422 band value for that "xxx-supported" attribute (see section 0 and 423 8.3). 425 6. The attribute's values MUST NOT conflict with the values of other 426 Printer attributes, including ones being set in this same 427 operation. 429 If any of the supplied attributes does not validate, the Printer object 430 MUST reject the entire operation; the Printer object MUST NOT partially 431 set some of the supplied attributes. In other words, after the 432 operation, all the supplied attributes MUST be set or none of them MUST 433 be set, thus making the Set-Printer-Attributes an atomic operation. 435 The Printer MUST accept this operation when its READ-ONLY "printer- 436 state" attribute (see ipp-mod] section 4.4.11) is 'idle' or 'stopped', 437 and SHOULD accept it when the value is 'processing'. The Printer MUST 438 accept this operation for any of the values of the Printer object's 439 READ-ONLY "printer-state-reasons" and "printer-is-accepting-jobs" 440 attributes, unless explicitly defined otherwise in the definition of 441 these attributes' values. 443 This operation MUST NOT change the value of attributes not specified in 444 the operation unless the definition of the attribute explicitly 445 specifies such side-effects. For example, this document explicitly 447 Expires: September 23, 2000 448 specifies that when this operation sets "printer-message-from-operator", 449 the Printer also MUST set the READ-ONLY "printer-message-time" and READ- 450 ONLY "printer-message-date-time" attributes to the time of the operation 451 as a side effect . In particular, if this operation changes an "xxx- 452 default" attribute, the new value MUST be in the "xxx-supported" 453 attribute or the request MUST contain a new value for "xxx-supported" 454 which contains the new value for the "xxx-default". Otherwise, the 455 Printer MUST reject the operation. In general, Printer attribute 456 definitions that are settable will not define side-effects on other 457 attributes that are settable, only side effects on READ-ONLY attributes, 458 if any. 460 4.1.1Settable and READ-ONLY Printer Description attributes 462 If the Printer supports the Set-Printer-Attributes operation, then it 463 SHOULD support setting of: 465 all Job Template Default ("xxx-default") attributes 466 all Job Template Supported ("xxx-supported") attributes 467 all Job Template Ready ("xxx-ready") attributes 469 that the implementation supports (see [ipp-mod] section 4.2 and 470 extensions). 472 Some Printer Description attributes (see [ipp-mod] section 4.4) MUST NOT 473 be settable, i.e., they are defined to be READ-ONLY. An attribute 474 marked as "READ-ONLY" in the Printer Description attribute table in 475 Appendix A is such an attribute. The Printer attributes that are not 476 marked as "READ-ONLY" MAY be settable using the Set-Printer-Attributes 477 operation, depending on implementation. 479 Note: From now on, all extensions that define new object attributes 480 will indicate whether or not the attributes are READ-ONLY, by including 481 the "READ-ONLY" adjective in their descriptions and/or explicitly 482 stating whether they MAY be settable. 484 The current values of each "xxx-supported" Printer attribute MUST 485 reflect the current policy for support of the corresponding "xxx" 486 attribute. If an "xxx-supported" Printer attribute is settable in an 487 implementation, then its value(s) MUST affect the behavior of the 488 implementation. If an "xxx-supported" Printer attribute is defined to 489 be READ-ONLY or is not-settable in an implementation, then its values 490 MUST NOT be settable using the Set-Printer-Attributes operation. 491 Consider the following example: 493 For example, if the "operations-supported" Printer Description 494 attribute (see [ipp-mod] section 4.4.15) is settable in a 495 particular implementation, then changing its value with a Set- 496 Printer-Attributes operation MUST affect the operations that the 497 implementation accepts or rejects. Such an implementation will 498 need to be able to reject values for operations that it contains no 499 code support for (see section 4.3). If the "operations-supported" 500 Printer Description attribute is not settable in a particular 501 implementation, then that implementation MUST reject an attempt to 503 Expires: September 23, 2000 504 set it with a Set-Printer-Attributes operation, return the 'client- 505 error-attributes-not-settable' status code (see section 7.1), and 506 return the "operations-supported" attribute with the out-of-band 507 'not-settable' value in the Unsupported Attributes Group. 509 As another example, consider an implementation in which the "media- 510 default" and "media-supported" are settable. If a client supplies 511 a Set-Printer-Attributes request that contains the "media-default" 512 attribute with a value that is not a member of the Printer's 513 "media-supported" attribute, the Printer MUST reject the request 514 and return the "client-error-conflicting-attributes" status code 515 with the "media-default" and "media-supported" attributes and their 516 values (see [ipp-mod] section 3.1.7). 518 As a third example, if a client supplies a Set-Printer-Attributes 519 request that contains both the "media-default" and the "media- 520 supported" attributes, but includes a value in the "media-default" 521 that is not a member of the supplied "media-supported" attribute, 522 the Printer MUST reject the request and return the "client-error- 523 conflicting-attributes" status code with the "media-default" and 524 "media-supported" attributes and their values (see [ipp-mod] 525 section 3.1.7). 527 Access Rights: The authenticated user (see [ipp-mod] section 8.3) 528 performing this operation must be an operator or administrator of the 529 Printer object (see [ipp-mod] Sections 1 and 8.5). Most Printer 530 attributes will require administrator access rights to set, such as 531 "xxx-supported", while some will require operator access rights only, 532 such as "media-ready" and "printer-message-from-operator". Which 533 attributes require which access rights depends on implementation and MAY 534 depend on site policy. 536 4.1.2Set-Printer-Attributes Request 538 The following sets of attributes are part of the Set-Printer-Attributes 539 Request: 541 Group 1: Operation Attributes 543 Natural Language and Character Set: 544 The "attributes-charset" and "attributes-natural-language" 545 attributes as described in [ipp-mod] section 3.1.4.1. 547 Target: 548 The "printer-uri" (uri) operation attribute which is the target for 549 this operation as described in [ipp-mod] section 3.1.5. 551 Requesting User Name: 552 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied 553 by the client as described in [ipp-mod] section 8.3. 555 "document-format" (mimeMediaType): 556 The client OPTIONALLY supplies this attribute. The Printer object 557 MUST support this attribute. This attribute is useful for a client 559 Expires: September 23, 2000 560 to select the document-format to which the attribute modification 561 should be applied. A Printer implementation MAY allow some 562 attributes to have different values for each document format that 563 it supports. See [ipp-mod] section 3.2.5.1 "Get-Printer-Attributes 564 Request". 566 If the client includes this attribute, the Printer MUST change the 567 supplied attributes for the document format specified by this 568 attribute. If a supplied attribute is a member of the "document- 569 format-varying-attributes" (i.e., the attribute varies by document 570 format, see section 6.3), the Printer MUST change the supplied 571 attribute for the document format specified by this attribute, but 572 not for other document formats. If a supplied attribute isn't a 573 member of the "document-format-varying-attributes" (i.e. it doesn't 574 vary by document format), the Printer MUST change the supplied 575 attribute for all document formats. 577 If the client omits this attribute, the Printer MUST change the 578 supplied attributes for all document formats whether or not they 579 vary by document-format. 581 If the client supplies a value for the "document-format" Operation 582 attribute that is either 'application/octet-stream' or not 583 supported by the Printer, i.e., is not among the values of the 584 Printer object's "document-format-supported" attribute, the Printer 585 object MUST reject the operation and return the 'client-error- 586 document-format-not-supported' status code. Note: the document- 587 format 'application/octet-stream' is the union of several document- 588 formats (see [ipp-mod] section 3.2.5.1, Get-Printer-Attributes) and 589 is not a true document-format. 591 Group 2: Printer Attributes 593 The client MUST supply a set of Printer attributes with one or more 594 values (including explicitly allowed out-of-band values) as defined 595 in [ipp-mod] section 4.2 Job Template Attributes ("xxx-default", 596 "xxx-supported", and "xxx-ready" attributes), section 4.4 Printer 597 Description Attributes, and any attribute extensions supported by 598 the Printer. The value(s) of each Printer attribute supplied in 599 Group 2 replaces the value(s) of the corresponding Printer 600 attribute on the target Printer object. For attributes that can 601 have multiple values (1setOf), all values supplied by the client 602 replace all values of the corresponding Printer object attribute. 603 If a Printer object attribute had not been configured yet and so 604 had the 'no-value' out-of-band value (see [ipp-mod] section 4.1), 605 the supplied value(s) replace the 'no-value' value. 607 4.1.3Set-Printer-Attributes Response 609 The Printer object returns the following sets of attributes as part of 610 the Get-Printer-Attributes Response: 612 Group 1: Operation Attributes 614 Expires: September 23, 2000 615 Status Message: 616 In addition to the REQUIRED status code returned in every response, 617 the response OPTIONALLY includes a "status-message" (text(255)) 618 and/or a "detailed-status-message" (text(MAX)) operation attribute 619 as described in [ipp-mod] sections 13 and 3.1.6. 621 Natural Language and Character Set: 622 The "attributes-charset" and "attributes-natural-language" 623 attributes as described in [ipp-mod] section 3.1.4.2. 625 Group 2: Unsupported Attributes 627 See [ipp-mod] section 3.1.7 for details on returning Unsupported 628 Attributes. 630 If some of the attributes in the operation fail to validate, the 631 Printer MUST reject the operation, MUST NOT change any Printer 632 attributes, and MUST return the indicated status code below. In 633 this group, the Printer MUST also return all attributes that fail 634 to validate. The following are the reasons that an attribute fails 635 to validate and the value returned for the attribute, along with 636 the indicated status code and order of detection: 638 1. The number of attributes supplied by the client exceeds the 639 maximum number that the Printer supports in a Set-Printer- 640 Attributes request: return the 'client-error-request-entity- 641 too-large' (see [ipp-mod] section 13.1.4.9). 643 2. The Printer doesn't support the attribute: return the 644 attribute with the "out-of-band" value 'unsupported' (see 645 [ipp-mod] section 3.1.7 and [ipp-pro]) and the 'client-error- 646 attributes-or-values-not-supported (see [ipp-mod] section 647 13.1.4.12). 649 3. The attribute is either READ-ONLY (in its definition) or is 650 not-settable in this implementation: return the attribute 651 with the "out-of-band" value 'not-settable' (see section 8.1) 652 and the 'client-error-attributes-not-settable' status code 653 (see section 7.1). 655 4. The Printer doesn't support the value: if the attribute in 656 the operation has a single value return it. If the attribute 657 in the operation is multi-valued, return only those values in 658 a 1setOf that are not supported. Return the 'client-error- 659 attributes-or-values-not-supported' status code (see [ipp-mod] 660 section 13.1.4.12). 662 5. The values of some of the supplied attributes conflict with 663 one another and/or other Printer attribute values not being 664 set: if the conflicting attribute in the operation has a 665 single value return the attribute and the value. If the 666 attribute in the operation is multi-valued, return only the 667 attribute and those values in a 1setOf that are conflicting 669 Expires: September 23, 2000 670 with other attributes. Return the 'client-error-conflicting- 671 attributes' status code (see [ipp-mod] section 13.1.4.15). 673 4.2 Set-Job-Attributes Operation 675 This OPTIONAL operation allows a client to set the values of the 676 attributes of a Job object. In the request, the client supplies the set 677 of Job keyword attribute names and values that are to be set. In the 678 response, the IPP object returns success or rejects the entire request 679 with indications of which attribute or attributes could not be set. 681 This operation is almost identical to the Set-Printer-Attributes 682 operation and follows the same rules for validation (see section 4.1). 683 The only differences are that the Set-Job-Attributes operation is 684 directed at a Job object rather than a Printer object, there is no 685 "document-format" operation attribute used when setting a Job object, 686 the operation can add an attribute to the (Job) object, the 'delete- 687 attributes' out-of-band value is permitted to remove an attribute, and 688 the validation is the same as the Job Creation operations (Print-Job, 689 Print-URI, and Create-Job), i.e., depends on the "xxx-supported" Printer 690 Description attributes (see [ipp-mod] section 3.1). Using the Set- 691 Printer-Attributes operation, the administrator can set arbitrary 'name' 692 values to those "xxx-supported" Printer attributes that include the 693 'name' attribute syntax if the implementation supports the 'admin- 694 define' out-of-band value for that "xxx-supported" attribute (see 695 section 0 and 8.3). However, the Set-Job-Attributes cannot be used to 696 add unsupported names to the Job object. 698 If a client supplies a job attribute in a Set-Job-Attributes request 699 that the Printer supports, and the job was originally submitted without 700 supplying that attribute, the Printer adds the attribute to the Job 701 object. 703 If the client supplies a job attribute with the "out-of-band" value 704 'delete-attribute' (see section 8.2), then the Printer MUST remove the 705 attribute and all of its values from the Job object, if present. The 706 semantic effect of the client supplying the 'delete-attribute' value in 707 a Set-Job-Attributes operation MUST be the same as if the attribute had 708 not been supplied with the Job object in the Job Creation operation, 709 i.e., the Printer applies its default attribute or behavior with lower 710 precedence that the PDL (see the beginning of [ipp-mod] section 4.2 and 711 [ipp-mod] 3.2.1.1). Any subsequent query of the Job object using Get- 712 Job-Attributes or Get-Jobs MUST NOT return any attribute that has been 713 deleted using the 'delete-attribute' out-of-band value. However, a 714 client can re-establish such a deleted Job attribute with any supported 715 value(s) using a subsequent Set-Job-Attributes operation. 717 If the client supplies an attribute in a Set-Job-Attributes request with 718 the 'delete-attribute' value and that attribute is not present on the 719 Job object, the Printer ignores that supplied attribute in the request, 720 does not return the attribute in the Unsupported Attributes group, and 721 returns the 'successful-ok' status code, if there are no other problems 722 with the request. 724 Expires: September 23, 2000 725 The validation of the Set-Job-Attributes request is performed by the 726 Printer as if the job had been submitted originally with the new 727 attribute values (and the deleted attributes removed) and with "ipp- 728 attribute-fidelity" set to 'true', i.e., all modified attributes Job 729 attributes and values MUST be supported in combination with the Job 730 attributes not modified. If such a Job Creation operation would have 731 been accepted, then the Set-Job-Attributes MUST be accepted. If such a 732 Job Creation operation would have been rejected, then the Set-Job- 733 Attributes MUST be rejected and the Job MUST be unchanged. In addition, 734 if any of the supplied attributes are not supported, are not settable, 735 or the values are not supported, the Printer object MUST reject the 736 entire operation; the Printer object MUST NOT partially set some of the 737 supplied attributes. In other words, after the operation, all the 738 supplied attributes MUST be set or none of them MUST be set, thus making 739 the Set-Job-Attributes an atomic operation. 741 The IPP object MUST accept or reject this operations when the Job's 742 READ-ONLY "job-state" attribute has the values shown in Table 2. The 743 job's current state MUST affect whether the IPP object accepts or 744 rejects the request. For example, in the case where the operation 745 creates a request for unavailable resources, the Job transitions to a 746 new state. Table 2 shows the allowed behaviors in each job state and 747 the transitions. 749 Table 2 - Job State Transition Table for the Set-Job-Attributes 750 operation 752 Current "job- New "job- IPP object's response status 753 state" state" code and action: 755 'pending' 'pending' 'successful-ok' 756 'pending' 'pending- 'successful-ok' - needed 757 held' resources are not ready 758 'pending-held' 'pending- 'successful-ok' 759 held' 760 'pending-held' 'pending' 'successful-ok' - needed 761 resources are ready 762 'processing' 'processing' 'successful-ok' or 'client- 763 error-not-possible' depending on 764 implementation, including the 765 attributes being set, whether 766 the job has started marking 767 media, etc. 768 'processing- 'processing- 'successful-ok' or 'client- 769 stopped' stopped' error-not-possible' depending on 770 implementation, including the 771 attributes being set, whether 772 the job has started marking 773 media, etc. 774 'completed' 'completed' 'client-error-not-possible' 775 'canceled' 'canceled' 'client-error-not-possible' 776 'aborted' 'aborted' 'client-error-not-possible' 778 Expires: September 23, 2000 780 This operation MUST NOT change the value of attributes not specified in 781 the operation unless the definition of the attribute explicitly 782 specifies such side-effects. In general, Job attribute definitions that 783 are settable will not define side-effects on other attributes that are 784 settable, only side effects on READ-ONLY attributes, if any. 786 4.2.1Settable and READ-ONLY Job Description attributes 788 If the Printer supports the "job-message-from-operator" Job Description 789 attribute (see [ipp-mod] section 4.3.16) and the client explicitly 790 supplies a new value for the "job-message-from-operator" in the Set-Job- 791 Attributes request, then the Printer MUST set the "job-message-from- 792 operator" Job attribute to this new value. 794 If the Printer supports the Set-Job-Attributes operation, then it SHOULD 795 support setting of: 797 all Job Template job ("xxx") attributes 799 that the implementation supports (see [ipp-mod] section 4.2 and 800 extensions). 802 Some Job Description attributes (see [ipp-mod] section 4.3) MUST NOT be 803 settable, i.e., they are defined to be READ-ONLY. An attribute marked 804 as "READ-ONLY" in the Job Description attribute table in Appendix A is 805 such an attribute. The Job attributes not marked as "READ-ONLY" MAY be 806 settable using the Set-Job-Attributes operation, depending on 807 implementation. 809 Note: From now on, all extensions that define new object attributes 810 will indicate whether or not the attributes are READ-ONLY, by including 811 the "READ-ONLY" adjective in their descriptions and/or explicitly 812 stating whether they MAY be settable. 814 Access Rights: The authenticated user (see [ipp-mod] section 8.3) 815 performing this operation must either be the job owner (as determined in 816 the Job Creation operation) or an operator or administrator of the 817 Printer object (see [ipp-mod] Sections 1 and 8.5). 819 4.2.2Set-Job-Attributes Request 821 The following sets of attributes are part of the Set-Job-Attributes 822 Request: 824 Group 1: Operation Attributes 826 Natural Language and Character Set: 827 The "attributes-charset" and "attributes-natural-language" 828 attributes as described in [ipp-mod] section 3.1.4.1. 830 Target: 831 Either (1) the "printer-uri" (uri) plus "job-id" (integer(1:MAX)) 832 or (2) the "job-uri" (uri) operation attribute(s) which define the 833 target for this operation as described in [ipp-mod] section 3.1.5. 835 Expires: September 23, 2000 837 Requesting User Name: 838 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied 839 by the client as described in [ipp-mod] section 8.3. 841 Group 2: Job Attributes 843 The client MUST supply a set of Job attributes with one or more 844 values (including explicitly allowed out-of-band values) as defined 845 in [ipp-mod] section 4.2 Job Template Attributes ("xxx" 846 attributes), section 4.3 Job Description Attributes, and any 847 attribute extensions supported by the Printer. The value(s) of 848 each Job attribute supplied in Group 2 replaces the value(s) of the 849 corresponding Job attribute on the target Job object. For 850 attributes that can have multiple values (1setOf), all values 851 supplied by the client replace all values of the corresponding Job 852 object attribute. 854 If the client supplies an "xxx" attribute with the 'delete- 855 attribute' out-of-band value (see section 8.2), the Printer MUST 856 remove the "xxx" attribute from the Job object, if present. 858 4.2.3Set-Job-Attributes Response 860 The IPP object returns the following sets of attributes as part of the 861 Set-Job-Attributes Response: 863 Group 1: Operation Attributes 865 Status Message: 866 In addition to the REQUIRED status code returned in every response, 867 the response OPTIONALLY includes a "status-message" (text(255)) 868 and/or a "detailed-status-message" (text(MAX)) operation attribute 869 as described in [ipp-mod] sections 13 and 3.1.6. 871 Natural Language and Character Set: 872 The "attributes-charset" and "attributes-natural-language" 873 attributes as described in [ipp-mod] section 3.1.4.2. 875 Group 2: Unsupported Attributes 877 See [ipp-mod] section 3.1.7 for details on returning Unsupported 878 Attributes. 880 If some of the attributes in the operation fail to validate, the 881 Printer MUST reject the operation, MUST NOT change any Job 882 attributes, and MUST return the indicated status code below. In 883 this group, the Printer MUST also return all attributes that fail 884 to validate. The following are the reasons that an attribute fails 885 to validate and the value returned for the attribute, along with 886 the indicated status code and order of detection: 888 1. The number of attributes supplied by the client exceeds the 889 maximum number that the Printer supports in a Set-Printer- 891 Expires: September 23, 2000 892 Attributes request: return the 'client-error-request-entity- 893 too-large' (see [ipp-mod] section 13.1.4.9). 895 2. The Printer doesn't support the attribute: return the 896 attribute with the 'unsupported' out-of-band attribute value 897 (see [ipp-mod] section 3.1.7 and [ipp-pro]) and the 'client- 898 error-attributes-or-values-not-supported (see [ipp-mod] 899 section 13.1.4.12). 901 3. The attribute is READ-ONLY (in its definition) or is not- 902 settable in this implementation: return the attribute with 903 the 'not-settable' out-of-band attribute value (see section 904 8.1) and the 'client-error-attributes-not-settable' status 905 code (see section 7.1). 907 4. The Printer doesn't support the value: if the attribute in 908 the operation has a single value return it. If the attribute 909 in the operation is multi-valued, return only those values in 910 a 1setOf that are not supported. Return the 'client-error- 911 attributes-or-values-not-supported' status code (see [ipp-mod] 912 section 13.1.4.12). 914 5. The values of some of the supplied attributes conflict with 915 one another and/or other Job attribute values not being set: 916 if the conflicting attribute in the operation has a single 917 value return the attribute and the value. If the attribute in 918 the operation is multi-valued, return only the attribute and 919 those values in a 1setOf that are conflicting with other 920 attributes. Return the 'client-error-conflicting-attributes' 921 status code (see [ipp-mod] section 13.1.4.15). 923 4.3 Get-Printer-Supported-Values Operation 925 This OPTIONAL operation allows a client to request the values that the 926 Printer allows in the Set-Printer-Attributes operation for "xxx- 927 supported" attributes. If the Printer supports the Set-Printer- 928 Attributes operation AND some of its "xxx-supported" Printer attributes 929 are settable, then the Printer MUST also support this operation. 931 The Printer MUST return in the Get-Printer-Supported-Values response 932 those, and only those, "xxx-supported" Printer attributes that it 933 supports setting with the Set-Printer-Attributes operation. 934 Furthermore, if a client requests the value of an attribute that is not 935 settable or is not supported (as in the Get-Printer-Attributes 936 response), the Unsupported Attributes Group of the response NEED NOT 937 contain the "requested-attributes" operation attribute with any such 938 requested (attribute keyword) values. 940 This operation has identical request/response attributes to the Get- 941 Printer-Attributes operation in IPP/1.1 [ipp-mod]. The operation also 942 behaves identically to the Get-Printer-Attributes operation in IPP/1.1 943 [ipp-mod] with the following exceptions: 945 Expires: September 23, 2000 946 1. The Get-Printer-Supported-Values operation supports only "xxx- 947 supported" attributes. 949 2. The Get-Printer-Attributes operation returns the few "xxx- 950 supported" attributes that are defined to be single valued, such as 951 "page-ranges-supported" (boolean) or "pdl-override-supported" 952 (type2 keyword), as single values, while Get-Printer-Supported- 953 Values returns the possible values that can be set as a 1setOf of 954 the same attribute syntax type (See Appendix B: Attributes returned 955 from Get-Printer-Supported-Values). 957 3. The Get-Printer-Attributes operation returns the current values of 958 requested attributes while the Get-Printer-Supported-Values 959 operation returns the values that are inherently supported by the 960 implementation code, i.e., the values that an administrative client 961 can set in a Set-Printer-Attributes request. 963 4. The Get-Printer-Attributes operation returns the current values of 964 requested "xxx-supported" attributes that the Printer is configured 965 to accept in Job Creation operations, including additional values 966 defined by the administrator, while the Get-Printer-Supported- 967 Values operation returns only the values of "xxx-supported" 968 attributes that are inherently supported by the implementation and 969 does not return any additional values defined by the administrator 970 where the implementation supports the 'admin-define' out-of-band 971 value. 973 5. The Get-Printer-Attributes never returns the 'admin-define' out-of- 974 band attribute value, while the Get-Printer-Supported-Attributes 975 operation does, if the implementation allows the administrator to 976 define name values by setting that "xxx-supported" attribute with 977 any 'name' value(s). 979 6. The Get-Printer-Attributes operation only requires end-user access 980 rights, while the Get-Printer-Supported-Values requires 981 administrator access rights. 983 Access Rights: The authenticated user (see [ipp-mod] section 8.3) 984 performing this operation must be an administrator of the Printer object 985 (see [ipp-mod] Sections 1 and 8.5). 987 4.3.1Definition of the usage of the 'admin-define' out-of-band attribute 988 value 990 If the Set-Printer-Attributes operation allows the System Administrator 991 to define arbitrary 'name' values for an "xxx-supported" attribute, then 992 the Get-Printer-Supported-Values operation MUST return the 'admin- 993 define' out-of-band attribute value (see section 8.3) as one of the 994 values of the "xxx-supported" attribute. In other words, the 'admin- 995 define' out-of-band attribute value indicates that the Printer 996 implementation supports clients setting arbitrary 'name' attribute 997 syntax values for that "xxx-supported" attribute using the Set-Printer- 999 Expires: September 23, 2000 1000 Attributes operation as long as the attribute is defined with the 'name' 1001 attribute syntax. 1003 For example, if the Get-Printer-Supported-Values operation returns 1004 several keywords as the value of the "media-supported" attribute, then 1005 the Set-Printer-Attributes operation MUST accept any of these keywords 1006 as values for the "media-supported" attribute. If the Get-Printer- 1007 Supported-Values operation returns an 'admin-define' out-of-band 1008 attribute value as one of the values of the "media-supported" attribute, 1009 then the Set-Printer-Attributes operation MUST accept any value whose 1010 attribute syntax is 'name' as a value for the "media-supported" 1011 attribute (provided that the user is properly authenticated to use the 1012 Set-Printer-Attributes operation, e.g., has administrative access 1013 rights). 1015 The Get-Printer-Supported-Values MAY return the 'admin-define' out-of- 1016 band attribute value for any IPP/1.1 or extension Job Template attribute 1017 if the implementation supports allowing the System Administrator to add 1018 values to the "xxx-supported" attribute using the Set-Printer-Attributes 1019 operation. In this case, the Printer MUST accept any 'name' value of 1020 the correct attribute syntax in a Set-Printer-Attributes operation that 1021 is setting that attribute. For "xxx-supported" attributes that are 1022 defined with a choice of attribute syntaxes, such as 'keyword | name', 1023 it is the 'name' attribute syntax that the System Administrator can use 1024 to add new values, not the 'keyword' attribute syntax. For IPP/1.1 this 1025 requirement includes the following Job Template attributes: 1027 media-supported 1028 job-hold-until-supported 1029 job-sheets-supported 1031 Implementations that support additional Job Template attributes that 1032 include the 'name' attribute syntax, MAY use the 'admin-define' out-of- 1033 band value with them. 1035 If the 'admin-define' out-of-band attribute value is not one of the 1036 values of an "xxx-supported" attribute returned in a Get-Printer- 1037 Supported-Values response, then the Printer MUST NOT allow the Set- 1038 Printer-Attributes operation for that attribute to contain a value that 1039 is not one of the explicit 'keyword' or 'name' values returned in a Get- 1040 Printer-Supported-Values response. 1042 See Appendix B: Attributes returned from Get-Printer-Supported-Values 1043 for a full list of values returned by this operation. 1045 5 New Operation attributes 1047 This section defines new operation attributes for use with the IPP/1.1 1048 operations indicated. As new operations are defined they will also 1049 indicate explicitly whether these operation attributes are defined for 1050 use with them. 1052 Expires: September 23, 2000 1053 5.1 "printer-message-from-operator" (text(127)) 1055 The Printer SHOULD support this Operation attribute in following 1056 operations if it supports the corresponding "printer-message-from- 1057 operator" Printer Description attribute. 1059 Pause-Printer 1060 Resume-Printer 1061 Purge-Jobs 1063 The client OPTIONALLY supplies this attribute in the above operations. 1064 The value of this attribute is a message from the operator about the 1065 Printer object on which the operator is performing the operation. If 1066 this operation attribute is supported, the Printer copies the value to 1067 its "printer-message-from-operator" Printer Description attribute (see 1068 [ipp-mod] section 4.4.25) even if this Operation attribute is a zero- 1069 length text value or consists solely of white space. 1071 If the Printer supports this operation attribute, it MUST support both a 1072 zero-length text value and the 'no-value' out-of-band value (see [ipp- 1073 mod] section 4.1) to indicate that the operator has sent no message. In 1074 this case, the Printer sets the value of the "printer-message-from- 1075 operator" to the zero-length value or 'no-value' out-of-band value, 1076 respectively. If the client queries the "printer-message-from-operator" 1077 Printer attribute, the Printer returns the attribute with the zero- 1078 length value or the 'no-value' value, respectively. 1080 In addition, the Printer automatically copies: 1082 1. the value of its "printer-up-time" attribute (see [ipp-mod] section 1083 4.4.29) to its "printer-message-time" attribute, 1085 2. the value of its printer-current-time" (dateTime) attribute (see 1086 [ipp-mod] section 4.4.30) to its "printer-message-date-time" 1087 attribute, if supported. 1089 If the client omits this operation attribute, the Printer does not 1090 change the value of its "printer-message-from-operator", "printer- 1091 message-time" and "printer-message-date-time" Printer Description 1092 attributes. 1094 The "printer-message-from-operator" operation attribute MUST NOT be 1095 supported as an operation attribute for the Set-Printer-Attributes 1096 operation. If the operator wants to set the Printer's "printer-message- 1097 from-operator" Printer Description attribute when issuing the Set- 1098 Printer-Attributes operation, the client supplies the "printer-message- 1099 from-operator" explicitly with its new value as one of the Printer 1100 Description attributes in Group 2 in the request. The Printer also 1101 updates its "printer-message-time" and "printer-message-date-time" 1102 Printer Description attributes. If the client does not explicitly 1103 supply the "printer-message-from-operator" with its new value in the 1104 Set-Printer-Attributes request, the Printer leaves the value of the 1106 Expires: September 23, 2000 1107 Printer's "printer-message-from-operator" Printer Description attribute 1108 unchanged. 1110 5.2 "job-message-from-operator" (text(127)) 1112 The Printer SHOULD support this Operation attribute in following 1113 operations if it supports the corresponding "job-message-from-operator" 1114 Job Description attribute. 1116 Cancel-Job 1117 Hold-Job 1118 Release-Job 1119 Restart-Job 1121 The client OPTIONALLY supplies this attribute in the above operations. 1122 The value of this attribute is a message from the operator about the Job 1123 object on which the operator has just performed an operation. If 1124 supported, the Printer copies the value to the Job's "job-message-from- 1125 operator" Job Description attribute (see [ipp-mod] section 4.3.16) (even 1126 if this Operation attribute is a zero-length text value or consists 1127 solely of white space). 1129 If the Printer supports this operation attribute, it MUST support both a 1130 zero-length text value and the 'no-value' out-of-band value (see [ipp- 1131 mod] section 4.1) to indicate that the operator has sent no message. In 1132 this case, the Printer sets the value of the "job-message-from-operator" 1133 to the zero-length value or 'no-value' out-of-band value, respectively. 1134 If the client queries the "job-message-from-operator" Job attribute, the 1135 IPP object returns the attribute with the zero-length value or the 'no- 1136 value' value, respectively. 1138 If the client omits this attribute, the Printer does not change the 1139 value of its "job-message-from-operator" Job Description attribute. 1141 Note: There are no corresponding 'job-message-time" and "job-message- 1142 date-time" Job Description attributes, since the usual lifetime of a job 1143 is limited. 1145 The "job-message-from-operator" operation attribute MUST NOT be 1146 supported as an operation attribute for the Set-Job-Attributes 1147 operation. If the operator wants to set the Job's "job-message-from- 1148 operator" Job Description attribute when issuing the Set-Job-Attributes 1149 operation, the client MUST supply the "job-message-from-operator" with 1150 its new value as one of the Job Description attributes in Group 2 in the 1151 request. Otherwise, the Printer leaves the value of the Job's "job- 1152 message-from-operator" Job Description attribute unchanged by not 1153 explicitly setting the attribute. If the client does not explicitly 1154 supply the "job-message-from-operator" with its new value in the Set- 1155 Job-Attributes request, the Printer leaves the value of the Job's "job- 1156 message-from-operator" Job Description attribute unchanged. 1158 Expires: September 23, 2000 1159 6 New Printer Description Attributes 1161 The following new Printer Description attributes are needed to support 1162 the new operations defined in this document. 1164 6.1 printer-settable-attributes-supported (1setOf type2 keyword) 1166 This REQUIRED READ-ONLY Printer attribute identifies the Printer object 1167 attributes that are settable in this implementation, i.e., that are 1168 settable using the Set-Printer-Attributes operations (see section 4.1). 1169 This attribute MUST be supported if the Set-Printer-Attributes 1170 operations is supported. The Printer MUST reject attempts to set any 1171 Printer attributes that are not one of the values of this attribute, 1172 returning the 'client-error-attributes-not-settable' status code (see 1173 section 7.1). The value of this attribute MAY depend on the value of 1174 the "document-format" operation attribute supplied in the Get-Printer- 1175 Attributes operation (see [ipp-mod] section 3.2.5.1). 1177 Standard keyword values are: 1179 'none': There are no settable Printer attributes. 1180 'xxx': Where 'xxx' is any of the keyword attribute names allowed by 1181 section 4.1.1 1183 6.2 job-settable-attributes-supported (1setOf type2 keyword) 1185 This REQUIRED READ-ONLY Printer attribute identifies the Job object 1186 attributes that are settable in this implementation, i.e., that are 1187 settable using the Set-Job-Attributes operation (see section 4.2). This 1188 attribute MUST be supported if the Set-Job-Attributes operations is 1189 supported. The Printer MUST reject attempts to set any Job attributes 1190 that are not one of the values of this attribute, returning the 'client- 1191 error-attributes-not-settable' status code (see section 7.1). 1193 Standard keyword values are: 1195 'none': There are no settable Job attributes. 1196 'xxx': Where 'xxx' is any of the keyword attribute names allowed by 1197 section 4.2.1. 1199 6.3 document-format-varying-attributes (1setOf type2 keyword) 1201 This OPTIONAL READ-ONLY Printer Description attribute contains a set of 1202 attribute name keywords. This attribute SHOULD be supported by a 1203 Printer object, if the Printer object has Printer attributes whose value 1204 vary depending on document format (see [ipp-mod] Get-Printer-Attributes 1205 operation). This attribute specifies which attribute values can vary by 1206 document-format. If an attribute's name "xxx" is a member of this 1207 attribute and the value of attribute "xxx" is changed with the Set- 1208 Printer-Attributes operation that included the "document-format" 1209 operation attribute, then the Printer MUST change the value for the 1210 specified document format and no other document formats (see section 1212 Expires: September 23, 2000 1213 4.1.2). If an attribute's name "xxx" is not a member of this attribute 1214 and the value of attribute "xxx" is changed with the Set-Printer- 1215 Attributes operation, then the attribute is changed for all document 1216 formats (whether or not the client supplied the "document-format" 1217 operation attribute). 1219 6.4 printer-message-time (integer(MIN:MAX)) 1221 This OPTIONAL READ-ONLY Printer Description attribute contains the time 1222 that the Printer's "printer-message-from-operator" was changed by the 1223 operator using any operation where the client supplied the "printer- 1224 message-from-operator" operation attribute (see section 5.1) or was 1225 explicitly set using the Set-Printer-Attributes operation (see section 1226 4.1). This attribute allows the users to know when the "printer- 1227 message-from-operator" attribute was last set. 1229 The Printer sets the value of this attribute by copying the value of the 1230 Printer's "printer-up-time" attribute (see [ipp-mod] section 4.3.14). 1231 If the Printer resets its "printer-up-time" attribute to 1 on power-up, 1232 then it MUST change the value of the "printer-message-time" to 0 or a 1233 negative number as specified in [ipp-mod] section 4.3.14. 1235 Note: This attribute helps users better understand the context for the 1236 "printer-message-from-operator" message. 1238 6.5 printer-message-date-time (dateTime) 1240 This OPTIONAL READ-ONLY Printer Description attribute contains the date 1241 and time that the Printer's "printer-message-from-operator" was changed 1242 by the operator using any operation where the client supplied the 1243 "printer-message-from-operator" operation attribute (see section 5.1) or 1244 was explicitly set using the Set-Printer-Attributes operation (see 1245 section 4.1). This attribute allows the users to know when the 1246 "printer-message-from-operator" attribute was last set. 1248 This attribute MUST be supported if the Printer supports both the 1249 "printer-message-time" and the "printer-current-time" (dateTime) 1250 attributes (see [ipp-mod] section 4.4.30). 1252 Note: This attribute helps users better understand the context for the 1253 "printer-message-from-operator" message. 1255 6.6 printer-xri-supported (1setOf collection) 1257 This OPTIONAL Printer Description attribute is a multi-valued attribute 1258 where each value has the 'collection' attribute syntax (see [ipp-coll]) 1259 containing member attributes with the same semantics as the following 1260 IPP/1.1 READ-ONLY Printer Description attributes, except for 1261 cardinality: 1263 printer-uri-supported (1setOf uri) - see [ipp-mod] section 4.4.1 1265 Expires: September 23, 2000 1266 uri-authentication-supported (1setOf type2 keyword) - see [ipp-mod] 1267 section 4.4.2 1268 uri-security-supported (1setOf type2 keyword) - see [ipp-mod] 1269 section 4.4.3 1271 When setting the "printer-xri-supported" attribute with a Set-Printer- 1272 Attributes request, the Printer MUST also set these three IPP/1.1 READ- 1273 ONLY Printer Description attributes as a defined side effect. Thus, 1274 this collection attribute provides the means to set these three IPP/1.1 1275 READ-ONLY attributes atomically so that they are never left in a 1276 partially inconsistent state. 1278 An IPP Printer MUST NOT provide any other way using IPP to set these 1279 three IPP/1.1 READ-ONLY Printer Description attributes, since they are 1280 READ-ONLY and MUST have consistent values at all times. Note: The 1281 "xri-printer-supported" (1setOf collection) attribute can be put into a 1282 directory schema that requires a single text string value, such as SLP 1283 or LDPA, by using suitable delimiting characters to separate member 1284 attributes of the collection and/or terminating collection values. See 1285 [svrloc-printer] and [ldap-printer]. 1287 The member attributes of the "printer-xri-supported" (1setOf collection) 1288 are given in Table 3. 1290 Table 3 - Member attributes of "printer-xri-supported" (1setOf 1291 collection) 1293 Member attribute client Printer 1294 MUST MUST 1295 supply support 1297 xri-uri (uri) yes yes 1299 xri-authentication (1setOf type2 keyword) yes yes 1301 xri-security (1setOf type2 keyword) yes yes 1303 Each collection value MUST contain a single unique value for the "xri- 1304 uri" member attribute. However, the other two member attributes are 1305 multi-valued, so that a single URI can support more than one 1306 authentication scheme and/or more than one security scheme. Other than 1307 the uniqueness and the cardinality requirements, the semantics of these 1308 three member attributes is given in [ipp-mod] sections 4.4.1, 4.4.2, and 1309 4.4.3, respectively. 1311 A client can query the current values using the Get-Printer-Attributes 1312 operation by supplying either: 1314 1. the three IPP/1.1 attribute names: "printer-uri-supported", "uri- 1315 authentication-supported", "uri-security-supported" and getting 1316 back the parallel values OR 1318 Expires: September 23, 2000 1320 2. the single attribute name: "printer-xri-supported" and getting back 1321 the 1setOf collection which contains the same information 1322 semantically, but in a different form. 1324 A client can query what member attribute values can be set by supplying 1325 the three attribute names: "xri-uri-scheme-supported", "xri- 1326 authentication-supported", and "xri-security-supported" in a Get- 1327 Printer-Supported-Values request and getting back the uriScheme and 1328 type2 keyword values that can be set. Since the "printer-xri- 1329 supported", "uri-authentication-supported", and "uri-security-supported" 1330 attributes are READ-ONLY, they are not queriable with the Get-Printer- 1331 Supported-Values operation (see section 4.3). See Table 15. 1333 When performing a Set-Printer-Attributes operation, if there are 1334 multiple values for the "xri-authentication" and/or "xri-security" 1335 member attributes, the Printer MUST set the corresponding three READ- 1336 ONLY attributes with all possible combinations of values. For example, 1337 setting the "printer-xri-supported" with the following two collection 1338 values where the first URI has both 'basic' and 'digest' authentication: 1340 "printer-xri-supported = 1341 { "xri-uri" = ipp://abc.com/p1 1342 "xri-authentication" = basic, digest 1343 "xri-security" = tls 1344 }, 1345 { "xri-uri" = http://abc.com/pq 1346 "xri-authentication" = none 1347 "xri-security" = none 1348 } 1350 would cause the Printer to set the three corresponding IPP/1.1 READ-ONLY 1351 attributes, each with three parallel values as follows: 1353 "printer-uri-supported" = { ipp://abc.com/p1, ipp://abc.com/p1, 1354 http://abc.com/pq } 1355 "uri-authentication-supported" = { basic, digest, none } 1356 "uri-security-supported" = { tls, tls, none } 1358 Because there were two authentication values for the ipp://abc.com/p1 1359 URL, that URL value is repeated. Had the ipp URL had 2 authentication 1360 values and 3 security values, then there would have been 7 (2*3 + 1) 1361 parallel values for each of the three attributes, 6 with the same ipp 1362 URI and 1 with the http URI. 1364 6.7 xri-uri-scheme-supported (1setOf uriScheme) 1366 This OPTIONAL READ-ONLY Printer Description attribute identifies the URI 1367 schemes that the implementation supports for use in the "printer-uri- 1368 supported" (1setOf uri) Printer Description attribute (see [ipp-mod] 1369 section 4.4.1) and the "xri-uri" member attribute of the "xri-printer- 1371 Expires: September 23, 2000 1372 supported" (1setOf collection) Printer Description attribute (see 1373 section 6.6). 1375 A Printer MUST support this attribute if it supports setting the 1376 "printer-xri-supported" (1setOf collection) with the Set-Printer- 1377 Attributes operation. 1379 6.8 xri-authentication-supported (1setOf type2 keyword) 1381 This OPTIONAL READ-ONLY Printer Description attribute identifies the 1382 Client Authentication mechanisms that the implementation supports for 1383 use in the "printer-authentication-supported" (1setOf type2 keyword) 1384 Printer Description attribute (see [ipp-mod] section 4.4.2) and the 1385 "xri-authentication" member attribute of the "xri-printer-supported" 1386 (1setOf collection) Printer Description attribute (see section 6.6). 1388 A Printer MUST support this attribute if it supports setting the 1389 "printer-xri-supported" (1setOf collection) with the Set-Printer- 1390 Attributes operation. 1392 6.9 xri-security-supported (1setOf type2 keyword) 1394 This OPTIONAL READ-ONLY Printer Description attribute identifies the URI 1395 schemes that the implementation supports for use in the "printer- 1396 security-supported" (1setOf type2 keyword) Printer Description attribute 1397 (see [ipp-mod] section 4.4.3) and the "xri-security" member attribute of 1398 the "xri-printer-supported" (1setOf collection) Printer Description 1399 attribute (see section 6.6). 1401 A Printer MUST support this attribute if it supports setting the 1402 "printer-xri-supported" (1setOf collection) with the Set-Printer- 1403 Attributes operation. 1405 7 Additional status codes 1407 This section defines new status codes used by the operations defined in 1408 this document. 1410 7.1 'client-error-attributes-not-settable' (0x0413) 1412 The Set-Printer-Attributes or Set-Job-Attributes operation failed 1413 because one or more of the specified attributes cannot be set either 1414 because the attribute is defined to be READ-ONLY or the attribute is not 1415 settable in this implementation (see sections 4.1.3 and 4.2.3), the 1416 Printer MUST return this error code and the attribute keyword name(s) 1417 and the 'not-settable' out-of-band value (see section 8.1) in the 1418 Unsupported Attributes Group(see [ipp-mod] section 3.1.7) for all of the 1419 attributes that could not be set. When the Printer returns this status, 1420 it MUST NOT change any of the attributes supplied in the operation. 1422 Expires: September 23, 2000 1423 8 Additional out-of-band values 1425 This section defines additional out-of-band values. As with all out-of- 1426 band values, a client or a Printer MUST NOT use an out-of-band value 1427 unless the definition of the attribute in an operation request and/or 1428 response explicitly allows such usage. See the beginning of [ipp-mod] 1429 section 4.1. 1431 8.1 'not-settable' out-of-band value 1433 The 'not-settable' out-of-band attribute value is returned by the IPP 1434 Printer in the Unsupported Attributes group of a response to indicate 1435 that the attribute supplied by the client in the request is READ-ONLY by 1436 definition or is not settable in this implementation. 1438 The 'not-settable' out-of-band attribute value is defined for use with 1439 the Set-Job-Attributes and Set-Printer-Attributes response only. If a 1440 future additional "set" operation allows the 'not-settable' out-of-band 1441 value, its definition document MUST indicate such use explicitly, 1442 including with which attributes. 1444 An IPP object MUST support the 'not-settable' out-of-band value in a 1445 Set-Job-Attributes or Set-Printer-Attributes request if it supports 1446 those operations. A client MUST NOT supply the 'not-settable' out-of- 1447 band value in any request. An IPP object MUST NOT support the 'not- 1448 settable' out-of-band value in other operations, unless the operations' 1449 definition document explicitly defines such usage. If a Printer 1450 receives this out-of-band value in any operation request, the Printer 1451 MUST either (1) reject the entire request and return the 'client-error- 1452 bad-request' status code or (2) ignore the attribute and return it with 1453 the 'unsupported' out-of-band value. 1455 See sections 4.1.3 and 4.2.3 in this document for an example definition 1456 of the usage of the 'not-settable' out-of-band value in the Set-Printer- 1457 Attributes and Set-Job-Attributes responses. 1459 8.1.1Encoding of the 'not-settable' out-of-band attribute value 1461 The encoding of the 'not-settable' out-of-band value is 0x15 (see [ipp- 1462 pro]). The value-length MUST be 0 and the value empty. 1464 8.2 'delete-attribute' out-of-band value 1466 The 'delete-attribute' out-of-band attribute value is supplied by the 1467 client in a request to indicate that the Printer is to remove the 1468 supplied attribute and all of its values from the target object, if 1469 present. 1471 The 'delete-attribute' out-of-band attribute value is defined for use 1472 with the Set-Job-Attributes request only. If a future additional "set" 1473 operation allows the 'delete-attribute' out-of-band value, its 1475 Expires: September 23, 2000 1476 definition document MUST indicate such use explicitly, including with 1477 which attributes. 1479 An IPP Printer MUST support the 'delete-attribute' out-of-band value if 1480 it supports the Set-Job-Attributes operation. A client MUST NOT supply 1481 and an IPP object MUST NOT support the 'delete-attribute' out-of-band 1482 value in other operations, unless the operations' definition document 1483 explicitly defines such usage. For example, the 'delete-attribute' out- 1484 of-band value MUST NOT be used in the Set-Printer-Attributes operation, 1485 where the absence of an attribute from an IPP object indicates that the 1486 attribute is not supported. If a Printer receives this out-of-band 1487 value in other operation requests, the Printer MUST either (1) reject 1488 the entire request and return the 'client-error-bad-request' status code 1489 or (2) ignore the attribute and return it with the 'unsupported' out-of- 1490 band value. 1492 See section 4.2 in this document for the definition of the usage of the 1493 'delete-attribute' out-of-band value in the Set-Job-Attributes request. 1495 8.2.1Encoding of the 'delete-attribute' out-of-band value 1497 The encoding of the 'delete-attribute' out-of-band value is 0x16 (see 1498 [ipp-pro]). The value-length MUST be 0 and the value empty. 1500 8.3 'admin-define' out-of-band attribute value 1502 Section 4.3 defines the Get-Printer-Supported-Values response to contain 1503 the values of an "xxx-supported" attribute that are supported by the 1504 implementation before any additional value are defined by the 1505 administrator. The 'admin-define' out-of-band attribute value is 1506 returned as an additional value of an "xxx-supported" attribute in a 1507 Get-Printer-Supported-Values response to indicate that the 1508 implementation supports allowing an administrator to define additional 1509 arbitrary 'name' values for that "xxx-supported" attribute. 1511 For example, if the "media-supported" (1setOf (type3 keyword | name)) 1512 attribute contains this value, then the Printer MUST permit an 1513 administrator to add new media names to the Printer's "media-supported" 1514 attribute. In order for an administrator to add new values to a 1515 Printer's "xxx-supported" attribute, the client supplies the existing 1516 and new values in a Set-Printer-Attributes request for that attribute. 1517 The client MUST supply any such administratively defined values in the 1518 Set-Printer-Attributes request using the 'name' attribute syntax. 1520 The 'admin-define' out-of-band attribute value is defined for use with 1521 the Get-Printer-Supported-Values response only. A Printer MUST NOT 1522 return the 'admin-define' out-of-band value in a Get-Printer-Attributes 1523 response, since such a response indicates what an end-user client can 1524 supply in a Job Creation operation. If a future additional "get" 1525 operation allows the 'admin-define' out-of-band value, its definition 1526 document MUST indicate such use explicitly, including with which 1527 attributes. 1529 Expires: September 23, 2000 1530 An IPP Printer MUST support the 'admin-define' out-of-band value, if it 1531 supports a client setting arbitrary 'name' values of an "xxx-supported" 1532 Printer attribute using the Set-Printer-Attributes operation. A client 1533 MUST NOT supply the 'admin-define' out-of-band value in any request. An 1534 IPP object MUST NOT support the 'admin-define' out-of-band value in 1535 other operations, unless the operations' definition document explicitly 1536 defines such usage. If a Printer receives this out-of-band value in any 1537 operation request, the Printer MUST either (1) reject the entire request 1538 and return the 'client-error-bad-request' status code or (2) ignore the 1539 attribute and return it with the 'unsupported' out-of-band value. 1541 This document defines that the 'admin-define' out-of-band value MUST be 1542 used only with "xxx-supported" attributes that are defined to include 1543 the 'name' attribute syntax. This out-of-band value is not intended to 1544 be used with "xxx-supported" attributes of other attribute syntaxes, 1545 such as 'uri', even though the administrator defines arbitrary values 1546 for such attributes. If other documents extend the use of the 'admin- 1547 define' out-of-band value to other attribute syntaxes, such a document 1548 MUST define such use explicitly, including with which attributes. 1550 See section 4.3 in this document for an example definition of the usage 1551 of the 'admin-define' out-of-band attribute value in any "xxx-supported" 1552 attribute returned in a Get-Printer-Supported-Values response that is 1553 defined to include the 'name' attribute syntax. 1555 8.3.1Encoding of the 'admin-define' out-of-band attribute value 1557 The encoding of the 'admin-define' out-of-band attribute value is 0x17 1558 (see [ipp-pro]). The value-length MUST be 0 and the value empty. 1560 9 Conformance Requirements 1562 This section specifies the conformance requirements for clients and IPP 1563 objects. 1565 Both the Set-Job-Attributes and the Set-Printer-Attributes operations 1566 defined in the document are OPTIONAL for an IPP object to support. 1567 Either one MAY be supported without the other or both MAY be supported. 1568 However, if the Set-Printer-Attributes operation is supported, then the 1569 Get-Printer-Supported-Values operation MUST be supported if any "xxx- 1570 supported" attributes are settable. Otherwise, the Get-Printer- 1571 Supported-Values operation is OPTIONAL for an IPP Printer to support. 1573 If the Set-Printer-Attributes operation is supported, then the Printer 1574 MUST support the following additional items: 1576 1.the Get-Printer-Supported-Values operation (see section 5), if 1577 any "xxx-supported" attributes are settable. 1579 2.the "printer-settable-attributes-supported" Printer Description 1580 attribute (see section 6.1) 1582 Expires: September 23, 2000 1584 3.the 'not-settable' out-of-band value in responses (see section 1585 8.1) 1587 4.the 'client-error-not-settable' status code (see section 7.1) 1589 5.If "printer-message-from-operator" Printer Description attribute 1590 is supported (see [ipp-mod] section 4.4.25), then it MUST be 1591 settable. 1593 6.the Get-Printer-Supported-Values operation (see section 4.3), if 1594 any "xxx-supported" attributes are settable. 1596 7.If a client can set a value with the 'name' attribute syntax for 1597 one or more "xxx-supported" attributes, then the 'admin-define' 1598 out-of-band attribute value (see section 8.3) MUST be supported 1599 in the Get-Printer-Supported-Values response for each such 1600 settable attribute (see section 4.3) 1602 If the Set-Job-Attributes operation is supported, then the Printer MUST 1603 support the following additional items: 1605 1.the "job-settable-attributes-supported " Printer Description 1606 attribute (see section 6.2) 1608 2.the 'not-settable' out-of-band value in responses (see section 1609 8.1) 1611 3.the 'delete-attribute' out-of-band value in requests (see 1612 section 8.2) 1614 4.the 'client-error-not-settable' status code (see section 7.1) 1616 5.If the "job-message-from-operator" Printer Description attribute 1617 is supported (see [ipp-mod] 4.3.16), then it MUST be settable. 1619 It is OPTIONAL for the Printer object to support the "printer-message- 1620 time" (integer) and "printer-message-date-time" (dateTime) Printer 1621 Description attributes. If both the "printer-message-time" (integer) 1622 and the "printer-current-time" (dateTime) (see [ipp-mod] section 4.4.30) 1623 attributes are supported, then the "printer-message-date-time" 1624 (dateTime) Printer Description attribute MUST be supported. 1626 As with all out-of-band values, a client or a Printer MUST NOT use an 1627 out-of-band value unless the definition document for the attribute in an 1628 operation request and/or response explicitly allows such usage. 1630 10 IANA Considerations 1632 Since this document is intended to be a standards track document, there 1633 is no need to also register the operations, attributes, status codes, 1634 and out-of-band values defined here-in with IANA according to the 1635 procedures in RFC 2566 [rfc2566] section 6. However, other registration 1637 Expires: September 23, 2000 1638 proposals may site the out-of-band attribute values or the status codes 1639 defined in this document. 1641 11 Internationalization Considerations 1643 This document has the same localization considerations as the [ipp-mod]. 1645 12 Security Considerations 1647 The IPP Model and Semantics document [ipp-mod section 8] discusses high 1648 level security requirements (Client Authentication, Server 1649 Authentication and Operation Privacy). Client Authentication is the 1650 mechanism by which the client proves its identity to the server in a 1651 secure manner. Server Authentication is the mechanism by which the 1652 server proves its identity to the client in a secure manner. Operation 1653 Privacy is defined as a mechanism for protecting operations from 1654 eavesdropping. 1656 In addition, the introduction of the Set-Printer-Attributes and Set-Job- 1657 Attributes operations creates another security threat, since the client 1658 is able to modify the Printer and Job attributes stored in the Printer. 1659 Such modifications could lead to denial of service. 1661 A malicious user could alter the policy established by the system 1662 administrator and stored in the Printer attributes. Such alteration 1663 could either grant access to more resources or deny access to resources 1664 that the system administrator has established. For example, the 1665 malicious user could remove all of the document-format values from the 1666 "document-format-supported" Printer attribute so that the Printer would 1667 refuse to accept all jobs. 1669 The general remedy for such malicious user actions against Printer 1670 attributes is to have strong Client Authentication coupled with Printer 1671 access control to limit the users who have System Administrator or 1672 Operator privileges. 1674 A malicious user could modify the Job Template attributes of another 1675 user's Job, such as the "copies" attribute. For example, setting the 1676 number of copies to a large number. 1678 The general remedy for such malicious user actions against another 1679 user's job is to have strong Client Authentication coupled with Printer 1680 access control to limit the users who have System Administrator or 1681 Operator privileges who can modify any job and, in addition, store the 1682 Client Authentication with each Job so that only the job owner End User 1683 can modify his/her own job. 1685 13 Author's Addresses 1687 Carl Kugler 1689 Expires: September 23, 2000 1690 IBM 1691 P.O. Box 1900 1692 Boulder, CO 80301-9191 1694 Phone: (303) 924-5060 1695 FAX: 1696 e-mail: kugler@us.ibm.com 1698 Tom Hastings 1699 Xerox Corporation 1700 737 Hawaii St. ESAE 231 1701 El Segundo, CA 90245 1703 Phone: 310-333-6413 1704 Fax: 310-333-5514 1705 e-mail: hastings@cp10.es.xerox.com 1707 Robert Herriot 1708 Xerox Corp. 1709 3400 Hill View Ave, Building 1 1710 Palo Alto, CA 94304 1712 Phone: 650-813-7696 1713 Fax: 650-813-6860 1714 e-mail: robert.herriot@pahv.xerox.com 1716 Harry Lewis 1717 IBM 1718 P.O. Box 1900 1719 Boulder, CO 80301-9191 1721 Phone: (303) 924-5337 1722 FAX: 1723 e-mail: harryl@us.ibm.com 1725 14 References 1727 [ipp-coll] 1728 deBry, R., , Hastings, T., Herriot, R., "Internet Printing Protocol 1729 (IPP): The Collection Attribute Syntax", , work in progress, March 9, 2000. 1732 [ipp-mod] 1733 R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, 1734 "Internet Printing Protocol/1.0: Model and Semantics", , March 1, 2000. 1737 [ipp-pro] 1738 Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing 1739 Protocol/1.1: Encoding and Transport", draft-ietf-ipp-protocol-v11- 1740 05.txt, March 1, 2000. 1742 Expires: September 23, 2000 1744 [ipp-set2] 1745 Kugler, C, Hastings, T., Lewis, H., "Internet Printing 1746 Protocol/1.1: Job and Printer Administrative Operations", , December 8, 1999. 1749 [ldap-printer] 1750 Fleming, P., Jones, K., Lewis, H., McDonald, I., "Internet Printing 1751 Protocol (IPP): LDAP Schema for Printer Services", , work in progress, March 8, 2000. 1754 [RFC2565] 1755 Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing 1756 Protocol/1.0: Encoding and Transport", RFC 2565, April 1999. 1758 [RFC2566] 1759 R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, 1760 "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, 1761 April 1999. 1763 [svrloc-printer] 1764 St. Pierre, P., Isaacson, S., McDonald, I., "Definition of the 1765 Printer Abstract Service Type v2.0", , work in progress, March 8, 2000. 1768 15 Change History 1770 This section summarizes the changes. Each sub-section is in reverse 1771 chronological order. Adding or removing ISSUES that don't change the 1772 document are not listed here. 1774 15.1Changes to the March 21, 2000 version to make the March 23, 2000 1775 version 1777 The following changes have been made to the March 21, 2000 version to 1778 make the March 23, 2000 version as a result of the IPP WG telecons and 1779 mailing list discussion: 1781 1.Changed the name of the 'custom' out-of-band value to 'admin-define'. 1783 2.Tightened up the spec for 'admin-define' so that it cannot be used 1784 returned in a Get-Printer-Attributes response to allow users to 1785 submit arbitrary values in a Job Creation operation. If that 1786 functionality is needed, it will have to be done with another out of 1787 band value. 1789 3.Clarified that the 'admin-define' out-of-band value is only intended 1790 to be used with "xxx-supported" attributes in a Get-Printer- 1791 Supported-Values response that are defined to include the 'name' 1792 attribute syntax. If other documents extend this usage, they MUST 1793 define for which attributes and operations. 1795 Expires: September 23, 2000 1797 4.Added the definitions of the xri-uri-scheme-supported (1setOf 1798 uriScheme), xri-authentication-supported (1setOf type2 keyword), and 1799 xri-security-supported (1setOf type2 keyword) READ-ONLY Printer 1800 attributes that were only referred to. Also made them returnable 1801 only in Get-Printer-Attributes, not Get-Printer-Supported-Values, 1802 since they are READ-ONLY and the administrator cannot change them. 1804 5.Clarified that the few "xxx-supported" attributes that are single 1805 valued, are made 1setOf X in the Get-Printer-Supported-Values so that 1806 the implementation can indicate what possible values can be set. 1808 6.Required the client to have administrator access rights in order to 1809 use the Get-Printer-Supported-Values operation, since its purpose is 1810 for administrators to use before doing a Set-Printer-Attributes 1811 operation. 1813 7.Clarified that if an implementation supports setting arbitrary names 1814 in a Set-Printer-Attributes request, then it MUST support the 'admin- 1815 define' out-of-band value in the Get-Printer-Supported-Values 1816 response. 1818 8.Copied the validation rules from the Implementer's Guide into 1819 Appendix A, since the IIG is not a standards track document. Still 1820 refer to the IIG for additional non-normative explanation. 1822 15.2Changes to the March 8, 2000 version to make the March 21, 2000 1823 version 1825 The following changes have been made to the March 8, 2000 version to 1826 make the March 21, 2000 version as a result of the IPP WG telecons and 1827 mailing list discussion: 1829 9.Changed the name of the 'any-value' out-of-band value to 'custom'. 1830 Removed the idea of encoding the attribute syntax that the 'custom' 1831 out-of-band value goes with. Required the value length to be zero. 1832 Instead, the spec for the attribute or attribute syntax defines 1833 whether or not the 'custom' out-of-band value can be used. 1835 10. Clarified that the 'custom' out-of-band value can be used in 1836 combination with other values of an "xxx-supported" Printer 1837 attribute. 1839 11. Clarified that an implementation is not prevented from supporting 1840 some 'name' attribute values for "xxx-supported" out-of-the-box, if 1841 desired. But these values would be returned in a Get-Printer- 1842 Supported-Values response, such like keywords are. 1844 Expires: September 23, 2000 1846 15.3Changes to the March 1, 2000 version to make the March 8, 2000 1847 version 1849 The following changes have been made to the March 1, 2000 version to 1850 make the March 8, 2000 version as a result of the IPP WG telecons and 1851 mailing list discussion: 1853 1.Added the "printer-xri-supported" (1setOf collection) attribute so 1854 that the three parallel IPP/1.1 "printer-uri-supported", "uri- 1855 authentication-supported", and "uri-security-supported" attributes 1856 could be set as one atomic attribute. Consequently, changed the 1857 three parallel attributes to be READ-ONLY and removed the requirement 1858 that three attributes MUST be set in a single request if the three 1859 parallel IPP/1.1 "printer-uri-supported", "uri-authentication- 1860 supported", and "uri-security-supported" were settable. 1862 2.Clarified Get-Printer-Supported-Values so that if an implementation 1863 does not support setting a settable attribute, it MUST NOT return the 1864 attribute in the Printer Attribute group and it NEED NOT return the 1865 attribute in the Unsupported Attributes group, same as in a Get- 1866 Printer-Attributes response for unsupported attributes. Same 1867 clarification when unsupported attributes are requested. 1869 3.Fixed "printer-message-date-time" (dateTime) attribute to be 1870 OPTIONAL. 1872 4.Added note as to why the "printer-current-time" Printer Description 1873 attribute is settable (to fix an incorrect time or time zone). 1875 5.Added "xri-authentication-supported" (1setOf type2 keyword) and "xri- 1876 security-supported" (1setOf type2 keyword) attributes to the table of 1877 attributes that can be queried with Get-Printer-Supported-Values. 1878 Added a note that these two attributes are NOT queriable with Get- 1879 Printer-Attributes, since the client queries either (1) the three 1880 "printer-uri-supported" (1setOf uri), "uri-authentication-supported" 1881 (1setOf type2 keyword), "uri-security-supported" (1setOf type2 1882 keyword) attributes, or (2) the single "printer-xri-supported" 1883 (1setOf collection) attribute. 1885 15.4Changes to the January 30, 2000 version to make the March 1, 2000 1886 version 1888 The following changes to the January 30, 2000 version to make the March 1889 1, 2000 version as a result of the IPP WG telecons and mailing list 1890 discussion: 1892 1.Clarified that this extension may be used with any IPP version, 1893 including 1.0, 1.1, and future versions. 1895 2.Added "READ-ONLY" and "not-settable" terms to the terminology 1896 section. READ-ONLY is by definition, and "not-settable" is by 1897 implementation. 1899 Expires: September 23, 2000 1901 3.Assigned the "operation-id" values 0x0013, 0x0014, and 0x0015, 1902 respectively, for the Set-Printer-Attributes, Set-Job-Attributes, and 1903 Get-Printer-Supported-Values operations. 1905 4.Clarified that the Set-Printer-Attributes operation while a Printer 1906 SHOULD accept a reasonable number of attribute, the Printer need only 1907 support setting one attribute in a request, unless it supports 1908 setting the three "parallel" attributes, ("printer-uri-supported", 1909 "uri-authentication-supported", and "uri-security-supported" (see 1910 [ipp-mod] sections 4.4.1 through 4.4.3), in which case it MUST 1911 support setting at least three attributes in a single request. 1913 5.Clarified that for the Set-Printer-Attributes operation the Printer 1914 MUST validate all of the supplied attributes in combination with each 1915 other, as well as with all of the existing attribute of the Printer 1916 object Set-Printer-Attributes. 1918 6.Changed the requirements for accepting the Set-Printer-Attributes 1919 operation when the Printer is in the 'stopped' state from MUST to 1920 SHOULD, since some implementations may not be able to accept requests 1921 when stopped. 1923 7.Clarified that setting certain Printer attributes with Set-Printer- 1924 Attributes MAY require more access rights than other attributes, 1925 i.e., System Administrator rights to set policy and only Operator 1926 rights to set the configuration attributes to reflect the current 1927 hardware setup. 1929 8.Clarified the order of error checking and what is returned in each 1930 case in the Set-Printer-Attributes response. 1932 9.Changed the 'default' out-of-band value to 'delete-attribute' out-of- 1933 band value so that the effect is to actually remove the Job attribute 1934 entirely in the Set-Job-Attribute operation. 1936 10. Clarified that removing a Job attribute that is not present is not 1937 an error. 1939 11. Clarified the validation of the Set-Job-Attributes request and what 1940 is returned for each error. 1942 12. Changed the 'any-name' out-of-band attribute value to a more 1943 general 'any-value' out-of-band attribute value which in combination 1944 with an attribute syntax represents any value of that attribute 1945 syntax. The 'any-value' value can be used with the 'name' attribute 1946 syntax in a Get-Printer-Supported-Values response to indicate whether 1947 or not a Set-Printer-Attributes will accept any name to be set for 1948 particular "xxx-supported" (1setOf name | ...) Printer attributes. 1950 13. Clarified that "printer-message-from-operator" and "job-message- 1951 from-operator" both REQUIRE that the Printer accept zero-length 1952 messages and the 'no-value' out-of-band value is synonymous with 1953 removing any value from these Printer attributes. 1955 Expires: September 23, 2000 1957 14. Clarified that the Get-Printer-Supported-Values is REQUIRED only if 1958 the Set-Printer-Attributes operation will accept setting some "xxx- 1959 supported" Printer attributes. 1961 15. Changed the IANA Considerations to indicate that the operations, 1962 attributes, status codes, and out-of-band-values won't be registered 1963 and published by IANA, since this document is intended to be 1964 standards track. 1966 16. Added security considerations for denial of service and sabotage 1967 because of the Set operations. 1969 15.5Changes to the January 20, 2000 version to make the January 30, 2000 1970 version 1972 The following changes to the January 20, 2000 version to make the 1973 January 30, 2000 version as a result of the IPP WG telecons and mailing 1974 list discussion: 1976 1.Deleted the "document-format-varying-scope" operation attribute from 1977 the Set-Printer-Attributes operation and made whether or not the 1978 "document-format" operation was present determine whether one or all 1979 document formats are affected, respectively. 1981 2.Renamed the Get-Reset-Printer-Attributes operation to Get-Printer- 1982 Supported-Values, so that it only returns "xxx-supported" values. 1983 Relegate obtaining reset values to another operation to be paired 1984 with the Reset-Printer operation in the Set2 [ipp-set2] document. 1986 3.Added "-supported" to the names of the "printer-settable-attributes" 1987 and "job-settable-attributes" Printer Description attributes, so that 1988 they could be returned in Get-Printer-Supported-Values and could be 1989 set by Set-Printer-Attributes. 1991 4.Deleted "authentication-methods-supported" (1setOf type2 keyword) and 1992 "security-methods-supported" (1setOf type2 keyword) and clarified 1993 that "uri-authentication-supported" (1setOf type2 keyword) and "uri- 1994 security-supported" (1setOf type2 keyword) can return multiple 1995 keywords of the same value in a Get-Printer-Supported-Values 1996 operation. 1998 15.6Changes to the January 4, 2000 version to make the January 20, 2000 1999 version 2001 The following changes to the January 4, 2000 version to make the January 2002 4, 2000 version as a result of the IPP WG telecons and mailing list 2003 discussion: 2005 1.Replaced the "factory-settings" operation attribute proposed to be 2006 added to the Get-Printer-Attributes operation with the Get-Rest- 2007 Printer-Attributes operation which returns the reset values and the 2008 possible "xxx-supported" values. 2010 Expires: September 23, 2000 2012 2.Added the out-of-band 'any-name' value to be used with "xxx- 2013 supported" attributes with attribute syntax 'type3 keyword | name' to 2014 indicate that any name will be accepted in a Job Creation operation 2015 for configurations that support such a concept. 2017 3.Added authentication-methods-supported (1setOf type2 keyword) and 2018 security-methods-supported (1setOf type2 keyword) Printer Description 2019 attributes so that clients can discover the possible values for use 2020 in Set-Printer-Attributes to set "uri-authentication-supported" and 2021 "uri-security-supported" attributes, since the Reset-Printer 2022 operation doesn't change them. 2024 4.Added validation rules that the Printer MUST use to validate a Set- 2025 Printer-Attributes request. 2027 5.Clarified that the Set-Printer-Attributes operation MUST NOT have any 2028 side effects on other attributes, unless explicitly specified in this 2029 document. 2031 6.Moved the specification of the attributes that MUST be READ-ONLY to 2032 Appendix A. 2034 7.Added the "document-format-varying-attributes" (1setOf type2 keyword) 2036 8.Added the REQUIRED "document-format-varying-scope" operation 2037 attribute to Set-Printer-Attributes in order to control whether one 2038 or all document formats are affected for those attributes that vary 2039 by document format. 2041 9.Clarified that the Printer returns the 'client-error-attributes-not- 2042 settable' status code in a Set-Printer-Attributes response whether 2043 the attribute is READ-ONLY, the attribute is not supported, or the 2044 value is not supported. 2046 10. Added the out-of-band 'default' value for use with Set-Job- 2047 Attributes and Job Creation operations. 2049 11. Deleted the "printer-message-operation" Printer Description 2050 attribute. 2052 12. Made the "Get-Reset-Printer-Attributes" operation, along with the 2053 "authentication-methods-supported" and the "security-methods- 2054 supported" Printer Description attributes REQUIRED, if the Set- 2055 Printer-Attributes operation is supported. 2057 13. Made the 'not-settable' out-of-band value and the 'client-error- 2058 not-settable' status code REQUIRED, if the Set-Printer-Attributes 2059 operation is supported. 2061 14. Made the 'default' out-of-band value REQUIRED, if the Set-Job- 2062 Attributes operation is supported. 2064 15. Removed the requirement that "xxx-supported" Printer Description 2065 attributes that contain only one value be read-only. 2067 Expires: September 23, 2000 2069 15.7Changes to the December 8, 1999 version to make the January 4, 2000 2070 version 2072 The following changes to the December 8, 1999 version to make the 2073 January 4, 2000 version as a result of the IPP WG telecons and mailing 2074 list discussion: 2076 1.Removed the Set operations and related items from the Set2 2077 specification [ipp-set2] to create this Set specification. 2079 2.Added that an attribute that can only be set to one fixed value 2080 SHOULD NOT be included in the "printer-settable-attributes" or "job- 2081 settable-attributes" attributes. 2083 3.Indicated that the encoding of the 'not-settable' out-of-band value 2084 is TBD. 2086 4.Added that Set-Job-Attributes operation adds an attribute to the Job 2087 object if it wasn't already there 2089 5.Added the conformance section to make it easy to understand the 2090 conformance requirements. 2092 Expires: September 23, 2000 2094 16 Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job- 2095 Attributes requests 2097 This appendix is a normative part of this document and contains a table 2098 of all IPP/1.1 attributes. Each row contains: 2100 @ an attribute and 2102 @ the values allowed in the Set-Printer-Attributes or Set-Job- 2103 Attributes request for the attribute. The entry in each cell is 2104 the name (first few words) of each item below 1, 2, 3, 4a-g, and 2105 5. 2107 The allowed values include the following cases: 2109 1. READ-ONLY: the Set-Printer-Attributes or Set-Job-Attributes 2110 operation MUST NOT change this attribute and MUST reject the entire 2111 operation (see section 7.1). 2113 2. Any of "xxx-supported": the Set-Printer-Attributes or Set-Job- 2114 Attributes operation accepts values that are allowed according to 2115 the IPP/1.1 rules for validating the value(s) of an "xxx" Printer 2116 or Job attribute against the value(s) of the corresponding "xxx- 2117 supported" Printer attribute. Table 4 summarizes those validation 2118 rules depending on each attribute syntax and value of an "xxx" 2119 attribute supplied in the request and that of the corresponding 2120 "xxx-supported" Printer attribute. The "xxx-supported" attribute 2121 syntax type and value(s) are obtained from a Get-Printer-Supported- 2122 Values response (see the tables in this Appendix). 2124 Table 4 - Validation rules for 'Any of "xxx-supported" ' 2126 Type of "xxx" value Type of "xxx- Validates if: 2127 to be set supported" value 2129 integer rangeOfInteger each value is in one of 2130 the "xxx-supported" 2131 ranges 2132 uri uriScheme each uri scheme matches 2133 one of the "xxx- 2134 supported" schemes 2135 any boolean if the boolean "xxx- 2136 supported" is 'true' 2137 any same type each value matches an 2138 "xxx-supported" value 2139 of the same type 2141 For additional non-normative explanatory information see section 2142 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's 2143 Guide" [ipp-iig]). 2145 3. From Get-Printer-Supported-Values: the Set-Printer-Attributes 2146 operation accepts values that are allowed according to the IPP/1.1 2147 rules for validating the value(s) of an "xxx" Printer attribute 2148 against the value(s) of the corresponding "xxx-supported" Printer 2149 attribute. Table 5 summarizes those validation rules depending on 2151 Expires: September 23, 2000 2152 each attribute syntax and value of an "xxx" attribute supplied in 2153 the request and that of the corresponding "xxx-supported" Printer 2154 attribute. The "xxx-supported" attribute syntax type and attribute 2155 value(s) are obtained from a Get-Printer-Supported-Values response 2156 (see Appendix B: Attributes returned from Get-Printer-Supported- 2157 Values below). 2159 Table 5 - Validation rules for 'From Get-Printer-Supported-Values' 2161 Type of "xxx" value Type of "xxx- Validates if: 2162 to be set supported" value 2164 integer rangeOfInteger each 'integer' value is 2165 in one of the "xxx- 2166 supported" ranges 2167 uri uriScheme the uri scheme of each 2168 value matches one of 2169 the "xxx-supported" 2170 schemes 2171 any boolean if the boolean "xxx- 2172 supported" is 'true' 2173 name 'admin-define' out- any 'name' value 2174 of-band value matches 2175 any same type each value matches an 2176 "xxx-supported" value 2177 of the same type 2179 For additional non-normative explanatory information see section 2180 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's 2181 Guide" [ipp-iig]). 2183 4. Any value of the proper attribute syntax: the Set-Printer- 2184 Attributes or Set-Job-Attributes operation accepts any value of the 2185 specified attribute syntax. The attribute syntaxes supported are 2186 enumerated below. 2188 a.Any text(127) 2189 b.Any name(127) 2190 c.Any uri 2191 d.Any boolean 2192 e.Any positive integer 2193 f.Any dateTime 2194 g.1setOf any uri 2196 5. Combination of 'Any of "xxx-supported"' or 'Any name'. 2198 If a Printer implementation doesn't want to allow setting values 2199 indicated in this Appendix as "any xxx", it can make the value be not- 2200 settable. 2202 Table 6 - Values allowed for Job Template Attributes in the Set-Job- 2203 Attributes Operation 2205 Job Template Attributes Values allowed for Set 2207 job-priority (integer(1:100)) Any of "xxx-supported" 2209 Expires: September 23, 2000 2210 Job Template Attributes Values allowed for Set 2212 job-hold-until (type3 keyword | name (MAX)) Any of "xxx-supported" 2213 job-sheets (type3 keyword | name(MAX)) Any of "xxx-supported" 2214 multiple-document-handling (type2 keyword) Any of "xxx-supported" 2215 copies (integer(1:MAX)) Any of "xxx-supported" 2216 finishings (1setOf type2 enum) Any of "xxx-supported" 2217 page-ranges (1setOf rangeOfInteger (1:MAX)) Any of "xxx-supported" 2218 sides (type2 keyword) Any of "xxx-supported" 2219 number-up (integer(1:MAX)) Any of "xxx-supported" 2220 orientation-requested (type2 enum) Any of "xxx-supported" 2221 media (type3 keyword | name(MAX)) Any of "xxx-supported" 2222 printer-resolution (resolution) Any of "xxx-supported" 2223 print-quality (type2 enum) Any of "xxx-supported" 2225 Table 7 - Values allowed for Job Description Attributes in the Set-Job- 2226 Attributes Operation 2228 Job Description Attributes Values allowed 2229 for Set 2230 job-uri (uri) READ-ONLY 2231 job-id (integer(1:MAX)) READ-ONLY 2232 job-printer-uri (uri) READ-ONLY 2233 job-more-info (uri) READ-ONLY 2234 job-name (name(MAX)) Any name(MAX) 2235 job-originating-user-name (name(MAX)) READ-ONLY 2236 job-state (type1 enum) READ-ONLY 2237 job-state-reasons (1setOf type2 keyword) READ-ONLY 2238 job-state-message (text(MAX)) READ-ONLY 2239 job-detailed-status-messages (1setOf text(MAX)) READ-ONLY 2240 job-document-access-errors (1setOf text(MAX)) READ-ONLY 2241 number-of-documents (integer(0:MAX)) READ-ONLY 2242 output-device-assigned (name(127)) READ-ONLY 2243 time-at-creation (integer(MIN:MAX)) READ-ONLY 2244 time-at-processing (integer(MIN:MAX)) READ-ONLY 2245 time-at-completed (integer(MIN:MAX)) READ-ONLY 2246 job-printer-up-time (integer(1:MAX)) READ-ONLY 2247 date-time-at-creation (dateTime) READ-ONLY 2248 date-time-at-processing (dateTime) READ-ONLY 2249 date-time-at-completed (dateTime) READ-ONLY 2250 number-of-intervening-jobs (integer(0:MAX)) READ-ONLY 2251 job-message-from-operator (text(127)) Any text(127) 2252 job-k-octets (integer(0:MAX)) READ-ONLY 2253 job-impressions (integer(0:MAX)) READ-ONLY 2254 job-media-sheets (integer(0:MAX)) READ-ONLY 2255 job-k-octets-processed (integer(0:MAX)) READ-ONLY 2256 job-impressions-completed (integer(0:MAX)) READ-ONLY 2257 job-media-sheets-completed (integer(0:MAX)) READ-ONLY 2258 attributes-charset (charset) READ-ONLY 2259 attributes-natural-language (naturalLanguage) READ-ONLY 2261 Expires: September 23, 2000 2262 Table 8 - Values allowed for Printer Job Template Attributes in the Set- 2263 Printer-Attributes Operation 2265 Printer Job Template Attributes Values allowed for Set 2267 job-priority-default (integer(1:100)) Any of "xxx-supported" 2268 job-hold-until-default (type3 keyword | Any of "xxx-supported" 2269 name (MAX)) 2270 job-sheets-default (type3 keyword | Any of "xxx-supported" 2271 name(MAX)) 2272 multiple-document-handling-default (type2 Any of "xxx-supported" 2273 keyword) 2274 copies-default (integer(1:MAX)) Any of "xxx-supported" 2275 finishings-default (1setOf type2 enum) Any of "xxx-supported" 2276 sides-default (type2 keyword) Any of "xxx-supported" 2277 number-up-default (integer(1:MAX)) Any of "xxx-supported" 2278 orientation-requested-default (type2 enum) Any of "xxx-supported" 2279 media-default (type3 keyword | name(MAX)) Any of "xxx-supported" 2280 printer-resolution-default (resolution) Any of "xxx-supported" 2281 print-quality-default (type2 enum) Any of "xxx-supported" 2282 job-priority-supported (integer(1:100)) From Get-Printer- 2283 Supported-Values 2284 job-hold-until-supported (1setOf(type3 From Get-Printer- 2285 keyword | name (MAX))) Supported-Values 2286 job-sheets-supported (1setOf(type3 keyword From Get-Printer- 2287 | name(MAX))) Supported-Values 2288 multiple-document-handling-supported From Get-Printer- 2289 (1setOf type2 keyword) Supported-Values 2290 copies-supported (rangeOfInteger(1:MAX)) From Get-Printer- 2291 Supported-Values 2292 finishings-supported (1setOf type2 enum) From Get-Printer- 2293 Supported-Values 2294 page-ranges-supported (boolean) From Get-Printer- 2295 Supported-Values 2296 sides-supported (1setOf type2 keyword) From Get-Printer- 2297 Supported-Values 2298 number-up-supported (1setOf (integer(1:MAX) From Get-Printer- 2299 | rangeOfInteger(1:MAX))) Supported-Values 2300 orientation-requested-supported (1setOf From Get-Printer- 2301 type2 enum) Supported-Values 2302 media-supported (1setOf (type3 keyword | From Get-Printer- 2303 name(MAX))) Supported-Values 2304 printer-resolution-supported (1setOf From Get-Printer- 2305 resolution) Supported-Values 2306 print-quality-supported (1setOf type2 enum) From Get-Printer- 2307 Supported-Values 2308 media-ready (type3 keyword | name(MAX)) From Get-Printer- 2309 Supported-Values 2311 Table 9 - Values allowed for Printer Description Attributes in the Set- 2312 Printer-Attributes Operation 2314 Printer Description Attributes Values allowed for 2315 Set 2317 Expires: September 23, 2000 2319 Printer Description Attributes Values allowed for 2320 Set 2321 printer-uri-supported (1setOf uri) READ-ONLY 2322 uri-authentication-supported (1setOf type2 READ-ONLY 2323 keyword) 2324 uri-security-supported (1setOf type2 keyword) READ-ONLY 2325 printer-xri-supported (1setOf collection) 2326 member attributes: 2327 xri-uri (uri) any uriScheme of 2328 "xri-uri-scheme- 2329 supported" from Get- 2330 Printer-Attributes 2331 xri-authentication (1setOf type2 keyword) any keyword of "xri- 2332 authentication- 2333 supported" from Get- 2334 Printer-Attributes 2335 xri-security (1setOf type2 keyword) any keyword of "xri- 2336 security-supported" 2337 from Get-Printer- 2338 Attributes 2339 xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY 2340 xri-authentication-supported (1setOf type2 READ-ONLY 2341 keyword) 2342 xri-security-supported (1setOf type2 keyword) READ-ONLY 2343 printer-name (name(127)) Any name(127) 2344 printer-location (text(127)) Any text(127) 2345 printer-info (text(127)) Any text(127) 2346 printer-more-info (uri) Any uri 2347 printer-driver-installer (uri) Any uri 2348 printer-make-and-model (text(127)) Any text(127) 2349 printer-more-info-manufacturer (uri) Any uri 2350 printer-state (type1 enum) READ-ONLY 2351 printer-state-reasons (1setOf type2 keyword) READ-ONLY 2352 printer-state-message (text(MAX)) READ-ONLY 2353 ipp-versions-supported (1setOf type2 keyword) From Get-Printer- 2354 Supported-Values 2355 operations-supported (1setOf type2 enum) From Get-Printer- 2356 Supported-Values 2357 multiple-document-jobs-supported (boolean) From Get-Printer- 2358 Supported-Values 2359 charset-configured (charset) Any of "xxx- 2360 supported", use 2361 "charset-supported" 2362 charset-supported (1setOf charset) From Get-Printer- 2363 Supported-Values 2364 natural-language-configured (naturalLanguage) Any of "xxx- 2365 supported", use 2366 "generated-natural- 2367 language-supported" 2368 generated-natural-language-supported (1setOf From Get-Printer- 2369 naturalLanguage) Supported-Values 2370 document-format-default (mimeMediaType) Any of "xxx- 2371 supported" 2372 document-format-supported (1setOf From Get-Printer- 2374 Expires: September 23, 2000 2375 Printer Description Attributes Values allowed for 2376 Set 2377 mimeMediaType) Supported-Values 2378 printer-is-accepting-jobs (boolean) READ-ONLY 2379 queued-job-count (integer(0:MAX)) READ-ONLY 2380 printer-message-from-operator (text(127)) Any text(127) 2381 color-supported (boolean) From Get-Printer- 2382 Supported-Values 2383 reference-uri-schemes-supported (1setOf From Get-Printer- 2384 uriScheme) Supported-Values 2385 pdl-override-supported (type2 keyword) From Get-Printer- 2386 Supported-Values 2387 printer-up-time (integer(1:MAX)) READ-ONLY 2388 printer-current-time (dateTime) Any dateTime ** 2389 multiple-operation-time-out (integer(1:MAX)) any positive integer 2390 compression-supported (1setOf type3 keyword) From Get-Printer- 2391 Supported-Values 2392 job-k-octets-supported (rangeOfInteger(0:MAX)) From Get-Printer- 2393 Supported-Values 2394 job-impressions-supported From Get-Printer- 2395 (rangeOfInteger(0:MAX)) Supported-Values 2396 job-media-sheets-supported From Get-Printer- 2397 (rangeOfInteger(0:MAX)) Supported-Values 2398 pages-per-minute (integer(0:MAX)) READ-ONLY 2399 pages-per-minute-color (integer(0:MAX)) READ-ONLY 2400 printer-settable-attributes-supported (1setOf From Get-Printer- 2401 type2 keyword) Supported-Values 2402 job-settable-attributes-supported (1setOf type2 From Get-Printer- 2403 keyword) Supported-Values 2404 document-format-varying-attributes (1setOf READ-ONLY 2405 type2 keyword) 2406 printer-message-time (integer(MIN:MAX)) READ-ONLY 2407 printer-message-date-time(dateTime) READ-ONLY 2409 ** - The "printer-current-time" (dateTime) attribute is settable in 2410 order to allow an administrator to correct an incorrect dateTime or time 2411 zone. 2413 17 Appendix B: Attributes returned from Get-Printer-Supported-Values 2415 This Appendix is a normative part of this document and lists all the 2416 attributes that are possible for an implementation to return in a Get- 2417 Printer-Supported-Values response, i.e., all the "xxx-supported" 2418 attributes that can be supplied in a Set-Printer-Attributes request. 2419 READ-ONLY attributes MUST NOT be returned in a Get-Printer-Supported- 2420 Values response and are indicated in the tables as "READ-ONLY - MUST NOT 2421 be returned." 2423 For the following attributes, the value allowed by the Set-Printer- 2424 Attributes operation MUST be a single integer value in the range 2425 specified by the value returned by the Get-Printer-Supported-Values 2426 operation. 2428 Expires: September 23, 2000 2429 Table 10 - Printer Job Template Attributes returned from Get-Printer- 2430 Supported-Values 2432 Printer Job Template Attributes Values Returned 2434 job-priority-supported (integer(1:100)) rangeOfInteger(1:100) 2436 For the following attributes, the value allowed by the Set-Printer- 2437 Attributes operation MUST be a single rangeOfInteger value whose bounds 2438 do not exceed those of the range specified by the value returned by the 2439 Get-Printer-Supported-Values operation. 2441 Table 11 - Printer Job Template Attributes returned from Get-Printer- 2442 Supported-Values 2444 Printer Job Template Attributes Values Returned 2446 copies-supported (rangeOfInteger(1:MAX)) rangeOfInteger(1:MAX) 2448 The following table has the same criteria as the last, but is for 2449 Printer Description attributes. 2451 Table 12 - Printer Description Attributes returned from Get-Printer- 2452 Supported-Values 2454 Printer Description Attributes Values allowed for Set 2456 job-k-octets-supported rangeOfInteger(0:MAX) 2457 (rangeOfInteger(0:MAX)) 2458 job-impressions-supported rangeOfInteger(0:MAX) 2459 (rangeOfInteger(0:MAX)) 2460 job-media-sheets-supported rangeOfInteger(0:MAX) 2461 (rangeOfInteger(0:MAX)) 2463 For the following attributes, the value allowed by the Set-Printer- 2464 Attributes operation MUST be one or more integers and rangeOfInteger 2465 values, such that the integer values described by these integers and 2466 rangeOfInteger is the same as or a subset of the integers described by 2467 the integers and rangeOf Integer of value returned by the Get-Printer- 2468 Supported-Values operation. 2470 Table 13 - Printer Job Template Attributes returned from Get-Printer- 2471 Supported-Values 2473 Printer Job Template Attributes Values Returned 2475 number-up-supported (1setOf (integer(1:MAX) 1setOf (integer(1:MAX) | 2476 | rangeOfInteger(1:MAX))) rangeOfInteger(1:MAX)) 2478 For the following attributes, the value allowed by the Set-Printer- 2479 Attributes operation MUST be one or more values, where each such value 2480 matches a value returned by the Get-Printer-Supported-Values operation. 2481 A keyword, enum, boolean, charset, naturalLanguage, uriScheme, 2483 Expires: September 23, 2000 2484 mimeMediaType or resolution value matches if it is equal. For Job 2485 Template attributes with the attribute syntax 'type3 keyword | name', 2486 any 'name' attribute syntax value matches the 'admin-define' out-of-band 2487 value, if the implementation allows the administrator to set any name 2488 values for the attribute. 2490 Table 14 - Printer Job Template Attributes returned from Get-Printer- 2491 Supported-Values 2493 Printer Job Template Attributes Values Returned 2495 job-hold-until-supported (1setOf(type3 1setOf (type3 keyword | 2496 keyword | name (MAX))) 'admin-define') 2497 job-sheets-supported (1setOf(type3 keyword 1setOf (type3 keyword | 2498 | name(MAX))) 'admin-define') 2499 multiple-document-handling-supported 1setOf type2 keyword 2500 (1setOf type2 keyword) 2501 finishings-supported (1setOf type2 enum) 1setOf type2 enum 2502 page-ranges-supported (boolean) 1setOf boolean ** 2503 sides-supported (1setOf type2 keyword) 1setOf type2 keyword 2504 orientation-requested-supported (1setOf 1setOf type2 enum 2505 type2 enum) 2506 media-supported (1setOf (type3 keyword | 1setOf (type3 keyword | 2507 name(MAX))) 'admin-define') 2508 printer-resolution-supported (1setOf 1setOf resolution 2509 resolution) 2510 print-quality-supported (1setOf type2 enum) 1setOf type2 enum 2512 ** Note: the Get-Printer-Supported-Values returns a '1setOf boolean' so 2513 that all possible values are indicated, while Get-Printer-Attributes 2514 returns only a single 'boolean' value. 2516 The following table has the same criteria as the last, but is for 2517 Printer Description attributes. 2519 Table 15 - Printer Description Attributes returned from Get-Printer- 2520 Supported-Values 2522 Printer Description Attributes Values allowed for Set 2524 printer-uri-supported (1setOf uri) READ-ONLY - MUST NOT be 2525 returned 2526 uri-authentication-supported (1setOf type2 READ-ONLY - MUST NOT be 2527 keyword) returned 2528 uri-security-supported (1setOf type2 READ-ONLY - MUST NOT be 2529 keyword) returned 2530 xri-printer-supported (1setOf collection) MUST NOT be returned; 2531 see next three 2532 attributes returned with 2533 Get-Printer-Attributes: 2534 xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY - MUST NOT be 2535 returned 2536 xri-authentication-supported (1setOf type2 READ-ONLY - MUST NOT be 2537 keyword) returned 2538 xri-security-supported (1setOf type2 READ-ONLY - MUST NOT be 2540 Expires: September 23, 2000 2541 Printer Description Attributes Values allowed for Set 2543 keyword) returned 2544 ipp-versions-supported (1setOf type2 1setOf type2 keyword 2545 keyword) 2546 operations-supported (1setOf type2 enum) 1setOf type2 keyword 2547 multiple-document-jobs-supported (boolean) 1setOf boolean ** 2548 charset-supported (1setOf charset) 1setOf charset 2549 generated-natural-language-supported 1setOf naturalLanguage 2550 (1setOf naturalLanguage) 2551 document-format-supported (1setOf 1setOf mimeMediaType 2552 mimeMediaType) 2553 color-supported (boolean) 1setOf boolean ** 2554 reference-uri-schemes-supported (1setOf 1setOf uriScheme 2555 uriScheme) 2556 pdl-override-supported (type2 keyword) 1setOf type2 keyword ** 2557 compression-supported (1setOf type3 1setOf type3 keyword 2558 keyword) 2559 printer-settable-attributes-supported 1setOf type2 keyword 2560 (1setOf type2 keyword) 2561 job-settable-attributes-supported (1setOf 1setOf type2 keyword 2562 type2 keyword) 2564 ** Note: the Get-Printer-Supported-Values returns a '1setOf X' so that 2565 all possible values are indicated, while Get-Printer-Attributes returns 2566 only a single 'X' value. 2568 18 Appendix C: Full Copyright Statement 2570 Copyright (C) The Internet Society (1998,1999). All Rights Reserved 2572 This document and translations of it may be copied and furnished to 2573 others, and derivative works that comment on or otherwise explain it or 2574 assist in its implementation may be prepared, copied, published and 2575 distributed, in whole or in part, without restriction of any kind, 2576 provided that the above copyright notice and this paragraph are included 2577 on all such copies and derivative works. However, this document itself 2578 may not be modified in any way, such as by removing the copyright notice 2579 or references to the Internet Society or other Internet organizations, 2580 except as needed for the purpose of developing Internet standards in 2581 which case the procedures for copyrights defined in the Internet 2582 Standards process must be followed, or as required to translate it into 2583 languages other than English. 2585 The limited permissions granted above are perpetual and will not be 2586 revoked by the Internet Society or its successors or assigns. 2588 This document and the information contained herein is provided on an "AS 2589 IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK 2590 FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT 2591 LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 2593 Expires: September 23, 2000 2594 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 2595 FITNESS FOR A PARTICULAR PURPOSE. 2597 Expires: September 23, 2000