idnits 2.17.1 draft-ietf-ipp-get-resource-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: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. 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. == There are 14 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 62: '... Query Package - REQUIRED ...............' RFC 2119 keyword, line 72: '... Admin Package - OPTIONAL ...............' RFC 2119 keyword, line 85: '...ion Extensions - REQUIRED ...............' RFC 2119 keyword, line 193: '...object instances MAY have an additiona...' RFC 2119 keyword, line 196: '...bjects instances MAY also have associa...' (125 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == 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: "resource-name" (name(127)): The IPP Client MUST supply this attribute. Note: Unlike the "job-name" attribute, the value of "resource-name" MUST be unique among Resources of the SAME "resource-type". IPP Printers MUST not allow Resource object instances of the SAME "resource-type" to exist with duplicate "resource-name" values. IPP Printers MUST reject Create-Resource operations that specify duplicate "resource-name" values. == 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 attribute contains the size of associated Resource data (if any). An IPP Printer MUST set this attribute to zero for Resource types that MUST not have Resource data supplied by reference in "resource-data-uri" or by value in a Create-Resource operation. == 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: Note: Unlike the "job-name" attribute, the value of "resource-name" MUST be unique among Resources of the SAME "resource-type". IPP Printers MUST not allow Resource object instances of the SAME "resource-type" to exist with duplicate "resource-name" values. IPP Printers MUST reject Create-Resource operations that specify duplicate "resource-name" values. == Unrecognized Status in '[Target Category: Standards Track]', assuming Proposed Standard (Expected one of 'Standards Track', 'Full Standard', 'Draft Standard', 'Proposed Standard', 'Best Current Practice', 'Informational', 'Experimental', 'Informational', 'Historic'.) -- 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 September 2000) is 8632 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 146, but not defined ** Obsolete undefined reference: RFC 2565 (Obsoleted by RFC 2910) == Missing Reference: 'RFC-2566' is mentioned on line 146, but not defined ** Obsolete undefined reference: RFC 2566 (Obsoleted by RFC 2911) == Missing Reference: 'IPP-PRO' is mentioned on line 1433, but not defined == Missing Reference: 'RFC-2119' is mentioned on line 213, but not defined == Missing Reference: 'RFC-2254' is mentioned on line 509, but not defined ** Obsolete undefined reference: RFC 2254 (Obsoleted by RFC 4510, RFC 4515) == Missing Reference: 'TBD' is mentioned on line 1443, but not defined == Unused Reference: 'IPP-NOT' is defined on line 1453, but no explicit reference was found in the text == Unused Reference: 'OS-TYPE' is defined on line 1457, 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: 8 errors (**), 0 flaws (~~), 14 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Printing Protocol Working Group Tom Hastings 3 INTERNET DRAFT Xerox 4 Expires 7 March 2001 Ira McDonald 5 High North 6 [Target Category: Standards Track] 7 September 2000 8 Internet Printing Protocol (IPP): 9 Resource Objects 10 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 17 all provisions of Section 10 of RFC2026. Internet-Drafts are working 18 documents of the Internet Engineering Task Force (IETF), its areas, 19 and its working groups. Note that other groups may also distribute 20 working 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 25 material 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 30 The list of Internet-Draft Shadow Directories can be accessed at 31 http://www.ietf.org/shadow.html. 33 Abstract 35 This document is a submission to the Internet Printing Protocol 36 Working Group of the Internet Engineering Task Force (IETF). The 37 open issues in this document each begin 'ISSUE_n:'. Comments should 38 be submitted to the ipp@pwg.org mailing list. 40 This IPP Resource Objects 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 IPP object model with a passive polymorphic 43 object type - Resource - to support the long-term evolution of IPP. 45 This document defines: 46 - Resource object (passive polymorphic object); 47 - Resource query operations (e.g., Get-Resource-Attributes); 48 - Resource admin operations (e.g., Create-Resource); 49 - Resource template attributes (e.g., "resource-charset"); 50 - Resource description attributes (e.g., "resource-name"); and 51 - new Printer attributes (e.g., "resource-type-supported"). 53 Table of Contents 55 1. Introduction ............................................... 4 56 2. IPP Model for Resources .................................... 5 57 2.1. Resource Object ........................................ 5 58 3. Terminology ................................................ 6 59 3.1. Conformance Terminology ................................ 6 60 3.2. Model Terminology ...................................... 6 61 4. Resource Operations ........................................ 7 62 4.1. Resource Query Package - REQUIRED ...................... 7 63 4.1.1. Get-Resource-Attributes Operation .................. 7 64 4.1.1.1. Get-Resource-Attributes Request ................ 8 65 4.1.1.2. Get-Resource-Attributes Response ............... 9 66 4.1.2. Get-Resource-Data Operation ........................ 10 67 4.1.2.1. Get-Resource-Data Request ...................... 10 68 4.1.2.2. Get-Resource-Data Response ..................... 11 69 4.1.3. Get-Resources Operation ............................ 11 70 4.1.3.1. Get-Resources Request .......................... 12 71 4.1.3.2. Get-Resources Response ......................... 13 72 4.2. Resource Admin Package - OPTIONAL ...................... 14 73 4.2.1. Create-Resource Operation .......................... 14 74 4.2.1.1. Create-Resource Request ........................ 14 75 4.2.1.2. Create-Resource Response ....................... 16 76 4.2.2. Delete-Resource Operation .......................... 17 77 4.2.2.1. Delete-Resource Request ........................ 17 78 4.2.2.2. Delete-Resource Response ....................... 18 79 4.2.3. Refresh-Resource Operation ......................... 18 80 4.2.3.1. Refresh-Resource Request ....................... 19 81 4.2.3.2. Refresh-Resource Response ...................... 19 82 4.2.4. Renew-Resource Operation ........................... 20 83 4.2.4.1. Renew-Resource Request ......................... 20 84 4.2.4.2. Renew-Resource Response ........................ 21 85 4.3. Printer Operation Extensions - REQUIRED ................ 21 86 4.3.1. Get-Printer-Attributes Operation ................... 21 87 4.4. Resource Operation Response Status Codes ............... 22 88 5. Resource Attributes ........................................ 23 89 5.1. Table of Resource Template Attributes .................. 23 90 5.2. Table of Resource Description Attributes ............... 24 91 5.3. Resource Template Attributes ........................... 24 92 5.3.1. resource-charset (charset) ......................... 24 93 5.3.2. resource-natural-language (naturalLanguage) ........ 25 94 5.3.3. resource-info (text(127)) .......................... 25 95 5.3.4. resource-document-formats (1setOf mimeMediaType) ... 25 96 5.3.5. resource-create-date-time (dateTime) ............... 25 97 5.3.6. resource-lease-duration (integer(0:MAX)) ........... 26 98 5.3.7. resource-data-present (boolean) .................... 26 99 5.3.8. resource-data-uri (1setOf uri) ..................... 27 100 5.3.9. resource-data-k-octets (integer(0:MAX)) ............ 27 101 5.3.10. resource-data-compression (type3 keyword) ......... 28 102 5.4. Resource Description Attributes ........................ 28 103 5.4.1. resource-type (type2 keyword) ...................... 28 104 5.4.2. resource-name (name(127)) .......................... 28 105 5.4.3. resource-id (integer(1:MAX)) ....................... 29 106 5.4.4. resource-printer-uri (uri) ......................... 29 107 5.4.5. resource-create-user-name (name(MAX)) .............. 30 108 5.4.6. resource-create-time (integer(0:MAX)) .............. 30 109 5.4.7. resource-expiration-time (integer(0:MAX)) .......... 30 110 5.5. Job Template Attributes for Resources .................. 31 111 5.5.1. restype (name (127)) ............................... 31 112 5.5.2. restype-required (1setOf name(127)) ................ 31 113 6. Rules for Resource Type Definitions ........................ 32 114 6.1. Do NOT define new operations for Resource .............. 32 115 6.2. Define new type keyword for Resource ................... 32 116 6.3. Define new type-specific attributes for Resource ....... 32 117 6.4. Define new Printer attributes for Resource ............. 32 118 6.5. Define new Job attributes for Resource ................. 32 119 6.6. Define Printer operation extensions for Resource ....... 33 120 7. Conformance Requirements ................................... 34 121 7.1. IPP Client Conformance Requirements .................... 34 122 7.2. IPP Printer Conformance Requirements ................... 34 123 7.2.1. Resource Operations ................................ 34 124 7.2.2. Resource Attributes ................................ 35 125 8. IANA Considerations ........................................ 36 126 9. Internationalization Considerations ........................ 36 127 10. Security Considerations ................................... 36 128 11. Encodings of Additional Protocol Tags ..................... 36 129 11.1. Encodings of Additional Attribute Tags ................ 36 130 11.2. Encodings of Additional Operation Tags ................ 36 131 12. References ................................................ 37 132 13. Authors' Addresses ........................................ 37 133 14. Appendix A - Change History ............................... 38 134 15. Full Copyright Statement .................................. 38 135 1. Introduction 137 See section 1 'Introduction' in [IPP-MOD] for a full description of 138 the IPP document set and overview information about IPP. 140 This document is a submission to the Internet Printing Protocol 141 Working Group of the Internet Engineering Task Force (IETF). The 142 open issues in this document each begin 'ISSUE_n:'. Comments should 143 be submitted to the ipp@pwg.org mailing list. 145 This IPP Resource Object documents specifies an extension to IPP/1.0 146 [RFC-2565] [RFC-2566] and IPP/1.1 [IPP-MOD] [IPP-PRO]. This document 147 extends the current IPP object model with a passive polymorphic 148 object type - Resource - to support the long-term evolution of IPP. 150 This document defines: 151 - Resource object (passive polymorphic object); 152 - Resource query operations (e.g., Get-Resource-Attributes); 153 - Resource admin operations (e.g., Create-Resource); 154 - Resource template attributes (e.g., "resource-charset"); 155 - Resource description attributes (e.g., "resource-name"); and 156 - new Printer attributes (e.g., "resource-type-supported"). 158 This document is laid out as follows: 159 - Section 2 adds the Resource object to the IPP object model. 161 - Section 3 is the terminology used throughout the document. 163 - Section 4 specifies the operations on Resource objects, including 164 new status codes for Resource operations. 166 - Section 5 specifies the attributes common to all Resource objects. 168 - Section 6 specifies the rules for defining new Resource object 169 types. 171 - Section 7 specifies the conformance requirements for this document. 173 - Section 8, 9, and 10 specify IANA, internationalization, and 174 security considerations. 176 - Section 11 allocates new protocol encoding values for this 177 document. 179 - Sections 12, 13, 14, and 15 list references, authors' addresses, 180 change history, and full IETF copyright statement. 182 2. IPP Model for Resources 184 See section 2 'IPP Objects' in [IPP-MOD] for a full description of 185 the IPP object model and terminology. 187 2.1. Resource Object 189 IPP Resource objects are used to model installed features or 190 capabilities of IPP Printers (e.g., 'font'). All Resource object 191 instances contain a common set of base Resource object attributes. 193 Resource object instances MAY have an additional set of attributes, 194 according to their "resource-type" and IPP Printer implementation. 196 Resource objects instances MAY also have associated data, according 197 to their "resource-type" and IPP Printer implementation. Resource 198 data (if any) is available by reference in "resource-data-uri" or by 199 value if "resource-data-present" is 'true' (i.e., a local copy of the 200 Resource data is available on the IPP Printer). 202 Section 4 describes each of the Resource operations in detail. 204 3. Terminology 206 This specification document uses the terminology defined in this 207 section. 209 3.1. Conformance Terminology 211 The terms "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT", 212 "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be 213 interpreted as described in [RFC-2119]. These terms are used to 214 specify conformance requirements which apply if this specification is 215 implemented (in addition to IPP/1.0 or higher). 217 3.2. Model Terminology 219 See section 12.2 'Model Terminology' in [IPP-MOD]. 221 4. Resource Operations 223 The common semantics of all IPP Resource operations are the ones 224 defined for all IPP operations in [IPP-MOD], e.g., "operation-id", 225 "status-code", "attributes-charset", etc. 227 See section 3.1 'Common Semantics' in [IPP-MOD]. 229 4.1. Resource Query Package - REQUIRED 231 The following three Resource query operations are REQUIRED for all 232 IPP Printers to implement, if they implement Resource objects. 234 4.1.1. Get-Resource-Attributes Operation 236 REQUIRED - for IPP Printers to implement. 238 This operation allows an IPP Client to request the values of 239 attributes of a Resource object instance and is similar to the 240 Get-Job-Attributes operation (see section 3.2.5 in [IPP-MOD]). The 241 only differences are that the operation is directed at a Resource 242 object instance rather than a Job object instance, there is a 243 "resource-type" operation attribute required when querying a Resource 244 object, and the returned attribute group is a set of Resource object 245 attributes rather than a set of Job object attributes. 247 For Resources, the possible names of attribute groups are: 249 - 'resource-template': the subset of the Resource Template 250 attributes that the implementation supports for Resource objects 251 (see section 5.1). 252 - 'resource-description': the subset of the Resource Description 253 attributes that the implementation supports for Resource objects 254 (see section 5.2). 255 - 'all': the special group 'all' that includes all attributes that 256 the implementation supports for Resource objects. 258 Since an IPP Client MAY request specific attributes or named groups, 259 there is a potential that there is some overlap. For example, if an 260 IPP Client requests 'resource-create-time' and 261 'resource-description', the IPP Client is actually requesting the 262 "resource-create-time" attribute once by naming it explicitly, and 263 once by inclusion in the 'resource-description' group. In such 264 cases, the IPP Printer object NEED NOT return the attribute only once 265 in the response even if it is requested multiple times. The IPP 266 Client SHOULD NOT request the same attribute in multiple ways. 268 4.1.1.1. Get-Resource-Attributes Request 270 The IPP Client submits the Get-Resource-Attributes request to an IPP 271 Printer object. 273 The IPP Client supplies the following groups of attributes as part of 274 the Get-Resource-Attributes Request: 276 Group 1: Operation Attributes 278 Natural Language and Character Set: 279 The "attributes-charset" and "attributes-natural-language" 280 attributes as described in section 3.1.4.1 in [IPP-MOD]. 282 Target: 283 The "printer-uri" (uri) operation attribute which is the target for 284 ALL Resource operations as described in section 3.1.5 in [IPP-MOD]. 286 ISSUE_1: The target of all IPP Resource operations is always 287 simply "printer-uri" and separate required operation attributes are 288 used to specify resource type and name or ID. This is like IPP 289 Subscription objects but unlike the earlier IPP Job objects. 290 Should we continue to follow the IPP Subscription object model? 292 Resource Type: 293 The "resource-type (type2 keyword)" attribute as described in 294 section 5.4.1. The IPP Client MUST supply "resource-type" in all 295 IPP Resource operation requests. The IPP Printer MUST support and 296 validate "resource-type" in all IPP Resource operation requests. 298 Resource Name or ID: 299 The "resource-name (name(127))" attribute as described in section 300 5.4.2 in this document 301 302 the "resource-id (integer(1:MAX))" attribute as described in 303 section 5.4.3. 305 Requesting User Name: 306 The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied 307 by the IPP Client as described in section 8.3 in [IPP-MOD]. 309 "requested-attributes" (1setOf keyword): 310 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 311 MUST support this attribute. It is a set of attribute names and/or 312 attribute group names in whose values the requester is interested. 314 If the IPP Client omits this attribute, the IPP Printer MUST 315 respond as if this attribute had been supplied with a value of 316 'all'. 318 4.1.1.2. Get-Resource-Attributes Response 320 The Printer object returns the following sets of attributes as part 321 of the Get-Resource-Attributes Response: 323 Group 1: Operation Attributes 325 Status Message: 326 In addition to the REQUIRED status code returned in every response, 327 the response OPTIONALLY includes a "status-message" (text(255)) 328 and/or a "detailed-status-message" (text(MAX)) operation attribute 329 as described in sections 13 and 3.1.6 in [IPP-MOD]. 331 Natural Language and Character Set: 332 The "attributes-charset" and "attributes-natural-language" 333 attributes as described in section 3.1.4.2 in [IPP-MOD]. The 334 "attributes-natural-language" MAY be the natural language of the 335 Resource object, rather than the one requested. 337 Group 2: Unsupported Attributes 339 See section 3.1.7 in [IPP-MOD] for details on returning Unsupported 340 Attributes. 342 The response NEED NOT contain the "requested-attributes" operation 343 attribute with any supplied values (attribute keywords) that were 344 requested by the IPP Client but are not supported by the IPP 345 Printer. If the Printer object does include unsupported attributes 346 referenced in "requested-attributes" and such attributes include 347 group names, such as 'all', the unsupported attributes MUST NOT 348 include attributes described in this document but not supported by 349 the implementation. 351 Group 3: Resource Object Attributes 353 This is the set of requested Resource object attributes and their 354 current values, i.e., any of the Resource object attributes in the 355 tables in sections 5.1 and 5.2. The IPP Printer ignores (does not 356 respond with) any requested attribute or value which is not 357 supported or which is restricted by the security policy in force, 358 including whether the requesting user is the user that created the 359 Resource object instance. However, the IPP Printer MUST respond 360 with the 'unknown' value for any supported attribute (including all 361 REQUIRED attributes) for which the IPP Printer does not know the 362 value, unless it would violate the security policy. See the 363 description of the "out-of-band" values in the beginning of Section 364 4.1 in [IPP-MOD]. 366 See section 5.1 'Table of Resource Template Attributes'. 367 See section 5.2 'Table of Resource Description Attributes'. 369 4.1.2. Get-Resource-Data Operation 371 REQUIRED - for IPP Printers to implement. 373 This operation allows an IPP Client to request the values of 374 attributes of a Resource object instance AND the value of associated 375 Resource data (i.e., this operation is like 'Print-Job' except that 376 the opaque data is transferred in the opposite direction). This 377 operation is a strict superset of the Get-Resource-Attributes 378 operation above. The only difference is that the operation returns 379 Resource data in addition to Resource attributes. 381 This operation is only supported for the "resource-type" values for 382 which the Resource is defined to allow data (e.g., 'form'). If the 383 IPP Client supplies a value for "resource-type" that does NOT allow 384 Resource data, the IPP Printer MUST return a status code of 385 'client-error-not-possible'. 387 Note: This separate operation is defined (rather than overloading 388 the 'Get-Resource-Attributes' operation above) to simplify access 389 control policies. Note that some Resource types (e.g, 'font') MAY 390 have have copyright and intellectual property considerations with 391 respect to IPP Clients reading their associated data. 393 4.1.2.1. Get-Resource-Data Request 395 See section 4.1.1.1 'Get-Resource-Attributes Request'. 397 The IPP Client submits the Get-Resource-Data request to an IPP 398 Printer object. 400 The IPP Client supplies the following groups of attributes as part of 401 the Get-Resource-Data Request: 403 Group 1: Operation Attributes 405 See 'Group 1: Operation Attributes' in section 4.1.1.1 406 'Get-Resource-Attributes Request'. 408 4.1.2.2. Get-Resource-Data Response 410 See section 4.1.1.2 'Get-Resource-Attributes Response'. 412 Group 1: Operation Attributes 414 See 'Group 1: Operation Attributes' in section 4.1.1.2 415 'Get-Resource-Attributes Response'. 417 Group 2: Unsupported Attributes 419 See 'Group 2: Unsupported Attributes' in section 4.1.1.2 420 'Get-Resource-Attributes Response'. 422 Group 3: Resource Object Attributes 424 See 'Group 3: Resource Object Attributes' in section 4.1.1.2 425 'Get-Resource-Attributes Response'. 427 See section 5.1 'Table of Resource Template Attributes'. 429 Group 4: Resource Object Data 431 See section 5.x 'resource-data-present'. 432 See section 3.2.1.1 'Print-Job Request' in [IPP-MOD]. 434 The IPP Printer MUST return the Resource data (if any) to the IPP 435 Client, within the constraints of administratively configured 436 access control policies and any applicable copyright or other 437 intellectual property considerations. 439 4.1.3. Get-Resources Operation 441 REQUIRED - for IPP Printers to implement. 443 This operation allows an IPP Client to retrieve the list of Resource 444 object instances (of a specified resource type) belonging to the 445 target Printer object. The IPP Client may also supply a list of 446 Resource attribute names and/or attribute group names. A group of 447 Resource object attributes will be returned for each Resource object 448 instance that is returned. 450 This operation is similar to the Get-Resource-Attributes operation, 451 except that this Get-Resources operation returns attributes from 452 possibly more than one object. 454 See section 3.2.6 'Get-Jobs Operation' in [IPP-MOD]. 456 4.1.3.1. Get-Resources Request 458 The IPP Client submits the Get-Resources request to an IPP Printer 459 object. 461 The IPP Client supplies the following groups of attributes as part of 462 the Get-Resources Request: 464 Group 1: Operation Attributes 466 See 'Group 1: Operation Attributes' in section 4.1.1.1 467 'Get-Resource-Attributes Request'. 469 Resource Name or ID: 470 The IPP Client MUST NOT send either "resource-name" or 471 "resource-id". The IPP Printer MUST return them as Unsupported 472 Attributes if supplied and MUST reject the Get-Resources operation. 474 "limit" (integer(1:MAX)): 475 [added] 476 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 477 MUST support this attribute. It is an integer value that 478 determines the maximum number of resources that an IPP Client will 479 receive from the IPP Printer. 481 Groups 2 to N: Resource Filter Attributes 483 See 'Group 3: Resource Object Attributes' in section 4.1.1.2 484 'Get-Resource-Attributes Response'. 486 This is the set of filter attributes and their filter values. The 487 IPP Printer ignores Resources which do not satisfy the specified 488 filter. A multi-valued filter attribute matches if the 489 corresponding Resource object instance attribute contains all of 490 the one or more values of the multi-valued filter attribute. 492 The filter criteria in each Resource Filter Attribute group MUST 493 all be true for a match (logical AND within the set). But only ONE 494 Resource Filter Group need be true for a match (logical OR across 495 the sets). 497 ISSUE_2: What mechanism should we use for filters? 498 1. Group mechanism with multiple new Resource Filter Attributes 499 groups, limited to simple logical AND and OR filters? 501 2. Simple mechanism with new "resource-filter (collection)" 502 operation attribute in Get-Resources operations, limited to one 503 simple logical AND filter? 505 3. Robust mechanism with new "resource-filter (text)" operation 506 attribute in Get-Resources operations, supporting full LDAPv3 507 string attribute filters or a profile (subset) of LDAPv3 508 filters? 509 See 'String Representation of LDAP Search Filters' [RFC-2254]. 511 [Editor - favors solution 3 at this writing] 513 4.1.3.2. Get-Resources Response 515 The Printer object returns all of the Resource object instances, up 516 to the number specified by the "limit" attribute, that match the 517 criteria as defined by the filter attribute values supplied by the 518 IPP Client in the request. It is possible that no Resource objects 519 are returned since there may literally be none at the Printer, or 520 there may be no Resource objects that match the criteria supplied by 521 the IPP Client. If the IPP Client requests any Resource attributes 522 at all, there is a set of Resource Object Attributes returned for 523 each Resource object instance. 525 It is not an error for the IPP Printer to return 0 Resources. If the 526 response returns 0 Resources because there are no Resources matching 527 the criteria, and the request would have returned 1 or more Resources 528 with a status code of 'successful-ok' if there had been Resources 529 matching the criteria, then the status code for 0 Resources MUST be 530 'successful-ok'. 532 Group 1: Operation Attributes 534 See 'Group 1: Operation Attributes' in section 4.3.1 535 'Get-Resources Request'. 537 Group 2: Unsupported Attributes 539 See 'Group 2: Unsupported Attributes' in section 4.1.1.2 540 'Get-Resource-Attributes Response'. 542 Groups 3 to N: Resource Object Attributes 543 See 'Group 3: Resource Object Attributes' in section 4.1.1.2 544 'Get-Resource-Attributes Response'. 546 See section 5.1 'Table of Resource Template Attributes'. 548 Resource object instances MUST be returned sorted by "resource-id". 550 ISSUE_3: Should we require that Resource object instances are always 551 returned sorted by "resource-id" (as stated above) and not by 552 "resource-name" (more user-friendly). Should we add an operation 553 attribute to control the choice of sort order? 555 4.2. Resource Admin Package - OPTIONAL 557 The following four Resource admin operations are OPTIONAL for all IPP 558 Printers to implement, if they implement Resource objects. However, 559 when implemented, these four Resource admin operations MUST be 560 implemented as a package (all four). 562 Note: The Set-Resource operation is intentionally NOT defined here. 563 For simplicity and robustness, Resource object instances are entirely 564 static, except that their leases MAY be renewed with the 565 Renew-Resource operation. 567 4.2.1. Create-Resource Operation 569 OPTIONAL - for IPP Printers to implement. 571 This operation allows an authorized IPP Client to create a Resource 572 object instance on this IPP Printer and to send OPTIONAL Resource 573 data for local storage on the IPP Printer along with the Resource 574 object attributes for those values of "resource-type" which are 575 defined to allow Resource data. 577 Note: Specific Resource types (values of "resource-type") constrain 578 whether Resource data may be sent with the Create-Resource operation. 580 4.2.1.1. Create-Resource Request 582 The IPP Client submits the Create-Resource request to an IPP Printer 583 object. 585 The IPP Client supplies the following groups of attributes as part of 586 the Create-Resource Request: 588 Group 1: Operation Attributes 590 See 'Group 1: Operation Attributes' in section 4.1.1.1 591 'Get-Resource-Attributes Request'. 593 "resource-name" (name(127)): 594 The IPP Client MUST supply this attribute. 595 Note: Unlike the "job-name" attribute, the value of 596 "resource-name" MUST be unique among Resources of the SAME 597 "resource-type". IPP Printers MUST not allow Resource object 598 instances of the SAME "resource-type" to exist with duplicate 599 "resource-name" values. IPP Printers MUST reject Create-Resource 600 operations that specify duplicate "resource-name" values. 602 "resource-id" (integer(1:MAX)): 603 [omitted] 604 The IPP Client MUST NOT send "resource-id" and the IPP Printer MUST 605 return it in Unsupported Attributes if supplied. 607 "requested-attributes" (1setOf keyword): 608 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 609 MUST support this attribute. It is a set of attribute names and/or 610 attribute group names in whose values the requester is interested. 611 If the IPP Client omits this attribute, the IPP Printer MUST 612 respond as if this attribute had been supplied with a value of 613 'all'. 615 ISSUE_4: Should we make Resources more Subscriptions (and Jobs) 616 and just drop the "requested-attributes" from all of the Resource 617 admin operations? Then "requested-attributes" would only be 618 permitted in the Resource query operations. 620 Group 2: Resource Object Attributes 622 This is the set of IPP Client supplied Resource Template attributes 623 and their new values, i.e., any of the Resource object attributes 624 in section 5.1. 626 The IPP Client MUST supply the "resource-create-date-time" 627 attribute (see section 5.3.5). All other Resource attributes are 628 OPTIONAL for the IPP Client to supply. 630 See 'Group 3: Resource Object Attributes' in section 4.1.1.2 631 'Get-Resource-Attributes Response'. 633 See section 5.1 'Table of Resource Template Attributes'. 635 Group 3: Resource Object Data 637 See section 5.x 'resource-data-present'. 638 See section 3.2.1.1 'Print-Job Request' in [IPP-MOD]. 640 The IPP Client OPTIONALLY sends the Resource data (if any) to the 641 IPP Printer, within the constraints of administratively configured 642 access control policies and any applicable copyright or other 643 intellectual property considerations. If the IPP Client supplies 644 Resource data for a Resource type that is not defined to allow 645 Resource data, the IPP Printer MUST reject the request and return a 646 status code of 'client-error-not-possible'. 648 4.2.1.2. Create-Resource Response 650 See section 4.1.1.2 'Get-Resource-Attributes Response'. 652 Group 1: Operation Attributes 654 See 'Group 1: Operation Attributes' in section 4.1.1.2 655 'Get-Resource-Attributes Response'. 657 Group 2: Unsupported Attributes 659 See 'Group 2: Unsupported Attributes' in section 4.1.1.2 660 'Get-Resource-Attributes Response'. 662 Group 3: Resource Object Attributes 664 This group MUST be returned if and only if the "status-code" 665 parameter returned in Group 1 has the value 'successful-ok' or 666 'successful-ok-ignored-or-substituted-attributes'. All IPP 667 Printers MUST return the following Resource attributes in 668 successful Create-Resource responses: 669 "resource-id" (integer(1:MAX)) -- generated by the IPP Printer 670 "resource-lease-duration" (integer(0:MAX)) -- lease actually 671 granted 673 All IPP Printers MUST support the "requested-attributes" operation 674 attribute and conform to the behavior described in section 4.1.1.1 675 'Get-Resource-Attributes Request'. 677 See 'Group 3: Resource Object Attributes' in section 4.1.1.2 678 'Get-Resource-Attributes Response'. 680 See section 5.1 'Table of Resource Template Attributes'. 682 In addition to the MANDATORY parameters required for every operation 683 request, the simplest Create-Resource Request consists of just the 684 "attributes-charset", "attributes-natural-language", "resource-type", 685 and "resource-name" operation attributes; the "printer-uri" target 686 operation attribute; the OPTIONAL Resource data (if any) and nothing 687 else. In this simplest case, the IPP Printer object: 689 - creates a new Resource object (the Resource object MAY contain 690 Resource data); 691 - generates a locally unique "resource-id" for the new Resource; 692 - stores the name supplied by the IPP Client in the "resource-name" 693 attribute in the natural language and charset requested (see 694 Section 3.1.4.1 of [IPP-MOD]) (if those are supported, otherwise 695 using the Printer object's default natural language and charset); 696 and 697 - uses its corresponding default value attributes (e.g., 698 "resource-lease-duration-default") for the supported Resource 699 Template attributes that were not supplied by the IPP Client in the 700 Create-Resource operation. 702 4.2.2. Delete-Resource Operation 704 OPTIONAL - for IPP Printers to implement. 706 This operation allows an authorized IPP Client to delete a Resource 707 object instance on this IPP Printer. 709 4.2.2.1. Delete-Resource Request 711 The IPP Client submits the Delete-Resource request to an IPP Printer 712 object. 714 The IPP Client supplies the following groups of attributes as part of 715 the Delete-Resource Request: 717 Group 1: Operation Attributes 719 See 'Group 1: Operation Attributes' in section 4.1.1.1 720 'Get-Resource-Attributes Request'. 722 Resource Name or ID: 724 The "resource-name (name(127))" attribute as described in section 725 5.4.2 in this document 726 727 the "resource-id (integer(1:MAX))" attribute as described in 728 section 5.4.3. 730 "requested-attributes" (1setOf keyword): 731 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 732 MUST support this attribute. It is a set of attribute names and/or 733 attribute group names in whose values the requester is interested. 734 If the IPP Client omits this attribute, the IPP Printer MUST 735 respond as if this attribute had been supplied with a value of 736 'all'. 738 4.2.2.2. Delete-Resource Response 740 See section 4.1.1.2 'Get-Resource-Attributes Response'. 742 Group 1: Operation Attributes 744 See 'Group 1: Operation Attributes' in section 4.1.1.2 745 'Get-Resource-Attributes Response'. 747 Group 2: Resource Object Attributes 749 This group MUST be returned if and only if the "status-code" 750 parameter returned in Group 1 has the value 'successful-ok'. All 751 IPP Printers MUST return the following Resource attribute in 752 successful Delete-Resource responses: 753 "resource-id" (integer(1:MAX)) 755 All IPP Printers MUST support the "requested-attributes" operation 756 attribute and conform to the behavior described in section 4.1.1.1 757 'Get-Resource-Attributes Request'. 759 4.2.3. Refresh-Resource Operation 761 OPTIONAL - for IPP Printers to implement. 763 This operation allows an authorized IPP Client to refresh a Resource 764 object instance on this IPP Printer (i.e., fetch the Resource data 765 and locally cache it, setting "resource-data-present" to 'true' and 766 "resource-data-k-octets" to the actual size). 768 4.2.3.1. Refresh-Resource Request 770 The IPP Client submits the Refresh-Resource request to an IPP Printer 771 object. 773 The IPP Client supplies the following groups of attributes as part of 774 the Refresh-Resource Request: 776 Group 1: Operation Attributes 778 See 'Group 1: Operation Attributes' in section 4.1.1.1 779 'Get-Resource-Attributes Request'. 781 Resource Name or ID: 782 The "resource-name (name(127))" attribute as described in section 783 5.4.2 in this document 784 785 the "resource-id (integer(1:MAX))" attribute as described in 786 section 5.4.3. 788 "requested-attributes" (1setOf keyword): 789 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 790 MUST support this attribute. It is a set of attribute names and/or 791 attribute group names in whose values the requester is interested. 792 If the IPP Client omits this attribute, the IPP Printer MUST 793 respond as if this attribute had been supplied with a value of 794 'all'. 796 4.2.3.2. Refresh-Resource Response 798 See section 4.1.1.2 'Get-Resource-Attributes Response'. 800 Group 1: Operation Attributes 802 See 'Group 1: Operation Attributes' in section 4.1.1.2 803 'Get-Resource-Attributes Response'. 805 Group 2: Resource Object Attributes 807 This group MUST be returned if and only if the "status-code" 808 parameter returned in Group 1 has the value 'successful-ok'. All 809 IPP Printers MUST return the following Resource attribute in 810 successful Refresh-Resource responses: 812 "resource-id" (integer(1:MAX)) 814 All IPP Printers MUST support the "requested-attributes" operation 815 attribute and conform to the behavior described in section 4.1.1.1 816 'Get-Resource-Attributes Request'. 818 4.2.4. Renew-Resource Operation 820 OPTIONAL - for IPP Printers to implement. 822 This operation allows an authorized IPP Client to renew the (finite) 823 lease of a Resource object instance on this IPP Printer (i.e., renew 824 the Resource lease for "resource-duration" forward from the current 825 time). 827 4.2.4.1. Renew-Resource Request 829 The IPP Client submits the Renew-Resource request to an IPP Printer 830 object. 832 The IPP Client supplies the following groups of attributes as part of 833 the Renew-Resource Request: 835 Group 1: Operation Attributes 837 See 'Group 1: Operation Attributes' in section 4.1.1.1 838 'Get-Resource-Attributes Request'. 840 Resource Name or ID: 841 The "resource-name (name(127))" attribute as described in section 842 5.4.2 in this document 843 844 the "resource-id (integer(1:MAX))" attribute as described in 845 section 5.4.3. 847 "requested-attributes" (1setOf keyword): 848 The IPP Client OPTIONALLY supplies this attribute. The IPP Printer 849 MUST support this attribute. It is a set of attribute names and/or 850 attribute group names in whose values the requester is interested. 851 If the IPP Client omits this attribute, the IPP Printer MUST 852 respond as if this attribute had been supplied with a value of 853 'all'. 855 Group 2: Resource Object Attributes 856 "resource-lease-duration" (integer(0:MAX)) 857 Note: Even though Resource objects are static (i.e, there is no 858 Set-Resource operation defined, intentionally), an IPP Client MAY 859 supply a new (possibly different) value for 860 "resource-lease-duration". As always, the IPP Printer MAY grant a 861 shorter lease according to the value of the Printer attribute 862 "resource-lease-duration-supported". 864 in a Renew-Resource operation. 866 4.2.4.2. Renew-Resource Response 868 See section 4.1.1.2 'Get-Resource-Attributes Response'. 870 Group 1: Operation Attributes 872 See 'Group 1: Operation Attributes' in section 4.1.1.2 873 'Get-Resource-Attributes Response'. 875 Group 2: Resource Object Attributes 877 This group MUST be returned if and only if the "status-code" 878 parameter returned in Group 1 has the value 'successful-ok'. All 879 IPP Printers MUST return the following Resource attributes in 880 successful Renew-Resource responses: 881 "resource-id" (integer(1:MAX)) 882 "resource-lease-duration" (integer(0:MAX)) 884 All IPP Printers MUST support the "requested-attributes" operation 885 attribute and conform to the behavior described in section 4.1.1.1 886 'Get-Resource-Attributes Request'. 888 4.3. Printer Operation Extensions - REQUIRED 890 4.3.1. Get-Printer-Attributes Operation 892 This operation is extended so that it returns Printer attributes 893 defined . 895 All IPP Printers that support IPP Resource objects MUST implement 896 this extension to the 'Get-Printer-Attributes' operation. 898 In addition to the requirements of [IPP-MOD] section 3.2.5, an IPP 899 Printer MUST support the following additional values for the 900 "requested-attributes" Operation attribute in this operation and 901 return such attributes in the Printer Object Attributes group of its 902 response. 904 1. Resource Template Attributes: ALL "xxx-default" attributes in 905 column 1 of section 5.1 'Table of Resource Template Attributes'. 907 2. New Printer Description Attributes: ALL "xxx-supported" 908 attributes in column 1 of section 5.1 'Table of Resource Template 909 Attributes'. 911 3. New Group Name: The 'resource-template' group name, which names 912 all supported Resource Template attributes in section 5.1 'Table 913 of Resource Template Attributes'. This group name is also used in 914 the Get-Resources-Attributes and Get-Resources operation with an 915 analogous meaning. 917 4. Extended Group Name: The 'all' group name, which names all IPP 918 Printer attributes according to [IPP-MOD] section 3.2.5. In this 919 extension 'all' names all attributes specified in [IPP-MOD] plus 920 those named in items 1 and 2 of this list. 922 4.4. Resource Operation Response Status Codes 924 client-error-not-authenticated 925 client-error-not-authorized 926 client-error-resource-type-not-supported 927 client-error-resource-data-not-supported 928 client-error-resource-data-not-present 930 5. Resource Attributes 932 All IPP Resource attributes presently defined are REQUIRED for all IPP 933 Printer implementations of Resource objects. 935 5.1. Table of Resource Template Attributes 937 All IPP Printers that support IPP Resource objects MUST implement ALL 938 of the following REQUIRED Resource Template attributes defined in 939 this specification (on the Resource object or the Printer object as 940 specified below). 942 All Resource Template attributes are passed in a Resource Attributes 943 Group in IPP Resource operations. 945 Resource Object Attribute Resource Attribute Type 946 Printer Object Attribute(s) Printer Attribute Type(s) 947 ----------------------------------- ----------------------------- 948 resource-charset (charset) 949 charset-configured (charset) 950 charset-supported (1setOf charset) 952 resource-natural-language (naturalLanguage) 953 natural-language-configured (naturalLanguage) 954 generated-natural-language-supported (1setOf naturalLanguage) 956 resource-info (text(127)) 957 [no default/supported on Printer] 959 resource-document-formats (1setOf mimeMediaType) 960 document-format-default (mimeMediaType) 961 document-format-supported (1setOf mimeMediaType) 963 resource-create-date-time (dateTime) 964 [no default/supported on Printer] 966 resource-lease-duration (integer(0:MAX)) 967 resource-lease-duration-default (integer(0:MAX)) 968 resource-lease-duration-supported (rangeOfInteger(0:MAX)) 970 resource-data-present (boolean) 971 [no default on Printer] 972 resource-data-present-supported (1setOf boolean) 974 resource-data-uri (1setOf uri) 975 [no default on Printer] 976 reference-uri-schemes-supported (1setOf uriScheme) 978 resource-data-k-octets (integer(0:MAX)) 979 [no default on Printer] 980 resource-data-k-octets-supported (rangeOfInteger (0:MAX)) 982 resource-data-compression (type3 keyword) 983 [no default on Printer] 984 compression-supported (1setOf type3 keyword) 986 5.2. Table of Resource Description Attributes 988 All IPP Printers that support IPP Resource objects MUST implement ALL 989 of the following REQUIRED Resource Description attributes defined in 990 this specification (on the Resource object or the Printer object as 991 specified below). 993 All Resource Description attributes that MAY be supplied by an IPP 994 Client are passed in an Operation Attributes Group in IPP Resource 995 operations. 997 Resource Description Attribute Resource Attribute Type 998 ----------------------------------- -------------------------- 999 resource-type (type2 keyword) 1001 resource-name (name(127)) 1003 resource-id (integer(1:MAX)) 1005 resource-printer-uri (uri) 1007 resource-create-user-name (name(MAX)) 1009 resource-create-time (integer(0:MAX)) 1011 resource-expiration-time (integer(0:MAX)) 1013 5.3. Resource Template Attributes 1015 5.3.1. resource-charset (charset) 1017 REQUIRED - for IPP Printers to implement. 1019 This attribute specifies the charset of 'text' and 'name' attributes 1020 of the Resource and of textual data in the associated Resource data 1021 (if any). 1023 5.3.2. resource-natural-language (naturalLanguage) 1025 REQUIRED - for IPP Printers to implement. 1027 This attribute specifies the natural language of 'text' and 'name' 1028 attributes of the Resource and of textual data in the associated 1029 Resource data (if any). 1031 5.3.3. resource-info (text(127)) 1033 REQUIRED - for IPP Printers to implement. 1035 This attribute specifies descriptive information about this Resource 1036 object. This may include manufacturer, version, copyright, etc. 1038 See section 4.4.6 'printer-info' in [IPP-MOD]. 1039 See section 4.4.9 'printer-make-and-model' in [IPP-MOD]. 1041 5.3.4. resource-document-formats (1setOf mimeMediaType) 1043 REQUIRED - for IPP Printers to implement. 1045 This attribute specifies the list of document formats supported by 1046 the Resource (e.g., 'application/postscript' for a Resource of type 1047 'font'). 1049 5.3.5. resource-create-date-time (dateTime) 1051 REQUIRED - for IPP Printers to implement. 1053 This attribute indicates the date and time at which the Resource 1054 object instance was created. 1056 IPP Resource objects created during product manufacturing (via 1057 software download to the IPP Printer, for example) MUST include a 1058 vendor-supplied value for "resource-create-date-time". This value 1059 SHOULD reflect the actual 'build date' of the Resource, rather than 1060 simply the 'install date' on the IPP Printer, because this is more 1061 informative for the end user. 1063 IPP Resource objects created with the Create-Resource operation MUST 1064 include an IPP Client-supplied value for "resource-create-date-time" 1065 in the create request. 1067 See section 4.4.30 'printer-current-time' in [IPP-MOD]. 1068 See section 4.3.14.5 'date-time-at-creation' in [IPP-MOD]. 1070 5.3.6. resource-lease-duration (integer(0:MAX)) 1072 REQUIRED - for IPP Printers to implement. 1074 This attribute indicates length of the Resource object instance lease 1075 in seconds. 1077 If this attribute is zero '0', then the lease on this Resource object 1078 instance is infinite (i.e., the lease never expires). 1080 If this attribute is non-zero, then this Resource object instance has 1081 a finite lease and expires according to "resource-expiration-time" 1082 granted by the IPP Printer. 1084 See section 5.x 'resource-create-time'. 1085 See section 5.x 'resource-expiration-time'. 1087 5.3.7. resource-data-present (boolean) 1089 REQUIRED - for IPP Printers to implement. 1091 The attribute indicates whether or not a local copy of the Resource 1092 data is present at the IPP Printer. 1094 This attribute MUST default to 'false', if not supplied by the IPP 1095 Client in the Create-Resource operation. 1097 When "resource-data-present" is 'true' on a Resource object instance, 1098 it indicates that the IPP Printer has stored a local copy of the 1099 Resource data or has fetched a local copy of the Resource data that 1100 was specified by reference in "resource-data-uri". 1102 When "resource-data-present" is 'false' on a Resource object instance 1103 and "resource-data-uri" is empty, it indicates that there is no 1104 Resource data. 1106 When "resource-data-present" is 'false' on a Resource object instance 1107 and "resource-data-uri" is non-empty, it indicates that the IPP 1108 Printer has NOT yet fetched a local copy of the Resource data that 1109 was specified by reference and the value of "resource-data-k-octets" 1110 is unverified. 1112 See section 4.2.3 'Refresh-Resource Operation'. 1114 5.3.8. resource-data-uri (1setOf uri) 1116 REQUIRED - for IPP Printers to implement. 1118 This attribute contains the URI of associated Resource data (if any) 1119 as a reference. 1121 Lazy Refresh: 1122 An IPP Printer NEED NOT immediately fetch a local copy of the 1123 Resource data specified by reference in "resource-data-uri", but MUST 1124 set "resource-data-present" to 'false' until a local copy is fetched. 1126 When an IPP Printer does fetch a local copy of the Resource data, it 1127 MUST set (REQUIRED) "resource-data-present" to 'true' and set 1128 (REQUIRED) "resource-data-k-octets" to the actual size. 1130 ISSUE_5: This 'lazy refresh' behavior may have performance and 1131 'stale data' consequences for IPP Clients. Because the manufacturer 1132 may also be slow to inform installed IPP Printers of a new version of 1133 a Resource (for update by means outside of this specification) the 1134 'stale data' problem may also apply to IPP Printers. Should we add 1135 an operation attribute to PREVENT this 'lazy refresh' behavior? 1137 See section 4.2.3 'Refresh-Resource Operation'. 1138 See section 5.x 'resource-data-present'. 1139 See section 4.4.27 'reference-uri-schemes-supported' in [IPP-MOD]. 1140 See section 3.2.2 'Print-URI' in [IPP-MOD]. 1142 5.3.9. resource-data-k-octets (integer(0:MAX)) 1144 REQUIRED - for IPP Printers to implement. 1146 This attribute contains the size of associated Resource data (if 1147 any). An IPP Printer MUST set this attribute to zero for Resource 1148 types that MUST not have Resource data supplied by reference in 1149 "resource-data-uri" or by value in a Create-Resource operation. 1151 See 'Lazy Refresh' in section 5.x 'resource-data-uri' of this 1152 document for IPP Printer behavior with respect to 1153 "resource-data-k-octets". 1155 See section 4.2.3 'Refresh-Resource Operation'. 1156 See section 5.x 'resource-data-present'. 1158 5.3.10. resource-data-compression (type3 keyword) 1160 REQUIRED - for IPP Printers to implement. 1162 This attribute identifies the compression of the associated Resource 1163 data (if any). 1165 See section 4.4.32 'compression-supported' in [IPP-MOD] for standard 1166 keyword values. 1168 5.4. Resource Description Attributes 1170 5.4.1. resource-type (type2 keyword) 1172 REQUIRED - for IPP Printers to implement. 1174 This attribute identifies the type of this Resource object instance 1175 which determines additional Resource attributes specific to the named 1176 type. 1178 The following standard keyword values are defined: 1180 'font': The Resource contains font characteristics and 1181 (OPTIONALLY) font data. 1183 'form': The Resource contains form characteristics and 1184 (OPTIONALLY) form data. 1186 'image': The Resource contains image characteristics and 1187 (OPTIONALLY) image data. 1189 'logo': The Resource contains logo characteristics and 1190 (OPTIONALLY) logo data. 1192 'media': The Resource contains media characteristics for a 1193 single medium and MUST NOT contain media data. 1195 See section 5.5 'Job Template Attributes for Resources'. 1197 5.4.2. resource-name (name(127)) 1199 REQUIRED - for IPP Printers to implement. 1201 This attribute is the human-readable name of the Resource object 1202 instance. This name is more user-friendly than the integer 1203 "resource-id" attribute. 1205 Note: Unlike the "job-name" attribute, the value of "resource-name" 1206 MUST be unique among Resources of the SAME "resource-type". IPP 1207 Printers MUST not allow Resource object instances of the SAME 1208 "resource-type" to exist with duplicate "resource-name" values. IPP 1209 Printers MUST reject Create-Resource operations that specify 1210 duplicate "resource-name" values. 1212 Note: This attribute has been specified as REQUIRED (unlike 1213 "job-name") in the interests of ease-of-use. IPP Printers are 1214 expected to implement large numbers of Resource objects and the 1215 guaranteed presence of a user-friendly name will benefit ease-of-use. 1217 See section 4.3.5 'job-name' in [IPP-MOD]. 1219 5.4.3. resource-id (integer(1:MAX)) 1221 REQUIRED - for IPP Printers to implement. 1223 This attribute contains the locally unique ID (for a given value of 1224 "resource-type") of the Resource object instance. 1226 The IPP Printer, on creation of a new Resource object instance, (by 1227 means outside of this specification) generates an ID which identifies 1228 the new Resource object instance on the Printer specified by the 1229 value of "resource-printer-uri" (but not globally). The zero '0' 1230 value is not included to allow for compatibility with SNMP index 1231 values which also cannot be zero '0'. 1233 See section 4.3.2 'job-id' in [IPP-MOD]. 1235 5.4.4. resource-printer-uri (uri) 1237 REQUIRED - for IPP Printers to implement. 1239 This attribute identifies the IPP Printer that hosts this Resource 1240 object instance (i.e., records the value of the "printer-uri" target 1241 attribute from a Create-Resource operation). 1243 See section 4.3.3 'job-printer-uri' in [IPP-MOD]. 1245 5.4.5. resource-create-user-name (name(MAX)) 1247 REQUIRED - for IPP Printers to implement. 1249 This attribute contains the name of the end user that created this 1250 Resource object instance. 1252 For factory-installed resources, "resource-create-user-name" MUST be 1253 set to the empty string to prevent namespace conflicts in end user 1254 networks. 1256 See section 4.3.6 'job-originating-user-name' in [IPP-MOD]. 1258 5.4.6. resource-create-time (integer(0:MAX)) 1260 REQUIRED - for IPP Printers to implement. 1262 This attribute indicates the time at which the Resource object 1263 instance was created (i.e., the value of "printer-up-time" when the 1264 Resource object instance was created). 1266 If this Resource was created prior to the most recent system startup, 1267 then the IPP Printer MUST set this attribute to zero '0'. 1269 See section 5.x 'resource-expiration-time'. 1270 See section 5.x 'resource-lease-duration'. 1271 See section 4.4.29 'printer-up-time' in [IPP-MOD]. 1272 See section 4.3.14.1 'time-at-creation' in [IPP-MOD]. 1274 5.4.7. resource-expiration-time (integer(0:MAX)) 1276 REQUIRED - for IPP Printers to implement. 1278 This attribute indicates the time at which the Resource object 1279 instance lease will expire. (i.e., the value of "printer-up-time" 1280 when the Resource object instance will be deleted by the IPP 1281 Printer). 1283 If "resource-lease-duration" is zero '0', then the IPP Printer MUST 1284 set "resource-expiration-time" also to zero '0' (i.e., infinite 1285 lease). 1287 See section 5.x 'resource-create-time'. 1288 See section 5.x 'resource-lease-duration'. 1290 See section 4.4.29 'printer-up-time' in [IPP-MOD]. 1291 See section 4.3.14.3 'time-at-completed' in [IPP-MOD]. 1293 5.5. Job Template Attributes for Resources 1295 Each Resource Type Definition MUST specify whether or not the 1296 Resource type MAY be associated with a Job object. If so, then two 1297 new Job Description attributes are algorithmically added to the 1298 definition of a Job object: 1300 5.5.1. restype (name (127)) 1302 Where 'restype' is a standard keyword for "resource-type" (e.g., 1303 'media' yields the Job attribute named simply "media"). 1305 This Job attribute specifies the "resource-name" value of a single 1306 Resource object instance with "resource-type" of 'restype' that is 1307 REQUIRED for this Job and that SHOULD override any PDL instructions 1308 in the Job datastream. 1310 This attribute supplies advice for job scheduling to the IPP Printer. 1312 See section 4.2.1 "media" in [IPP-MOD]. 1313 See 'media-needed' keyword in section 4.4.12 "printer-state-reasons" 1314 in [IPP-MOD]. 1316 5.5.2. restype-required (1setOf name(127)) 1318 Where 'restype' is a standard keyword for "resource-type" (e.g., 1319 'media' yields the Job attribute named "media-required"). 1321 This Job attribute specifies the "resource-name" values of a set of 1322 Resource object instances with "resource-type" of 'restype' that are 1323 REQUIRED for this Job and that SHOULD override any PDL instructions 1324 in the Job datastream. 1326 This attribute supplies advice for job scheduling to the IPP Printer. 1328 See section 4.2.1 "media" in [IPP-MOD]. 1329 See 'media-needed' keyword in section 4.4.12 "printer-state-reasons" 1330 in [IPP-MOD]. 1332 6. Rules for Resource Type Definitions 1334 6.1. Do NOT define new operations for Resource 1336 REQUIRED - Do NOT define any new operations for the Resource. 1338 6.2. Define new type keyword for Resource 1340 REQUIRED - Define a new type keyword 'restype' for the Resource. 1342 6.3. Define new type-specific attributes for Resource 1344 OPTIONAL - Define type-specific attributes for the Resource with 1345 names of the form "restype-yyy" (e.g., "media-size"), using the 1346 'restype' keyword chosen above. is a simple attribute name for this 1347 Resource type. 1349 6.4. Define new Printer attributes for Resource 1351 REQUIRED - Define new Resource Template attributes on the Printer 1352 object for the Resource, named "restype-default" and 1353 "restype-supported", using the 'restype' keyword chosen above (e.g., 1354 "media-default" and "media-supported"). "restype-supported" lists 1355 all the current values of "resource-name" for this Resource type. 1357 OPTIONAL - Define new Resource Template attributes on the Printer 1358 object for the Resource, if this Resource has type-specific 1359 attributes (e.g., "media-size-default"). 1361 6.5. Define new Job attributes for Resource 1363 OPTIONAL - Define new Job Template attributes for the Resource, if 1364 this Resource MAY be associated with a Job (e.g., "media-required"). 1366 See section 5.5 'Job Template Attributes for Resources'. 1368 6.6. Define Printer operation extensions for Resource 1370 7. Conformance Requirements 1372 7.1. IPP Client Conformance Requirements 1374 IPP Clients MUST supply the required operation attributes in Resource 1375 operations. 1377 7.2. IPP Printer Conformance Requirements 1379 7.2.1. Resource Operations 1381 All IPP Printers that support IPP Resource objects MUST implement the 1382 following REQUIRED operations defined in this specification: 1384 Resource Operation 1385 ------------------ 1386 Get-Resource-Attributes 1387 Get-Resource-Data 1388 Get-Resources 1389 7.2.2. Resource Attributes 1391 All IPP Resource attributes presently defined are REQUIRED for all 1392 IPP Printer implementations of Resource objects. 1394 See section 5.1 'Table of Resource Template Attributes' 1395 See section 5.2 'Table of Resource Description Attributes'. 1397 8. IANA Considerations 1399 See section 6 'IANA Considerations' in [IPP-MOD]. 1401 9. Internationalization Considerations 1403 This IPP Resource Objects specification continues support for the 1404 internationalization in [IPP-MOD] attributes containing text strings 1405 and names. 1407 See section 7 'Internationalization Considerations' in [IPP-MOD]. 1409 10. Security Considerations 1411 This IPP Resource Objects specification inherits the same security 1412 considerations for Resources as are specified for Jobs in [IPP-MOD]. 1414 See section 8 'Security Considerations' in [IPP-MOD]. 1416 11. Encodings of Additional Protocol Tags 1418 11.1. Encodings of Additional Attribute Tags 1420 The section assigns a value to a new attribute tag as an extension to 1421 the encoding defined in [IPP-PRO]. 1423 The resource-attributes-tag delimits Resource Template Attributes 1424 Groups in requests and Resource Attributes Groups in responses. 1426 Tag Value (Hex) Tag Meaning 1427 --------------- ----------- 1428 0x08 resource-attributes-tag 1430 11.2. Encodings of Additional Operation Tags 1432 The section assigns values to new operation tags as extensions to the 1433 encoding defined in [IPP-PRO]. 1435 Tag Value (Hex) Tag Meaning 1436 --------------- ----------- 1437 0x1E Get-Resource-Attributes 1438 0x1F Get-Resource-Data 1439 0x20 Get-Resources 1440 [TBD] Create-Resource 1441 [TBD] Delete-Resource 1442 [TBD] Refresh-Resource 1443 [TBD] Renew-Resource 1445 12. References 1447 See section 9 'References' in [IPP-MOD]. 1449 [IPP-MOD] R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell. 1450 IPP/1.1 Model and Semantics, , May 1451 2000 (adopted by IESG as Proposed Standard in June 2000). 1453 [IPP-NOT] S. Isaacson, J. Martin, R. deBry, T. Hastings, M. Shepherd, 1454 R. Bergman. IPP Event Notification Specification, 1455 (work-in-progress), March 2000. 1457 [OS-TYPE] IANA Registry of Operating System Names at 1458 ftp://ftp.isi.edu/in-notes/iana/assignments/operating-system-names. 1460 13. Authors' Addresses 1462 Tom Hastings 1463 Xerox Corporation 1464 701 S Aviation Blvd, MS 834-03E 1465 El Segundo, CA 90245 1467 Phone: +1 310-333-6413 1468 Email: hastings@cp10.es.xerox.com 1470 Ira McDonald 1471 High North Inc 1472 221 Ridge Ave 1473 Grand Marais, MI 49839 1475 Phone: +1 906-494-2434 or +1 906-494-2697 1476 Email: imcdonald@sharplabs.com 1477 Email: imcdonal@sdsp.mc.xerox.com 1479 14. Appendix A - Change History 1481 [To be deleted before RFC publication] 1483 7 September 2000 - draft-ietf-ipp-get-resource-01.txt 1484 - revised Abstract and Introduction for admin operations 1485 - deleted all references to the resource type 'driver' 1486 - named package of Resource query (Get) operations in section 4 1487 - added package of Resource system admin operations to section 4 1488 - added Create-Resource to create (install) static resources 1489 - added Delete-Resource to delete (remove) static resources 1490 - added Refresh-Resource to refresh (locally cache) resource data 1491 - added Renew-Resource to renew (finite) resource leases 1492 - revised section 5.1 'Table of Resource Template Attributes' 1493 - revised section 5.2 'Table of Resource Description Attributes' 1494 - added section 6 'Rules for Resource Type Definitions' 1495 - deleted "resource-persistence" (redundant with zero lease) 1496 - renamed "resource-duration" to "resource-lease-duration" 1497 - deleted "resource-os-types" (was used for 'driver' resources) 1498 - deleted "resource-change-time" and "resource-refresh-time" 1500 7 July 2000 - draft-ietf-ipp-get-resource-00.txt 1501 - initial version - Get operations and Driver resource type 1503 15. Full Copyright Statement 1505 Copyright (C) The Internet Society (2000). All Rights Reserved. 1507 This document and translations of it may be copied and furnished to 1508 others, and derivative works that comment on or otherwise explain it 1509 or assist in its implementation may be prepared, copied, published 1510 and distributed, in whole or in part, without restriction of any 1511 kind, provided that the above copyright notice and this paragraph are 1512 included on all such copies and derivative works. However, this 1513 document itself may not be modified in any way, such as by removing 1514 the copyright notice or references to the Internet Society or other 1515 Internet organizations, except as needed for the purpose of 1516 developing Internet standards in which case the procedures for 1517 copyrights defined in the Internet Standards process must be 1518 followed, or as required to translate it into languages other than 1519 English. 1521 The limited permissions granted above are perpetual and will not be 1522 revoked by the Internet Society or its successors or assigns. 1524 This document and the information contained herein is provided on an 1525 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 1526 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 1527 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 1528 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 1529 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.