| < draft-ietf-ipp-get-resource-00.txt | draft-ietf-ipp-get-resource-01.txt > | |||
|---|---|---|---|---|
| There (3) issues in this document, each beginning 'ISSUE_n:'. | ||||
| Internet Printing Protocol Working Group Tom Hastings | Internet Printing Protocol Working Group Tom Hastings | |||
| INTERNET DRAFT Xerox | INTERNET DRAFT Xerox | |||
| Expires 7 January 2001 Ira McDonald | Expires 7 March 2001 Ira McDonald | |||
| High North | High North | |||
| 7 July 2000 | [Target Category: Standards Track] 7 September 2000 | |||
| Internet Printing Protocol (IPP): | Internet Printing Protocol (IPP): | |||
| Resource Objects and Get Resource Operations | Resource Objects | |||
| <draft-ietf-ipp-get-resource-00.txt> | <draft-ietf-ipp-get-resource-01.txt> | |||
| Copyright (C) The Internet Society (2000). All Rights Reserved. | Copyright (C) The Internet Society (2000). All Rights Reserved. | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026. Internet-Drafts are working | all provisions of Section 10 of RFC2026. Internet-Drafts are working | |||
| documents of the Internet Engineering Task Force (IETF), its areas, | documents of the Internet Engineering Task Force (IETF), its areas, | |||
| and its working groups. Note that other groups may also distribute | and its working groups. Note that other groups may also distribute | |||
| working documents as Internet-Drafts. | working documents as Internet-Drafts. | |||
| skipping to change at page 1, line 39 ¶ | skipping to change at page 1, line 37 ¶ | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| Abstract | Abstract | |||
| This document is a submission to the Internet Printing Protocol | This document is a submission to the Internet Printing Protocol | |||
| Working Group of the Internet Engineering Task Force (IETF). | Working Group of the Internet Engineering Task Force (IETF). The | |||
| Comments should be submitted to the ipp@pwg.org mailing list. | open issues in this document each begin 'ISSUE_n:'. Comments should | |||
| be submitted to the ipp@pwg.org mailing list. | ||||
| This IPP Get Resource document specifies an extension to IPP/1.0 | This IPP Resource Objects document specifies an extension to IPP/1.0 | |||
| [RFC-2565] [RFC-2566] and IPP/1.1 [IPP-MOD] [IPP-PRO]. This document | [RFC-2565] [RFC-2566] and IPP/1.1 [IPP-MOD] [IPP-PRO]. This document | |||
| extends the current closed IPP object model with a passive | extends the current IPP object model with a passive polymorphic | |||
| polymorphic object that is intended to satisfy most needs for new | object type - Resource - to support the long-term evolution of IPP. | |||
| object types in the long-term evolution of IPP via an extensible | ||||
| object framework. | ||||
| This document defines: Resource object (passive polymorphic object); | This document defines: | |||
| Resource get operations (e.g., Get-Resource-Attributes); Resource | - Resource object (passive polymorphic object); | |||
| attributes (e.g., "resource-name"); new Printer attributes (e.g., | - Resource query operations (e.g., Get-Resource-Attributes); | |||
| "resource-type-supported"); Resource type of Driver (a morph of the | - Resource admin operations (e.g., Create-Resource); | |||
| Resource object); methods for supporting 'driver download' to IPP | - Resource template attributes (e.g., "resource-charset"); | |||
| Client systems. | - Resource description attributes (e.g., "resource-name"); and | |||
| - new Printer attributes (e.g., "resource-type-supported"). | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction ............................................... 4 | 1. Introduction ............................................... 4 | |||
| 2. IPP Model for Resources .................................... 5 | 2. IPP Model for Resources .................................... 5 | |||
| 2.1. Resource Object ........................................ 5 | 2.1. Resource Object ........................................ 5 | |||
| 3. Terminology ................................................ 6 | 3. Terminology ................................................ 6 | |||
| 3.1. Conformance Terminology ................................ 6 | 3.1. Conformance Terminology ................................ 6 | |||
| 3.2. Model Terminology ...................................... 6 | 3.2. Model Terminology ...................................... 6 | |||
| 4. Resource Operations ........................................ 7 | 4. Resource Operations ........................................ 7 | |||
| 4.1. Get-Resource-Attributes Operation ...................... 7 | 4.1. Resource Query Package - REQUIRED ...................... 7 | |||
| 4.1.1. Get-Resource-Attributes Request .................... 8 | 4.1.1. Get-Resource-Attributes Operation .................. 7 | |||
| 4.1.2. Get-Resource-Attributes Response ................... 9 | 4.1.1.1. Get-Resource-Attributes Request ................ 8 | |||
| 4.2. Get-Resource-Data Operation ............................ 10 | 4.1.1.2. Get-Resource-Attributes Response ............... 9 | |||
| 4.2.1. Get-Resource-Data Request .......................... 10 | 4.1.2. Get-Resource-Data Operation ........................ 10 | |||
| 4.2.2. Get-Resource-Data Response ......................... 10 | 4.1.2.1. Get-Resource-Data Request ...................... 10 | |||
| 4.3. Get-Resources Operation ................................ 11 | 4.1.2.2. Get-Resource-Data Response ..................... 11 | |||
| 4.3.1. Get-Resources Request .............................. 11 | 4.1.3. Get-Resources Operation ............................ 11 | |||
| 4.3.2. Get-Resources Response ............................. 12 | 4.1.3.1. Get-Resources Request .......................... 12 | |||
| 4.4. Resource Operation Response Status Codes ............... 13 | 4.1.3.2. Get-Resources Response ......................... 13 | |||
| 5. Resource Attributes ........................................ 14 | 4.2. Resource Admin Package - OPTIONAL ...................... 14 | |||
| 5.1. Table of Required Resource Attributes .................. 14 | 4.2.1. Create-Resource Operation .......................... 14 | |||
| 5.2. Table of Optional Resource Attributes .................. 15 | 4.2.1.1. Create-Resource Request ........................ 14 | |||
| 5.3. Resource Template Attributes ........................... 16 | 4.2.1.2. Create-Resource Response ....................... 16 | |||
| 5.3.1. resource-info (text(127)) .......................... 16 | 4.2.2. Delete-Resource Operation .......................... 17 | |||
| 5.3.2. resource-charset (charset) ......................... 16 | 4.2.2.1. Delete-Resource Request ........................ 17 | |||
| 5.3.3. resource-natural-language (naturalLanguage) ........ 16 | 4.2.2.2. Delete-Resource Response ....................... 18 | |||
| 5.3.4. resource-document-formats (1setOf mimeMediaType) ... 17 | 4.2.3. Refresh-Resource Operation ......................... 18 | |||
| 5.3.5. resource-os-types (1setOf type2 keyword) ........... 17 | 4.2.3.1. Refresh-Resource Request ....................... 19 | |||
| 5.3.6. resource-data-present (boolean) .................... 17 | 4.2.3.2. Refresh-Resource Response ...................... 19 | |||
| 5.3.7. resource-data-uri (1setOf uri) ..................... 18 | 4.2.4. Renew-Resource Operation ........................... 20 | |||
| 5.3.8. resource-data-k-octets (integer(0:MAX)) ............ 18 | 4.2.4.1. Renew-Resource Request ......................... 20 | |||
| 5.3.9. resource-data-compression (type3 keyword) .......... 18 | 4.2.4.2. Renew-Resource Response ........................ 21 | |||
| 5.3.10. resource-create-date-time (dateTime) .............. 19 | 4.3. Printer Operation Extensions - REQUIRED ................ 21 | |||
| 5.3.11. resource-duration (integer(0:MAX)) ................ 19 | 4.3.1. Get-Printer-Attributes Operation ................... 21 | |||
| 5.3.12. resource-persistence (boolean) .................... 19 | 4.4. Resource Operation Response Status Codes ............... 22 | |||
| 5.4. Resource Description Attributes ........................ 20 | 5. Resource Attributes ........................................ 23 | |||
| 5.4.1. resource-type (type2 keyword) ...................... 20 | 5.1. Table of Resource Template Attributes .................. 23 | |||
| 5.4.2. resource-name (name(127)) .......................... 20 | 5.2. Table of Resource Description Attributes ............... 24 | |||
| 5.4.3. resource-id (integer(1:MAX)) ....................... 20 | 5.3. Resource Template Attributes ........................... 24 | |||
| 5.4.4. resource-printer-uri (uri) ......................... 21 | 5.3.1. resource-charset (charset) ......................... 24 | |||
| 5.4.5. resource-create-user-name (name(MAX)) .............. 21 | 5.3.2. resource-natural-language (naturalLanguage) ........ 25 | |||
| 5.4.6. resource-create-time (integer(0:MAX)) .............. 21 | 5.3.3. resource-info (text(127)) .......................... 25 | |||
| 5.4.7. resource-change-time (integer(0:MAX)) .............. 22 | 5.3.4. resource-document-formats (1setOf mimeMediaType) ... 25 | |||
| 5.4.8. resource-refresh-time (integer(0:MAX)) ............. 22 | 5.3.5. resource-create-date-time (dateTime) ............... 25 | |||
| 5.4.9. resource-expiration-time (integer(0:MAX)) .......... 22 | 5.3.6. resource-lease-duration (integer(0:MAX)) ........... 26 | |||
| 6. Driver Resource Type ....................................... 23 | 5.3.7. resource-data-present (boolean) .................... 26 | |||
| 6.1. Table of Required Driver Resource Attributes ........... 23 | 5.3.8. resource-data-uri (1setOf uri) ..................... 27 | |||
| 6.2. Table of Optional Driver Resource Attributes ........... 23 | 5.3.9. resource-data-k-octets (integer(0:MAX)) ............ 27 | |||
| 6.3. Driver Resource Template Attributes .................... 24 | 5.3.10. resource-data-compression (type3 keyword) ......... 28 | |||
| 6.3.1. driver-charset (1setOf charset) .................... 24 | 5.4. Resource Description Attributes ........................ 28 | |||
| 6.3.2. driver-natural-language (1setOf naturalLanguage) ... 24 | 5.4.1. resource-type (type2 keyword) ...................... 28 | |||
| 6.3.3. driver-file-type (type2 keyword) ................... 24 | 5.4.2. resource-name (name(127)) .......................... 28 | |||
| 6.3.4. driver-file-name (name(MAX)) ....................... 25 | 5.4.3. resource-id (integer(1:MAX)) ....................... 29 | |||
| 7. Conformance Requirements ................................... 26 | 5.4.4. resource-printer-uri (uri) ......................... 29 | |||
| 7.1. IPP Client Conformance Requirements .................... 26 | 5.4.5. resource-create-user-name (name(MAX)) .............. 30 | |||
| 7.2. IPP Printer Conformance Requirements ................... 26 | 5.4.6. resource-create-time (integer(0:MAX)) .............. 30 | |||
| 7.2.1. Resource Operations ................................ 26 | 5.4.7. resource-expiration-time (integer(0:MAX)) .......... 30 | |||
| 7.2.2. Resource Attributes ................................ 27 | 5.5. Job Template Attributes for Resources .................. 31 | |||
| 7.2.3. Driver Resource Attributes ......................... 27 | 5.5.1. restype (name (127)) ............................... 31 | |||
| 8. IANA Considerations ........................................ 28 | 5.5.2. restype-required (1setOf name(127)) ................ 31 | |||
| 9. Internationalization Considerations ........................ 28 | 6. Rules for Resource Type Definitions ........................ 32 | |||
| 10. Security Considerations ................................... 28 | 6.1. Do NOT define new operations for Resource .............. 32 | |||
| 11. Encodings of Additional Resource Tags ..................... 28 | 6.2. Define new type keyword for Resource ................... 32 | |||
| 12. References ................................................ 28 | 6.3. Define new type-specific attributes for Resource ....... 32 | |||
| 13. Authors' Addresses ........................................ 29 | 6.4. Define new Printer attributes for Resource ............. 32 | |||
| 14. Appendix A - Change History ............................... 30 | 6.5. Define new Job attributes for Resource ................. 32 | |||
| 14.1. 7 July 2000 - draft-ietf-ipp-get-resource-00.txt ...... 30 | 6.6. Define Printer operation extensions for Resource ....... 33 | |||
| 15. Full Copyright Statement .................................. 30 | 7. Conformance Requirements ................................... 34 | |||
| 7.1. IPP Client Conformance Requirements .................... 34 | ||||
| 7.2. IPP Printer Conformance Requirements ................... 34 | ||||
| 7.2.1. Resource Operations ................................ 34 | ||||
| 7.2.2. Resource Attributes ................................ 35 | ||||
| 8. IANA Considerations ........................................ 36 | ||||
| 9. Internationalization Considerations ........................ 36 | ||||
| 10. Security Considerations ................................... 36 | ||||
| 11. Encodings of Additional Protocol Tags ..................... 36 | ||||
| 11.1. Encodings of Additional Attribute Tags ................ 36 | ||||
| 11.2. Encodings of Additional Operation Tags ................ 36 | ||||
| 12. References ................................................ 37 | ||||
| 13. Authors' Addresses ........................................ 37 | ||||
| 14. Appendix A - Change History ............................... 38 | ||||
| 15. Full Copyright Statement .................................. 38 | ||||
| 1. Introduction | 1. Introduction | |||
| See section 1 'Introduction' in [IPP-MOD] for a full description of | See section 1 'Introduction' in [IPP-MOD] for a full description of | |||
| the IPP document set and overview information about IPP. | the IPP document set and overview information about IPP. | |||
| This document is a submission to the Internet Printing Protocol | This document is a submission to the Internet Printing Protocol | |||
| Working Group of the Internet Engineering Task Force (IETF). | Working Group of the Internet Engineering Task Force (IETF). The | |||
| Comments should be submitted to the ipp@pwg.org mailing list. | open issues in this document each begin 'ISSUE_n:'. Comments should | |||
| be submitted to the ipp@pwg.org mailing list. | ||||
| This IPP Get Resource document specifies an extension to IPP/1.0 | This IPP Resource Object documents specifies an extension to IPP/1.0 | |||
| [RFC-2565] [RFC-2566] and IPP/1.1 [IPP-MOD] [IPP-PRO]. This document | [RFC-2565] [RFC-2566] and IPP/1.1 [IPP-MOD] [IPP-PRO]. This document | |||
| extends the current closed IPP object model with a passive | extends the current IPP object model with a passive polymorphic | |||
| polymorphic object which is intended to satisfy most growth needs for | object type - Resource - to support the long-term evolution of IPP. | |||
| new object types in the long-term evolution of IPP via an extensible | ||||
| object framework. | ||||
| This document defines: Resource object (passive polymorphic object); | ||||
| Resource get operations (e.g., Get-Resource-Attributes); Resource | ||||
| attributes (e.g., "resource-name"); new Printer attributes (e.g., | ||||
| "resource-type-supported"); Resource type of Driver (a morph of the | ||||
| Resource object); methods for supporting 'driver download' to IPP | ||||
| Client systems. | ||||
| This document does not specify other possible Resource operations | This document defines: | |||
| (e.g., 'Create-Resource') or Resource types (e.g., 'font'). A future | - Resource object (passive polymorphic object); | |||
| document may specify a complete set of system admin operations for | - Resource query operations (e.g., Get-Resource-Attributes); | |||
| Resource objects. | - Resource admin operations (e.g., Create-Resource); | |||
| - Resource template attributes (e.g., "resource-charset"); | ||||
| - Resource description attributes (e.g., "resource-name"); and | ||||
| - new Printer attributes (e.g., "resource-type-supported"). | ||||
| This document is laid out as follows: | This document is laid out as follows: | |||
| - Section 2 adds the Resource object to the IPP object model. | - Section 2 adds the Resource object to the IPP object model. | |||
| - Section 3 is the terminology used throughout the document. | - Section 3 is the terminology used throughout the document. | |||
| - Section 4 specifies the operations on Resource objects, including | - Section 4 specifies the operations on Resource objects, including | |||
| new status codes for Resource operations. | new status codes for Resource operations. | |||
| - Section 5 specifies the attributes common to all Resource objects. | - Section 5 specifies the attributes common to all Resource objects. | |||
| - Section 6 specifies the Driver Resource type and its additional | - Section 6 specifies the rules for defining new Resource object | |||
| attributes - to allow client print support (e.g., driver) download | types. | |||
| (all or part of an IPP Client) from an IPP Printer. | ||||
| - Section 7 specifies the conformance requirements for this document. | - Section 7 specifies the conformance requirements for this document. | |||
| - Section 8, 9, and 10 specify IANA, internationalization, and | - Section 8, 9, and 10 specify IANA, internationalization, and | |||
| security considerations. | security considerations. | |||
| - Section 11 allocates new protocol encoding values for this | - Section 11 allocates new protocol encoding values for this | |||
| document. | document. | |||
| - Sections 12, 13, 14, and 15 list references, authors' addresses, | - Sections 12, 13, 14, and 15 list references, authors' addresses, | |||
| skipping to change at page 7, line 13 ¶ | skipping to change at page 7, line 13 ¶ | |||
| See section 12.2 'Model Terminology' in [IPP-MOD]. | See section 12.2 'Model Terminology' in [IPP-MOD]. | |||
| 4. Resource Operations | 4. Resource Operations | |||
| The common semantics of all IPP Resource operations are the ones | The common semantics of all IPP Resource operations are the ones | |||
| defined for all IPP operations in [IPP-MOD], e.g., "operation-id", | defined for all IPP operations in [IPP-MOD], e.g., "operation-id", | |||
| "status-code", "attributes-charset", etc. | "status-code", "attributes-charset", etc. | |||
| See section 3.1 'Common Semantics' in [IPP-MOD]. | See section 3.1 'Common Semantics' in [IPP-MOD]. | |||
| The following three Resource operations are REQUIRED for all IPP | 4.1. Resource Query Package - REQUIRED | |||
| Printers to implement, if they implement Resource objects. | ||||
| 4.1. Get-Resource-Attributes Operation | The following three Resource query operations are REQUIRED for all | |||
| IPP Printers to implement, if they implement Resource objects. | ||||
| 4.1.1. Get-Resource-Attributes Operation | ||||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This operation allows an IPP Client to request the values of | This operation allows an IPP Client to request the values of | |||
| attributes of a Resource object instance and is similar to the | attributes of a Resource object instance and is similar to the | |||
| Get-Job-Attributes operation (see section 3.2.5 in [IPP-MOD]). The | Get-Job-Attributes operation (see section 3.2.5 in [IPP-MOD]). The | |||
| only differences are that the operation is directed at a Resource | only differences are that the operation is directed at a Resource | |||
| object instance rather than a Job object instance, there is a | object instance rather than a Job object instance, there is a | |||
| "resource-type" operation attribute required when querying a Resource | "resource-type" operation attribute required when querying a Resource | |||
| object, and the returned attribute group is a set of Resource object | object, and the returned attribute group is a set of Resource object | |||
| attributes rather than a set of Job object attributes. | attributes rather than a set of Job object attributes. | |||
| For Resources, the possible names of attribute groups are: | For Resources, the possible names of attribute groups are: | |||
| - 'resource-template': the subset of the Resource Template | - 'resource-template': the subset of the Resource Template | |||
| attributes that the implementation supports for Resource objects. | attributes that the implementation supports for Resource objects | |||
| (see section 5.1). | ||||
| - 'resource-description': the subset of the Resource Description | - 'resource-description': the subset of the Resource Description | |||
| attributes that the implementation supports for Resource objects. | attributes that the implementation supports for Resource objects | |||
| (see section 5.2). | ||||
| - 'all': the special group 'all' that includes all attributes that | - 'all': the special group 'all' that includes all attributes that | |||
| the implementation supports for Resource objects. | the implementation supports for Resource objects. | |||
| Since an IPP Client MAY request specific attributes or named groups, | Since an IPP Client MAY request specific attributes or named groups, | |||
| there is a potential that there is some overlap. For example, if an | there is a potential that there is some overlap. For example, if an | |||
| IPP Client requests 'resource-create-time' and | IPP Client requests 'resource-create-time' and | |||
| 'resource-description', the IPP Client is actually requesting the | 'resource-description', the IPP Client is actually requesting the | |||
| "resource-create-time" attribute once by naming it explicitly, and | "resource-create-time" attribute once by naming it explicitly, and | |||
| once by inclusion in the 'resource-description' group. In such | once by inclusion in the 'resource-description' group. In such | |||
| cases, the IPP Printer object NEED NOT return the attribute only once | cases, the IPP Printer object NEED NOT return the attribute only once | |||
| in the response even if it is requested multiple times. The IPP | in the response even if it is requested multiple times. The IPP | |||
| Client SHOULD NOT request the same attribute in multiple ways. | Client SHOULD NOT request the same attribute in multiple ways. | |||
| It is NOT REQUIRED that a Resource object instance support all | 4.1.1.1. Get-Resource-Attributes Request | |||
| attributes belonging to a group (since some attributes are OPTIONAL). | ||||
| However it is REQUIRED that each Resource object instance support all | ||||
| group names. | ||||
| 4.1.1. Get-Resource-Attributes Request | The IPP Client submits the Get-Resource-Attributes request to an IPP | |||
| Printer object. | ||||
| The following groups of attributes are part of the | The IPP Client supplies the following groups of attributes as part of | |||
| Get-Resource-Attributes Request when the request is directed at a | the Get-Resource-Attributes Request: | |||
| Resource object: | ||||
| Group 1: Operation Attributes | Group 1: Operation Attributes | |||
| Natural Language and Character Set: | Natural Language and Character Set: | |||
| The "attributes-charset" and "attributes-natural-language" | The "attributes-charset" and "attributes-natural-language" | |||
| attributes as described in section 3.1.4.1 in [IPP-MOD]. | attributes as described in section 3.1.4.1 in [IPP-MOD]. | |||
| Target: | Target: | |||
| The "printer-uri" (uri) operation attribute which is the target for | The "printer-uri" (uri) operation attribute which is the target for | |||
| this operation as described in section 3.1.5 in [IPP-MOD]. | ALL Resource operations as described in section 3.1.5 in [IPP-MOD]. | |||
| ISSUE_1: The target of all IPP Resource operations is always | ISSUE_1: The target of all IPP Resource operations is always | |||
| simply "printer-uri" and separate required operation attributes are | simply "printer-uri" and separate required operation attributes are | |||
| used to specify resource type and name or ID. This is like IPP | used to specify resource type and name or ID. This is like IPP | |||
| Subscription objects but unlike the earlier IPP Job objects. | Subscription objects but unlike the earlier IPP Job objects. | |||
| Should we continue to follow the IPP Subscription object model? | Should we continue to follow the IPP Subscription object model? | |||
| Resource Type: | Resource Type: | |||
| The "resource-type (type2 keyword)" attribute as described in | The "resource-type (type2 keyword)" attribute as described in | |||
| section 5.2.1 in this document. | section 5.4.1. The IPP Client MUST supply "resource-type" in all | |||
| IPP Resource operation requests. The IPP Printer MUST support and | ||||
| validate "resource-type" in all IPP Resource operation requests. | ||||
| Resource Name or ID: | Resource Name or ID: | |||
| The "resource-name (name(127))" attribute as described in section | The "resource-name (name(127))" attribute as described in section | |||
| 5.2.2 in this document OR | 5.4.2 in this document | |||
| <OR> | ||||
| the "resource-id (integer(1:MAX))" attribute as described in | the "resource-id (integer(1:MAX))" attribute as described in | |||
| section 5.2.3 in this document. | section 5.4.3. | |||
| Requesting User Name: | Requesting User Name: | |||
| The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied | The "requesting-user-name" (name(MAX)) attribute SHOULD be supplied | |||
| by the IPP Client as described in section 8.3 in [IPP-MOD]. | by the IPP Client as described in section 8.3 in [IPP-MOD]. | |||
| "requested-attributes" (1setOf keyword): | "requested-attributes" (1setOf keyword): | |||
| The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | |||
| MUST support this attribute. It is a set of attribute names and/or | MUST support this attribute. It is a set of attribute names and/or | |||
| attribute group names in whose values the requester is interested. | attribute group names in whose values the requester is interested. | |||
| If the IPP Client omits this attribute, the IPP Printer MUST | If the IPP Client omits this attribute, the IPP Printer MUST | |||
| respond as if this attribute had been supplied with a value of | respond as if this attribute had been supplied with a value of | |||
| 'all'. | 'all'. | |||
| 4.1.2. Get-Resource-Attributes Response | 4.1.1.2. Get-Resource-Attributes Response | |||
| The Printer object returns the following sets of attributes as part | The Printer object returns the following sets of attributes as part | |||
| of the Get-Resource-Attributes Response: | of the Get-Resource-Attributes Response: | |||
| Group 1: Operation Attributes | Group 1: Operation Attributes | |||
| Status Message: | Status Message: | |||
| In addition to the REQUIRED status code returned in every response, | In addition to the REQUIRED status code returned in every response, | |||
| the response OPTIONALLY includes a "status-message" (text(255)) | the response OPTIONALLY includes a "status-message" (text(255)) | |||
| and/or a "detailed-status-message" (text(MAX)) operation attribute | and/or a "detailed-status-message" (text(MAX)) operation attribute | |||
| skipping to change at page 9, line 40 ¶ | skipping to change at page 9, line 44 ¶ | |||
| attribute with any supplied values (attribute keywords) that were | attribute with any supplied values (attribute keywords) that were | |||
| requested by the IPP Client but are not supported by the IPP | requested by the IPP Client but are not supported by the IPP | |||
| Printer. If the Printer object does include unsupported attributes | Printer. If the Printer object does include unsupported attributes | |||
| referenced in "requested-attributes" and such attributes include | referenced in "requested-attributes" and such attributes include | |||
| group names, such as 'all', the unsupported attributes MUST NOT | group names, such as 'all', the unsupported attributes MUST NOT | |||
| include attributes described in this document but not supported by | include attributes described in this document but not supported by | |||
| the implementation. | the implementation. | |||
| Group 3: Resource Object Attributes | Group 3: Resource Object Attributes | |||
| This is the set of requested attributes and their current values. | This is the set of requested Resource object attributes and their | |||
| The IPP Printer ignores (does not respond with) any requested | current values, i.e., any of the Resource object attributes in the | |||
| attribute or value which is not supported or which is restricted by | tables in sections 5.1 and 5.2. The IPP Printer ignores (does not | |||
| the security policy in force, including whether the requesting user | respond with) any requested attribute or value which is not | |||
| is the user that created the Resource. However, the IPP Printer | supported or which is restricted by the security policy in force, | |||
| MUST respond with the 'unknown' value for any supported attribute | including whether the requesting user is the user that created the | |||
| (including all REQUIRED attributes) for which the IPP Printer does | Resource object instance. However, the IPP Printer MUST respond | |||
| not know the value, unless it would violate the security policy. | with the 'unknown' value for any supported attribute (including all | |||
| See the description of the "out-of-band" values in the beginning of | REQUIRED attributes) for which the IPP Printer does not know the | |||
| Section 4.1 in [IPP-MOD]. | value, unless it would violate the security policy. See the | |||
| description of the "out-of-band" values in the beginning of Section | ||||
| 4.1 in [IPP-MOD]. | ||||
| 4.2. Get-Resource-Data Operation | See section 5.1 'Table of Resource Template Attributes'. | |||
| See section 5.2 'Table of Resource Description Attributes'. | ||||
| 4.1.2. Get-Resource-Data Operation | ||||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This operation allows an IPP Client to request the values of | This operation allows an IPP Client to request the values of | |||
| attributes of a Resource object instance AND the value of associated | attributes of a Resource object instance AND the value of associated | |||
| Resource data (i.e., this operation is like 'Print-Job'). This | Resource data (i.e., this operation is like 'Print-Job' except that | |||
| the opaque data is transferred in the opposite direction). This | ||||
| operation is a strict superset of the Get-Resource-Attributes | operation is a strict superset of the Get-Resource-Attributes | |||
| operation above. The only difference is that the operation returns | operation above. The only difference is that the operation returns | |||
| Resource data in addition to Resource attributes. This operation is | Resource data in addition to Resource attributes. | |||
| only legal for certain values of "resource-type". | ||||
| Note: This operation is defined (rather than overloading the | This operation is only supported for the "resource-type" values for | |||
| 'Get-Resource-Attributes' operation above) to simplify access control | which the Resource is defined to allow data (e.g., 'form'). If the | |||
| policies. Note that many possible future Resource types (e.g, | IPP Client supplies a value for "resource-type" that does NOT allow | |||
| 'font') have copyright and intellectual property considerations with | Resource data, the IPP Printer MUST return a status code of | |||
| 'client-error-not-possible'. | ||||
| Note: This separate operation is defined (rather than overloading | ||||
| the 'Get-Resource-Attributes' operation above) to simplify access | ||||
| control policies. Note that some Resource types (e.g, 'font') MAY | ||||
| have have copyright and intellectual property considerations with | ||||
| respect to IPP Clients reading their associated data. | respect to IPP Clients reading their associated data. | |||
| 4.2.1. Get-Resource-Data Request | 4.1.2.1. Get-Resource-Data Request | |||
| See section 4.1.1 'Get-Resource-Attributes Request' in this document. | See section 4.1.1.1 'Get-Resource-Attributes Request'. | |||
| The following groups of attributes are part of the Get-Resources | The IPP Client submits the Get-Resource-Data request to an IPP | |||
| request: | Printer object. | |||
| The IPP Client supplies the following groups of attributes as part of | ||||
| the Get-Resource-Data Request: | ||||
| Group 1: Operation Attributes | Group 1: Operation Attributes | |||
| See 'Group 1: Operation Attributes' in section 4.1.1 | See 'Group 1: Operation Attributes' in section 4.1.1.1 | |||
| 'Get-Resource-Attributes Request'. | 'Get-Resource-Attributes Request'. | |||
| 4.2.2. Get-Resource-Data Response | 4.1.2.2. Get-Resource-Data Response | |||
| See section 4.1.2 'Get-Resource-Attributes Response' in this | See section 4.1.1.2 'Get-Resource-Attributes Response'. | |||
| document. | ||||
| Group 1: Operation Attributes | Group 1: Operation Attributes | |||
| See 'Group 1: Operation Attributes' in section 4.1.2 | See 'Group 1: Operation Attributes' in section 4.1.1.2 | |||
| 'Get-Resource-Attributes Response'. | 'Get-Resource-Attributes Response'. | |||
| Group 2: Unsupported Attributes | Group 2: Unsupported Attributes | |||
| See 'Group 2: Unsupported Attributes' in section 4.1.2 | ||||
| See 'Group 2: Unsupported Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | 'Get-Resource-Attributes Response'. | |||
| Group 3: Resource Object Attributes | Group 3: Resource Object Attributes | |||
| See 'Group 3: Resource Object Attributes' in section 4.1.2 | See 'Group 3: Resource Object Attributes' in section 4.1.1.2 | |||
| 'Get-Resource-Attributes Response'. | 'Get-Resource-Attributes Response'. | |||
| Group 4: Resource Data Content | See section 5.1 'Table of Resource Template Attributes'. | |||
| See section 5.3.6 'resource-data-present' in this document. | Group 4: Resource Object Data | |||
| See section 5.x 'resource-data-present'. | ||||
| See section 3.2.1.1 'Print-Job Request' in [IPP-MOD]. | See section 3.2.1.1 'Print-Job Request' in [IPP-MOD]. | |||
| The IPP Printer MUST return the Resource data content (if any) to | The IPP Printer MUST return the Resource data (if any) to the IPP | |||
| the IPP Client, within the constraints of administratively | Client, within the constraints of administratively configured | |||
| configured access control policies and any applicable copyright or | access control policies and any applicable copyright or other | |||
| other intellectual property considerations. | intellectual property considerations. | |||
| 4.3. Get-Resources Operation | 4.1.3. Get-Resources Operation | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This operation allows an IPP Client to retrieve the list of Resource | This operation allows an IPP Client to retrieve the list of Resource | |||
| object instances (of a specified resource type) belonging to the | object instances (of a specified resource type) belonging to the | |||
| target Printer object. The IPP Client may also supply a list of | target Printer object. The IPP Client may also supply a list of | |||
| Resource attribute names and/or attribute group names. A group of | Resource attribute names and/or attribute group names. A group of | |||
| Resource object attributes will be returned for each Resource object | Resource object attributes will be returned for each Resource object | |||
| instance that is returned. | instance that is returned. | |||
| This operation is similar to the Get-Resource-Attributes operation, | This operation is similar to the Get-Resource-Attributes operation, | |||
| except that this Get-Resources operation returns attributes from | except that this Get-Resources operation returns attributes from | |||
| possibly more than one object. | possibly more than one object. | |||
| See section 3.2.6 'Get-Jobs Operation' in [IPP-MOD]. | See section 3.2.6 'Get-Jobs Operation' in [IPP-MOD]. | |||
| 4.3.1. Get-Resources Request | 4.1.3.1. Get-Resources Request | |||
| The IPP Client submits the Get-Resources request to an IPP Printer | The IPP Client submits the Get-Resources request to an IPP Printer | |||
| object. | object. | |||
| The following groups of attributes are part of the Get-Resources | The IPP Client supplies the following groups of attributes as part of | |||
| request: | the Get-Resources Request: | |||
| Group 1: Operation Attributes | Group 1: Operation Attributes | |||
| See 'Group 1: Operation Attributes' in section 4.1.1 | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | 'Get-Resource-Attributes Request'. | |||
| Resource Name or ID: | Resource Name or ID: | |||
| [omitted] | The IPP Client MUST NOT send either "resource-name" or | |||
| "resource-id". The IPP Printer MUST return them as Unsupported | ||||
| Attributes if supplied and MUST reject the Get-Resources operation. | ||||
| "limit" (integer(1:MAX)): | "limit" (integer(1:MAX)): | |||
| [added] | [added] | |||
| The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | |||
| MUST MUST support this attribute. It is an integer value that | MUST support this attribute. It is an integer value that | |||
| determines the maximum number of resources that an IPP Client will | determines the maximum number of resources that an IPP Client will | |||
| receive from the IPP Printer. | receive from the IPP Printer. | |||
| Groups 2 to N: Resource Filter Attributes | Groups 2 to N: Resource Filter Attributes | |||
| [added] | ||||
| See 'Group 3: Resource Object Attributes' in section 4.1.2 | See 'Group 3: Resource Object Attributes' in section 4.1.1.2 | |||
| 'Get-Resource-Attributes Response'. | 'Get-Resource-Attributes Response'. | |||
| This is the set of filter attributes and their filter values. The | This is the set of filter attributes and their filter values. The | |||
| IPP Printer ignores Resources which do not satisfy the specified | IPP Printer ignores Resources which do not satisfy the specified | |||
| filter. A multi-valued filter attribute matches if the | filter. A multi-valued filter attribute matches if the | |||
| corresponding Resource object instance attribute contains all of | corresponding Resource object instance attribute contains all of | |||
| the one or more values of the multi-valued filter attribute. | the one or more values of the multi-valued filter attribute. | |||
| The filter criteria in each Resource Filter Attribute group MUST | The filter criteria in each Resource Filter Attribute group MUST | |||
| all be true for a match (logical AND within the set). But only ONE | all be true for a match (logical AND within the set). But only ONE | |||
| Resource Filter Group need be true for a match (logical OR across | Resource Filter Group need be true for a match (logical OR across | |||
| the sets). | the sets). | |||
| 4.3.2. Get-Resources Response | ISSUE_2: What mechanism should we use for filters? | |||
| 1. Group mechanism with multiple new Resource Filter Attributes | ||||
| groups, limited to simple logical AND and OR filters? | ||||
| 2. Simple mechanism with new "resource-filter (collection)" | ||||
| operation attribute in Get-Resources operations, limited to one | ||||
| simple logical AND filter? | ||||
| 3. Robust mechanism with new "resource-filter (text)" operation | ||||
| attribute in Get-Resources operations, supporting full LDAPv3 | ||||
| string attribute filters or a profile (subset) of LDAPv3 | ||||
| filters? | ||||
| See 'String Representation of LDAP Search Filters' [RFC-2254]. | ||||
| [Editor - favors solution 3 at this writing] | ||||
| 4.1.3.2. Get-Resources Response | ||||
| The Printer object returns all of the Resource object instances, up | The Printer object returns all of the Resource object instances, up | |||
| to the number specified by the "limit" attribute, that match the | to the number specified by the "limit" attribute, that match the | |||
| criteria as defined by the filter attribute values supplied by the | criteria as defined by the filter attribute values supplied by the | |||
| IPP Client in the request. It is possible that no Resource objects | IPP Client in the request. It is possible that no Resource objects | |||
| are returned since there may literally be none at the Printer, or | are returned since there may literally be none at the Printer, or | |||
| there may be no Resource objects that match the criteria supplied by | there may be no Resource objects that match the criteria supplied by | |||
| the IPP Client. If the IPP Client requests any Resource attributes | the IPP Client. If the IPP Client requests any Resource attributes | |||
| at all, there is a set of Resource Object Attributes returned for | at all, there is a set of Resource Object Attributes returned for | |||
| each Resource object instance. | each Resource object instance. | |||
| skipping to change at page 13, line 13 ¶ | skipping to change at page 13, line 45 ¶ | |||
| matching the criteria, then the status code for 0 Resources MUST be | matching the criteria, then the status code for 0 Resources MUST be | |||
| 'successful-ok'. | 'successful-ok'. | |||
| Group 1: Operation Attributes | Group 1: Operation Attributes | |||
| See 'Group 1: Operation Attributes' in section 4.3.1 | See 'Group 1: Operation Attributes' in section 4.3.1 | |||
| 'Get-Resources Request'. | 'Get-Resources Request'. | |||
| Group 2: Unsupported Attributes | Group 2: Unsupported Attributes | |||
| See 'Group 2: Unsupported Attributes' in section 4.1.2 | See 'Group 2: Unsupported Attributes' in section 4.1.1.2 | |||
| 'Get-Resource-Attributes Response'. | 'Get-Resource-Attributes Response'. | |||
| Groups 3 to N: Resource Object Attributes | Groups 3 to N: Resource Object Attributes | |||
| See 'Group 3: Resource Object Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | ||||
| See 'Group 3: Resource Object Attributes' in section 4.1.2 | See section 5.1 'Table of Resource Template Attributes'. | |||
| Resource object instances MUST be returned sorted by "resource-id". | ||||
| ISSUE_3: Should we require that Resource object instances are always | ||||
| returned sorted by "resource-id" (as stated above) and not by | ||||
| "resource-name" (more user-friendly). Should we add an operation | ||||
| attribute to control the choice of sort order? | ||||
| 4.2. Resource Admin Package - OPTIONAL | ||||
| The following four Resource admin operations are OPTIONAL for all IPP | ||||
| Printers to implement, if they implement Resource objects. However, | ||||
| when implemented, these four Resource admin operations MUST be | ||||
| implemented as a package (all four). | ||||
| Note: The Set-Resource operation is intentionally NOT defined here. | ||||
| For simplicity and robustness, Resource object instances are entirely | ||||
| static, except that their leases MAY be renewed with the | ||||
| Renew-Resource operation. | ||||
| 4.2.1. Create-Resource Operation | ||||
| OPTIONAL - for IPP Printers to implement. | ||||
| This operation allows an authorized IPP Client to create a Resource | ||||
| object instance on this IPP Printer and to send OPTIONAL Resource | ||||
| data for local storage on the IPP Printer along with the Resource | ||||
| object attributes for those values of "resource-type" which are | ||||
| defined to allow Resource data. | ||||
| Note: Specific Resource types (values of "resource-type") constrain | ||||
| whether Resource data may be sent with the Create-Resource operation. | ||||
| 4.2.1.1. Create-Resource Request | ||||
| The IPP Client submits the Create-Resource request to an IPP Printer | ||||
| object. | ||||
| The IPP Client supplies the following groups of attributes as part of | ||||
| the Create-Resource Request: | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| "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. | ||||
| "resource-id" (integer(1:MAX)): | ||||
| [omitted] | ||||
| The IPP Client MUST NOT send "resource-id" and the IPP Printer MUST | ||||
| return it in Unsupported Attributes if supplied. | ||||
| "requested-attributes" (1setOf keyword): | ||||
| The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | ||||
| MUST support this attribute. It is a set of attribute names and/or | ||||
| attribute group names in whose values the requester is interested. | ||||
| If the IPP Client omits this attribute, the IPP Printer MUST | ||||
| respond as if this attribute had been supplied with a value of | ||||
| 'all'. | ||||
| ISSUE_4: Should we make Resources more Subscriptions (and Jobs) | ||||
| and just drop the "requested-attributes" from all of the Resource | ||||
| admin operations? Then "requested-attributes" would only be | ||||
| permitted in the Resource query operations. | ||||
| Group 2: Resource Object Attributes | ||||
| This is the set of IPP Client supplied Resource Template attributes | ||||
| and their new values, i.e., any of the Resource object attributes | ||||
| in section 5.1. | ||||
| The IPP Client MUST supply the "resource-create-date-time" | ||||
| attribute (see section 5.3.5). All other Resource attributes are | ||||
| OPTIONAL for the IPP Client to supply. | ||||
| See 'Group 3: Resource Object Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | 'Get-Resource-Attributes Response'. | |||
| Resource object instances are returned sorted by "resource-id". | See section 5.1 'Table of Resource Template Attributes'. | |||
| ISSUE_2: Resource object instances are always returned sorted by | Group 3: Resource Object Data | |||
| "resource-id" and not by "resource-name" (more user-friendly). | ||||
| Should we add an operation attribute to control the sort order? | See section 5.x 'resource-data-present'. | |||
| See section 3.2.1.1 'Print-Job Request' in [IPP-MOD]. | ||||
| The IPP Client OPTIONALLY sends the Resource data (if any) to the | ||||
| IPP Printer, within the constraints of administratively configured | ||||
| access control policies and any applicable copyright or other | ||||
| intellectual property considerations. If the IPP Client supplies | ||||
| Resource data for a Resource type that is not defined to allow | ||||
| Resource data, the IPP Printer MUST reject the request and return a | ||||
| status code of 'client-error-not-possible'. | ||||
| 4.2.1.2. Create-Resource Response | ||||
| See section 4.1.1.2 'Get-Resource-Attributes Response'. | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | ||||
| Group 2: Unsupported Attributes | ||||
| See 'Group 2: Unsupported Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | ||||
| Group 3: Resource Object Attributes | ||||
| This group MUST be returned if and only if the "status-code" | ||||
| parameter returned in Group 1 has the value 'successful-ok' or | ||||
| 'successful-ok-ignored-or-substituted-attributes'. All IPP | ||||
| Printers MUST return the following Resource attributes in | ||||
| successful Create-Resource responses: | ||||
| "resource-id" (integer(1:MAX)) -- generated by the IPP Printer | ||||
| "resource-lease-duration" (integer(0:MAX)) -- lease actually | ||||
| granted | ||||
| All IPP Printers MUST support the "requested-attributes" operation | ||||
| attribute and conform to the behavior described in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| See 'Group 3: Resource Object Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | ||||
| See section 5.1 'Table of Resource Template Attributes'. | ||||
| In addition to the MANDATORY parameters required for every operation | ||||
| request, the simplest Create-Resource Request consists of just the | ||||
| "attributes-charset", "attributes-natural-language", "resource-type", | ||||
| and "resource-name" operation attributes; the "printer-uri" target | ||||
| operation attribute; the OPTIONAL Resource data (if any) and nothing | ||||
| else. In this simplest case, the IPP Printer object: | ||||
| - creates a new Resource object (the Resource object MAY contain | ||||
| Resource data); | ||||
| - generates a locally unique "resource-id" for the new Resource; | ||||
| - stores the name supplied by the IPP Client in the "resource-name" | ||||
| attribute in the natural language and charset requested (see | ||||
| Section 3.1.4.1 of [IPP-MOD]) (if those are supported, otherwise | ||||
| using the Printer object's default natural language and charset); | ||||
| and | ||||
| - uses its corresponding default value attributes (e.g., | ||||
| "resource-lease-duration-default") for the supported Resource | ||||
| Template attributes that were not supplied by the IPP Client in the | ||||
| Create-Resource operation. | ||||
| 4.2.2. Delete-Resource Operation | ||||
| OPTIONAL - for IPP Printers to implement. | ||||
| This operation allows an authorized IPP Client to delete a Resource | ||||
| object instance on this IPP Printer. | ||||
| 4.2.2.1. Delete-Resource Request | ||||
| The IPP Client submits the Delete-Resource request to an IPP Printer | ||||
| object. | ||||
| The IPP Client supplies the following groups of attributes as part of | ||||
| the Delete-Resource Request: | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| Resource Name or ID: | ||||
| The "resource-name (name(127))" attribute as described in section | ||||
| 5.4.2 in this document | ||||
| <OR> | ||||
| the "resource-id (integer(1:MAX))" attribute as described in | ||||
| section 5.4.3. | ||||
| "requested-attributes" (1setOf keyword): | ||||
| The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | ||||
| MUST support this attribute. It is a set of attribute names and/or | ||||
| attribute group names in whose values the requester is interested. | ||||
| If the IPP Client omits this attribute, the IPP Printer MUST | ||||
| respond as if this attribute had been supplied with a value of | ||||
| 'all'. | ||||
| 4.2.2.2. Delete-Resource Response | ||||
| See section 4.1.1.2 'Get-Resource-Attributes Response'. | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | ||||
| Group 2: Resource Object Attributes | ||||
| This group MUST be returned if and only if the "status-code" | ||||
| parameter returned in Group 1 has the value 'successful-ok'. All | ||||
| IPP Printers MUST return the following Resource attribute in | ||||
| successful Delete-Resource responses: | ||||
| "resource-id" (integer(1:MAX)) | ||||
| All IPP Printers MUST support the "requested-attributes" operation | ||||
| attribute and conform to the behavior described in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| 4.2.3. Refresh-Resource Operation | ||||
| OPTIONAL - for IPP Printers to implement. | ||||
| This operation allows an authorized IPP Client to refresh a Resource | ||||
| object instance on this IPP Printer (i.e., fetch the Resource data | ||||
| and locally cache it, setting "resource-data-present" to 'true' and | ||||
| "resource-data-k-octets" to the actual size). | ||||
| 4.2.3.1. Refresh-Resource Request | ||||
| The IPP Client submits the Refresh-Resource request to an IPP Printer | ||||
| object. | ||||
| The IPP Client supplies the following groups of attributes as part of | ||||
| the Refresh-Resource Request: | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| Resource Name or ID: | ||||
| The "resource-name (name(127))" attribute as described in section | ||||
| 5.4.2 in this document | ||||
| <OR> | ||||
| the "resource-id (integer(1:MAX))" attribute as described in | ||||
| section 5.4.3. | ||||
| "requested-attributes" (1setOf keyword): | ||||
| The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | ||||
| MUST support this attribute. It is a set of attribute names and/or | ||||
| attribute group names in whose values the requester is interested. | ||||
| If the IPP Client omits this attribute, the IPP Printer MUST | ||||
| respond as if this attribute had been supplied with a value of | ||||
| 'all'. | ||||
| 4.2.3.2. Refresh-Resource Response | ||||
| See section 4.1.1.2 'Get-Resource-Attributes Response'. | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | ||||
| Group 2: Resource Object Attributes | ||||
| This group MUST be returned if and only if the "status-code" | ||||
| parameter returned in Group 1 has the value 'successful-ok'. All | ||||
| IPP Printers MUST return the following Resource attribute in | ||||
| successful Refresh-Resource responses: | ||||
| "resource-id" (integer(1:MAX)) | ||||
| All IPP Printers MUST support the "requested-attributes" operation | ||||
| attribute and conform to the behavior described in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| 4.2.4. Renew-Resource Operation | ||||
| OPTIONAL - for IPP Printers to implement. | ||||
| This operation allows an authorized IPP Client to renew the (finite) | ||||
| lease of a Resource object instance on this IPP Printer (i.e., renew | ||||
| the Resource lease for "resource-duration" forward from the current | ||||
| time). | ||||
| 4.2.4.1. Renew-Resource Request | ||||
| The IPP Client submits the Renew-Resource request to an IPP Printer | ||||
| object. | ||||
| The IPP Client supplies the following groups of attributes as part of | ||||
| the Renew-Resource Request: | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| Resource Name or ID: | ||||
| The "resource-name (name(127))" attribute as described in section | ||||
| 5.4.2 in this document | ||||
| <OR> | ||||
| the "resource-id (integer(1:MAX))" attribute as described in | ||||
| section 5.4.3. | ||||
| "requested-attributes" (1setOf keyword): | ||||
| The IPP Client OPTIONALLY supplies this attribute. The IPP Printer | ||||
| MUST support this attribute. It is a set of attribute names and/or | ||||
| attribute group names in whose values the requester is interested. | ||||
| If the IPP Client omits this attribute, the IPP Printer MUST | ||||
| respond as if this attribute had been supplied with a value of | ||||
| 'all'. | ||||
| Group 2: Resource Object Attributes | ||||
| "resource-lease-duration" (integer(0:MAX)) | ||||
| Note: Even though Resource objects are static (i.e, there is no | ||||
| Set-Resource operation defined, intentionally), an IPP Client MAY | ||||
| supply a new (possibly different) value for | ||||
| "resource-lease-duration". As always, the IPP Printer MAY grant a | ||||
| shorter lease according to the value of the Printer attribute | ||||
| "resource-lease-duration-supported". | ||||
| in a Renew-Resource operation. | ||||
| 4.2.4.2. Renew-Resource Response | ||||
| See section 4.1.1.2 'Get-Resource-Attributes Response'. | ||||
| Group 1: Operation Attributes | ||||
| See 'Group 1: Operation Attributes' in section 4.1.1.2 | ||||
| 'Get-Resource-Attributes Response'. | ||||
| Group 2: Resource Object Attributes | ||||
| This group MUST be returned if and only if the "status-code" | ||||
| parameter returned in Group 1 has the value 'successful-ok'. All | ||||
| IPP Printers MUST return the following Resource attributes in | ||||
| successful Renew-Resource responses: | ||||
| "resource-id" (integer(1:MAX)) | ||||
| "resource-lease-duration" (integer(0:MAX)) | ||||
| All IPP Printers MUST support the "requested-attributes" operation | ||||
| attribute and conform to the behavior described in section 4.1.1.1 | ||||
| 'Get-Resource-Attributes Request'. | ||||
| 4.3. Printer Operation Extensions - REQUIRED | ||||
| 4.3.1. Get-Printer-Attributes Operation | ||||
| This operation is extended so that it returns Printer attributes | ||||
| defined . | ||||
| All IPP Printers that support IPP Resource objects MUST implement | ||||
| this extension to the 'Get-Printer-Attributes' operation. | ||||
| In addition to the requirements of [IPP-MOD] section 3.2.5, an IPP | ||||
| Printer MUST support the following additional values for the | ||||
| "requested-attributes" Operation attribute in this operation and | ||||
| return such attributes in the Printer Object Attributes group of its | ||||
| response. | ||||
| 1. Resource Template Attributes: ALL "xxx-default" attributes in | ||||
| column 1 of section 5.1 'Table of Resource Template Attributes'. | ||||
| 2. New Printer Description Attributes: ALL "xxx-supported" | ||||
| attributes in column 1 of section 5.1 'Table of Resource Template | ||||
| Attributes'. | ||||
| 3. New Group Name: The 'resource-template' group name, which names | ||||
| all supported Resource Template attributes in section 5.1 'Table | ||||
| of Resource Template Attributes'. This group name is also used in | ||||
| the Get-Resources-Attributes and Get-Resources operation with an | ||||
| analogous meaning. | ||||
| 4. Extended Group Name: The 'all' group name, which names all IPP | ||||
| Printer attributes according to [IPP-MOD] section 3.2.5. In this | ||||
| extension 'all' names all attributes specified in [IPP-MOD] plus | ||||
| those named in items 1 and 2 of this list. | ||||
| 4.4. Resource Operation Response Status Codes | 4.4. Resource Operation Response Status Codes | |||
| client-error-not-authenticated | client-error-not-authenticated | |||
| client-error-not-authorized | client-error-not-authorized | |||
| client-error-resource-type-not-supported | client-error-resource-type-not-supported | |||
| client-error-resource-data-not-supported | client-error-resource-data-not-supported | |||
| client-error-resource-data-not-present | client-error-resource-data-not-present | |||
| 5. Resource Attributes | 5. Resource Attributes | |||
| 5.1. Table of Required Resource Attributes | All IPP Resource attributes presently defined are REQUIRED for all IPP | |||
| Printer implementations of Resource objects. | ||||
| All IPP Printers that support Resource objects MUST implement the | ||||
| following REQUIRED attributes defined in this specification (on the | ||||
| Resource object or the Printer object): | ||||
| Resource Attribute Resource Attribute Type | ||||
| Operation or Resource Group | ||||
| Printer Attribute Printer Attribute Type | ||||
| ----------------------------------- -------------------------- | ||||
| resource-type (type2 keyword) | ||||
| resource-type [Operation group] | ||||
| resource-type-supported (1setOf type2 keyword) | ||||
| resource-name (name(127)) | 5.1. Table of Resource Template Attributes | |||
| resource-name [Operation group] | ||||
| [none] | ||||
| resource-id (integer(1:MAX)) | All IPP Printers that support IPP Resource objects MUST implement ALL | |||
| resource-id [Operation group] | of the following REQUIRED Resource Template attributes defined in | |||
| max-resources-supported (integer(0:MAX)) | this specification (on the Resource object or the Printer object as | |||
| specified below). | ||||
| resource-printer-uri (uri) | All Resource Template attributes are passed in a Resource Attributes | |||
| printer-uri [Operation group] | Group in IPP Resource operations. | |||
| printer-uri-supported (1setOf uri) | ||||
| Resource Object Attribute Resource Attribute Type | ||||
| Printer Object Attribute(s) Printer Attribute Type(s) | ||||
| ----------------------------------- ----------------------------- | ||||
| resource-charset (charset) | resource-charset (charset) | |||
| attributes-charset [Operation group] | ||||
| charset-configured (charset) | charset-configured (charset) | |||
| charset-supported (1setOf charset) | charset-supported (1setOf charset) | |||
| resource-natural-language (naturalLanguage) | resource-natural-language (naturalLanguage) | |||
| attributes-natural-language [Operation group] | ||||
| natural-language-configured (naturalLanguage) | natural-language-configured (naturalLanguage) | |||
| generated-natural-language-supported (1setOf naturalLanguage) | generated-natural-language-supported (1setOf naturalLanguage) | |||
| resource-info (text(127)) | ||||
| [no default/supported on Printer] | ||||
| resource-document-formats (1setOf mimeMediaType) | ||||
| document-format-default (mimeMediaType) | ||||
| document-format-supported (1setOf mimeMediaType) | ||||
| resource-create-date-time (dateTime) | ||||
| [no default/supported on Printer] | ||||
| resource-lease-duration (integer(0:MAX)) | ||||
| resource-lease-duration-default (integer(0:MAX)) | ||||
| resource-lease-duration-supported (rangeOfInteger(0:MAX)) | ||||
| resource-data-present (boolean) | resource-data-present (boolean) | |||
| resource-data-present [Resource group] | [no default on Printer] | |||
| resource-data-present-supported (1setOf boolean) | resource-data-present-supported (1setOf boolean) | |||
| resource-data-uri (1setOf uri) | resource-data-uri (1setOf uri) | |||
| resource-data-uri [Resource group] | [no default on Printer] | |||
| resource-data-schemes-supported (1setOf uri) | reference-uri-schemes-supported (1setOf uriScheme) | |||
| resource-data-k-octets (integer(0:MAX)) | resource-data-k-octets (integer(0:MAX)) | |||
| resource-data-k-octets [Resource group] | [no default on Printer] | |||
| resource-data-k-octets-supported (rangeOfInteger (0:MAX)) | resource-data-k-octets-supported (rangeOfInteger (0:MAX)) | |||
| resource-data-compression (type3 keyword) | resource-data-compression (type3 keyword) | |||
| resource-data-compression [Resource group] | [no default on Printer] | |||
| compression-supported (1setOf type3 keyword) | compression-supported (1setOf type3 keyword) | |||
| resource-create-user-name (name(MAX)) | 5.2. Table of Resource Description Attributes | |||
| requesting-user-name [Operation group] | ||||
| [none] | ||||
| resource-create-date-time (dateTime) | ||||
| resource-create-date-time [Resource group] | ||||
| [none] | ||||
| resource-create-time (integer(0:MAX)) | ||||
| [none] | ||||
| printer-current-time (integer(0:MAX)) | ||||
| resource-expiration-time (integer(0:MAX)) | ||||
| [none] | ||||
| [printer-current-time + duration] | ||||
| resource-duration (integer(0:MAX)) | ||||
| resource-duration [Resource group] | ||||
| resource-duration-default (integer(0:MAX)) | ||||
| resource-duration-supported (rangeOfInteger(0:MAX)) | ||||
| resource-persistence (boolean) | ||||
| resource-persistence [Resource group] | ||||
| resource-persistence-supported (boolean) | ||||
| 5.2. Table of Optional Resource Attributes | All IPP Printers that support IPP Resource objects MUST implement ALL | |||
| of the following REQUIRED Resource Description attributes defined in | ||||
| this specification (on the Resource object or the Printer object as | ||||
| specified below). | ||||
| All IPP Printers that support Resource objects MAY implement the | All Resource Description attributes that MAY be supplied by an IPP | |||
| following OPTIONAL attributes defined in this specification (on the | Client are passed in an Operation Attributes Group in IPP Resource | |||
| Resource object or the Printer object): | operations. | |||
| Resource Attribute Resource Attribute Type | Resource Description Attribute Resource Attribute Type | |||
| Operation or Resource Group | ||||
| Printer Attribute Printer Attribute Type | ||||
| ----------------------------------- -------------------------- | ----------------------------------- -------------------------- | |||
| resource-info (text(127)) | resource-type (type2 keyword) | |||
| resource-info [Resource group] | ||||
| [none] | ||||
| resource-document-formats (1setOf mimeMediaType) | ||||
| document-format-default (mimeMediaType) | ||||
| document-format-supported (1setOf mimeMediaType) | ||||
| resource-os-types (1setOf type2 keyword) | ||||
| resource-os-types-default (1setOf type2 keyword) | ||||
| resource-os-types-supported (1setOf type2 keyword) | ||||
| resource-change-time (integer(0:MAX)) | resource-name (name(127)) | |||
| [none] | ||||
| [none] | ||||
| resource-refresh-time (integer(0:MAX)) | resource-id (integer(1:MAX)) | |||
| [none] | ||||
| [none] | ||||
| 5.3. Resource Template Attributes | resource-printer-uri (uri) | |||
| 5.3.1. resource-info (text(127)) | resource-create-user-name (name(MAX)) | |||
| OPTIONAL - for IPP Printers to implement. | resource-create-time (integer(0:MAX)) | |||
| This attribute specifies descriptive information about this Resource | resource-expiration-time (integer(0:MAX)) | |||
| object. This may include manufacturer, version, copyright, etc. | ||||
| See section 4.4.6 'printer-info' and section 4.4.9 | 5.3. Resource Template Attributes | |||
| 'printer-make-and-model' in [IPP-MOD]. | ||||
| 5.3.2. resource-charset (charset) | 5.3.1. resource-charset (charset) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute specifies the charset of 'text' and 'name' attributes | This attribute specifies the charset of 'text' and 'name' attributes | |||
| of the Resource and of textual data in the associated Resource data | of the Resource and of textual data in the associated Resource data | |||
| (if any). | (if any). | |||
| 5.3.3. resource-natural-language (naturalLanguage) | 5.3.2. resource-natural-language (naturalLanguage) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute specifies the natural language of 'text' and 'name' | This attribute specifies the natural language of 'text' and 'name' | |||
| attributes of the Resource and of textual data in the associated | attributes of the Resource and of textual data in the associated | |||
| Resource data (if any). | Resource data (if any). | |||
| 5.3.3. resource-info (text(127)) | ||||
| REQUIRED - for IPP Printers to implement. | ||||
| This attribute specifies descriptive information about this Resource | ||||
| object. This may include manufacturer, version, copyright, etc. | ||||
| See section 4.4.6 'printer-info' in [IPP-MOD]. | ||||
| See section 4.4.9 'printer-make-and-model' in [IPP-MOD]. | ||||
| 5.3.4. resource-document-formats (1setOf mimeMediaType) | 5.3.4. resource-document-formats (1setOf mimeMediaType) | |||
| OPTIONAL - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute specifies the list of document formats supported by | This attribute specifies the list of document formats supported by | |||
| the Resource. | the Resource (e.g., 'application/postscript' for a Resource of type | |||
| 'font'). | ||||
| 5.3.5. resource-os-types (1setOf type2 keyword) | 5.3.5. resource-create-date-time (dateTime) | |||
| OPTIONAL - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute specifies the list of target operating system types of | This attribute indicates the date and time at which the Resource | |||
| the Resource. | object instance was created. | |||
| See IANA registry of operating system names at [OS-TYPE]. | IPP Resource objects created during product manufacturing (via | |||
| software download to the IPP Printer, for example) MUST include a | ||||
| vendor-supplied value for "resource-create-date-time". This value | ||||
| SHOULD reflect the actual 'build date' of the Resource, rather than | ||||
| simply the 'install date' on the IPP Printer, because this is more | ||||
| informative for the end user. | ||||
| 5.3.6. resource-data-present (boolean) | IPP Resource objects created with the Create-Resource operation MUST | |||
| include an IPP Client-supplied value for "resource-create-date-time" | ||||
| in the create request. | ||||
| See section 4.4.30 'printer-current-time' in [IPP-MOD]. | ||||
| See section 4.3.14.5 'date-time-at-creation' in [IPP-MOD]. | ||||
| 5.3.6. resource-lease-duration (integer(0:MAX)) | ||||
| REQUIRED - for IPP Printers to implement. | ||||
| This attribute indicates length of the Resource object instance lease | ||||
| in seconds. | ||||
| If this attribute is zero '0', then the lease on this Resource object | ||||
| instance is infinite (i.e., the lease never expires). | ||||
| If this attribute is non-zero, then this Resource object instance has | ||||
| a finite lease and expires according to "resource-expiration-time" | ||||
| granted by the IPP Printer. | ||||
| See section 5.x 'resource-create-time'. | ||||
| See section 5.x 'resource-expiration-time'. | ||||
| 5.3.7. resource-data-present (boolean) | ||||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| The attribute indicates whether or not a local copy of the Resource | The attribute indicates whether or not a local copy of the Resource | |||
| data is present at the IPP Printer. | data is present at the IPP Printer. | |||
| This attribute MUST default to 'false', if not supplied by the IPP | ||||
| Client in the Create-Resource operation. | ||||
| When "resource-data-present" is 'true' on a Resource object instance, | When "resource-data-present" is 'true' on a Resource object instance, | |||
| it indicates that the IPP Printer has stored a local copy of the | it indicates that the IPP Printer has stored a local copy of the | |||
| Resource data or has fetched a local copy of the Resource data that | Resource data or has fetched a local copy of the Resource data that | |||
| was specified by reference in "resource-data-uri". | was specified by reference in "resource-data-uri". | |||
| When "resource-data-present" is 'false' on a Resource object instance | When "resource-data-present" is 'false' on a Resource object instance | |||
| and "resource-data-uri" is empty, it indicates that there is no | and "resource-data-uri" is empty, it indicates that there is no | |||
| Resource data. | Resource data. | |||
| When "resource-data-present" is 'false' on a Resource object instance | When "resource-data-present" is 'false' on a Resource object instance | |||
| and "resource-data-uri" is non-empty, it indicates that the IPP | and "resource-data-uri" is non-empty, it indicates that the IPP | |||
| Printer has NOT yet fetched a local copy of the Resource data that | Printer has NOT yet fetched a local copy of the Resource data that | |||
| was specified by reference and the value of "resource-data-k-octets" | was specified by reference and the value of "resource-data-k-octets" | |||
| is unverified. | is unverified. | |||
| See section 5.3.7 "resource-data-uri" in this document. | See section 4.2.3 'Refresh-Resource Operation'. | |||
| See section 5.3.8 "resource-data-k-octets" in this document. | ||||
| 5.3.7. resource-data-uri (1setOf uri) | 5.3.8. resource-data-uri (1setOf uri) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute contains the URI of associated Resource data (if any) | This attribute contains the URI of associated Resource data (if any) | |||
| as a reference. | as a reference. | |||
| Lazy Refresh: | Lazy Refresh: | |||
| An IPP Printer NEED NOT immediately fetch a local copy of the | An IPP Printer NEED NOT immediately fetch a local copy of the | |||
| Resource data specified by reference in "resource-data-uri", but MUST | Resource data specified by reference in "resource-data-uri", but MUST | |||
| set "resource-data-present" to 'false' until a local copy is fetched. | set "resource-data-present" to 'false' until a local copy is fetched. | |||
| When an IPP Printer does fetch a local copy of the Resource data, it | When an IPP Printer does fetch a local copy of the Resource data, it | |||
| MUST set (REQUIRED) "resource-data-present" to 'true', set (REQUIRED) | MUST set (REQUIRED) "resource-data-present" to 'true' and set | |||
| "resource-data-k-octets" to the actual size, and update the timestamp | (REQUIRED) "resource-data-k-octets" to the actual size. | |||
| in the (OPTIONAL) "resource-refresh-time" attribute. | ||||
| ISSUE_3: This 'lazy refresh' behavior may have performance and | ISSUE_5: This 'lazy refresh' behavior may have performance and | |||
| 'stale data' consequences for IPP Clients. Because the manufacturer | 'stale data' consequences for IPP Clients. Because the manufacturer | |||
| may also be slow to inform installed IPP Printers of a new version of | may also be slow to inform installed IPP Printers of a new version of | |||
| a Resource (for update by means outside of this specification) the | a Resource (for update by means outside of this specification) the | |||
| 'stale data' problem may also apply to IPP Printers. Should we add | 'stale data' problem may also apply to IPP Printers. Should we add | |||
| an operation attribute to prevent this 'lazy refresh' behavior? | an operation attribute to PREVENT this 'lazy refresh' behavior? | |||
| See section 5.3.6 "resource-data-present" in this document. | See section 4.2.3 'Refresh-Resource Operation'. | |||
| See section 5.x 'resource-data-present'. | ||||
| See section 4.4.27 'reference-uri-schemes-supported' in [IPP-MOD]. | See section 4.4.27 'reference-uri-schemes-supported' in [IPP-MOD]. | |||
| See section 3.2.2 'Print-URI' in [IPP-MOD]. | See section 3.2.2 'Print-URI' in [IPP-MOD]. | |||
| 5.3.8. resource-data-k-octets (integer(0:MAX)) | 5.3.9. resource-data-k-octets (integer(0:MAX)) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute contains the size of associated Resource data (if | This attribute contains the size of associated Resource data (if | |||
| any). | 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. | ||||
| See 'Lazy Refresh' in section 5.3.7 'resource-data-uri' for IPP | See 'Lazy Refresh' in section 5.x 'resource-data-uri' of this | |||
| Printer behavior with respect to "resource-data-k-octets". | document for IPP Printer behavior with respect to | |||
| "resource-data-k-octets". | ||||
| See section 5.3.6 "resource-data-present" in this document. | See section 4.2.3 'Refresh-Resource Operation'. | |||
| See section 5.x 'resource-data-present'. | ||||
| 5.3.9. resource-data-compression (type3 keyword) | 5.3.10. resource-data-compression (type3 keyword) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute identifies the compression of the associated Resource | This attribute identifies the compression of the associated Resource | |||
| data (if any). | data (if any). | |||
| See section 4.4.32 'compression-supported' in [IPP-MOD] for standard | See section 4.4.32 'compression-supported' in [IPP-MOD] for standard | |||
| keyword values. | keyword values. | |||
| 5.3.10. resource-create-date-time (dateTime) | ||||
| REQUIRED - for IPP Printers to implement. | ||||
| This attribute indicates the date and time at which the Resource | ||||
| object instance was created. | ||||
| Note: This time SHOULD reflect the actual 'build date' of the | ||||
| Resource data rather than simply the 'install date' on the IPP | ||||
| Printer, because this is more informative for the end user. | ||||
| See section 4.4.30 'printer-current-time' in [IPP-MOD]. | ||||
| See section 4.3.14.5 'date-time-at-creation' in [IPP-MOD]. | ||||
| 5.3.11. resource-duration (integer(0:MAX)) | ||||
| REQUIRED - for IPP Printers to implement. | ||||
| This attribute indicates length of the Resource object instance lease | ||||
| in seconds. | ||||
| See section 5.4.6 "resource-create-time" in this document. | ||||
| See section 5.4.9 "resource-expiration-time" in this document. | ||||
| 5.3.12. resource-persistence (boolean) | ||||
| REQUIRED - for IPP Printers to implement. | ||||
| This attribute indicates whether or not this Resource object instance | ||||
| is persistent (preserved by the IPP Printer across power cycles). | ||||
| A 'true' value specifies an infinite lease and supersedes | ||||
| "resource-duration" and "resource-expiration-time". A 'false' value | ||||
| specifies a finite lease and selects use of "resource-duration" and | ||||
| "resource-expiration-time". | ||||
| See section 5.3.11 "resource-duration" in this document. | ||||
| See section 5.4.9 "resource-expiration-time" in this document. | ||||
| 5.4. Resource Description Attributes | 5.4. Resource Description Attributes | |||
| 5.4.1. resource-type (type2 keyword) | 5.4.1. resource-type (type2 keyword) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute identifies the type of this Resource object instance | This attribute identifies the type of this Resource object instance | |||
| which determines additional Resource attributes specific to the named | which determines additional Resource attributes specific to the named | |||
| type. | type. | |||
| The following standard keyword values are defined: | The following standard keyword values are defined: | |||
| 'driver': The Resource contains client print support files | 'font': The Resource contains font characteristics and | |||
| (e.g., a driver) for an IPP Client (see section 6 'Driver | (OPTIONALLY) font data. | |||
| Resource Type' in this document) for this IPP Printer. | ||||
| 'form': The Resource contains form characteristics and | ||||
| (OPTIONALLY) form data. | ||||
| 'image': The Resource contains image characteristics and | ||||
| (OPTIONALLY) image data. | ||||
| 'logo': The Resource contains logo characteristics and | ||||
| (OPTIONALLY) logo data. | ||||
| 'media': The Resource contains media characteristics for a | ||||
| single medium and MUST NOT contain media data. | ||||
| See section 5.5 'Job Template Attributes for Resources'. | ||||
| 5.4.2. resource-name (name(127)) | 5.4.2. resource-name (name(127)) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute is the human-readable name of the Resource. This name | This attribute is the human-readable name of the Resource object | |||
| is more user-friendly than the integer "resource-id" attribute. | instance. This name is more user-friendly than the integer | |||
| "resource-id" attribute. | ||||
| This name MUST be unique among Resources of the SAME "resource-type". | Note: Unlike the "job-name" attribute, the value of "resource-name" | |||
| IPP Printers MUST not allow Resource object instances of the SAME | MUST be unique among Resources of the SAME "resource-type". IPP | |||
| "resource-type" with duplicate "resource-name" values. | 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. | ||||
| Note: This attribute has been specified as REQUIRED (unlike | Note: This attribute has been specified as REQUIRED (unlike | |||
| "job-name") in the interests of ease-of-use. IPP Printers are | "job-name") in the interests of ease-of-use. IPP Printers are | |||
| expected to implement large numbers of Resource objects and the | expected to implement large numbers of Resource objects and the | |||
| guaranteed presence of the user-friendly name will benefit | guaranteed presence of a user-friendly name will benefit ease-of-use. | |||
| ease-of-use. | ||||
| See section 4.3.5 'job-name' in [IPP-MOD]. | See section 4.3.5 'job-name' in [IPP-MOD]. | |||
| 5.4.3. resource-id (integer(1:MAX)) | 5.4.3. resource-id (integer(1:MAX)) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute contains the locally unique ID of the Resource. The | This attribute contains the locally unique ID (for a given value of | |||
| IPP Printer, on creation of a new Resource (by means outside of this | "resource-type") of the Resource object instance. | |||
| specification), generates an ID which identifies the new Resource on | ||||
| that Printer (but not globally). The zero '0' value is not included | The IPP Printer, on creation of a new Resource object instance, (by | |||
| to allow for compatibility with SNMP index values which also cannot | means outside of this specification) generates an ID which identifies | |||
| be zero '0'. | the new Resource object instance on the Printer specified by the | |||
| value of "resource-printer-uri" (but not globally). The zero '0' | ||||
| value is not included to allow for compatibility with SNMP index | ||||
| values which also cannot be zero '0'. | ||||
| See section 4.3.2 'job-id' in [IPP-MOD]. | See section 4.3.2 'job-id' in [IPP-MOD]. | |||
| 5.4.4. resource-printer-uri (uri) | 5.4.4. resource-printer-uri (uri) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute identifies the IPP Printer that hosts this Resource | This attribute identifies the IPP Printer that hosts this Resource | |||
| object instance. | object instance (i.e., records the value of the "printer-uri" target | |||
| attribute from a Create-Resource operation). | ||||
| See section 4.3.3 'job-printer-uri' in [IPP-MOD]. | See section 4.3.3 'job-printer-uri' in [IPP-MOD]. | |||
| 5.4.5. resource-create-user-name (name(MAX)) | 5.4.5. resource-create-user-name (name(MAX)) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute contains the name of the end user that created this | This attribute contains the name of the end user that created this | |||
| Resource object instance. | Resource object instance. | |||
| skipping to change at page 21, line 36 ¶ | skipping to change at page 30, line 23 ¶ | |||
| set to the empty string to prevent namespace conflicts in end user | set to the empty string to prevent namespace conflicts in end user | |||
| networks. | networks. | |||
| See section 4.3.6 'job-originating-user-name' in [IPP-MOD]. | See section 4.3.6 'job-originating-user-name' in [IPP-MOD]. | |||
| 5.4.6. resource-create-time (integer(0:MAX)) | 5.4.6. resource-create-time (integer(0:MAX)) | |||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute indicates the time at which the Resource object | This attribute indicates the time at which the Resource object | |||
| instance was created. | instance was created (i.e., the value of "printer-up-time" when the | |||
| Resource object instance was created). | ||||
| Note: This time SHOULD reflect the actual 'build time' of the | If this Resource was created prior to the most recent system startup, | |||
| Resource data rather than simply the 'install time' on the IPP | then the IPP Printer MUST set this attribute to zero '0'. | |||
| Printer, because this is more informative for the end user. | ||||
| See section 5.x 'resource-expiration-time'. | ||||
| See section 5.x 'resource-lease-duration'. | ||||
| See section 4.4.29 'printer-up-time' in [IPP-MOD]. | See section 4.4.29 'printer-up-time' in [IPP-MOD]. | |||
| See section 4.3.14.1 'time-at-creation' in [IPP-MOD]. | See section 4.3.14.1 'time-at-creation' in [IPP-MOD]. | |||
| 5.4.7. resource-change-time (integer(0:MAX)) | 5.4.7. resource-expiration-time (integer(0:MAX)) | |||
| REQUIRED - for IPP Printers to implement. | ||||
| This attribute indicates the time at which the Resource object | ||||
| instance was last changed. | ||||
| See section 5.4.6 "resource-create-time" in this document. | ||||
| See section 4.4.29 'printer-up-time' in [IPP-MOD]. | ||||
| 5.4.8. resource-refresh-time (integer(0:MAX)) | ||||
| REQUIRED - for IPP Printers to implement. | REQUIRED - for IPP Printers to implement. | |||
| This attribute indicates the time at which the Resource object | This attribute indicates the time at which the Resource object | |||
| instance was last refreshed (i.e., a local copy of the Resource data | instance lease will expire. (i.e., the value of "printer-up-time" | |||
| was made). | when the Resource object instance will be deleted by the IPP | |||
| Printer). | ||||
| See section 5.4.6 "resource-create-time" in this document. | ||||
| See section 4.4.29 'printer-up-time' in [IPP-MOD]. | ||||
| 5.4.9. resource-expiration-time (integer(0:MAX)) | ||||
| REQUIRED - for IPP Printers to implement. | If "resource-lease-duration" is zero '0', then the IPP Printer MUST | |||
| set "resource-expiration-time" also to zero '0' (i.e., infinite | ||||
| lease). | ||||
| This attribute indicates the time at which the Resource object | See section 5.x 'resource-create-time'. | |||
| instance lease will expire. | See section 5.x 'resource-lease-duration'. | |||
| See section 5.4.6 "resource-create-time" in this document. | ||||
| See section 5.3.11 "resource-duration" in this document. | ||||
| See section 4.4.29 'printer-up-time' in [IPP-MOD]. | See section 4.4.29 'printer-up-time' in [IPP-MOD]. | |||
| See section 4.3.14.5 'date-time-at-creation' in [IPP-MOD]. | See section 4.3.14.3 'time-at-completed' in [IPP-MOD]. | |||
| 6. Driver Resource Type | ||||
| 6.1. Table of Required Driver Resource Attributes | ||||
| All IPP Printers that support Driver Resource objects MUST implement | ||||
| the following REQUIRED attributes defined in this specification (on | ||||
| the Driver Resource object or the Printer object): | ||||
| Driver Resource Attribute Driver Attribute Type | ||||
| Operation or Resource Group | ||||
| Printer Attribute Printer Attribute Type | ||||
| ------------------------------- -------------------------- | ||||
| driver-file-type (type2 keyword) | ||||
| driver-file-type [Resource group] | ||||
| driver-file-type-default (type2 keyword) | ||||
| driver-file-type-supported (1setOf type2 keyword) | ||||
| driver-file-name (name(MAX)) | ||||
| driver-file-name [Resource group] | ||||
| [none] | ||||
| 6.2. Table of Optional Driver Resource Attributes | 5.5. Job Template Attributes for Resources | |||
| All IPP Printers that support Driver Resource objects MAY implement | Each Resource Type Definition MUST specify whether or not the | |||
| the following OPTIONAL attributes defined in this specification (on | Resource type MAY be associated with a Job object. If so, then two | |||
| the Driver Resource object or the Printer object): | new Job Description attributes are algorithmically added to the | |||
| definition of a Job object: | ||||
| Driver Resource Attribute Driver Attribute Type | 5.5.1. restype (name (127)) | |||
| Operation or Resource Group | ||||
| Printer Attribute Printer Attribute Type | ||||
| ------------------------------- -------------------------- | ||||
| driver-charset (1setOf charset) | ||||
| driver-charset [Resource group] | ||||
| charset-configured (charset) | ||||
| charset-supported (1setOf charset) | ||||
| driver-natural-language (1setOf naturalLanguage) | Where 'restype' is a standard keyword for "resource-type" (e.g., | |||
| driver-natural-language [Resource group] | 'media' yields the Job attribute named simply "media"). | |||
| natural-language-configured (naturalLanguage) | ||||
| generated-natural-language-configured (1setOf naturalLanguage) | ||||
| 6.3. Driver Resource Template Attributes | This Job attribute specifies the "resource-name" value of a single | |||
| Resource object instance with "resource-type" of 'restype' that is | ||||
| REQUIRED for this Job and that SHOULD override any PDL instructions | ||||
| in the Job datastream. | ||||
| 6.3.1. driver-charset (1setOf charset) | This attribute supplies advice for job scheduling to the IPP Printer. | |||
| OPTIONAL - for IPP Printers to implement. | See section 4.2.1 "media" in [IPP-MOD]. | |||
| See 'media-needed' keyword in section 4.4.12 "printer-state-reasons" | ||||
| in [IPP-MOD]. | ||||
| This attribute specifies the list of client charsets | 5.5.2. restype-required (1setOf name(127)) | |||
| supported by the Driver Resource (when installed on the client system | ||||
| 6.3.2. driver-natural-language (1setOf naturalLanguage) | Where 'restype' is a standard keyword for "resource-type" (e.g., | |||
| 'media' yields the Job attribute named "media-required"). | ||||
| OPTIONAL - for IPP Printers to implement. | This Job attribute specifies the "resource-name" values of a set of | |||
| Resource object instances with "resource-type" of 'restype' that are | ||||
| REQUIRED for this Job and that SHOULD override any PDL instructions | ||||
| in the Job datastream. | ||||
| This attribute specifies the list of client natural languages | This attribute supplies advice for job scheduling to the IPP Printer. | |||
| supported by the Driver Resource (when installed on the client system | ||||
| 6.3.3. driver-file-type (type2 keyword) | See section 4.2.1 "media" in [IPP-MOD]. | |||
| See 'media-needed' keyword in section 4.4.12 "printer-state-reasons" | ||||
| in [IPP-MOD]. | ||||
| REQUIRED - for IPP Printers to implement. | 6. Rules for Resource Type Definitions | |||
| This attribute specifies the client file type of | 6.1. Do NOT define new operations for Resource | |||
| this Driver Resource (when installed on the client system). | ||||
| The following standard keyword values are defined: | REQUIRED - Do NOT define any new operations for the Resource. | |||
| 'none': The Driver Resource contains client print support files i | 6.2. Define new type keyword for Resource | |||
| unspecified (opaque) format. | ||||
| 'exec': The Driver Resource contains client print support files i | REQUIRED - Define a new type keyword 'restype' for the Resource. | |||
| native executable format of the operating system(s) specified in | ||||
| "resource-os-types" attribute, for example '.exe' on Microsoft sy | ||||
| 'gpd': The Driver Resource contains client print support files in | 6.3. Define new type-specific attributes for Resource | |||
| Microsoft GPD format. | ||||
| 'java': The Driver Resource contains client print support files i | OPTIONAL - Define type-specific attributes for the Resource with | |||
| names of the form "restype-yyy" (e.g., "media-size"), using the | ||||
| 'restype' keyword chosen above. is a simple attribute name for this | ||||
| Resource type. | ||||
| 'ppd': The Driver Resource contains client print support files in | 6.4. Define new Printer attributes for Resource | |||
| Adobe PPD format. | ||||
| 'printcap': The Driver Resource contains client print support fil | REQUIRED - Define new Resource Template attributes on the Printer | |||
| the UNIX 'printcap' format. | object for the Resource, named "restype-default" and | |||
| "restype-supported", using the 'restype' keyword chosen above (e.g., | ||||
| "media-default" and "media-supported"). "restype-supported" lists | ||||
| all the current values of "resource-name" for this Resource type. | ||||
| 'script': The Driver Resource contains client print support files | OPTIONAL - Define new Resource Template attributes on the Printer | |||
| native script format of the operating system(s) specified in the | object for the Resource, if this Resource has type-specific | |||
| "resource-os-types" attribute, for example Bourne shell on UNIX s | attributes (e.g., "media-size-default"). | |||
| Note: This type may be ambiguous on some target operating system | ||||
| 'updf': The Driver Resource contains client print support files i | 6.5. Define new Job attributes for Resource | |||
| (work-in-progress) PWG UPDF format. | ||||
| 6.3.4. driver-file-name (name(MAX)) | OPTIONAL - Define new Job Template attributes for the Resource, if | |||
| this Resource MAY be associated with a Job (e.g., "media-required"). | ||||
| REQUIRED - for IPP Printers to implement. | See section 5.5 'Job Template Attributes for Resources'. | |||
| This attribute specifies the client file name of | 6.6. Define Printer operation extensions for Resource | |||
| this Driver Resource (when installed on the client system) | ||||
| or the empty string (if none configured). | ||||
| If this Driver Resource contains multiple client print support files, | ||||
| then "driver-file-name" SHOULD specify an 'install directory path'. | ||||
| 7. Conformance Requirements | 7. Conformance Requirements | |||
| 7.1. IPP Client Conformance Requirements | 7.1. IPP Client Conformance Requirements | |||
| IPP Clients MUST supply the required operation attributes in Resource | IPP Clients MUST supply the required operation attributes in Resource | |||
| operations. | operations. | |||
| 7.2. IPP Printer Conformance Requirements | 7.2. IPP Printer Conformance Requirements | |||
| 7.2.1. Resource Operations | 7.2.1. Resource Operations | |||
| All IPP Printers that support Resource objects MUST implement | All IPP Printers that support IPP Resource objects MUST implement the | |||
| the following REQUIRED operations defined in this specification: | following REQUIRED operations defined in this specification: | |||
| Resource Operation | Resource Operation | |||
| ------------------ | ------------------ | |||
| Get-Resources | ||||
| Get-Resource-Attributes | Get-Resource-Attributes | |||
| Get-Resource-Data | Get-Resource-Data | |||
| Get-Resources | ||||
| 7.2.2. Resource Attributes | 7.2.2. Resource Attributes | |||
| See section 5.1 'Table of Required Resource Attributes' and section | All IPP Resource attributes presently defined are REQUIRED for all | |||
| 5.2 'Table of Optional Resource Attributes'. | IPP Printer implementations of Resource objects. | |||
| 7.2.3. Driver Resource Attributes | ||||
| See section 6.1 'Table of Required Driver Resource Attributes' and | See section 5.1 'Table of Resource Template Attributes' | |||
| section 6.2 'Table of Optional Driver Resource Attributes'. | See section 5.2 'Table of Resource Description Attributes'. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| See section 6 'IANA Considerations' in [IPP-MOD]. | See section 6 'IANA Considerations' in [IPP-MOD]. | |||
| 9. Internationalization Considerations | 9. Internationalization Considerations | |||
| This IPP Resource Objects and Get Resource Operations specification | This IPP Resource Objects specification continues support for the | |||
| continues support for the internationalization in [IPP-MOD] | internationalization in [IPP-MOD] attributes containing text strings | |||
| attributes containing text strings and names. | and names. | |||
| See section 7 'Internationalization Considerations' in [IPP-MOD]. | See section 7 'Internationalization Considerations' in [IPP-MOD]. | |||
| 10. Security Considerations | 10. Security Considerations | |||
| This IPP Resource Objects and Get Resource Operations specification | This IPP Resource Objects specification inherits the same security | |||
| inherits the same security considerations for Resources as are | considerations for Resources as are specified for Jobs in [IPP-MOD]. | |||
| specified for Jobs in [IPP-MOD]. | ||||
| See section 8 'Security Considerations' in [IPP-MOD]. | See section 8 'Security Considerations' in [IPP-MOD]. | |||
| 11. Encodings of Additional Resource Tags | 11. Encodings of Additional Protocol Tags | |||
| The section assigns values to new protocol tags as extensions to the | 11.1. Encodings of Additional Attribute Tags | |||
| encoding defined in [IPP-PRO]. | ||||
| The resource-attributes-tag delimits Resource Template Attributes Groups | The section assigns a value to a new attribute tag as an extension to | |||
| in requests and Resource Attributes Groups in responses. | the encoding defined in [IPP-PRO]. | |||
| Tag Value (Hex) Tag Meaning | The resource-attributes-tag delimits Resource Template Attributes | |||
| 0x08 resource-attributes-tag | Groups in requests and Resource Attributes Groups in responses. | |||
| 0x1E Get-Resource-Attributes operation | Tag Value (Hex) Tag Meaning | |||
| 0x1F Get-Resource-Data operation | --------------- ----------- | |||
| 0x20 Get-Resources operation | 0x08 resource-attributes-tag | |||
| 11.2. Encodings of Additional Operation Tags | ||||
| The section assigns values to new operation tags as extensions to the | ||||
| encoding defined in [IPP-PRO]. | ||||
| Tag Value (Hex) Tag Meaning | ||||
| --------------- ----------- | ||||
| 0x1E Get-Resource-Attributes | ||||
| 0x1F Get-Resource-Data | ||||
| 0x20 Get-Resources | ||||
| [TBD] Create-Resource | ||||
| [TBD] Delete-Resource | ||||
| [TBD] Refresh-Resource | ||||
| [TBD] Renew-Resource | ||||
| 12. References | 12. References | |||
| See section 9 'References' in [IPP-MOD]. | See section 9 'References' in [IPP-MOD]. | |||
| [IPP-MOD] R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell. | [IPP-MOD] R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell. | |||
| IPP/1.1 Model and Semantics, <draft-ietf-ipp-model-v11-07.txt>, May | IPP/1.1 Model and Semantics, <draft-ietf-ipp-model-v11-07.txt>, May | |||
| 2000 (adopted by IESG as Proposed Standard in June 2000). | 2000 (adopted by IESG as Proposed Standard in June 2000). | |||
| [IPP-NOT] S. Isaacson, J. Martin, R. deBry, T. Hastings, M. Shepherd, | [IPP-NOT] S. Isaacson, J. Martin, R. deBry, T. Hastings, M. Shepherd, | |||
| R. Bergman. IPP Event Notification Specification, | R. Bergman. IPP Event Notification Specification, | |||
| <draft-ietf-ipp-not-spec-02.txt> (work-in-progress), March 2000. | <draft-ietf-ipp-not-spec-02.txt> (work-in-progress), March 2000. | |||
| [OS-TYPE] IANA Registry of Operating System Names at | [OS-TYPE] IANA Registry of Operating System Names at | |||
| ftp://ftp.isi.edu/in-notes/iana/assignments/operating-system-names. | ftp://ftp.isi.edu/in-notes/iana/assignments/operating-system-names. | |||
| skipping to change at page 30, line 9 ¶ | skipping to change at page 38, line 9 ¶ | |||
| Grand Marais, MI 49839 | Grand Marais, MI 49839 | |||
| Phone: +1 906-494-2434 or +1 906-494-2697 | Phone: +1 906-494-2434 or +1 906-494-2697 | |||
| Email: imcdonald@sharplabs.com | Email: imcdonald@sharplabs.com | |||
| Email: imcdonal@sdsp.mc.xerox.com | Email: imcdonal@sdsp.mc.xerox.com | |||
| 14. Appendix A - Change History | 14. Appendix A - Change History | |||
| [To be deleted before RFC publication] | [To be deleted before RFC publication] | |||
| 14.1. 7 July 2000 - draft-ietf-ipp-get-resource-00.txt | 7 September 2000 - draft-ietf-ipp-get-resource-01.txt | |||
| - revised Abstract and Introduction for admin operations | ||||
| - deleted all references to the resource type 'driver' | ||||
| - named package of Resource query (Get) operations in section 4 | ||||
| - added package of Resource system admin operations to section 4 | ||||
| - added Create-Resource to create (install) static resources | ||||
| - added Delete-Resource to delete (remove) static resources | ||||
| - added Refresh-Resource to refresh (locally cache) resource data | ||||
| - added Renew-Resource to renew (finite) resource leases | ||||
| - revised section 5.1 'Table of Resource Template Attributes' | ||||
| - revised section 5.2 'Table of Resource Description Attributes' | ||||
| - added section 6 'Rules for Resource Type Definitions' | ||||
| - deleted "resource-persistence" (redundant with zero lease) | ||||
| - renamed "resource-duration" to "resource-lease-duration" | ||||
| - deleted "resource-os-types" (was used for 'driver' resources) | ||||
| - deleted "resource-change-time" and "resource-refresh-time" | ||||
| initial version | 7 July 2000 - draft-ietf-ipp-get-resource-00.txt | |||
| - initial version - Get operations and Driver resource type | ||||
| 15. Full Copyright Statement | 15. Full Copyright Statement | |||
| Copyright (C) The Internet Society (2000). All Rights Reserved. | Copyright (C) The Internet Society (2000). All Rights Reserved. | |||
| This document and translations of it may be copied and furnished to | This document and translations of it may be copied and furnished to | |||
| others, and derivative works that comment on or otherwise explain it | others, and derivative works that comment on or otherwise explain it | |||
| or assist in its implementation may be prepared, copied, published | or assist in its implementation may be prepared, copied, published | |||
| and distributed, in whole or in part, without restriction of any | and distributed, in whole or in part, without restriction of any | |||
| kind, provided that the above copyright notice and this paragraph are | kind, provided that the above copyright notice and this paragraph are | |||
| End of changes. 161 change blocks. | ||||
| 464 lines changed or deleted | 859 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||