idnits 2.17.1 draft-ietf-ipp-job-printer-set-ops-01.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 42 longer pages, the longest (page 35) being 70 lines == It seems as if not all pages are separated by form feeds - found 0 form feeds but 43 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 3 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 76: '... IPP/1.0. A few OPTIONAL operator ope...' RFC 2119 keyword, line 221: '...fines additional OPTIONAL end user, op...' RFC 2119 keyword, line 226: '...ter-Supported-Values operation MUST be...' RFC 2119 keyword, line 242: '...ions, the client MUST explicitly set t...' (157 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 1176 has weird spacing: '... supply sup...' == Line 1892 has weird spacing: '...(1setOf type2...' == Line 2074 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 8, 2000) is 8816 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 62, but not defined == Missing Reference: 'RFC2568' is mentioned on line 64, but not defined == Missing Reference: 'IPP-PRO' is mentioned on line 66, but not defined == Missing Reference: 'IPP-IIG' is mentioned on line 67, but not defined == Missing Reference: 'RFC2569' is mentioned on line 68, but not defined == Missing Reference: 'RFC2616' is mentioned on line 87, 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 260, 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 (~~), 16 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 8, 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 Get-Printer-Supported-Values operation returns values that the 40 IPP Printer will accept for setting its "xxx-supported" attributes. 42 Three out-of-band values are defined for use with these operations: 43 'delete-attribute', 'any-value', and 'not-settable', along with a 44 'client-error-attributes-not-settable' status code. 46 Two operation attributes: "printer-message-from-operator" (text) and 47 "job-message-from-operator" (text) are defined to set the corresponding 48 IPP/1.1 Printer and Job Description attributes with the same names. 50 Six Printer Description attributes are defined: 51 printer-settable-attributes-supported (1setOf type2 keyword) 52 job-settable-attributes-supported (1setOf type2 keyword) 53 document-format-varying-attributes (1setOf type2 keyword) 54 printer-message-time (integer(MIN:MAX)) 55 printer-message-date-time (dateTime) 56 printer-xri-supported (1setOf collection) 58 Expires: September 8, 2000 60 The full set of IPP documents includes: 62 Design Goals for an Internet Printing Protocol [RFC2567] 63 Rationale for the Structure and Model and Protocol for the Internet 64 Printing Protocol [RFC2568] 65 Internet Printing Protocol/1.1: Model and Semantics (this document) 66 Internet Printing Protocol/1.1: Encoding and Transport [IPP-PRO] 67 Internet Printing Protocol/1.1: Implementer's Guide [IPP-IIG] 68 Mapping between LPD and IPP Protocols [RFC2569] 70 The "Design Goals for an Internet Printing Protocol" document takes a 71 broad look at distributed printing functionality, and it enumerates 72 real-life scenarios that help to clarify the features that need to be 73 included in a printing protocol for the Internet. It identifies 74 requirements for three types of users: end users, operators, and 75 administrators. It calls out a subset of end user requirements that are 76 satisfied in IPP/1.0. A few OPTIONAL operator operations have been 77 added to IPP/1.1. 79 The "Rationale for the Structure and Model and Protocol for the Internet 80 Printing Protocol" document describes IPP from a high level view, 81 defines a roadmap for the various documents that form the suite of IPP 82 specification documents, and gives background and rationale for the IETF 83 working group's major decisions. 85 The "Internet Printing Protocol/1.1: Encoding and Transport" document is 86 a formal mapping of the abstract operations and attributes defined in 87 the model document onto HTTP/1.1 [RFC2616]. It defines the encoding 88 rules for a new Internet MIME media type called "application/ipp". This 89 document also defines the rules for transporting over HTTP a message 90 body whose Content-Type is "application/ipp". This document defines a 91 new scheme named 'ipp' for identifying IPP printers and jobs. 93 The "Internet Printing Protocol/1.1: Implementer's Guide" document gives 94 insight and advice to implementers of IPP clients and IPP objects. It 95 is intended to help them understand IPP/1.1 and some of the 96 considerations that may assist them in the design of their client and/or 97 IPP object implementations. For example, a typical order of processing 98 requests is given, including error checking. Motivation for some of the 99 specification decisions is also included. 101 The "Mapping between LPD and IPP Protocols" document gives some advice 102 to implementers of gateways between IPP and LPD (Line Printer Daemon) 103 implementations. 105 Expires: September 8, 2000 106 Table of Contents 108 1 Introduction.....................................................5 110 2 Terminology......................................................5 111 2.1 Conformance Terminology.......................................5 112 2.2 Other terminology.............................................6 114 3 Requirements and Use Cases.......................................6 116 4 Definition of the Set operations.................................7 117 4.1 Set-Printer-Attributes Operation..............................7 118 4.1.1 Settable and READ-ONLY Printer Description attributes.....9 119 4.1.2 Set-Printer-Attributes Request...........................10 120 4.1.3 Set-Printer-Attributes Response..........................11 121 4.2 Set-Job-Attributes Operation.................................12 122 4.2.1 Settable and READ-ONLY Job Description attributes........14 123 4.2.2 Set-Job-Attributes Request...............................15 124 4.2.3 Set-Job-Attributes Response..............................16 125 4.3 Get-Printer-Supported-Values Operation.......................17 127 5 New Operation attributes........................................18 128 5.1 "printer-message-from-operator" (text(127))..................18 129 5.2 "job-message-from-operator" (text(127))......................19 131 6 New Printer Description Attributes..............................20 132 6.1 printer-settable-attributes-supported (1setOf type2 keyword).20 133 6.2 job-settable-attributes-supported (1setOf type2 keyword).....21 134 6.3 document-format-varying-attributes (1setOf type2 keyword)....21 135 6.4 printer-message-time (integer(MIN:MAX))......................21 136 6.5 printer-message-date-time (dateTime).........................22 137 6.6 printer-xri-supported (1setOf collection)....................22 139 7 Additional status codes.........................................24 140 7.1 'client-error-attributes-not-settable' (0x0413)..............24 142 8 Additional out-of-band values...................................24 143 8.1 'not-settable' out-of-band value.............................25 144 8.1.1 Encoding of the 'not-settable' out-of-band attribute value25 145 8.2 'delete-attribute' out-of-band value.........................25 146 8.2.1 Encoding of the 'delete-attribute' out-of-band value.....25 147 8.3 'any-value' out-of-band attribute value......................25 148 8.3.1 Encoding of the 'any-value' out-of-band attribute value..26 150 9 Conformance Requirements........................................26 152 10 IANA Considerations.............................................27 154 11 Internationalization Considerations.............................27 156 12 Security Considerations.........................................28 158 13 Author's Addresses..............................................28 160 Expires: September 8, 2000 161 14 References......................................................29 163 15 Change History..................................................30 164 15.1 Changes to the March 1, 2000 version to make the March 8, 2000 165 version 30 166 15.2 Changes to the January 30, 2000 version to make the March 1, 2000 167 version 31 168 15.3 Changes to the January 20, 2000 version to make the January 30, 169 2000 version32 170 15.4 Changes to the January 4, 2000 version to make the January 20, 171 2000 version33 172 15.5 Changes to the December 8, 1999 version to make the January 4, 173 2000 version34 175 16 Appendix A: Allowed Values for Set-Printer-Attributes...........35 177 17 Appendix B: Attributes returned from Get-Printer-Supported-Values39 179 18 Appendix C: Full Copyright Statement............................42 181 Table of Tables 183 Table 1 - Operation-Id assignments....................................7 184 Table 2 - Job State Transition Table for the Set-Job-Attributes 185 operation........................................................14 186 Table 3 - Member attributes of "printer-xri-supported" (1setOf 187 collection)......................................................22 188 Table 4 - Values allowed for Job Template Attributes in the Set-Job- 189 Attributes Operation.............................................35 190 Table 5 - Values allowed for Job Description Attributes in the Set-Job- 191 Attributes Operation.............................................36 192 Table 6 - Values allowed for Printer Job Template Attributes in the Set- 193 Printer-Attributes Operation.....................................37 194 Table 7 - Values allowed for Printer Description Attributes in the Set- 195 Printer-Attributes Operation.....................................37 196 Table 8 - Printer Job Template Attributes returned from Get-Printer- 197 Supported-Values.................................................39 198 Table 9 - Printer Job Template Attributes returned from Get-Printer- 199 Supported-Values.................................................39 200 Table 10 - Printer Description Attributes returned from Get-Printer- 201 Supported-Values.................................................40 202 Table 11 - Printer Job Template Attributes returned from Get-Printer- 203 Supported-Values.................................................40 204 Table 12 - Printer Job Template Attributes returned from Get-Printer- 205 Supported-Values.................................................40 206 Table 13 - Printer Description Attributes returned from Get-Printer- 207 Supported-Values.................................................41 208 Table 14 - Printer Description Attributes returned from Get-Printer- 209 Supported-Values.................................................42 210 Table 15 - Printer Description Attributes returned from Get-Printer- 211 Supported-Values.................................................42 213 Expires: September 8, 2000 215 1 Introduction 217 The Internet Printing Protocol (IPP) is an application level protocol 218 that can be used for distributed printing using Internet tools and 219 technologies. IPP version 1.1 [ipp-mod, ipp-pro] focuses on end user 220 functionality with a few administrative operations included. This 221 document defines additional OPTIONAL end user, operator, and 222 administrator Set-Job-Attributes and Set-Printer-Attributes operations 223 used to modify IPP Job objects and Printer objects, respectively. It 224 also defines a third Get-Printer-Supported-Values operation that returns 225 values that the IPP Printer will accept for setting its "xxx-supported" 226 attributes. The Get-Printer-Supported-Values operation MUST be 227 supported, if the implementation supports setting any "xxx-supported" 228 Printer attributes using the Set-Printer-Attributes operation. 230 Three out-of-band values are defined for use with these three 231 operations: 'delete-attribute' for deleting Job attributes with the 232 Set-Job-Attributes request, 'not-settable' for use in either the Set- 233 Job-Attributes or Set-Printer-Attributes responses, and 'any-value' for 234 use in the Get-Printer-Supported-Values response. 236 Two operation attributes: "printer-message-from-operator" (text) and 237 "job-message-from-operator" (text) are defined to set the corresponding 238 IPP/1.1 Printer and Job Description attributes with the same names. 239 These operation attributes may be used with any operation that affect 240 the Printer or Job object for which an operation might want to indicate 241 a message. For the Set-Job-Attributes and Set-Printer-Attributes 242 operations, the client MUST explicitly set them, rather than using these 243 operation attributes. 245 A Printer implementation can make the value of some attributes dependent 246 on the document-format, e.g. "resolution-supported". 248 This document is an extension to IPP/1.0 [RFC2565, RFC2566] and IPP/1.1 249 [ipp-mod, ipp-pro], and future versions. 251 2 Terminology 253 This section defines terminology used throughout this document. 255 2.1 Conformance Terminology 257 Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, 258 MAY, NEED NOT, and OPTIONAL, have special meaning relating to 259 conformance. These terms are defined in [ipp-mod] section 12.1 on 260 conformance terminology, most of which is taken from RFC 2119 [RFC2119]. 262 The following specialization of these terms apply to this document: 264 REQUIRED: if an implementation supports the extensions described in 265 this document, it MUST support a REQUIRED feature. 267 Expires: September 8, 2000 269 OPTIONAL: if an implementation supports the extensions described in 270 this document, it MAY support an OPTIONAL feature. 272 2.2 Other terminology 274 This document uses terms such as Job object (or Job), IPP Printer object 275 (or Printer), "operation", "request", response", "attributes", 276 "keywords", and "support". These terms have special meaning and are 277 defined in the model terminology [ipp-mod] section 12.2. The following 278 additional terms are introduced in this document: 280 READ-ONLY: used in an attribute definition to indicate that the 281 attribute MUST NOT be settable using an IPP protocol Set operation. 282 In other words, the attribute is not settable by definition. 283 not-settable: an implementation does not support setting an 284 attribute (whether or not the attribute's definition is READ-ONLY). 286 3 Requirements and Use Cases 288 The following requirements and usage are intended to be met by the 289 specification in this document. 291 1.The end-user and the operator need a way to modify a Job that is in 292 the 'pending' or 'pending-held' state. 294 Usage: The end-user discovers that he/she forgot to include a print 295 instruction, such as "finishings" = 'staple' after submitting a job. 296 Rather than canceling the job and resubmitting it to the same IPP 297 Printer, the end-user is able to modify the job on the IPP Printer. 299 The operator needs to modify a job because it is requesting a 300 particular kind of media for which there is no more, but the policy 301 is to print the job on a comparable medium. 303 2.The system administrator needs a way to re-configure or change the 304 policy of the IPP Printer remotely. 306 Usage: The system administrator is adding additional media to the 307 supported media list. 309 The system administrator is reducing the capability of the IPP 310 Printer by removing one of the operations from the supported 311 operations list, such as Cancel-Job, because the policy is to run the 312 IPP Printer like a public facsimile machine. 314 The system administrator is remotely configuring the IPP Printer 315 after installing it, and so is replacing the Printer Description 316 attributes that have the out-of-band 'no-value' value (see [ipp-mod] 317 section 4.1) with the proper values. 319 Expires: September 8, 2000 320 The operator is changing the media loaded in the input tray and so is 321 replacing the "media-ready" Job Template Printer attribute value with 322 the proper values 324 4 Definition of the Set operations 326 The Set-Printer-Attributes operation (as are all Printer operations) are 327 directed at Printer objects. A client MUST always supply the "printer- 328 uri" operation attribute in order to identify the correct target of the 329 operation. These descriptions assume all of the common semantics of 330 IPP/1.1 Model and Semantics document [ipp-mod] section 3.1. 332 The Set-Job-Attributes operation (as are all Job operations) are 333 directed at Job objects. A client MUST always supply some means of 334 identifying the Job object in order to identify the correct target of 335 the operation. That job identification MAY either be a single Job URI 336 or a combination of a Printer URI with a Job ID as defined in [ipp-mod]. 337 The IPP object implementation MUST support both forms of identification 338 for every job. If possible, a client SHOULD use the Printer URI with a 339 Job ID rather than a Job URI, since the 32-bit "job-id" is more readily 340 translated to and from other print protocols that MAY be serving as 341 gateways into or out of the IPP implementation. 343 The Set Printer operations are summarized in Table 1: 345 Table 1 - Operation-Id assignments 347 Operation Name Operation Brief description 348 -Id 349 Set-Printer- 0x0013 Sets attribute values of the target 350 Attributes Printer object 351 Set-Job-Attributes 0x0014 Sets attribute values of the target 352 Job object 353 Get-Printer- 0x0015 Gets values that are valid for 354 Supported-Values setting "xxx-supported" attributes 355 using the Set-Printer-Attributes 356 operation 358 4.1 Set-Printer-Attributes Operation 360 This OPTIONAL operation allows a client to set the values of the 361 attributes of a Printer object. In the request, the client supplies 362 the set of Printer attribute name keywords and values that are to be 363 set. In the response, the Printer object returns success or rejects the 364 entire request with indications of which attribute or attributes could 365 not be set. 367 The Printer object validates the client-supplied attributes in the Set- 368 Printer-Attributes request. For an attribute to validate it MUST meet 369 all of the following rules: 371 Expires: September 8, 2000 372 1. The number of attributes supplied by the client MUST NOT exceed the 373 maximum number that the Printer supports in a Set-Printer- 374 Attributes request. A Printer MUST accept at least one attribute, 375 but SHOULD accept a reasonable number in a single Set-Printer- 376 Attributes request. 378 Note: There is no way for the client to determine the maximum 379 number of attributes that the Printer supports in a Set-Printer- 380 Attributes request, except to try a reasonable number. 382 2. The Printer MUST support the attribute. 384 3. The attribute MUST NOT be READ-ONLY, i.e., the definition of the 385 attribute MUST NOT indicate that the attribute is READ-ONLY (see 386 Appendix A for an indication of which IPP/1.1 attributes are READ- 387 ONLY). 389 4. The attribute MUST be settable in this implementation. 391 5. The Printer MUST support the value according to the rules defined 392 in Appendix A. 394 6. The attribute's values MUST NOT conflict with other Printer 395 attribute, including ones being set in this same operation. 397 If any of the supplied attributes does not validate, the Printer object 398 MUST reject the entire operation; the Printer object MUST NOT partially 399 set some of the supplied attributes. In other words, after the 400 operation, all the supplied attributes MUST be set or none of them MUST 401 be set, thus making the Set-Printer-Attributes an atomic operation. 403 The Printer MUST accept this operation when its READ-ONLY "printer- 404 state" attribute (see ipp-mod] section 4.4.11) is 'idle' or 'stopped', 405 and SHOULD accept it when the value is 'processing'. The Printer MUST 406 accept this operation for any of the values of the Printer object's 407 READ-ONLY "printer-state-reasons" and "printer-is-accepting-jobs" 408 attributes, unless explicitly defined otherwise in the definition of 409 these attributes' values. 411 This operation MUST NOT change the value of attributes not specified in 412 the operation unless the definition of the attribute explicitly 413 specifies such side-effects. For example, this document explicitly 414 specifies that when this operation sets "printer-message-from-operator", 415 the Printer also MUST set the READ-ONLY "printer-message-time" and READ- 416 ONLY "printer-message-date-time" attributes to the time of the operation 417 as a side effect . In particular, if this operation changes an "xxx- 418 default" attribute, the new value MUST be in the "xxx-supported" 419 attribute or the request MUST contain a new value for "xxx-supported" 420 which contains the new value for the "xxx-default". Otherwise, the 421 Printer MUST reject the operation. In general, Printer attribute 422 definitions that are settable will not define side-effects on other 423 attributes that are settable, only side effects on READ-ONLY attributes, 424 if any. 426 Expires: September 8, 2000 427 4.1.1Settable and READ-ONLY Printer Description attributes 429 If the Printer supports the Set-Printer-Attributes operation, then it 430 SHOULD support setting of: 432 all Job Template Default ("xxx-default") attributes 433 all Job Template Supported ("xxx-supported") attributes 434 all Job Template Ready ("xxx-ready") attributes 436 that the implementation supports (see [ipp-mod] section 4.2 and 437 extensions). 439 Some Printer Description attributes (see [ipp-mod] section 4.4) MUST NOT 440 be settable, i.e., they are defined to be READ-ONLY. An attribute 441 marked as "READ-ONLY" in the Printer Description attribute table in 442 Appendix A is such an attribute. The Printer attributes that are not 443 marked as "READ-ONLY" MAY be settable using the Set-Printer-Attributes 444 operation, depending on implementation. 446 Note: From now on, all extensions that define new object attributes 447 will indicate whether or not the attributes are READ-ONLY, by including 448 the "READ-ONLY" adjective in their descriptions and/or explicitly 449 stating whether they MAY be settable. 451 If "xxx-supported" Printer Description attribute are settable, then they 452 MUST affect the behavior of the implementation. If they are READ-ONLY 453 then they reflect the implementation and cannot be changed explicitly 454 using the Set-Printer-Attributes operation. Consider the following 455 example: 457 For example, if the "operations-supported" Printer Description 458 attribute (see [ipp-mod] section 4.4.15) is settable in a 459 particular implementation, then changing its value with a Set- 460 Printer-Attributes operation MUST affect the operations that the 461 implementation accepts or rejects. Such an implementation will 462 need to be able to reject values for operations that it contains no 463 code support for (see section 5). If the "operations-supported" 464 Printer Description attribute is not settable in a particular 465 implementation, then that implementation MUST reject an attempt to 466 set it with a Set-Printer-Attributes operation, return the 'client- 467 error-attributes-not-settable' status code (see section 7.1), and 468 return the "operations-supported" attribute with the out-of-band 469 'not-settable' value in the Unsupported Attributes Group. 471 Access Rights: The authenticated user (see [ipp-mod] section 8.3) 472 performing this operation must be an operator or administrator of the 473 Printer object (see [ipp-mod] Sections 1 and 8.5). Most Printer 474 attributes will require administrator privileges to set, such as "xxx- 475 supported", while some will require operator privileges only, such as 476 "media-ready" and "printer-message-from-operator". Which attributes 477 require which privileges depends on implementation and MAY depend on 478 site policy. 480 Expires: September 8, 2000 481 4.1.2Set-Printer-Attributes Request 483 The following sets of attributes are part of the Set-Printer-Attributes 484 Request: 486 Group 1: Operation Attributes 488 Natural Language and Character Set: 489 The "attributes-charset" and "attributes-natural-language" 490 attributes as described in [ipp-mod] section 3.1.4.1. 492 Target: 493 The "printer-uri" (uri) operation attribute which is the target for 494 this operation as described in [ipp-mod] section 3.1.5. 496 Requesting User Name: 497 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied 498 by the client as described in [ipp-mod] section 8.3. 500 "document-format" (mimeMediaType): 501 The client OPTIONALLY supplies this attribute. The Printer object 502 MUST support this attribute. This attribute is useful for a client 503 to select the document-format to which the attribute modification 504 should be applied. A Printer implementation MAY allow some 505 attributes to have different values for each document format that 506 it supports. See [ipp-mod] section 3.2.5.1 "Get-Printer-Attributes 507 Request". 509 If the client includes this attribute, the Printer MUST change the 510 supplied attributes for the document format specified by this 511 attribute. If a supplied attribute is a member of the "document- 512 format-varying-attributes" (i.e., the attribute varies by document 513 format, see section 6.3), the Printer MUST change the supplied 514 attribute for the document format specified by this attribute, but 515 not for other document formats. If a supplied attribute isn't a 516 member of the "document-format-varying-attributes" (i.e. it doesn't 517 vary by document format), the Printer MUST change the supplied 518 attribute for all document formats. 520 If the client omits this attribute, the Printer MUST change the 521 supplied attributes for all document formats whether or not they 522 vary by document-format. 524 If the client supplies a value for the "document-format" Operation 525 attribute that is either 'application/octet-stream' or not 526 supported by the Printer, i.e., is not among the values of the 527 Printer object's "document-format-supported" attribute, the Printer 528 object MUST reject the operation and return the 'client-error- 529 document-format-not-supported' status code. Note: the document- 530 format 'application/octet-stream' is the union of several document- 531 formats (see [ipp-mod] section 3.2.5.1, Get-Printer-Attributes) and 532 is not a true document-format. 534 Group 2: Printer Attributes 536 Expires: September 8, 2000 537 The client MUST supply a set of Printer attributes with one or more 538 values (including explicitly allowed out-of-band values) as defined 539 in [ipp-mod] section 4.2 Job Template Attributes ("xxx-default", 540 "xxx-supported", and "xxx-ready" attributes), section 4.4 Printer 541 Description Attributes, and any attribute extensions supported by 542 the Printer. The value(s) of each Printer attribute supplied in 543 Group 2 replaces the value(s) of the corresponding Printer 544 attribute on the target Printer object. For attributes that can 545 have multiple values (1setOf), all values supplied by the client 546 replace all values of the corresponding Printer object attribute. 547 If a Printer object attribute had not been configured yet and so 548 had the 'no-value' out-of-band value (see [ipp-mod] section 4.1), 549 the supplied value(s) replace the 'no-value' value. 551 4.1.3Set-Printer-Attributes Response 553 The Printer object returns the following sets of attributes as part of 554 the Get-Printer-Attributes Response: 556 Group 1: Operation Attributes 558 Status Message: 559 In addition to the REQUIRED status code returned in every response, 560 the response OPTIONALLY includes a "status-message" (text(255)) 561 and/or a "detailed-status-message" (text(MAX)) operation attribute 562 as described in [ipp-mod] sections 13 and 3.1.6. 564 Natural Language and Character Set: 565 The "attributes-charset" and "attributes-natural-language" 566 attributes as described in [ipp-mod] section 3.1.4.2. 568 Group 2: Unsupported Attributes 570 See [ipp-mod] section 3.1.7 for details on returning Unsupported 571 Attributes. 573 If some of the attributes in the operation fail to validate, the 574 Printer MUST reject the operation, MUST NOT change any Printer 575 attributes, and MUST return the indicated status code below. In 576 this group, the Printer MUST also return all attributes that fail 577 to validate. The following are the reasons that an attribute fails 578 to validate and the value returned for the attribute, along with 579 the indicated status code and order of detection: 581 1. The number of attributes supplied by the client exceeds the 582 maximum number that the Printer supports in a Set-Printer- 583 Attributes request: return the 'client-error-request-entity- 584 too-large' (see [ipp-mod] section 13.1.4.9). 586 2. The Printer doesn't support the attribute: return the 587 attribute with the "out-of-band" value 'unsupported' (see 588 [ipp-mod] section 3.1.7 and [ipp-pro]) and the 'client-error- 589 attributes-or-values-not-supported (see [ipp-mod] section 590 13.1.4.12). 592 Expires: September 8, 2000 594 3. The attribute is either READ-ONLY (in its definition) or is 595 not-settable in this implementation: return the attribute 596 with the "out-of-band" value 'not-settable' (see section 8.1) 597 and the 'client-error-attributes-not-settable' status code 598 (see section 7.1). 600 4. The Printer doesn't support the value: if the attribute in 601 the operation has a single value return it. If the attribute 602 in the operation is multi-valued, return only those values in 603 a 1setOf that are not supported. Return the 'client-error- 604 attributes-or-values-not-supported' status code (see [ipp-mod] 605 section 13.1.4.12). 607 5. The values of some of the supplied attributes conflict with 608 one another and/or other Printer attribute values not being 609 set: if the conflicting attribute in the operation has a 610 single value return the attribute and the value. If the 611 attribute in the operation is multi-valued, return only the 612 attribute and those values in a 1setOf that are conflicting 613 with other attributes. Return the 'client-error-conflicting- 614 attributes' status code (see [ipp-mod] section 13.1.4.15). 616 4.2 Set-Job-Attributes Operation 618 This OPTIONAL operation allows a client to set the values of the 619 attributes of a Job object. In the request, the client supplies the set 620 of Job attribute name keywords and values that are to be set. In the 621 response, the IPP object returns success or rejects the entire request 622 with indications of which attribute or attributes could not be set. 624 This operation is almost identical to the Set-Printer-Attributes 625 operation (see section 4.1). The only differences are that the Set-Job- 626 Attributes operation is directed at a Job object rather than a Printer 627 object, there is no "document-format" operation attribute used when 628 setting a Job object, the operation can add an attribute to the (Job) 629 object, the 'delete-attributes' out-of-band value is permitted to remove 630 an attribute, and the validation is the same as the Job Creation 631 operations (Print-Job, Print-URI, and Create-Job), i.e., depends on the 632 "xxx-supported" Printer Description attributes (see [ipp-mod] section 633 3.1). 635 If a client supplies a job attribute in a Set-Job-Attributes request 636 that the Printer supports, and the job was originally submitted without 637 supplying that attribute, the Printer adds the attribute to the Job 638 object. 640 If the client supplies a job attribute with the "out-of-band" value 641 'delete-attribute' (see section 8.2), then the Printer MUST remove the 642 attribute and all of its values from the Job object, if present. The 643 semantic effect of the client supplying the 'delete-attribute' value in 644 a Set-Job-Attributes operation MUST be the same as if the attribute had 645 not been supplied with the Job object in the Job Creation operation, 646 i.e., the Printer applies its default attribute or behavior with lower 648 Expires: September 8, 2000 649 precedence that the PDL (see the beginning of [ipp-mod] section 4.2 and 650 [ipp-mod] 3.2.1.1). Any subsequent query of the Job object using Get- 651 Job-Attributes or Get-Jobs MUST NOT return any attribute that has been 652 deleted using the 'delete-attribute' out-of-band value. However, a 653 client can re-establish such a deleted Job attribute with any supported 654 value(s) using a subsequent Set-Job-Attributes operation. 656 If the client supplies an attribute in a Set-Job-Attributes request with 657 the 'delete-attribute' value and that attribute is not present on the 658 Job object, the Printer ignores that supplied attribute in the request, 659 does not return the attribute in the Unsupported Attributes group, and 660 returns the 'successful-ok' status code, if there are no other problems 661 with the request. 663 The validation of the Set-Job-Attributes request is performed by the 664 Printer as if the job had been submitted originally with the new 665 attribute values (and the deleted attributes removed) and with "ipp- 666 attribute-fidelity" set to 'true', i.e., all modified attributes Job 667 attributes and values MUST be supported in combination with the Job 668 attributes not modified. If such a Job Creation operation would have 669 been accepted, then the Set-Job-Attributes MUST be accepted. If such a 670 Job Creation operation would have been rejected, then the Set-Job- 671 Attributes MUST be rejected and the Job MUST be unchanged. In addition, 672 if any of the supplied attributes are not supported, are not settable, 673 or the values are not supported, the Printer object MUST reject the 674 entire operation; the Printer object MUST NOT partially set some of the 675 supplied attributes. In other words, after the operation, all the 676 supplied attributes MUST be set or none of them MUST be set, thus making 677 the Set-Job-Attributes an atomic operation. 679 The IPP object MUST accept or reject this operations when the Job's 680 READ-ONLY "job-state" attribute has the values shown in Table 2. The 681 job's current state MUST affect whether the IPP object accepts or 682 rejects the request. For example, in the case where the operation 683 creates a request for unavailable resources, the Job transitions to a 684 new state. Table 2 shows the allowed behaviors in each job state and 685 the transitions. 687 Expires: September 8, 2000 688 Table 2 - Job State Transition Table for the Set-Job-Attributes 689 operation 691 Current "job- New "job- IPP object's response status 692 state" state" code and action: 694 'pending' 'pending' 'successful-ok' 695 'pending' 'pending-held' 'successful-ok' - needed 696 resources are not ready 697 'pending-held' 'pending-held' 'successful-ok' 698 'pending-held' 'pending' 'successful-ok' - needed 699 resources are ready 700 'processing' 'processing' 'successful-ok' or 'client- 701 error-not-possible' depending on 702 implementation, including the 703 attributes being set, whether 704 the job has started marking 705 media, etc. 706 'processing- 'processing- 'successful-ok' or 'client- 707 stopped' stopped' error-not-possible' depending on 708 implementation, including the 709 attributes being set, whether 710 the job has started marking 711 media, etc. 712 'completed' 'completed' 'client-error-not-possible' 713 'canceled' 'canceled' 'client-error-not-possible' 714 'aborted' 'aborted' 'client-error-not-possible' 716 This operation MUST NOT change the value of attributes not specified in 717 the operation unless the definition of the attribute explicitly 718 specifies such side-effects. In general, Job attribute definitions that 719 are settable will not define side-effects on other attributes that are 720 settable, only side effects on READ-ONLY attributes, if any. 722 4.2.1Settable and READ-ONLY Job Description attributes 724 If the Printer supports the "job-message-from-operator" Job Description 725 attribute (see [ipp-mod] section 4.3.16) and the client explicitly 726 supplies a new value for the "job-message-from-operator" in the Set-Job- 727 Attributes request, then the Printer MUST set the "job-message-from- 728 operator" Job attribute to this new value. 730 If the Printer supports the Set-Job-Attributes operation, then it SHOULD 731 support setting of: 733 all Job Template job ("xxx") attributes 735 that the implementation supports (see [ipp-mod] section 4.2 and 736 extensions). 738 Some Job Description attributes (see [ipp-mod] section 4.3) MUST NOT be 739 settable, i.e., they are defined to be READ-ONLY. An attribute marked 740 as "READ-ONLY" in the Job Description attribute table in Appendix A is 742 Expires: September 8, 2000 743 such an attribute. The Job attributes not marked as "READ-ONLY" MAY be 744 settable using the Set-Job-Attributes operation, depending on 745 implementation. 747 Note: From now on, all extensions that define new object attributes 748 will indicate whether or not the attributes are READ-ONLY, by including 749 the "READ-ONLY" adjective in their descriptions and/or explicitly 750 stating whether they MAY be settable. 752 Access Rights: The authenticated user (see [ipp-mod] section 8.3) 753 performing this operation must either be the job owner (as determined in 754 the Job Creation operation) or an operator or administrator of the 755 Printer object (see [ipp-mod] Sections 1 and 8.5). 757 4.2.2Set-Job-Attributes Request 759 The following sets of attributes are part of the Set-Job-Attributes 760 Request: 762 Group 1: Operation Attributes 764 Natural Language and Character Set: 765 The "attributes-charset" and "attributes-natural-language" 766 attributes as described in [ipp-mod] section 3.1.4.1. 768 Target: 769 Either (1) the "printer-uri" (uri) plus "job-id" (integer(1:MAX)) 770 or (2) the "job-uri" (uri) operation attribute(s) which define the 771 target for this operation as described in [ipp-mod] section 3.1.5. 773 Requesting User Name: 774 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied 775 by the client as described in [ipp-mod] section 8.3. 777 Group 2: Job Attributes 779 The client MUST supply a set of Job attributes with one or more 780 values (including explicitly allowed out-of-band values) as defined 781 in [ipp-mod] section 4.2 Job Template Attributes ("xxx" 782 attributes), section 4.3 Job Description Attributes, and any 783 attribute extensions supported by the Printer. The value(s) of 784 each Job attribute supplied in Group 2 replaces the value(s) of the 785 corresponding Job attribute on the target Job object. For 786 attributes that can have multiple values (1setOf), all values 787 supplied by the client replace all values of the corresponding Job 788 object attribute. 790 If the client supplies an "xxx" attribute with the 'delete- 791 attribute' out-of-band value (see section 8.2), the Printer MUST 792 remove the "xxx" attribute from the Job object, if present. 794 Expires: September 8, 2000 796 4.2.3Set-Job-Attributes Response 798 The IPP object returns the following sets of attributes as part of the 799 Set-Job-Attributes Response: 801 Group 1: Operation Attributes 803 Status Message: 804 In addition to the REQUIRED status code returned in every response, 805 the response OPTIONALLY includes a "status-message" (text(255)) 806 and/or a "detailed-status-message" (text(MAX)) operation attribute 807 as described in [ipp-mod] sections 13 and 3.1.6. 809 Natural Language and Character Set: 810 The "attributes-charset" and "attributes-natural-language" 811 attributes as described in [ipp-mod] section 3.1.4.2. 813 Group 2: Unsupported Attributes 815 See [ipp-mod] section 3.1.7 for details on returning Unsupported 816 Attributes. 818 If some of the attributes in the operation fail to validate, the 819 Printer MUST reject the operation, MUST NOT change any Job 820 attributes, and MUST return the indicated status code below. In 821 this group, the Printer MUST also return all attributes that fail 822 to validate. The following are the reasons that an attribute fails 823 to validate and the value returned for the attribute, along with 824 the indicated status code and order of detection: 826 1. The number of attributes supplied by the client exceeds the 827 maximum number that the Printer supports in a Set-Printer- 828 Attributes request: return the 'client-error-request-entity- 829 too-large' (see [ipp-mod] section 13.1.4.9). 831 2. The Printer doesn't support the attribute: return the 832 attribute with the "out-of-band" value 'unsupported' (see 833 [ipp-mod] section 3.1.7 and [ipp-pro]) and the 'client-error- 834 attributes-or-values-not-supported (see [ipp-mod] section 835 13.1.4.12). 837 3. The attribute is READ-ONLY (in its definition) or is not- 838 settable in this implementation: return the attribute with 839 the "out-of-band" value 'not-settable' (see section 8.1) and 840 the 'client-error-attributes-not-settable' status code (see 841 section 7.1). 843 4. The Printer doesn't support the value: if the attribute in 844 the operation has a single value return it. If the attribute 845 in the operation is multi-valued, return only those values in 846 a 1setOf that are not supported. Return the 'client-error- 847 attributes-or-values-not-supported' status code (see [ipp-mod] 848 section 13.1.4.12). 850 Expires: September 8, 2000 852 5. The values of some of the supplied attributes conflict with 853 one another and/or other Job attribute values not being set: 854 if the conflicting attribute in the operation has a single 855 value return the attribute and the value. If the attribute in 856 the operation is multi-valued, return only the attribute and 857 those values in a 1setOf that are conflicting with other 858 attributes. Return the 'client-error-conflicting-attributes' 859 status code (see [ipp-mod] section 13.1.4.15). 861 4.3 Get-Printer-Supported-Values Operation 863 This OPTIONAL operation allows a client to request the values that the 864 Printer allows in the Set-Printer-Attributes operation for "xxx- 865 supported" attributes. If the Printer supports the Set-Printer- 866 Attributes operation AND some of its "xxx-supported" Printer attributes 867 are settable, then the Printer MUST also support this operation. This 868 operation has identical request/response attributes to the Get-Printer- 869 Attributes operation in IPP/1.1 [ipp-mod]. The operation also behaves 870 identically to the Get-Printer-Attributes operation in IPP/1.1 [ipp-mod] 871 with the following exceptions: 873 1. The Get-Printer-Supported-Values operation supports only "xxx- 874 supported" attributes. 876 2. The Get-Printer-Attributes operation returns the current value of 877 specified attributes while the Get-Printer-Supported-Values 878 operation returns values that permit a client to determine what 879 values of "xxx-supported" attributes the Printer supports in the 880 Set-Printer-Attributes operation. 882 3. If an implementation does not support setting an attribute that is 883 requested, it MUST NOT return that attribute in the Printer 884 Attributes Group of the Get-Printer-Supported-Values response. 885 Furthermore, in such a case, as in the Get-Printer-Attributes 886 response, the Unsupported Attributes Group of the response NEED NOT 887 contain the "requested-attributes" operation attribute with any 888 supplied values (attribute keywords) that were requested by the 889 client but are not supported or are not settable by the IPP 890 Printer. 892 4. The Get-Printer-Supported-Values operation does not return any 893 'name' attribute syntax values for any "xxx-supported" attributes. 894 Instead, if the Set-Printer-Attributes operation will accept (any) 895 name value for an "xxx-supported" attribute, then the Get-Printer- 896 Supported-Values operation MUST return the 'any-value' out-of-band 897 attribute value with the 'name' attribute syntax (see section 8.3) 898 as one of the values of the "xxx-supported" attribute. In other 899 words, the 'any-value' out-of-band attribute value used in 900 combination with the 'name' attribute syntax indicates that the 901 Printer implementation supports clients setting 'name' attribute 902 syntax values for "xxx-supported" attributes that are defined with 903 the 'name' attribute syntax. 905 Expires: September 8, 2000 907 For example, if the Get-Printer-Supported-Values operation returns 908 several keywords as the value of the "media-supported" attribute, then 909 the Set-Printer-Attributes operation MUST accept any of these keywords 910 as values for the "media-supported" attribute. If the Get-Printer- 911 Supported-Values operation returns an 'any-value' out-of-band attribute 912 value with the 'name' attribute syntax as one of the values of the 913 "media-supported" attribute, then the Set-Printer-Attributes operation 914 MUST accept any value whose attribute syntax is 'name' as values for the 915 "media-supported" attribute. 917 The Get-Printer-Supported-Values MAY return the 'any-value' out-of-band 918 attribute value in combination with the 'name' attribute syntax for any 919 of the following IPP/1.1 attributes in which case the Printer MUST 920 accept any 'name' value in a Set-Printer-Attributes operation that is 921 setting that attribute: 923 media-supported 924 job-hold-until-supported 925 job-sheets-supported 927 If the 'any-value' out-of-band attribute value in combination with the 928 'name' attribute syntax is not one of the values of an "xxx-supported" 929 attribute returned in a Get-Printer-Supported-Values response, then the 930 Printer MUST NOT allow the Set-Printer-Attributes operation for that 931 attribute to contain a value whose attribute syntax is 'name'. 933 See Appendix B for a full list of values returned by this operation. 935 5 New Operation attributes 937 This section defines new operation attributes for use with the IPP/1.1 938 operations indicated. As new operations are defined they will also 939 indicate explicitly whether these operation attributes are defined for 940 use with them. 942 5.1 "printer-message-from-operator" (text(127)) 944 The Printer SHOULD support this Operation attribute in following 945 operations if it supports the corresponding "printer-message-from- 946 operator" Printer Description attribute. 948 Pause-Printer 949 Resume-Printer 950 Purge-Jobs 952 The client OPTIONALLY supplies this attribute in the above operations. 953 The value of this attribute is a message from the operator about the 954 Printer object on which the operator is performing the operation. If 955 this operation attribute is supported, the Printer copies the value to 956 its "printer-message-from-operator" Printer Description attribute (see 957 [ipp-mod] section 4.4.25) even if this Operation attribute is a zero- 958 length text value or consists solely of white space. 960 Expires: September 8, 2000 961 If the Printer supports this operation attribute, it MUST support both a 962 zero-length text value and the 'no-value' out-of-band value (see [ipp- 963 mod] section 4.1) to indicate that the operator has sent no message. In 964 this case, the Printer sets the value of the "printer-message-from- 965 operator" to the zero-length value or 'no-value' out-of-band value, 966 respectively. If the client queries the "printer-message-from-operator" 967 Printer attribute, the Printer returns the attribute with the zero- 968 length value or the 'no-value' value, respectively. 970 In addition, the Printer automatically copies: 972 1. the value of its "printer-up-time" attribute (see [ipp-mod] section 973 4.4.29) to its "printer-message-time" attribute, 975 2. the value of its printer-current-time" (dateTime) attribute (see 976 [ipp-mod] section 4.4.30) to its "printer-message-date-time" 977 attribute, if supported. 979 If the client omits this operation attribute, the Printer does not 980 change the value of its "printer-message-from-operator", "printer- 981 message-time" and "printer-message-date-time" Printer Description 982 attributes. 984 The "printer-message-from-operator" operation attribute MUST NOT be 985 supported as an operation attribute for the Set-Printer-Attributes 986 operation. If the operator wants to set the Printer's "printer-message- 987 from-operator" Printer Description attribute when issuing the Set- 988 Printer-Attributes operation, the client supplies the "printer-message- 989 from-operator" explicitly with its new value as one of the Printer 990 Description attributes in Group 2 in the request. The Printer also 991 updates its "printer-message-time" and "printer-message-date-time" 992 Printer Description attributes. If the client does not explicitly 993 supply the "printer-message-from-operator" with its new value in the 994 Set-Printer-Attributes request, the Printer leaves the value of the 995 Printer's "printer-message-from-operator" Printer Description attribute 996 unchanged. 998 5.2 "job-message-from-operator" (text(127)) 1000 The Printer SHOULD support this Operation attribute in following 1001 operations if it supports the corresponding "job-message-from-operator" 1002 Job Description attribute. 1004 Cancel-Job 1005 Hold-Job 1006 Release-Job 1007 Restart-Job 1009 The client OPTIONALLY supplies this attribute in the above operations. 1010 The value of this attribute is a message from the operator about the Job 1011 object on which the operator has just performed an operation. If 1012 supported, the Printer copies the value to the Job's "job-message-from- 1013 operator" Job Description attribute (see [ipp-mod] section 4.3.16) (even 1015 Expires: September 8, 2000 1016 if this Operation attribute is a zero-length text value or consists 1017 solely of white space). 1019 If the Printer supports this operation attribute, it MUST support both a 1020 zero-length text value and the 'no-value' out-of-band value (see [ipp- 1021 mod] section 4.1) to indicate that the operator has sent no message. In 1022 this case, the Printer sets the value of the "job-message-from-operator" 1023 to the zero-length value or 'no-value' out-of-band value, respectively. 1024 If the client queries the "job-message-from-operator" Job attribute, the 1025 IPP object returns the attribute with the zero-length value or the 'no- 1026 value' value, respectively. 1028 If the client omits this attribute, the Printer does not change the 1029 value of its "job-message-from-operator" Job Description attribute. 1031 Note: There are no corresponding 'job-message-time" and "job-message- 1032 date-time" Job Description attributes, since the usual lifetime of a job 1033 is limited. 1035 The "job-message-from-operator" operation attribute MUST NOT be 1036 supported as an operation attribute for the Set-Job-Attributes 1037 operation. If the operator wants to set the Job's "job-message-from- 1038 operator" Job Description attribute when issuing the Set-Job-Attributes 1039 operation, the client MUST supply the "job-message-from-operator" with 1040 its new value as one of the Job Description attributes in Group 2 in the 1041 request. Otherwise, the Printer leaves the value of the Job's "job- 1042 message-from-operator" Job Description attribute unchanged by not 1043 explicitly setting the attribute. If the client does not explicitly 1044 supply the "job-message-from-operator" with its new value in the Set- 1045 Job-Attributes request, the Printer leaves the value of the Job's "job- 1046 message-from-operator" Job Description attribute unchanged. 1048 6 New Printer Description Attributes 1050 The following new Printer Description attributes are needed to support 1051 the new operations defined in this document. 1053 6.1 printer-settable-attributes-supported (1setOf type2 keyword) 1055 This REQUIRED READ-ONLY Printer attribute identifies the Printer object 1056 attributes that are settable in this implementation, i.e., that are 1057 settable using the Set-Printer-Attributes operations (see section 4.1). 1058 This attribute MUST be supported if the Set-Printer-Attributes 1059 operations is supported. The Printer MUST reject attempts to set any 1060 Printer attributes that are not one of the values of this attribute, 1061 returning the 'client-error-attributes-not-settable' status code (see 1062 section 7.1). The value of this attribute MAY depend on the value of 1063 the "document-format" operation attribute supplied in the Get-Printer- 1064 Attributes operation (see [ipp-mod] section 3.2.5.1). 1066 Standard keyword values are: 1068 Expires: September 8, 2000 1069 'none': There are no settable Printer attributes. 1070 'xxx': Where 'xxx' is any of the keyword attribute names allowed by 1071 section 4.1.1 1073 6.2 job-settable-attributes-supported (1setOf type2 keyword) 1075 This REQUIRED READ-ONLY Printer attribute identifies the Job object 1076 attributes that are settable in this implementation, i.e., that are 1077 settable using the Set-Job-Attributes operation (see section 4.2). This 1078 attribute MUST be supported if the Set-Job-Attributes operations is 1079 supported. The Printer MUST reject attempts to set any Job attributes 1080 that are not one of the values of this attribute, returning the 'client- 1081 error-attributes-not-settable' status code (see section 7.1). 1083 Standard keyword values are: 1085 'none': There are no settable Job attributes. 1086 'xxx': Where 'xxx' is any of the keyword attribute names allowed by 1087 section 4.2.1. 1089 6.3 document-format-varying-attributes (1setOf type2 keyword) 1091 This OPTIONAL READ-ONLY Printer Description attribute contains a set of 1092 attribute name keywords. This attribute SHOULD be supported by a 1093 Printer object, if the Printer object has Printer attributes whose value 1094 vary depending on document format (see [ipp-mod] Get-Printer-Attributes 1095 operation). This attribute specifies which attribute values can vary by 1096 document-format. If an attribute's name "xxx" is a member of this 1097 attribute and the value of attribute "xxx" is changed with the Set- 1098 Printer-Attributes operation that included the "document-format" 1099 operation attribute, then the Printer MUST change the value for the 1100 specified document format and no other document formats (see section 1101 4.1.2). If an attribute's name "xxx" is not a member of this attribute 1102 and the value of attribute "xxx" is changed with the Set-Printer- 1103 Attributes operation, then the attribute is changed for all document 1104 formats (whether or not the client supplied the "document-format" 1105 operation attribute). 1107 6.4 printer-message-time (integer(MIN:MAX)) 1109 This OPTIONAL READ-ONLY Printer Description attribute contains the time 1110 that the Printer's "printer-message-from-operator" was changed by the 1111 operator using any operation where the client supplied the "printer- 1112 message-from-operator" operation attribute (see section 5.1) or was 1113 explicitly set using the Set-Printer-Attributes operation (see section 1114 4.1). This attribute allows the users to know when the "printer- 1115 message-from-operator" attribute was last set. 1117 The Printer sets the value of this attribute by copying the value of the 1118 Printer's "printer-up-time" attribute (see [ipp-mod] section 4.3.14). 1119 If the Printer resets its "printer-up-time" attribute to 1 on power-up, 1121 Expires: September 8, 2000 1122 then it MUST change the value of the "printer-message-time" to 0 or a 1123 negative number as specified in [ipp-mod] section 4.3.14. 1125 Note: This attribute helps users better understand the context for the 1126 "printer-message-from-operator" message. 1128 6.5 printer-message-date-time (dateTime) 1130 This OPTIONAL READ-ONLY Printer Description attribute contains the date 1131 and time that the Printer's "printer-message-from-operator" was changed 1132 by the operator using any operation where the client supplied the 1133 "printer-message-from-operator" operation attribute (see section 5.1) or 1134 was explicitly set using the Set-Printer-Attributes operation (see 1135 section 4.1). This attribute allows the users to know when the 1136 "printer-message-from-operator" attribute was last set. 1138 This attribute MUST be supported if the Printer supports both the 1139 "printer-message-time" and the "printer-current-time" (dateTime) 1140 attributes (see [ipp-mod] section 4.4.30). 1142 Note: This attribute helps users better understand the context for the 1143 "printer-message-from-operator" message. 1145 6.6 printer-xri-supported (1setOf collection) 1147 This OPTIONAL Printer Description attribute is a multi-valued attribute 1148 where each value has the 'collection' attribute syntax (see [ipp-coll]) 1149 containing member attributes with the same semantics as the following 1150 IPP/1.1 READ-ONLY Printer Description attributes, except for 1151 cardinality: 1153 printer-uri-supported (1setOf uri) - see [ipp-mod] section 4.4.1 1154 uri-authentication-supported (1setOf type2 keyword) - see [ipp-mod] 1155 section 4.4.2 1156 uri-security-supported (1setOf type2 keyword) - see [ipp-mod] 1157 section 4.4.3 1159 When setting the "printer-xri-supported" attribute with a Set-Printer- 1160 Attributes request, the Printer MUST also set these three IPP/1.1 READ- 1161 ONLY Printer Description attributes as a defined side effect. Thus, 1162 this collection attribute provides the means to guarantee that these 1163 three IPP/1.1 READ-ONLY attributes are always set together, thereby 1164 never leaving these three attributes in a partially inconsistent state. 1166 The member attributes of the "printer-xri-supported" (1setOf collection) 1167 are given in Table 3. 1169 Table 3 - Member attributes of "printer-xri-supported" (1setOf 1170 collection) 1172 Member attribute client Printer 1173 MUST MUST 1175 Expires: September 8, 2000 1176 supply support 1178 xri-uri (uri) yes yes 1180 xri-authentication (1setOf type2 keyword) yes yes 1182 xri-security (1setOf type2 keyword) yes yes 1184 Each collection value MUST contain a single unique value for the "xri- 1185 uri" member attribute. However, the other two member attributes are 1186 multi-valued, so that a single URI can support more than one 1187 authentication scheme and/or more than one security scheme. Other than 1188 the uniqueness and the cardinality requirements, the semantics of these 1189 three member attributes is given in [ipp-mod] sections 4.4.1, 4.4.2, and 1190 4.4.3, respectively. 1192 A client can query the current values by supplying in a Get-Printer- 1193 Attributes request either: 1195 1. the three IPP/1.1 attribute names: "printer-uri-supported", "uri- 1196 authentication-supported", "uri-security-supported" and getting 1197 back the parallel values OR 1199 2. the single attribute name: "printer-xri-supported" and getting back 1200 the 1setOf collection which contains the same information 1201 semantically, but in a different form. 1203 A client can query what member attribute values can be set by supplying 1204 the two attribute names: "xri-authentication-supported" and "xri- 1205 security-supported" in a Get-Printer-Supported-Values request and 1206 getting back the 1setOf type2 keyword values that can be set. Since the 1207 "printer-xri-supported", "uri-authentication-supported", and "uri- 1208 security-supported" attributes are READ-ONLY, they are not queriable 1209 with Get-Printer-Supported-Values operation (see section 4.3). See 1210 Table 13. 1212 When performing a Set-Printer-Attributes operation, if there are 1213 multiple values for the "printer-xri-supported-authentication" and/or 1214 "printer-xri-supported-security" member attributes, the Printer MUST set 1215 the corresponding three READ-ONLY attributes with all possible 1216 combinations of values. For example, setting the "printer-xri- 1217 supported" with the following two collection values where the first URI 1218 has both 'basic' and 'digest' authentication: 1220 "printer-xri-supported = 1221 { "printer-xri-supported-uri" = ipp://abc.com/p1 1222 "printer-xri-supported-authentication" = basic, digest 1223 "printer-xri-supported-security" = tls 1224 }, 1225 { "printer-xri-supported-uri" = http://abc.com/pq 1226 "printer-xri-supported-authentication" = none 1227 "printer-xri-supported-security" = none 1228 } 1230 Expires: September 8, 2000 1232 would cause the Printer to set the three corresponding IPP/1.1 READ-ONLY 1233 attributes, each with three parallel values as follows: 1235 "printer-uri-supported" = { ipp://abc.com/p1, ipp://abc.com/p1, 1236 http://abc.com/pq } 1237 "uri-authentication-supported" = { basic, digest, none } 1238 "uri-security-supported" = { tls, tls, none } 1240 Because there were two authentication values for the ipp://abc.com/p1 1241 URL, that URL value is repeated. Had the ipp URL had 2 authentication 1242 values and 3 security values, then there would have been 7 (2*3 + 1) 1243 parallel values for each of the three attributes, 6 with the same ipp 1244 URI and 1 with the http URI. 1246 Note: The "xri-printer-supported" (1setOf collection) attribute can be 1247 put into a directory schema that requires a single text string value, 1248 such as SLP or LDPA, by using suitable delimiting characters to separate 1249 member attributes and/or terminating collection values. See [svrloc- 1250 printer] and [ldap-printer]. 1252 7 Additional status codes 1254 This section defines new status codes used by the operations defined in 1255 this document. 1257 7.1 'client-error-attributes-not-settable' (0x0413) 1259 The Set-Printer-Attributes or Set-Job-Attributes operation failed 1260 because one or more of the specified attributes cannot be set either 1261 because the attribute is defined to be READ-ONLY or the attribute is not 1262 settable in this implementation (see sections 4.1.3 and 4.2.3), the 1263 Printer MUST return this error code and the attribute keyword name(s) 1264 and the 'not-settable' out-of-band value (see section 8.1) in the 1265 Unsupported Attributes Group(see [ipp-mod] section 3.1.7) for all of the 1266 attributes that could not be set. When the Printer returns this status, 1267 it MUST NOT change any of the attributes supplied in the operation. 1269 8 Additional out-of-band values 1271 This section defines additional out-of-band values. As with all out-of- 1272 band values, a client or a Printer MUST NOT use an out-of-band value 1273 unless the definition of the attribute in an operation request and/or 1274 response explicitly allows such usage. See the beginning of [ipp-mod] 1275 section 4.1. 1277 Expires: September 8, 2000 1278 8.1 'not-settable' out-of-band value 1280 The 'not-settable' out-of-band value is used by the IPP Printer in the 1281 Unsupported Attributes group of a Set-Job-Attributes or Set-Printer- 1282 Attributes response to indicate that an attribute (supplied by the 1283 client) is READ-ONLY by definition or is not settable in this 1284 implementation (see sections 4.1.3 and 4.2.3). 1286 See sections 4.1.3 and 4.2.3 in this document for an example definition 1287 of the usage of the 'not-settable' out-of-band value in the Set-Printer- 1288 Attributes and Set-Job-Attributes responses. 1290 8.1.1Encoding of the 'not-settable' out-of-band attribute value 1292 The encoding of the 'not-settable' out-of-band value is 0x15 (see [ipp- 1293 pro]). 1295 8.2 'delete-attribute' out-of-band value 1297 The 'delete-attribute' out-of-band value is supplied by the client in 1298 the Set-Job-Attributes request to indicate that the Printer is to remove 1299 the supplied attribute and all of its values from the Job object, if 1300 present (see section 4.2). 1302 The 'delete-attribute' out-of-band value is defined for use with the 1303 Set-Job-Attributes only. Clients MUST NOT supply and IPP objects MUST 1304 NOT support the 'delete-attribute' out-of-band value in other 1305 operations, such as the Set-Printer-Attributes operation, where the 1306 absence of an attribute from an IPP object indicates that the attribute 1307 is not supported. If a Printer receives this out-of-band value in other 1308 operations, the Printer MUST reject the entire request and return the 1309 'client-error-bad-request' status code and not process any of the other 1310 supplied attributes. 1312 See section 4.2 in this document for an example definition of the usage 1313 of the 'delete-attribute' out-of-band value in the Set-Job-Attributes 1314 request. 1316 8.2.1Encoding of the 'delete-attribute' out-of-band value 1318 The encoding of the 'delete-attribute' out-of-band value is 0x16 (see 1319 [ipp-pro]). 1321 8.3 'any-value' out-of-band attribute value 1323 The 'any-value' out-of-band attribute value MAY be used in combination 1324 with an attribute syntax to represent "any" attribute value of that 1325 attribute syntax. 1327 Expires: September 8, 2000 1328 See section 4.3 in this document for an example definition of the usage 1329 of the 'any-value' out-of-band attribute value with the 'name' attribute 1330 syntax in any "xxx-supported" attribute returned in a Get-Printer- 1331 Supported-Values response. 1333 8.3.1Encoding of the 'any-value' out-of-band attribute value 1335 The encoding of the 'any-value' out-of-band attribute value is 0x17 (see 1336 [ipp-pro]). This out-of-band value REQUIRES a non-zero length and an 1337 attribute value which identifies an attribute syntax type. The 1338 attribute value is either (1) a one-octet attribute syntax tag as 1339 defined in [ipp-pro] (value length = 1) or (2) a 0x7F code followed by a 1340 4-octets of an extended attribute syntax type code as allocated in [ipp- 1341 pro] (value length = 5). 1343 9 Conformance Requirements 1345 This section specifies the conformance requirements for clients and IPP 1346 objects. 1348 Both the Set-Job-Attributes and the Set-Printer-Attributes operations 1349 defined in the document are OPTIONAL for an IPP object to support. 1350 Either one MAY be supported without the other or both MAY be supported. 1351 However, if the Set-Printer-Attributes operation is supported, then the 1352 Get-Printer-Supported-Values operation MUST be supported if any "xxx- 1353 supported" attributes are settable. Otherwise, the Get-Printer- 1354 Supported-Values operation is OPTIONAL for an IPP Printer to support. 1356 If the Set-Printer-Attributes operation is supported, then the Printer 1357 MUST support the following additional items: 1359 1.the Get-Printer-Supported-Values operation (see section 5), if 1360 any "xxx-supported" attributes are settable. 1362 2.the "printer-settable-attributes-supported" Printer Description 1363 attribute (see section 6.1) 1365 3.the 'not-settable' out-of-band value in responses (see section 1366 8.1) 1368 4.the 'client-error-not-settable' status code (see section 7.1) 1370 5.If "printer-message-from-operator" Printer Description attribute 1371 is supported (see [ipp-mod] section 4.4.25), then it MUST be 1372 settable. 1374 6.the Get-Printer-Supported-Values operation (see section 4.3), if 1375 any "xxx-supported" attributes are settable. 1377 Expires: September 8, 2000 1379 7.If a client can set a value with the 'name' attribute syntax for 1380 one or more "xxx-supported" attributes, then the 'any-value' 1381 out-of-band attribute value (see section 8.3) MUST be supported 1382 in the Get-Printer-Supported-Values response with the 'name' 1383 attribute syntax for each such settable attribute (see section 1384 4.3) 1386 If the Set-Job-Attributes operation is supported, then the Printer MUST 1387 support the following additional items: 1389 1.the "job-settable-attributes-supported " Printer Description 1390 attribute (see section 6.2) 1392 2.the 'not-settable' out-of-band value in responses (see section 1393 8.1) 1395 3.the 'delete-attribute' out-of-band value in requests (see 1396 section 8.2) 1398 4.the 'client-error-not-settable' status code (see section 7.1) 1400 5.If the "job-message-from-operator" Printer Description attribute 1401 is supported (see [ipp-mod] 4.3.16), then it MUST be settable. 1403 It is OPTIONAL for the Printer object to support the "printer-message- 1404 time" (integer) and "printer-message-date-time" (dateTime) Printer 1405 Description attributes. If both the "printer-message-time" (integer) 1406 and the "printer-current-time" (dateTime) (see [ipp-mod] section 4.4.30) 1407 attributes are supported, then the "printer-message-date-time" 1408 (dateTime) Printer Description attribute MUST be supported. 1410 As with all out-of-band values, a client or a Printer MUST NOT use an 1411 out-of-band value unless the definition of the attribute in an operation 1412 request and/or response explicitly allows such usage. 1414 10 IANA Considerations 1416 Since this document is intended to be a standards track document, there 1417 is no need to also register the operations, attributes, status codes, 1418 and out-of-band values defined here-in with IANA according to the 1419 procedures in RFC 2566 [rfc2566] section 6. However, other registration 1420 proposals may site the out-of-band attribute values or the status codes 1421 defined in this document. 1423 11 Internationalization Considerations 1425 This document has the same localization considerations as the [ipp-mod]. 1427 Expires: September 8, 2000 1428 12 Security Considerations 1430 The IPP Model and Semantics document [ipp-mod section 8] discusses high 1431 level security requirements (Client Authentication, Server 1432 Authentication and Operation Privacy). Client Authentication is the 1433 mechanism by which the client proves its identity to the server in a 1434 secure manner. Server Authentication is the mechanism by which the 1435 server proves its identity to the client in a secure manner. Operation 1436 Privacy is defined as a mechanism for protecting operations from 1437 eavesdropping. 1439 In addition, the introduction of the Set-Printer-Attributes and Set-Job- 1440 Attributes operations creates another security threat, since the client 1441 is able to modify the Printer and Job attributes stored in the Printer. 1442 Such modifications could lead to denial of service. 1444 A malicious user could alter the policy established by the system 1445 administrator and stored in the Printer attributes. Such alteration 1446 could either grant access to more resources or deny access to resources 1447 that the system administrator has established. For example, the 1448 malicious user could remove all of the document-format values from the 1449 "document-format-supported" Printer attribute so that the Printer would 1450 refuse to accept all jobs. 1452 The general remedy for such malicious user actions against Printer 1453 attributes is to have strong Client Authentication coupled with Printer 1454 access control to limit the users who have System Administrator or 1455 Operator privileges. 1457 A malicious user could modify the Job Template attributes of another 1458 user's Job, such as the "copies" attribute. For example, setting the 1459 number of copies to a large number. 1461 The general remedy for such malicious user actions against another 1462 user's job is to have strong Client Authentication coupled with Printer 1463 access control to limit the users who have System Administrator or 1464 Operator privileges who can modify any job and, in addition, store the 1465 Client Authentication with each Job so that only the job owner End User 1466 can modify his/her own job. 1468 13 Author's Addresses 1470 Carl Kugler 1471 IBM 1472 P.O. Box 1900 1473 Boulder, CO 80301-9191 1475 Phone: (303) 924-5060 1476 FAX: 1477 e-mail: kugler@us.ibm.com 1479 Tom Hastings 1481 Expires: September 8, 2000 1482 Xerox Corporation 1483 737 Hawaii St. ESAE 231 1484 El Segundo, CA 90245 1486 Phone: 310-333-6413 1487 Fax: 310-333-5514 1488 e-mail: hastings@cp10.es.xerox.com 1490 Robert Herriot 1491 Xerox Corp. 1492 3400 Hill View Ave, Building 1 1493 Palo Alto, CA 94304 1495 Phone: 650-813-7696 1496 Fax: 650-813-6860 1497 e-mail: robert.herriot@pahv.xerox.com 1499 Harry Lewis 1500 IBM 1501 P.O. Box 1900 1502 Boulder, CO 80301-9191 1504 Phone: (303) 924-5337 1505 FAX: 1506 e-mail: harryl@us.ibm.com 1508 14 References 1510 [ipp-coll] 1511 deBry, R., , Hastings, T., Herriot, R., "Internet Printing Protocol 1512 (IPP): The Collection Attribute Syntax", , work in progress, March 9, 2000. 1515 [ipp-mod] 1516 R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, 1517 "Internet Printing Protocol/1.0: Model and Semantics", , March 1, 2000. 1520 [ipp-pro] 1521 Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing 1522 Protocol/1.1: Encoding and Transport", draft-ietf-ipp-protocol-v11- 1523 05.txt, March 1, 2000. 1525 [ipp-set2] 1526 Kugler, C, Hastings, T., Lewis, H., "Internet Printing 1527 Protocol/1.1: Job and Printer Administrative Operations", , December 8, 1999. 1530 [ldap-printer] 1531 Fleming, P., Jones, K., Lewis, H., McDonald, I., "Internet Printing 1532 Protocol (IPP): LDAP Schema for Printer Services", , work in progress, March 8, 2000. 1535 Expires: September 8, 2000 1537 [RFC2565] 1538 Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing 1539 Protocol/1.0: Encoding and Transport", RFC 2565, April 1999. 1541 [RFC2566] 1542 R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, 1543 "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, 1544 April 1999. 1546 [svrloc-printer] 1547 St. Pierre, P., Isaacson, S., McDonald, I., "Definition of the 1548 Printer Abstract Service Type v2.0", , work in progress, March 8, 2000. 1551 15 Change History 1553 This section summarizes the changes. Each sub-section is in reverse 1554 chronological order. Adding or removing ISSUES that don't change the 1555 document are not listed here. 1557 15.1Changes to the March 1, 2000 version to make the March 8, 2000 1558 version 1560 The following changes have been made to the March 1, 2000 version to 1561 make the March 8, 2000 version as a result of the IPP WG telecons and 1562 mailing list discussion: 1564 1.Added the "printer-xri-supported" (1setOf collection) attribute so 1565 that the three parallel IPP/1.1 "printer-uri-supported", "uri- 1566 authentication-supported", and "uri-security-supported" attributes 1567 could be set as one atomic attribute. Consequently, changed the 1568 three parallel attributes to be READ-ONLY and removed the requirement 1569 that three attributes MUST be set in a single request if the three 1570 parallel IPP/1.1 "printer-uri-supported", "uri-authentication- 1571 supported", and "uri-security-supported" were settable. 1573 2.Clarified Get-Printer-Supported-Values so that if an implementation 1574 does not support setting a settable attribute, it MUST NOT return the 1575 attribute in the Printer Attribute group and it NEED NOT return the 1576 attribute in the Unsupported Attributes group, same as in a Get- 1577 Printer-Attributes response for unsupported attributes. Same 1578 clarification when unsupported attributes are requested. 1580 3.Fixed "printer-message-date-time" (dateTime) attribute to be 1581 OPTIONAL. 1583 4.Added note as to why the "printer-current-time" Printer Description 1584 attribute is settable (to fix an incorrect time or time zone). 1586 Expires: September 8, 2000 1588 5.Added "xri-authentication-supported" (1setOf type2 keyword) and "xri- 1589 security-supported" (1setOf type2 keyword) attributes to the table of 1590 attributes that can be queried with Get-Printer-Supported-Values. 1591 Added a note that these two attributes are NOT queriable with Get- 1592 Printer-Attributes, since the client queries either (1) the three 1593 "printer-uri-supported" (1setOf uri), "uri-authentication-supported" 1594 (1setOf type2 keyword), "uri-security-supported" (1setOf type2 1595 keyword) attributes, or (2) the single "printer-xri-supported" 1596 (1setOf collection) attribute. 1598 15.2Changes to the January 30, 2000 version to make the March 1, 2000 1599 version 1601 The following changes to the January 30, 2000 version to make the March 1602 1, 2000 version as a result of the IPP WG telecons and mailing list 1603 discussion: 1605 1.Clarified that this extension may be used with any IPP version, 1606 including 1.0, 1.1, and future versions. 1608 2.Added "READ-ONLY" and "not-settable" terms to the terminology 1609 section. READ-ONLY is by definition, and "not-settable" is by 1610 implementation. 1612 3.Assigned the "operation-id" values 0x0013, 0x0014, and 0x0015, 1613 respectively, for the Set-Printer-Attributes, Set-Job-Attributes, and 1614 Get-Printer-Supported-Values operations. 1616 4.Clarified that the Set-Printer-Attributes operation while a Printer 1617 SHOULD accept a reasonable number of attribute, the Printer need only 1618 support setting one attribute in a request, unless it supports 1619 setting the three "parallel" attributes, ("printer-uri-supported", 1620 "uri-authentication-supported", and "uri-security-supported" (see 1621 [ipp-mod] sections 4.4.1 through 4.4.3), in which case it MUST 1622 support setting at least three attributes in a single request. 1624 5.Clarified that for the Set-Printer-Attributes operation the Printer 1625 MUST validate all of the supplied attributes in combination with each 1626 other, as well as with all of the existing attribute of the Printer 1627 object Set-Printer-Attributes. 1629 6.Changed the requirements for accepting the Set-Printer-Attributes 1630 operation when the Printer is in the 'stopped' state from MUST to 1631 SHOULD, since some implementations may not be able to accept requests 1632 when stopped. 1634 7.Clarified that setting certain Printer attributes with Set-Printer- 1635 Attributes MAY require more access rights than other attributes, 1636 i.e., System Administrator rights to set policy and only Operator 1637 rights to set the configuration attributes to reflect the current 1638 hardware setup. 1640 Expires: September 8, 2000 1642 8.Clarified the order of error checking and what is returned in each 1643 case in the Set-Printer-Attributes response. 1645 9.Changed the 'default' out-of-band value to 'delete-attribute' out-of- 1646 band value so that the effect is to actually remove the Job attribute 1647 entirely in the Set-Job-Attribute operation. 1649 10. Clarified that removing a Job attribute that is not present is not 1650 an error. 1652 11. Clarified the validation of the Set-Job-Attributes request and what 1653 is returned for each error. 1655 12. Changed the 'any-name' out-of-band attribute value to a more 1656 general 'any-value' out-of-band attribute value which in combination 1657 with an attribute syntax represents any value of that attribute 1658 syntax. The 'any-value' value can be used with the 'name' attribute 1659 syntax in a Get-Printer-Supported-Values response to indicate whether 1660 or not a Set-Printer-Attributes will accept any name to be set for 1661 particular "xxx-supported" (1setOf name | ...) Printer attributes. 1663 13. Clarified that "printer-message-from-operator" and "job-message- 1664 from-operator" both REQUIRE that the Printer accept zero-length 1665 messages and the 'no-value' out-of-band value is synonymous with 1666 removing any value from these Printer attributes. 1668 14. Clarified that the Get-Printer-Supported-Values is REQUIRED only if 1669 the Set-Printer-Attributes operation will accept setting some "xxx- 1670 supported" Printer attributes. 1672 15. Changed the IANA Considerations to indicate that the operations, 1673 attributes, status codes, and out-of-band-values won't be registered 1674 and published by IANA, since this document is intended to be 1675 standards track. 1677 16. Added security considerations for denial of service and sabotage 1678 because of the Set operations. 1680 15.3Changes to the January 20, 2000 version to make the January 30, 2000 1681 version 1683 The following changes to the January 20, 2000 version to make the 1684 January 30, 2000 version as a result of the IPP WG telecons and mailing 1685 list discussion: 1687 1.Deleted the "document-format-varying-scope" operation attribute from 1688 the Set-Printer-Attributes operation and made whether or not the 1689 "document-format" operation was present determine whether one or all 1690 document formats are affected, respectively. 1692 2.Renamed the Get-Reset-Printer-Attributes operation to Get-Printer- 1693 Supported-Values, so that it only returns "xxx-supported" values. 1695 Expires: September 8, 2000 1696 Relegate obtaining reset values to another operation to be paired 1697 with the Reset-Printer operation in the Set2 [ipp-set2] document. 1699 3.Added "-supported" to the names of the "printer-settable-attributes" 1700 and "job-settable-attributes" Printer Description attributes, so that 1701 they could be returned in Get-Printer-Supported-Values and could be 1702 set by Set-Printer-Attributes. 1704 4.Deleted "authentication-methods-supported" (1setOf type2 keyword) and 1705 "security-methods-supported" (1setOf type2 keyword) and clarified 1706 that "uri-authentication-supported" (1setOf type2 keyword) and "uri- 1707 security-supported" (1setOf type2 keyword) can return multiple 1708 keywords of the same value in a Get-Printer-Supported-Values 1709 operation. 1711 15.4Changes to the January 4, 2000 version to make the January 20, 2000 1712 version 1714 The following changes to the January 4, 2000 version to make the January 1715 4, 2000 version as a result of the IPP WG telecons and mailing list 1716 discussion: 1718 1.Replaced the "factory-settings" operation attribute proposed to be 1719 added to the Get-Printer-Attributes operation with the Get-Rest- 1720 Printer-Attributes operation which returns the reset values and the 1721 possible "xxx-supported" values. 1723 2.Added the out-of-band 'any-name' value to be used with "xxx- 1724 supported" attributes with attribute syntax 'type3 keyword | name' to 1725 indicate that any name will be accepted in a Job Creation operation 1726 for configurations that support such a concept. 1728 3.Added authentication-methods-supported (1setOf type2 keyword) and 1729 security-methods-supported (1setOf type2 keyword) Printer Description 1730 attributes so that clients can discover the possible values for use 1731 in Set-Printer-Attributes to set "uri-authentication-supported" and 1732 "uri-security-supported" attributes, since the Reset-Printer 1733 operation doesn't change them. 1735 4.Added validation rules that the Printer MUST use to validate a Set- 1736 Printer-Attributes request. 1738 5.Clarified that the Set-Printer-Attributes operation MUST NOT have any 1739 side effects on other attributes, unless explicitly specified in this 1740 document. 1742 6.Moved the specification of the attributes that MUST be READ-ONLY to 1743 Appendix A. 1745 7.Added the "document-format-varying-attributes" (1setOf type2 keyword) 1747 8.Added the REQUIRED "document-format-varying-scope" operation 1748 attribute to Set-Printer-Attributes in order to control whether one 1750 Expires: September 8, 2000 1751 or all document formats are affected for those attributes that vary 1752 by document format. 1754 9.Clarified that the Printer returns the 'client-error-attributes-not- 1755 settable' status code in a Set-Printer-Attributes response whether 1756 the attribute is READ-ONLY, the attribute is not supported, or the 1757 value is not supported. 1759 10. Added the out-of-band 'default' value for use with Set-Job- 1760 Attributes and Job Creation operations. 1762 11. Deleted the "printer-message-operation" Printer Description 1763 attribute. 1765 12. Made the "Get-Reset-Printer-Attributes" operation, along with the 1766 "authentication-methods-supported" and the "security-methods- 1767 supported" Printer Description attributes REQUIRED, if the Set- 1768 Printer-Attributes operation is supported. 1770 13. Made the 'not-settable' out-of-band value and the 'client-error- 1771 not-settable' status code REQUIRED, if the Set-Printer-Attributes 1772 operation is supported. 1774 14. Made the 'default' out-of-band value REQUIRED, if the Set-Job- 1775 Attributes operation is supported. 1777 15. Removed the requirement that "xxx-supported" Printer Description 1778 attributes that contain only one value be read-only. 1780 15.5Changes to the December 8, 1999 version to make the January 4, 2000 1781 version 1783 The following changes to the December 8, 1999 version to make the 1784 January 4, 2000 version as a result of the IPP WG telecons and mailing 1785 list discussion: 1787 1.Removed the Set operations and related items from the Set2 1788 specification [ipp-set2] to create this Set specification. 1790 2.Added that an attribute that can only be set to one fixed value 1791 SHOULD NOT be included in the "printer-settable-attributes" or "job- 1792 settable-attributes" attributes. 1794 3.Indicated that the encoding of the 'not-settable' out-of-band value 1795 is TBD. 1797 4.Added that Set-Job-Attributes operation adds an attribute to the Job 1798 object if it wasn't already there 1800 5.Added the conformance section to make it easy to understand the 1801 conformance requirements. 1803 Expires: September 8, 2000 1805 16 Appendix A: Allowed Values for Set-Printer-Attributes 1807 This appendix is a normative part of this document and contains a table 1808 of all IPP/1.1 attributes. Each row contains 1810 An attribute and 1812 The values allowed in the Set-Printer-Attributes operation for the 1813 attribute. The entry in each cell is the name (first few words) of 1814 each item below 1, 2, 3, 4a-g, and 5. 1816 The allowed values include the following cases: 1818 1. READ-ONLY: the Set-Printer-Attributes operation MUST NOT change 1819 this attribute 1821 2. Any of "xxx-supported": the Set-Printer-Attributes operation 1822 accepts values that are allowed according to the IPP/1.1 rules for 1823 the "xxx-supported" attribute (see section 3.1.2.3 of the "Internet 1824 Printing Protocol/1.1: Implementer's Guide" [ipp-iig]). The 'xxx- 1825 supported' attribute value is obtained from a 'Get-Printer- 1826 Attributes' response. 1828 3. From Get-Printer-Supported-Values: the Set-Printer-Attributes 1829 operation accepts values that are allowed according to the IPP/1.1 1830 rules for the "xxx-supported" attribute (see section 3.1.2.3 of the 1831 "Internet Printing Protocol/1.1: Implementer's Guide" [ipp-iig]). 1832 The "xxx-supported" attribute value is obtained from a Get-Printer- 1833 Supported-Values response (see Appendix B: Attributes returned from 1834 Get-Printer-Supported-Values below). 1836 4. Any value of the proper attribute syntax: the Set-Printer- 1837 Attributes accepts any value of the specified attribute syntax. 1838 The attribute syntaxes supported are enumerated below. 1840 a.Any text(127) 1841 b.Any name(127) 1842 c.Any uri 1843 d.Any boolean 1844 e.Any positive integer 1845 f.Any dateTime 1846 g.1setOf any uri 1848 5. Combination of 'Any of "xxx-supported"' or 'Any name'. 1850 If a Printer implementation doesn't want to allow setting values 1851 indicated in this Appendix as "any xxx", it can make the value be read- 1852 only. For example, for a monochrome printer the attribute "color- 1853 supported" is "false" and MUST be read-only. Otherwise an administrator 1854 could set it to "true" because the value can have "any boolean" 1855 according to the rules in Table 7 below. 1857 Table 4 - Values allowed for Job Template Attributes in the Set-Job- 1858 Attributes Operation 1860 Job Template Attributes Values allowed for Set 1862 job-priority (integer(1:100)) Any of "xxx-supported" 1864 Expires: September 8, 2000 1865 Job Template Attributes Values allowed for Set 1867 job-hold-until (type3 keyword | name (MAX)) Any of "xxx-supported" 1868 job-sheets (type3 keyword | name(MAX)) Any of "xxx-supported" 1869 multiple-document-handling (type2 keyword) Any of "xxx-supported" 1870 copies (integer(1:MAX)) Any of "xxx-supported" 1871 finishings (1setOf type2 enum) Any of "xxx-supported" 1872 page-ranges (1setOf rangeOfInteger (1:MAX)) Any of "xxx-supported" 1873 sides (type2 keyword) Any of "xxx-supported" 1874 number-up (integer(1:MAX)) Any of "xxx-supported" 1875 orientation-requested (type2 enum) Any of "xxx-supported" 1876 media (type3 keyword | name(MAX)) Any of "xxx-supported" 1877 printer-resolution (resolution) Any of "xxx-supported" 1878 print-quality (type2 enum) Any of "xxx-supported" 1880 Table 5 - Values allowed for Job Description Attributes in the Set-Job- 1881 Attributes Operation 1883 Job Description Attributes Values allowed for Set 1885 job-uri (uri) READ-ONLY 1886 job-id (integer(1:MAX)) READ-ONLY 1887 job-printer-uri (uri) READ-ONLY 1888 job-more-info (uri) READ-ONLY 1889 job-name (name(MAX)) Any name(MAX) 1890 job-originating-user-name (name(MAX)) READ-ONLY 1891 job-state (type1 enum) READ-ONLY 1892 job-state-reasons (1setOf type2 keyword) READ-ONLY 1893 job-state-message (text(MAX)) READ-ONLY 1894 job-detailed-status-messages (1setOf READ-ONLY 1895 text(MAX)) 1896 job-document-access-errors (1setOf READ-ONLY 1897 text(MAX)) 1898 number-of-documents (integer(0:MAX)) READ-ONLY 1899 output-device-assigned (name(127)) READ-ONLY 1900 time-at-creation (integer(MIN:MAX)) READ-ONLY 1901 time-at-processing (integer(MIN:MAX)) READ-ONLY 1902 time-at-completed (integer(MIN:MAX)) READ-ONLY 1903 job-printer-up-time (integer(1:MAX)) READ-ONLY 1904 date-time-at-creation (dateTime) READ-ONLY 1905 date-time-at-processing (dateTime) READ-ONLY 1906 date-time-at-completed (dateTime) READ-ONLY 1907 number-of-intervening-jobs (integer(0:MAX)) READ-ONLY 1908 job-message-from-operator (text(127)) Any text(127) 1909 job-k-octets (integer(0:MAX)) READ-ONLY 1910 job-impressions (integer(0:MAX)) READ-ONLY 1911 job-media-sheets (integer(0:MAX)) READ-ONLY 1912 job-k-octets-processed (integer(0:MAX)) READ-ONLY 1913 job-impressions-completed (integer(0:MAX)) READ-ONLY 1914 job-media-sheets-completed (integer(0:MAX)) READ-ONLY 1915 attributes-charset (charset) READ-ONLY 1916 attributes-natural-language READ-ONLY 1917 (naturalLanguage) 1919 Expires: September 8, 2000 1920 Table 6 - Values allowed for Printer Job Template Attributes in the Set- 1921 Printer-Attributes Operation 1923 Printer Job Template Attributes Values allowed for Set 1925 job-priority-default (integer(1:100)) Any of "xxx-supported" 1926 job-hold-until-default (type3 keyword | Any of "xxx-supported" 1927 name (MAX)) 1928 job-sheets-default (type3 keyword | Any of "xxx-supported" 1929 name(MAX)) 1930 multiple-document-handling-default (type2 Any of "xxx-supported" 1931 keyword) 1932 copies-default (integer(1:MAX)) Any of "xxx-supported" 1933 finishings-default (1setOf type2 enum) Any of "xxx-supported" 1934 sides-default (type2 keyword) Any of "xxx-supported" 1935 number-up-default (integer(1:MAX)) Any of "xxx-supported" 1936 orientation-requested-default (type2 enum) Any of "xxx-supported" 1937 media-default (type3 keyword | name(MAX)) Any of "xxx-supported" 1938 printer-resolution-default (resolution) Any of "xxx-supported" 1939 print-quality-default (type2 enum) Any of "xxx-supported" 1940 job-priority-supported (integer(1:100)) From Get-Printer- 1941 Supported-Values 1942 job-hold-until-supported (1setOf(type3 From Get-Printer- 1943 keyword | name (MAX))) Supported-Values 1944 job-sheets-supported (1setOf(type3 keyword From Get-Printer- 1945 | name(MAX))) Supported-Values 1946 multiple-document-handling-supported From Get-Printer- 1947 (1setOf type2 keyword) Supported-Values 1948 copies-supported (rangeOfInteger(1:MAX)) From Get-Printer- 1949 Supported-Values 1950 finishings-supported (1setOf type2 enum) From Get-Printer- 1951 Supported-Values 1952 page-ranges-supported (boolean) From Get-Printer- 1953 Supported-Values 1954 sides-supported (1setOf type2 keyword) From Get-Printer- 1955 Supported-Values 1956 number-up-supported (1setOf (integer(1:MAX) From Get-Printer- 1957 | rangeOfInteger(1:MAX))) Supported-Values 1958 orientation-requested-supported (1setOf From Get-Printer- 1959 type2 enum) Supported-Values 1960 media-supported (1setOf (type3 keyword | From Get-Printer- 1961 name(MAX))) Supported-Values 1962 printer-resolution-supported (1setOf From Get-Printer- 1963 resolution) Supported-Values 1964 print-quality-supported (1setOf type2 enum) From Get-Printer- 1965 Supported-Values 1966 media-ready (type3 keyword | name(MAX)) From Get-Printer- 1967 Supported-Values 1969 Table 7 - Values allowed for Printer Description Attributes in the Set- 1970 Printer-Attributes Operation 1972 Printer Description Attributes Values allowed for Set 1974 Expires: September 8, 2000 1975 Printer Description Attributes Values allowed for Set 1977 printer-uri-supported (1setOf uri) READ-ONLY 1978 uri-authentication-supported (1setOf type2 READ-ONLY 1979 keyword) 1980 uri-security-supported (1setOf type2 READ-ONLY 1981 keyword) 1982 printer-name (name(127)) Any name(127) 1983 printer-location (text(127)) Any text(127) 1984 printer-info (text(127)) Any text(127) 1985 printer-more-info (uri) Any uri 1986 printer-driver-installer (uri) Any uri 1987 printer-make-and-model (text(127)) Any text(127) 1988 printer-more-info-manufacturer (uri) Any uri 1989 printer-state (type1 enum) READ-ONLY 1990 printer-state-reasons (1setOf type2 READ-ONLY 1991 keyword) 1992 printer-state-message (text(MAX)) READ-ONLY 1993 ipp-versions-supported (1setOf type2 From Get-Printer- 1994 keyword) Supported-Values 1995 operations-supported (1setOf type2 enum) From Get-Printer- 1996 Supported-Values 1997 multiple-document-jobs-supported (boolean) From Get-Printer- 1998 Supported-Values 1999 charset-configured (charset) Any of "xxx-supported" 2000 charset-supported (1setOf charset) From Get-Printer- 2001 Supported-Values 2002 natural-language-configured Any of "xxx-supported", 2003 (naturalLanguage) use generated-natural- 2004 language-supported 2005 generated-natural-language-supported From Get-Printer- 2006 (1setOf naturalLanguage) Supported-Values 2007 document-format-default (mimeMediaType) Any of "xxx-supported" 2008 document-format-supported (1setOf From Get-Printer- 2009 mimeMediaType) Supported-Values 2010 printer-is-accepting-jobs (boolean) READ-ONLY 2011 queued-job-count (integer(0:MAX)) READ-ONLY 2012 printer-message-from-operator (text(127)) Any text(127) 2013 color-supported (boolean) From Get-Printer- 2014 Supported-Values 2015 reference-uri-schemes-supported (1setOf From Get-Printer- 2016 uriScheme) Supported-Values 2017 pdl-override-supported (type2 keyword) From Get-Printer- 2018 Supported-Values 2019 printer-up-time (integer(1:MAX)) READ-ONLY 2020 printer-current-time (dateTime) Any dateTime ** 2021 multiple-operation-time-out any positive integer 2022 (integer(1:MAX)) 2023 compression-supported (1setOf type3 From Get-Printer- 2024 keyword) Supported-Values 2025 job-k-octets-supported From Get-Printer- 2026 (rangeOfInteger(0:MAX)) Supported-Values 2027 job-impressions-supported From Get-Printer- 2028 (rangeOfInteger(0:MAX)) Supported-Values 2030 Expires: September 8, 2000 2031 Printer Description Attributes Values allowed for Set 2033 job-media-sheets-supported From Get-Printer- 2034 (rangeOfInteger(0:MAX)) Supported-Values 2035 pages-per-minute (integer(0:MAX)) READ-ONLY 2036 pages-per-minute-color (integer(0:MAX)) READ-ONLY 2037 printer-settable-attributes-supported From Get-Printer- 2038 (1setOf type2 keyword) Supported-Values 2039 job-settable-attributes-supported (1setOf From Get-Printer- 2040 type2 keyword) Supported-Values 2041 document-format-varying-attributes (1setOf READ-ONLY 2042 type2 keyword) 2043 printer-message-time (integer(MIN:MAX)) READ-ONLY 2044 printer-message-date-time(dateTime) READ-ONLY 2046 ** - The "printer-current-time" (dateTime) attribute is settable in 2047 order to allow an administrator to correct an incorrect dateTime or time 2048 zone. 2050 17 Appendix B: Attributes returned from Get-Printer-Supported-Values 2052 This Appendix is a normative part of this document and lists all the 2053 attributes that are possible for an implementation to return in a Get- 2054 Printer-Supported-Values response, i.e., all the "xxx-supported" 2055 attributes that can be supplied in a Set-Printer-Attributes request. 2056 READ-ONLY attributes MUST NOT be returned in a Get-Printer-Supported- 2057 Values response and are indicated in the tables as "READ-ONLY - MUST NOT 2058 be returned." 2060 For the following attributes, the value allowed by the Set-Printer- 2061 Attributes operation MUST be a single integer value in the range 2062 specified by the value returned by the Get-Printer-Supported-Values 2063 operation. 2065 Table 8 - Printer Job Template Attributes returned from Get-Printer- 2066 Supported-Values 2068 Printer Job Template Attributes Values Returned 2070 job-priority-supported (integer(1:100)) rangeOfInteger(1:100) 2072 For the following attributes, the value allowed by the Set-Printer- 2073 Attributes operation MUST be a single rangeOfInteger value whose bounds 2074 do not exceed those of the range specified by the value returned by the 2075 Get-Printer-Supported-Values operation. 2077 Table 9 - Printer Job Template Attributes returned from Get-Printer- 2078 Supported-Values 2080 Printer Job Template Attributes Values Returned 2082 copies-supported (rangeOfInteger(1:MAX)) rangeOfInteger(1:MAX) 2084 Expires: September 8, 2000 2085 The following table has the same criteria as the last, but is for 2086 Printer Description attributes. 2088 Table 10 - Printer Description Attributes returned from Get-Printer- 2089 Supported-Values 2091 Printer Description Attributes Values allowed for Set 2093 job-k-octets-supported rangeOfInteger(0:MAX) 2094 (rangeOfInteger(0:MAX)) 2095 job-impressions-supported rangeOfInteger(0:MAX) 2096 (rangeOfInteger(0:MAX)) 2097 job-media-sheets-supported rangeOfInteger(0:MAX) 2098 (rangeOfInteger(0:MAX)) 2100 For the following attributes, the value allowed by the Set-Printer- 2101 Attributes operation MUST be one or more integers and rangeOfInteger 2102 values, such that the integer values described by these integers and 2103 rangeOfInteger is the same as or a subset of the integers described by 2104 the integers and rangeOf Integer of value returned by the Get-Printer- 2105 Supported-Values operation. 2107 Table 11 - Printer Job Template Attributes returned from Get-Printer- 2108 Supported-Values 2110 Printer Job Template Attributes Values Returned 2112 number-up-supported (1setOf (integer(1:MAX) 1setOf (integer(1:MAX) | 2113 | rangeOfInteger(1:MAX))) rangeOfInteger(1:MAX)) 2115 For the following attributes, the value allowed by the Set-Printer- 2116 Attributes operation MUST be one or more values, where each such value 2117 matches a value returned by the Get-Printer-Supported-Values operation. 2118 A keyword, enum, boolean, charset, naturalLanguage, uriScheme, 2119 mimeMediaType or resolution value matches if it is equal. A name matches 2120 the 'any-name' out-of-band value. 2122 Table 12 - Printer Job Template Attributes returned from Get-Printer- 2123 Supported-Values 2125 Printer Job Template Attributes Values Returned 2127 job-hold-until-supported (1setOf(type3 1setOf(type3 keyword | 2128 keyword | name (MAX))) any name) 2129 job-sheets-supported (1setOf(type3 keyword 1setOf(type3 keyword | 2130 | name(MAX))) any name) 2131 multiple-document-handling-supported 1setOf type2 keyword 2132 (1setOf type2 keyword) 2133 finishings-supported (1setOf type2 enum) 1setOf type2 enum 2134 page-ranges-supported (boolean) 1setOf(boolean) 2135 sides-supported (1setOf type2 keyword) 1setOf type2 keyword 2136 orientation-requested-supported (1setOf 1setOf type2 enum 2138 Expires: September 8, 2000 2139 Printer Job Template Attributes Values Returned 2141 type2 enum) 2142 media-supported (1setOf (type3 keyword | 1setOf(type3 keyword | 2143 name(MAX))) any name) 2144 printer-resolution-supported (1setOf 1setOf resolution 2145 resolution) 2146 print-quality-supported (1setOf type2 enum) 1setOf type2 enum 2148 The following table has the same criteria as the last, but is for 2149 Printer Description attributes. 2151 Table 13 - Printer Description Attributes returned from Get-Printer- 2152 Supported-Values 2154 Printer Description Attributes Values allowed for Set 2156 printer-uri-supported (1setOf uri) READ-ONLY - MUST NOT be 2157 returned 2158 uri-authentication-supported (1setOf type2 READ-ONLY - MUST NOT be 2159 keyword) returned 2160 uri-security-supported (1setOf type2 READ-ONLY - MUST NOT be 2161 keyword) returned 2162 xri-authentication-supported (1setOf type2 1setOf type2 keyword 2163 keyword) ** 2164 xri-security-supported (1setOf type2 1setOf type2 keyword 2165 keyword) ** 2166 ipp-versions-supported (1setOf type2 1setOf type2 keyword 2167 keyword) 2168 operations-supported (1setOf type2 enum) 1setOf type2 keyword 2169 multiple-document-jobs-supported (boolean) 1setOf boolean 2170 charset-supported (1setOf charset) 1setOf charset 2171 generated-natural-language-supported 1setOf naturalLanguage 2172 (1setOf naturalLanguage) 2173 document-format-supported (1setOf 1setOf mimeMediaType 2174 mimeMediaType) 2175 color-supported (boolean) 1setOf boolean 2176 reference-uri-schemes-supported (1setOf 1setOf uriScheme 2177 uriScheme) 2178 compression-supported (1setOf type3 1setOf type3 keyword 2179 keyword) 2180 printer-settable-attributes-supported 1setOf type2 keyword 2181 (1setOf type2 keyword) 2182 job-settable-attributes-supported (1setOf 1setOf type2 keyword 2183 type2 keyword) 2185 ** Note: there is no corresponding "xri-authentication-supported" 2186 (1setOf type2 keyword) and "xri-security-supported" (1setOf type2 2187 keyword) Printer Description attributes that can be queried using the 2188 Get-Printer-Attributes operation. Instead, the client queries either: 2189 (1) the three "printer-uri-supported" (uri), "uri-authentication- 2190 supported" (1setOf type2 keyword) and "uri-security-supported" (1setOf 2192 Expires: September 8, 2000 2193 type2 keyword) attributes or (2) the single "priner-xri-supported" 2194 (1setOf collection) attribute. 2196 For the following attributes, the value allowed by the Set-Printer- 2197 Attributes operation MUST be a single value that matches one of the 2198 values returned by the Get-Printer-Supported-Values operation. A 2199 keyword, enum, boolean, charset, naturalLanguage, uriScheme, 2200 mimeMediaType or resolution value matches if it is equal. A name matches 2201 the 'any-name' out-of-band value. 2203 Table 14 - Printer Description Attributes returned from Get-Printer- 2204 Supported-Values 2206 Printer Description Attributes Values allowed for Set 2208 pdl-override-supported (type2 keyword) 1 setOf type2 keyword 2210 For the following attributes, the Set-Printer-Attributes operation MUST 2211 NOT return a value. The IPP Model document [ipp-mod] document specifies 2212 the allowed values. 2214 Table 15 - Printer Description Attributes returned from Get-Printer- 2215 Supported-Values 2217 Printer Description Attributes Values allowed for Set 2219 printer-uri-supported (1setOf uri) any uri 2221 18 Appendix C: Full Copyright Statement 2223 Copyright (C) The Internet Society (1998,1999). All Rights Reserved 2225 This document and translations of it may be copied and furnished to 2226 others, and derivative works that comment on or otherwise explain it or 2227 assist in its implementation may be prepared, copied, published and 2228 distributed, in whole or in part, without restriction of any kind, 2229 provided that the above copyright notice and this paragraph are included 2230 on all such copies and derivative works. However, this document itself 2231 may not be modified in any way, such as by removing the copyright notice 2232 or references to the Internet Society or other Internet organizations, 2233 except as needed for the purpose of developing Internet standards in 2234 which case the procedures for copyrights defined in the Internet 2235 Standards process must be followed, or as required to translate it into 2236 languages other than English. 2238 The limited permissions granted above are perpetual and will not be 2239 revoked by the Internet Society or its successors or assigns. 2241 This document and the information contained herein is provided on an "AS 2242 IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK 2244 Expires: September 8, 2000 2245 FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT 2246 LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 2247 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 2248 FITNESS FOR A PARTICULAR PURPOSE. 2250 Expires: September 8, 2000