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)) 5.5. Job Template Attributes for Resources
driver-file-name [Resource group]
[none]
6.2. Table of Optional Driver Resource Attributes Each Resource Type Definition MUST specify whether or not the
Resource type MAY be associated with a Job object. If so, then two
new Job Description attributes are algorithmically added to the
definition of a Job object:
All IPP Printers that support Driver Resource objects MAY implement 5.5.1. restype (name (127))
the following OPTIONAL attributes defined in this specification (on
the Driver Resource object or the Printer object):
Driver Resource Attribute Driver Attribute Type Where 'restype' is a standard keyword for "resource-type" (e.g.,
Operation or Resource Group 'media' yields the Job attribute named simply "media").
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) This Job attribute specifies the "resource-name" value of a single
driver-natural-language [Resource group] Resource object instance with "resource-type" of 'restype' that is
natural-language-configured (naturalLanguage) REQUIRED for this Job and that SHOULD override any PDL instructions
generated-natural-language-configured (1setOf naturalLanguage) in the Job datastream.
6.3. Driver Resource Template Attributes
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].
The resource-attributes-tag delimits Resource Template Attributes
Groups in requests and Resource Attributes Groups in responses.
Tag Value (Hex) Tag Meaning Tag Value (Hex) Tag Meaning
--------------- ----------- --------------- -----------
0x08 resource-attributes-tag 0x08 resource-attributes-tag
0x1E Get-Resource-Attributes operation 11.2. Encodings of Additional Operation Tags
0x1F Get-Resource-Data operation
0x20 Get-Resources operation 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. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/