idnits 2.17.1 draft-ietf-ipp-get-resource-00.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: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. == No 'Intended status' indicated for this document; assuming Proposed Standard == It seems as if not all pages are separated by form feeds - found 0 form feeds but 30 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 ([IPP-PRO], [IPP-MOD], [RFC-2565], [RFC-2566]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. ** 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 186: '...object instances MAY have an additiona...' RFC 2119 keyword, line 189: '...bjects instances MAY also have associa...' RFC 2119 keyword, line 222: '...ce operations are REQUIRED for all IPP...' RFC 2119 keyword, line 227: '... REQUIRED - for IPP Printers to impl...' RFC 2119 keyword, line 247: '...ce an IPP Client MAY request specific ...' (62 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The exact meaning of the all-uppercase expression 'NOT REQUIRED' is not defined in RFC 2119. If it is intended as a requirements expression, it should be rewritten using one of the combinations defined in RFC 2119; otherwise it should not be all-uppercase. == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'MUST not' in this paragraph: This name MUST be unique among Resources of the SAME "resource-type". IPP Printers MUST not allow Resource object instances of the SAME "resource-type" with duplicate "resource-name" values. -- 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 (7 July 2000) is 8694 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: 'RFC-2565' is mentioned on line 132, but not defined ** Obsolete undefined reference: RFC 2565 (Obsoleted by RFC 2910) == Missing Reference: 'RFC-2566' is mentioned on line 132, but not defined ** Obsolete undefined reference: RFC 2566 (Obsoleted by RFC 2911) == Missing Reference: 'IPP-PRO' is mentioned on line 1052, but not defined == Missing Reference: 'RFC-2119' is mentioned on line 206, but not defined == Unused Reference: 'IPP-NOT' is defined on line 1074, but no explicit reference was found in the text -- Possible downref: Non-RFC (?) normative reference: ref. 'IPP-MOD' -- Possible downref: Non-RFC (?) normative reference: ref. 'IPP-NOT' -- Possible downref: Non-RFC (?) normative reference: ref. 'OS-TYPE' Summary: 7 errors (**), 0 flaws (~~), 9 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 There (3) issues in this document, each beginning 'ISSUE_n:'. 3 Internet Printing Protocol Working Group Tom Hastings 4 INTERNET DRAFT Xerox 5 Expires 7 January 2001 Ira McDonald 6 High North 7 7 July 2000 9 Internet Printing Protocol (IPP): 10 Resource Objects and Get Resource Operations 11 13 Copyright (C) The Internet Society (2000). All Rights Reserved. 15 Status of this Memo 17 This document is an Internet-Draft and is in full conformance with 18 all provisions of Section 10 of RFC2026. Internet-Drafts are working 19 documents of the Internet Engineering Task Force (IETF), its areas, 20 and its working groups. Note that other groups may also distribute 21 working documents as Internet-Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 Abstract 36 This document is a submission to the Internet Printing Protocol 37 Working Group of the Internet Engineering Task Force (IETF). 38 Comments should be submitted to the ipp@pwg.org mailing list. 40 This IPP Get Resource document specifies an extension to IPP/1.0 41 [RFC-2565] [RFC-2566] and IPP/1.1 [IPP-MOD] [IPP-PRO]. This document 42 extends the current closed IPP object model with a passive 43 polymorphic object that is intended to satisfy most needs for new 44 object types in the long-term evolution of IPP via an extensible 45 object framework. 47 This document defines: Resource object (passive polymorphic object); 48 Resource get operations (e.g., Get-Resource-Attributes); Resource 49 attributes (e.g., "resource-name"); new Printer attributes (e.g., 50 "resource-type-supported"); Resource type of Driver (a morph of the 51 Resource object); methods for supporting 'driver download' to IPP 52 Client systems. 54 Table of Contents 56 1. Introduction ............................................... 4 57 2. IPP Model for Resources .................................... 5 58 2.1. Resource Object ........................................ 5 59 3. Terminology ................................................ 6 60 3.1. Conformance Terminology ................................ 6 61 3.2. Model Terminology ...................................... 6 62 4. Resource Operations ........................................ 7 63 4.1. Get-Resource-Attributes Operation ...................... 7 64 4.1.1. Get-Resource-Attributes Request .................... 8 65 4.1.2. Get-Resource-Attributes Response ................... 9 66 4.2. Get-Resource-Data Operation ............................ 10 67 4.2.1. Get-Resource-Data Request .......................... 10 68 4.2.2. Get-Resource-Data Response ......................... 10 69 4.3. Get-Resources Operation ................................ 11 70 4.3.1. Get-Resources Request .............................. 11 71 4.3.2. Get-Resources Response ............................. 12 72 4.4. Resource Operation Response Status Codes ............... 13 73 5. Resource Attributes ........................................ 14 74 5.1. Table of Required Resource Attributes .................. 14 75 5.2. Table of Optional Resource Attributes .................. 15 76 5.3. Resource Template Attributes ........................... 16 77 5.3.1. resource-info (text(127)) .......................... 16 78 5.3.2. resource-charset (charset) ......................... 16 79 5.3.3. resource-natural-language (naturalLanguage) ........ 16 80 5.3.4. resource-document-formats (1setOf mimeMediaType) ... 17 81 5.3.5. resource-os-types (1setOf type2 keyword) ........... 17 82 5.3.6. resource-data-present (boolean) .................... 17 83 5.3.7. resource-data-uri (1setOf uri) ..................... 18 84 5.3.8. resource-data-k-octets (integer(0:MAX)) ............ 18 85 5.3.9. resource-data-compression (type3 keyword) .......... 18 86 5.3.10. resource-create-date-time (dateTime) .............. 19 87 5.3.11. resource-duration (integer(0:MAX)) ................ 19 88 5.3.12. resource-persistence (boolean) .................... 19 89 5.4. Resource Description Attributes ........................ 20 90 5.4.1. resource-type (type2 keyword) ...................... 20 91 5.4.2. resource-name (name(127)) .......................... 20 92 5.4.3. resource-id (integer(1:MAX)) ....................... 20 93 5.4.4. resource-printer-uri (uri) ......................... 21 94 5.4.5. resource-create-user-name (name(MAX)) .............. 21 95 5.4.6. resource-create-time (integer(0:MAX)) .............. 21 96 5.4.7. resource-change-time (integer(0:MAX)) .............. 22 97 5.4.8. resource-refresh-time (integer(0:MAX)) ............. 22 98 5.4.9. resource-expiration-time (integer(0:MAX)) .......... 22 99 6. Driver Resource Type ....................................... 23 100 6.1. Table of Required Driver Resource Attributes ........... 23 101 6.2. Table of Optional Driver Resource Attributes ........... 23 102 6.3. Driver Resource Template Attributes .................... 24 103 6.3.1. driver-charset (1setOf charset) .................... 24 104 6.3.2. driver-natural-language (1setOf naturalLanguage) ... 24 105 6.3.3. driver-file-type (type2 keyword) ................... 24 106 6.3.4. driver-file-name (name(MAX)) ....................... 25 107 7. Conformance Requirements ................................... 26 108 7.1. IPP Client Conformance Requirements .................... 26 109 7.2. IPP Printer Conformance Requirements ................... 26 110 7.2.1. Resource Operations ................................ 26 111 7.2.2. Resource Attributes ................................ 27 112 7.2.3. Driver Resource Attributes ......................... 27 113 8. IANA Considerations ........................................ 28 114 9. Internationalization Considerations ........................ 28 115 10. Security Considerations ................................... 28 116 11. Encodings of Additional Resource Tags ..................... 28 117 12. References ................................................ 28 118 13. Authors' Addresses ........................................ 29 119 14. Appendix A - Change History ............................... 30 120 14.1. 7 July 2000 - draft-ietf-ipp-get-resource-00.txt ...... 30 121 15. Full Copyright Statement .................................. 30 122 1. Introduction 124 See section 1 'Introduction' in [IPP-MOD] for a full description of 125 the IPP document set and overview information about IPP. 127 This document is a submission to the Internet Printing Protocol 128 Working Group of the Internet Engineering Task Force (IETF). 129 Comments should be submitted to the ipp@pwg.org mailing list. 131 This IPP Get Resource document specifies an extension to IPP/1.0 132 [RFC-2565] [RFC-2566] and IPP/1.1 [IPP-MOD] [IPP-PRO]. This document 133 extends the current closed IPP object model with a passive 134 polymorphic object which is intended to satisfy most growth needs for 135 new object types in the long-term evolution of IPP via an extensible 136 object framework. 138 This document defines: Resource object (passive polymorphic object); 139 Resource get operations (e.g., Get-Resource-Attributes); Resource 140 attributes (e.g., "resource-name"); new Printer attributes (e.g., 141 "resource-type-supported"); Resource type of Driver (a morph of the 142 Resource object); methods for supporting 'driver download' to IPP 143 Client systems. 145 This document does not specify other possible Resource operations 146 (e.g., 'Create-Resource') or Resource types (e.g., 'font'). A future 147 document may specify a complete set of system admin operations for 148 Resource objects. 150 This document is laid out as follows: 151 - Section 2 adds the Resource object to the IPP object model. 153 - Section 3 is the terminology used throughout the document. 155 - Section 4 specifies the operations on Resource objects, including 156 new status codes for Resource operations. 158 - Section 5 specifies the attributes common to all Resource objects. 160 - Section 6 specifies the Driver Resource type and its additional 161 attributes - to allow client print support (e.g., driver) download 162 (all or part of an IPP Client) from an IPP Printer. 164 - Section 7 specifies the conformance requirements for this document. 166 - Section 8, 9, and 10 specify IANA, internationalization, and 167 security considerations. 169 - Section 11 allocates new protocol encoding values for this 170 document. 172 - Sections 12, 13, 14, and 15 list references, authors' addresses, 173 change history, and full IETF copyright statement. 175 2. IPP Model for Resources 177 See section 2 'IPP Objects' in [IPP-MOD] for a full description of 178 the IPP object model and terminology. 180 2.1. Resource Object 182 IPP Resource objects are used to model installed features or 183 capabilities of IPP Printers (e.g., 'font'). All Resource object 184 instances contain a common set of base Resource object attributes. 186 Resource object instances MAY have an additional set of attributes, 187 according to their "resource-type" and IPP Printer implementation. 189 Resource objects instances MAY also have associated data, according 190 to their "resource-type" and IPP Printer implementation. Resource 191 data (if any) is available by reference in "resource-data-uri" or by 192 value if "resource-data-present" is 'true' (i.e., a local copy of the 193 Resource data is available on the IPP Printer). 195 Section 4 describes each of the Resource operations in detail. 197 3. Terminology 199 This specification document uses the terminology defined in this 200 section. 202 3.1. Conformance Terminology 204 The terms "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", 205 "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be 206 interpreted as described in [RFC-2119]. These terms are used to 207 specify conformance requirements which apply if this specification is 208 implemented (in addition to IPP/1.0 or higher). 210 3.2. Model Terminology 212 See section 12.2 'Model Terminology' in [IPP-MOD]. 214 4. Resource Operations 216 The common semantics of all IPP Resource operations are the ones 217 defined for all IPP operations in [IPP-MOD], e.g., "operation-id", 218 "status-code", "attributes-charset", etc. 220 See section 3.1 'Common Semantics' in [IPP-MOD]. 222 The following three Resource operations are REQUIRED for all IPP 223 Printers to implement, if they implement Resource objects. 225 4.1. Get-Resource-Attributes Operation 227 REQUIRED - for IPP Printers to implement. 229 This operation allows an IPP Client to request the values of 230 attributes of a Resource object instance and is similar to the 231 Get-Job-Attributes operation (see section 3.2.5 in [IPP-MOD]). The 232 only differences are that the operation is directed at a Resource 233 object instance rather than a Job object instance, there is a 234 "resource-type" operation attribute required when querying a Resource 235 object, and the returned attribute group is a set of Resource object 236 attributes rather than a set of Job object attributes. 238 For Resources, the possible names of attribute groups are: 240 - 'resource-template': the subset of the Resource Template 241 attributes that the implementation supports for Resource objects. 242 - 'resource-description': the subset of the Resource Description 243 attributes that the implementation supports for Resource objects. 244 - 'all': the special group 'all' that includes all attributes that 245 the implementation supports for Resource objects. 247 Since an IPP Client MAY request specific attributes or named groups, 248 there is a potential that there is some overlap. For example, if an 249 IPP Client requests 'resource-create-time' and 250 'resource-description', the IPP Client is actually requesting the 251 "resource-create-time" attribute once by naming it explicitly, and 252 once by inclusion in the 'resource-description' group. In such 253 cases, the IPP Printer object NEED NOT return the attribute only once 254 in the response even if it is requested multiple times. The IPP 255 Client SHOULD NOT request the same attribute in multiple ways. 257 It is NOT REQUIRED that a Resource object instance support all 258 attributes belonging to a group (since some attributes are OPTIONAL). 259 However it is REQUIRED that each Resource object instance support all 260 group names. 262 4.1.1. Get-Resource-Attributes Request 264 The following groups of attributes are part of the 265 Get-Resource-Attributes Request when the request is directed at a 266 Resource object: 268 Group 1: Operation Attributes 270 Natural Language and Character Set: 271 The "attributes-charset" and "attributes-natural-language" 272 attributes as described in section 3.1.4.1 in [IPP-MOD]. 274 Target: 275 The "printer-uri" (uri) operation attribute which is the target for 276 this operation as described in section 3.1.5 in [IPP-MOD]. 278 ISSUE_1: The target of all IPP Resource operations is always 279 simply "printer-uri" and separate required operation attributes are 280 used to specify resource type and name or ID. This is like IPP 281 Subscription objects but unlike the earlier IPP Job objects. 282 Should we continue to follow the IPP Subscription object model? 284 Resource Type: 285 The "resource-type (type2 keyword)" attribute as described in 286 section 5.2.1 in this document. 288 Resource Name or ID: 289 The "resource-name (name(127))" attribute as described in section 290 5.2.2 in this document OR 291 the "resource-id (integer(1:MAX))" attribute as described in 292 section 5.2.3 in this document. 294 Requesting User Name: 295 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied 296 by the IPP Client as described in section 8.3 in [IPP-MOD]. 298 "requested-attributes" (1setOf keyword): 299 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 300 MUST support this attribute. It is a set of attribute names and/or 301 attribute group names in whose values the requester is interested. 302 If the IPP Client omits this attribute, the IPP Printer MUST 303 respond as if this attribute had been supplied with a value of 304 'all'. 306 4.1.2. Get-Resource-Attributes Response 308 The Printer object returns the following sets of attributes as part 309 of the Get-Resource-Attributes Response: 311 Group 1: Operation Attributes 313 Status Message: 314 In addition to the REQUIRED status code returned in every response, 315 the response OPTIONALLY includes a "status-message" (text(255)) 316 and/or a "detailed-status-message" (text(MAX)) operation attribute 317 as described in sections 13 and 3.1.6 in [IPP-MOD]. 319 Natural Language and Character Set: 320 The "attributes-charset" and "attributes-natural-language" 321 attributes as described in section 3.1.4.2 in [IPP-MOD]. The 322 "attributes-natural-language" MAY be the natural language of the 323 Resource object, rather than the one requested. 325 Group 2: Unsupported Attributes 327 See section 3.1.7 in [IPP-MOD] for details on returning Unsupported 328 Attributes. 330 The response NEED NOT contain the "requested-attributes" operation 331 attribute with any supplied values (attribute keywords) that were 332 requested by the IPP Client but are not supported by the IPP 333 Printer. If the Printer object does include unsupported attributes 334 referenced in "requested-attributes" and such attributes include 335 group names, such as 'all', the unsupported attributes MUST NOT 336 include attributes described in this document but not supported by 337 the implementation. 339 Group 3: Resource Object Attributes 341 This is the set of requested attributes and their current values. 342 The IPP Printer ignores (does not respond with) any requested 343 attribute or value which is not supported or which is restricted by 344 the security policy in force, including whether the requesting user 345 is the user that created the Resource. However, the IPP Printer 346 MUST respond with the 'unknown' value for any supported attribute 347 (including all REQUIRED attributes) for which the IPP Printer does 348 not know the value, unless it would violate the security policy. 349 See the description of the "out-of-band" values in the beginning of 350 Section 4.1 in [IPP-MOD]. 352 4.2. Get-Resource-Data Operation 354 REQUIRED - for IPP Printers to implement. 356 This operation allows an IPP Client to request the values of 357 attributes of a Resource object instance AND the value of associated 358 Resource data (i.e., this operation is like 'Print-Job'). This 359 operation is a strict superset of the Get-Resource-Attributes 360 operation above. The only difference is that the operation returns 361 Resource data in addition to Resource attributes. This operation is 362 only legal for certain values of "resource-type". 364 Note: This operation is defined (rather than overloading the 365 'Get-Resource-Attributes' operation above) to simplify access control 366 policies. Note that many possible future Resource types (e.g, 367 'font') have copyright and intellectual property considerations with 368 respect to IPP Clients reading their associated data. 370 4.2.1. Get-Resource-Data Request 372 See section 4.1.1 'Get-Resource-Attributes Request' in this document. 374 The following groups of attributes are part of the Get-Resources 375 request: 377 Group 1: Operation Attributes 379 See 'Group 1: Operation Attributes' in section 4.1.1 380 'Get-Resource-Attributes Request'. 382 4.2.2. Get-Resource-Data Response 384 See section 4.1.2 'Get-Resource-Attributes Response' in this 385 document. 387 Group 1: Operation Attributes 389 See 'Group 1: Operation Attributes' in section 4.1.2 390 'Get-Resource-Attributes Response'. 392 Group 2: Unsupported Attributes 393 See 'Group 2: Unsupported Attributes' in section 4.1.2 394 'Get-Resource-Attributes Response'. 396 Group 3: Resource Object Attributes 398 See 'Group 3: Resource Object Attributes' in section 4.1.2 399 'Get-Resource-Attributes Response'. 401 Group 4: Resource Data Content 403 See section 5.3.6 'resource-data-present' in this document. 404 See section 3.2.1.1 'Print-Job Request' in [IPP-MOD]. 406 The IPP Printer MUST return the Resource data content (if any) to 407 the IPP Client, within the constraints of administratively 408 configured access control policies and any applicable copyright or 409 other intellectual property considerations. 411 4.3. Get-Resources Operation 413 REQUIRED - for IPP Printers to implement. 415 This operation allows an IPP Client to retrieve the list of Resource 416 object instances (of a specified resource type) belonging to the 417 target Printer object. The IPP Client may also supply a list of 418 Resource attribute names and/or attribute group names. A group of 419 Resource object attributes will be returned for each Resource object 420 instance that is returned. 422 This operation is similar to the Get-Resource-Attributes operation, 423 except that this Get-Resources operation returns attributes from 424 possibly more than one object. 426 See section 3.2.6 'Get-Jobs Operation' in [IPP-MOD]. 428 4.3.1. Get-Resources Request 430 The IPP Client submits the Get-Resources request to an IPP Printer 431 object. 433 The following groups of attributes are part of the Get-Resources 434 request: 436 Group 1: Operation Attributes 437 See 'Group 1: Operation Attributes' in section 4.1.1 438 'Get-Resource-Attributes Request'. 440 Resource Name or ID: 441 [omitted] 443 "limit" (integer(1:MAX)): 444 [added] 445 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 446 MUST MUST support this attribute. It is an integer value that 447 determines the maximum number of resources that an IPP Client will 448 receive from the IPP Printer. 450 Groups 2 to N: Resource Filter Attributes 451 [added] 453 See 'Group 3: Resource Object Attributes' in section 4.1.2 454 'Get-Resource-Attributes Response'. 456 This is the set of filter attributes and their filter values. The 457 IPP Printer ignores Resources which do not satisfy the specified 458 filter. A multi-valued filter attribute matches if the 459 corresponding Resource object instance attribute contains all of 460 the one or more values of the multi-valued filter attribute. 462 The filter criteria in each Resource Filter Attribute group MUST 463 all be true for a match (logical AND within the set). But only ONE 464 Resource Filter Group need be true for a match (logical OR across 465 the sets). 467 4.3.2. Get-Resources Response 469 The Printer object returns all of the Resource object instances, up 470 to the number specified by the "limit" attribute, that match the 471 criteria as defined by the filter attribute values supplied by the 472 IPP Client in the request. It is possible that no Resource objects 473 are returned since there may literally be none at the Printer, or 474 there may be no Resource objects that match the criteria supplied by 475 the IPP Client. If the IPP Client requests any Resource attributes 476 at all, there is a set of Resource Object Attributes returned for 477 each Resource object instance. 479 It is not an error for the IPP Printer to return 0 Resources. If the 480 response returns 0 Resources because there are no Resources matching 481 the criteria, and the request would have returned 1 or more Resources 482 with a status code of 'successful-ok' if there had been Resources 483 matching the criteria, then the status code for 0 Resources MUST be 484 'successful-ok'. 486 Group 1: Operation Attributes 488 See 'Group 1: Operation Attributes' in section 4.3.1 489 'Get-Resources Request'. 491 Group 2: Unsupported Attributes 493 See 'Group 2: Unsupported Attributes' in section 4.1.2 494 'Get-Resource-Attributes Response'. 496 Groups 3 to N: Resource Object Attributes 498 See 'Group 3: Resource Object Attributes' in section 4.1.2 499 'Get-Resource-Attributes Response'. 501 Resource object instances are returned sorted by "resource-id". 503 ISSUE_2: Resource object instances are always returned sorted by 504 "resource-id" and not by "resource-name" (more user-friendly). 505 Should we add an operation attribute to control the sort order? 507 4.4. Resource Operation Response Status Codes 509 client-error-not-authenticated 510 client-error-not-authorized 511 client-error-resource-type-not-supported 512 client-error-resource-data-not-supported 513 client-error-resource-data-not-present 515 5. Resource Attributes 517 5.1. Table of Required Resource Attributes 519 All IPP Printers that support Resource objects MUST implement the 520 following REQUIRED attributes defined in this specification (on the 521 Resource object or the Printer object): 523 Resource Attribute Resource Attribute Type 524 Operation or Resource Group 525 Printer Attribute Printer Attribute Type 526 ----------------------------------- -------------------------- 527 resource-type (type2 keyword) 528 resource-type [Operation group] 529 resource-type-supported (1setOf type2 keyword) 531 resource-name (name(127)) 532 resource-name [Operation group] 533 [none] 535 resource-id (integer(1:MAX)) 536 resource-id [Operation group] 537 max-resources-supported (integer(0:MAX)) 539 resource-printer-uri (uri) 540 printer-uri [Operation group] 541 printer-uri-supported (1setOf uri) 543 resource-charset (charset) 544 attributes-charset [Operation group] 545 charset-configured (charset) 546 charset-supported (1setOf charset) 548 resource-natural-language (naturalLanguage) 549 attributes-natural-language [Operation group] 550 natural-language-configured (naturalLanguage) 551 generated-natural-language-supported (1setOf naturalLanguage) 553 resource-data-present (boolean) 554 resource-data-present [Resource group] 555 resource-data-present-supported (1setOf boolean) 557 resource-data-uri (1setOf uri) 558 resource-data-uri [Resource group] 559 resource-data-schemes-supported (1setOf uri) 561 resource-data-k-octets (integer(0:MAX)) 562 resource-data-k-octets [Resource group] 563 resource-data-k-octets-supported (rangeOfInteger (0:MAX)) 565 resource-data-compression (type3 keyword) 566 resource-data-compression [Resource group] 567 compression-supported (1setOf type3 keyword) 569 resource-create-user-name (name(MAX)) 570 requesting-user-name [Operation group] 571 [none] 573 resource-create-date-time (dateTime) 574 resource-create-date-time [Resource group] 575 [none] 577 resource-create-time (integer(0:MAX)) 578 [none] 579 printer-current-time (integer(0:MAX)) 581 resource-expiration-time (integer(0:MAX)) 582 [none] 583 [printer-current-time + duration] 585 resource-duration (integer(0:MAX)) 586 resource-duration [Resource group] 587 resource-duration-default (integer(0:MAX)) 588 resource-duration-supported (rangeOfInteger(0:MAX)) 590 resource-persistence (boolean) 591 resource-persistence [Resource group] 592 resource-persistence-supported (boolean) 594 5.2. Table of Optional Resource Attributes 596 All IPP Printers that support Resource objects MAY implement the 597 following OPTIONAL attributes defined in this specification (on the 598 Resource object or the Printer object): 600 Resource Attribute Resource Attribute Type 601 Operation or Resource Group 602 Printer Attribute Printer Attribute Type 603 ----------------------------------- -------------------------- 604 resource-info (text(127)) 605 resource-info [Resource group] 606 [none] 607 resource-document-formats (1setOf mimeMediaType) 608 document-format-default (mimeMediaType) 609 document-format-supported (1setOf mimeMediaType) 611 resource-os-types (1setOf type2 keyword) 612 resource-os-types-default (1setOf type2 keyword) 613 resource-os-types-supported (1setOf type2 keyword) 615 resource-change-time (integer(0:MAX)) 616 [none] 617 [none] 619 resource-refresh-time (integer(0:MAX)) 620 [none] 621 [none] 623 5.3. Resource Template Attributes 625 5.3.1. resource-info (text(127)) 627 OPTIONAL - for IPP Printers to implement. 629 This attribute specifies descriptive information about this Resource 630 object. This may include manufacturer, version, copyright, etc. 632 See section 4.4.6 'printer-info' and section 4.4.9 633 'printer-make-and-model' in [IPP-MOD]. 635 5.3.2. resource-charset (charset) 637 REQUIRED - for IPP Printers to implement. 639 This attribute specifies the charset of 'text' and 'name' attributes 640 of the Resource and of textual data in the associated Resource data 641 (if any). 643 5.3.3. resource-natural-language (naturalLanguage) 645 REQUIRED - for IPP Printers to implement. 647 This attribute specifies the natural language of 'text' and 'name' 648 attributes of the Resource and of textual data in the associated 649 Resource data (if any). 651 5.3.4. resource-document-formats (1setOf mimeMediaType) 653 OPTIONAL - for IPP Printers to implement. 655 This attribute specifies the list of document formats supported by 656 the Resource. 658 5.3.5. resource-os-types (1setOf type2 keyword) 660 OPTIONAL - for IPP Printers to implement. 662 This attribute specifies the list of target operating system types of 663 the Resource. 665 See IANA registry of operating system names at [OS-TYPE]. 667 5.3.6. resource-data-present (boolean) 669 REQUIRED - for IPP Printers to implement. 671 The attribute indicates whether or not a local copy of the Resource 672 data is present at the IPP Printer. 674 When "resource-data-present" is 'true' on a Resource object instance, 675 it indicates that the IPP Printer has stored a local copy of the 676 Resource data or has fetched a local copy of the Resource data that 677 was specified by reference in "resource-data-uri". 679 When "resource-data-present" is 'false' on a Resource object instance 680 and "resource-data-uri" is empty, it indicates that there is no 681 Resource data. 683 When "resource-data-present" is 'false' on a Resource object instance 684 and "resource-data-uri" is non-empty, it indicates that the IPP 685 Printer has NOT yet fetched a local copy of the Resource data that 686 was specified by reference and the value of "resource-data-k-octets" 687 is unverified. 689 See section 5.3.7 "resource-data-uri" in this document. 690 See section 5.3.8 "resource-data-k-octets" in this document. 692 5.3.7. resource-data-uri (1setOf uri) 694 REQUIRED - for IPP Printers to implement. 696 This attribute contains the URI of associated Resource data (if any) 697 as a reference. 699 Lazy Refresh: 700 An IPP Printer NEED NOT immediately fetch a local copy of the 701 Resource data specified by reference in "resource-data-uri", but MUST 702 set "resource-data-present" to 'false' until a local copy is fetched. 704 When an IPP Printer does fetch a local copy of the Resource data, it 705 MUST set (REQUIRED) "resource-data-present" to 'true', set (REQUIRED) 706 "resource-data-k-octets" to the actual size, and update the timestamp 707 in the (OPTIONAL) "resource-refresh-time" attribute. 709 ISSUE_3: This 'lazy refresh' behavior may have performance and 710 'stale data' consequences for IPP Clients. Because the manufacturer 711 may also be slow to inform installed IPP Printers of a new version of 712 a Resource (for update by means outside of this specification) the 713 'stale data' problem may also apply to IPP Printers. Should we add 714 an operation attribute to prevent this 'lazy refresh' behavior? 716 See section 5.3.6 "resource-data-present" in this document. 717 See section 4.4.27 'reference-uri-schemes-supported' in [IPP-MOD]. 718 See section 3.2.2 'Print-URI' in [IPP-MOD]. 720 5.3.8. resource-data-k-octets (integer(0:MAX)) 722 REQUIRED - for IPP Printers to implement. 724 This attribute contains the size of associated Resource data (if 725 any). 727 See 'Lazy Refresh' in section 5.3.7 'resource-data-uri' for IPP 728 Printer behavior with respect to "resource-data-k-octets". 730 See section 5.3.6 "resource-data-present" in this document. 732 5.3.9. resource-data-compression (type3 keyword) 734 REQUIRED - for IPP Printers to implement. 736 This attribute identifies the compression of the associated Resource 737 data (if any). 739 See section 4.4.32 'compression-supported' in [IPP-MOD] for standard 740 keyword values. 742 5.3.10. resource-create-date-time (dateTime) 744 REQUIRED - for IPP Printers to implement. 746 This attribute indicates the date and time at which the Resource 747 object instance was created. 749 Note: This time SHOULD reflect the actual 'build date' of the 750 Resource data rather than simply the 'install date' on the IPP 751 Printer, because this is more informative for the end user. 753 See section 4.4.30 'printer-current-time' in [IPP-MOD]. 754 See section 4.3.14.5 'date-time-at-creation' in [IPP-MOD]. 756 5.3.11. resource-duration (integer(0:MAX)) 758 REQUIRED - for IPP Printers to implement. 760 This attribute indicates length of the Resource object instance lease 761 in seconds. 763 See section 5.4.6 "resource-create-time" in this document. 764 See section 5.4.9 "resource-expiration-time" in this document. 766 5.3.12. resource-persistence (boolean) 768 REQUIRED - for IPP Printers to implement. 770 This attribute indicates whether or not this Resource object instance 771 is persistent (preserved by the IPP Printer across power cycles). 773 A 'true' value specifies an infinite lease and supersedes 774 "resource-duration" and "resource-expiration-time". A 'false' value 775 specifies a finite lease and selects use of "resource-duration" and 776 "resource-expiration-time". 778 See section 5.3.11 "resource-duration" in this document. 779 See section 5.4.9 "resource-expiration-time" in this document. 781 5.4. Resource Description Attributes 783 5.4.1. resource-type (type2 keyword) 785 REQUIRED - for IPP Printers to implement. 787 This attribute identifies the type of this Resource object instance 788 which determines additional Resource attributes specific to the named 789 type. 791 The following standard keyword values are defined: 793 'driver': The Resource contains client print support files 794 (e.g., a driver) for an IPP Client (see section 6 'Driver 795 Resource Type' in this document) for this IPP Printer. 797 5.4.2. resource-name (name(127)) 799 REQUIRED - for IPP Printers to implement. 801 This attribute is the human-readable name of the Resource. This name 802 is more user-friendly than the integer "resource-id" attribute. 804 This name MUST be unique among Resources of the SAME "resource-type". 805 IPP Printers MUST not allow Resource object instances of the SAME 806 "resource-type" with duplicate "resource-name" values. 808 Note: This attribute has been specified as REQUIRED (unlike 809 "job-name") in the interests of ease-of-use. IPP Printers are 810 expected to implement large numbers of Resource objects and the 811 guaranteed presence of the user-friendly name will benefit 812 ease-of-use. 814 See section 4.3.5 'job-name' in [IPP-MOD]. 816 5.4.3. resource-id (integer(1:MAX)) 818 REQUIRED - for IPP Printers to implement. 820 This attribute contains the locally unique ID of the Resource. The 821 IPP Printer, on creation of a new Resource (by means outside of this 822 specification), generates an ID which identifies the new Resource on 823 that Printer (but not globally). The zero '0' value is not included 824 to allow for compatibility with SNMP index values which also cannot 825 be zero '0'. 827 See section 4.3.2 'job-id' in [IPP-MOD]. 829 5.4.4. resource-printer-uri (uri) 831 REQUIRED - for IPP Printers to implement. 833 This attribute identifies the IPP Printer that hosts this Resource 834 object instance. 836 See section 4.3.3 'job-printer-uri' in [IPP-MOD]. 838 5.4.5. resource-create-user-name (name(MAX)) 840 REQUIRED - for IPP Printers to implement. 842 This attribute contains the name of the end user that created this 843 Resource object instance. 845 For factory-installed resources, "resource-create-user-name" MUST be 846 set to the empty string to prevent namespace conflicts in end user 847 networks. 849 See section 4.3.6 'job-originating-user-name' in [IPP-MOD]. 851 5.4.6. resource-create-time (integer(0:MAX)) 853 REQUIRED - for IPP Printers to implement. 855 This attribute indicates the time at which the Resource object 856 instance was created. 858 Note: This time SHOULD reflect the actual 'build time' of the 859 Resource data rather than simply the 'install time' on the IPP 860 Printer, because this is more informative for the end user. 862 See section 4.4.29 'printer-up-time' in [IPP-MOD]. 863 See section 4.3.14.1 'time-at-creation' in [IPP-MOD]. 865 5.4.7. resource-change-time (integer(0:MAX)) 867 REQUIRED - for IPP Printers to implement. 869 This attribute indicates the time at which the Resource object 870 instance was last changed. 872 See section 5.4.6 "resource-create-time" in this document. 873 See section 4.4.29 'printer-up-time' in [IPP-MOD]. 875 5.4.8. resource-refresh-time (integer(0:MAX)) 877 REQUIRED - for IPP Printers to implement. 879 This attribute indicates the time at which the Resource object 880 instance was last refreshed (i.e., a local copy of the Resource data 881 was made). 883 See section 5.4.6 "resource-create-time" in this document. 884 See section 4.4.29 'printer-up-time' in [IPP-MOD]. 886 5.4.9. resource-expiration-time (integer(0:MAX)) 888 REQUIRED - for IPP Printers to implement. 890 This attribute indicates the time at which the Resource object 891 instance lease will expire. 893 See section 5.4.6 "resource-create-time" in this document. 894 See section 5.3.11 "resource-duration" in this document. 895 See section 4.4.29 'printer-up-time' in [IPP-MOD]. 896 See section 4.3.14.5 'date-time-at-creation' in [IPP-MOD]. 898 6. Driver Resource Type 900 6.1. Table of Required Driver Resource Attributes 902 All IPP Printers that support Driver Resource objects MUST implement 903 the following REQUIRED attributes defined in this specification (on 904 the Driver Resource object or the Printer object): 906 Driver Resource Attribute Driver Attribute Type 907 Operation or Resource Group 908 Printer Attribute Printer Attribute Type 909 ------------------------------- -------------------------- 910 driver-file-type (type2 keyword) 911 driver-file-type [Resource group] 912 driver-file-type-default (type2 keyword) 913 driver-file-type-supported (1setOf type2 keyword) 915 driver-file-name (name(MAX)) 916 driver-file-name [Resource group] 917 [none] 919 6.2. Table of Optional Driver Resource Attributes 921 All IPP Printers that support Driver Resource objects MAY implement 922 the following OPTIONAL attributes defined in this specification (on 923 the Driver Resource object or the Printer object): 925 Driver Resource Attribute Driver Attribute Type 926 Operation or Resource Group 927 Printer Attribute Printer Attribute Type 928 ------------------------------- -------------------------- 929 driver-charset (1setOf charset) 930 driver-charset [Resource group] 931 charset-configured (charset) 932 charset-supported (1setOf charset) 934 driver-natural-language (1setOf naturalLanguage) 935 driver-natural-language [Resource group] 936 natural-language-configured (naturalLanguage) 937 generated-natural-language-configured (1setOf naturalLanguage) 939 6.3. Driver Resource Template Attributes 941 6.3.1. driver-charset (1setOf charset) 943 OPTIONAL - for IPP Printers to implement. 945 This attribute specifies the list of client charsets 946 supported by the Driver Resource (when installed on the client system 948 6.3.2. driver-natural-language (1setOf naturalLanguage) 950 OPTIONAL - for IPP Printers to implement. 952 This attribute specifies the list of client natural languages 953 supported by the Driver Resource (when installed on the client system 955 6.3.3. driver-file-type (type2 keyword) 957 REQUIRED - for IPP Printers to implement. 959 This attribute specifies the client file type of 960 this Driver Resource (when installed on the client system). 962 The following standard keyword values are defined: 964 'none': The Driver Resource contains client print support files i 965 unspecified (opaque) format. 967 'exec': The Driver Resource contains client print support files i 968 native executable format of the operating system(s) specified in 969 "resource-os-types" attribute, for example '.exe' on Microsoft sy 971 'gpd': The Driver Resource contains client print support files in 972 Microsoft GPD format. 974 'java': The Driver Resource contains client print support files i 976 'ppd': The Driver Resource contains client print support files in 977 Adobe PPD format. 979 'printcap': The Driver Resource contains client print support fil 980 the UNIX 'printcap' format. 982 'script': The Driver Resource contains client print support files 983 native script format of the operating system(s) specified in the 984 "resource-os-types" attribute, for example Bourne shell on UNIX s 985 Note: This type may be ambiguous on some target operating system 987 'updf': The Driver Resource contains client print support files i 988 (work-in-progress) PWG UPDF format. 990 6.3.4. driver-file-name (name(MAX)) 992 REQUIRED - for IPP Printers to implement. 994 This attribute specifies the client file name of 995 this Driver Resource (when installed on the client system) 996 or the empty string (if none configured). 997 If this Driver Resource contains multiple client print support files, 998 then "driver-file-name" SHOULD specify an 'install directory path'. 1000 7. Conformance Requirements 1002 7.1. IPP Client Conformance Requirements 1004 IPP Clients MUST supply the required operation attributes in Resource 1005 operations. 1007 7.2. IPP Printer Conformance Requirements 1009 7.2.1. Resource Operations 1011 All IPP Printers that support Resource objects MUST implement 1012 the following REQUIRED operations defined in this specification: 1014 Resource Operation 1015 ------------------ 1016 Get-Resources 1017 Get-Resource-Attributes 1018 Get-Resource-Data 1019 7.2.2. Resource Attributes 1021 See section 5.1 'Table of Required Resource Attributes' and section 1022 5.2 'Table of Optional Resource Attributes'. 1024 7.2.3. Driver Resource Attributes 1026 See section 6.1 'Table of Required Driver Resource Attributes' and 1027 section 6.2 'Table of Optional Driver Resource Attributes'. 1029 8. IANA Considerations 1031 See section 6 'IANA Considerations' in [IPP-MOD]. 1033 9. Internationalization Considerations 1035 This IPP Resource Objects and Get Resource Operations specification 1036 continues support for the internationalization in [IPP-MOD] 1037 attributes containing text strings and names. 1039 See section 7 'Internationalization Considerations' in [IPP-MOD]. 1041 10. Security Considerations 1043 This IPP Resource Objects and Get Resource Operations specification 1044 inherits the same security considerations for Resources as are 1045 specified for Jobs in [IPP-MOD]. 1047 See section 8 'Security Considerations' in [IPP-MOD]. 1049 11. Encodings of Additional Resource Tags 1051 The section assigns values to new protocol tags as extensions to the 1052 encoding defined in [IPP-PRO]. 1054 The resource-attributes-tag delimits Resource Template Attributes Groups 1055 in requests and Resource Attributes Groups in responses. 1057 Tag Value (Hex) Tag Meaning 1058 --------------- ----------- 1059 0x08 resource-attributes-tag 1061 0x1E Get-Resource-Attributes operation 1062 0x1F Get-Resource-Data operation 1063 0x20 Get-Resources operation 1065 12. References 1067 See section 9 'References' in [IPP-MOD]. 1069 [IPP-MOD] R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell. 1071 IPP/1.1 Model and Semantics, , May 1072 2000 (adopted by IESG as Proposed Standard in June 2000). 1074 [IPP-NOT] S. Isaacson, J. Martin, R. deBry, T. Hastings, M. Shepherd, 1075 R. Bergman. IPP Event Notification Specification, 1076 (work-in-progress), March 2000. 1078 [OS-TYPE] IANA Registry of Operating System Names at 1079 ftp://ftp.isi.edu/in-notes/iana/assignments/operating-system-names. 1081 13. Authors' Addresses 1083 Tom Hastings 1084 Xerox Corporation 1085 701 S Aviation Blvd, MS 834-03E 1086 El Segundo, CA 90245 1088 Phone: +1 310-333-6413 1089 Email: hastings@cp10.es.xerox.com 1091 Ira McDonald 1092 High North Inc 1093 221 Ridge Ave 1094 Grand Marais, MI 49839 1096 Phone: +1 906-494-2434 or +1 906-494-2697 1097 Email: imcdonald@sharplabs.com 1098 Email: imcdonal@sdsp.mc.xerox.com 1100 14. Appendix A - Change History 1102 [To be deleted before RFC publication] 1104 14.1. 7 July 2000 - draft-ietf-ipp-get-resource-00.txt 1106 initial version 1108 15. Full Copyright Statement 1110 Copyright (C) The Internet Society (2000). All Rights Reserved. 1112 This document and translations of it may be copied and furnished to 1113 others, and derivative works that comment on or otherwise explain it 1114 or assist in its implementation may be prepared, copied, published 1115 and distributed, in whole or in part, without restriction of any 1116 kind, provided that the above copyright notice and this paragraph are 1117 included on all such copies and derivative works. However, this 1118 document itself may not be modified in any way, such as by removing 1119 the copyright notice or references to the Internet Society or other 1120 Internet organizations, except as needed for the purpose of 1121 developing Internet standards in which case the procedures for 1122 copyrights defined in the Internet Standards process must be 1123 followed, or as required to translate it into languages other than 1124 English. 1126 The limited permissions granted above are perpetual and will not be 1127 revoked by the Internet Society or its successors or assigns. 1129 This document and the information contained herein is provided on an 1130 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 1131 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 1132 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 1133 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 1134 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.