INTERNET-DRAFT
                                                                       R. deBry
                                                                IBM Corporation
                                                                    T. Hastings
                                                              Xerox Corporation
                                                                     R. Herriot
                                                               Sun Microsystems
                                                                    S. Isaacson
                                                                   Novell, Inc.
                                                                      P. Powell
                                                     San Diego State University
                                                        March 26,
                                                                   June 3, 1997

                 Internet Printing Protocol/1.0: Model and Semantics
                          draft-ietf-ipp-model-00.txt
                             draft-ietf-ipp-model-01.txt

       Status of this Memo

       This document is an Internet-Draft.  Internet-Drafts are working
       documents of the Internet Engineering Task Force (IETF), its areas, and
       its working groups.  Note that other groups may also distribute working
       documents as Internet-Drafts.

       Internet-Drafts are draft documents valid for a maximum of six months
       and may be updated, replaced, or obsoleted by other documents at any
       time.  It is inappropriate to use Internet-Drafts as reference material
       or to cite them other than as "work in progress." progress".

       To learn the current status of any Internet-Draft, please check the
       "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
       Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
       munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
       ftp.isi.edu (US West Coast).

       Abstract

       This document is one of a set of documents documents, which together describe all
       aspects of a new Internet Printing Protocol (IPP).  IPP is an
       application level protocol that can be used for distributed printing on the Internet.
       using Internet tools and technology.  The protocol is heavily influenced
       by the printing model introduced in the Document Printing Application
       (ISO/IEC 10175 DPA) standard.  Although DPA specifies the both end user and
       administrative features, IPP version 1.0
            (v1.0)is is focused only on end user
       functionality.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997

       The full set of IPP documents includes:

                        June 3, 1997, Expires December 3, 1997
         Internet Printing Protocol: Requirements
         Internet Printing Protocol/1.0: Model and Semantics
         Internet Printing Protocol/1.0: Security
         Internet Printing Protocol/1.0: Protocol Specification
         Internet Printing Protocol/1.0: Directory Schema

       The requirements document takes a broad look at distributed printing
       functionality, and it enumerates real-life scenarios which that help to
       clarify the features that need to be included in a printing protocol for
       the Internet.  It identifies requirements for three types of users: end
       users, operators, and administrators.  The requirements document calls
       out a subset of end user requirements which that must be satisfied in the
       first version of IPP.  Operator and administrator requirements are out
       of scope for v1.0. The model and semantics document describes a
       simplified model with abstract objects, their attributes, and their
       operations. The model introduces a Printer object and a Job object.  The
       Job object supports multiple documents per job.  The security document
       covers potential threats and proposed counters to those threats.  The
       protocol specification is formal document which incorporates the ideas
       in all the other documents into a concrete mapping using clearly defined
       data representations and transport protocol mappings that real
       implementers can use to develop interoperable client and server side
       components. Finally, the directory schema document shows a generic
       schema for directory service entries that represent instances of IPP
       Printers.

       This document is the "Internet Printing Protocol/1.0: Model and
       Semantics" document.

            draft-ietf-ipp-model-00.txt, expires September 26,

                        June 3, 1997, Expires December 3, 1997
                                  Table of Contents

       1. Introduction............................................7

           1.1 Conformance ..........................................8
            1.1.1 Client Considerations .............................9
            1.1.2 Server Considerations .............................9 6
       Introduction..........................................................7
       2. Terminology........................................................7
          2.1 Conformance Terminology........................................8
             2.1.1 MUST......................................................8
             2.1.2 MUST NOT..................................................8
             2.1.3 SHOULD....................................................8
             2.1.4 SHOULD NOT................................................8
             2.1.5 MAY.......................................................8
             2.1.6 CONDITIONALLY MANDATORY...................................8
             2.1.7 NEED NOT..................................................9
          2.2 Model Terminology..............................................9
             2.2.1 Keyword...................................................9
             2.2.2 Attributes................................................9
             2.2.3 Attribute Name............................................9
             2.2.4 Group Name................................................9
             2.2.5 Attribute Value..........................................10
             2.2.6 Attribute Syntax.........................................10
             2.2.7 Implements...............................................10
             2.2.8 Supports.................................................10
       3. Simplified Printing Model..............................10

          3. Model.........................................11
       4. IPP Objects............................................14

           3.1 Objects.......................................................13
          4.1 Printer .............................................14

           3.2 Object................................................13
          4.2 Job .................................................17

           3.3 Object....................................................15
          4.3 Document Object...............................................16
          4.4 Object .....................................18

           3.4 Relationships..........................................17
          4.5 Object Relationships ................................19

           3.5 Object Attributes ...................................19

           3.6 Attributes.............................................17
             4.5.1 Job Template Attribute Overview..........................17
             4.5.2 The "best-effort" Job Attribute Overview.................18
          4.6 Object Identity .....................................21

          4. Identity...............................................19
       5. IPP Operations.........................................22

           4.1 Introduction ........................................22

           4.2 Operation Semantics .................................23
            4.2.1 Print Operations....................................................19
          5.1 Operation ..................................23
              4.2.1.1 Print Request ................................24
              4.2.1.2 Print Response ...............................25
            4.2.2 Semantics...........................................20
             5.1.1 Print-Job Operation......................................20
                5.1.1.1 Print-Job Request...................................20
                5.1.1.2 Print-Job Response..................................22
             5.1.2 Create-Job Operation.....................................23
                5.1.2.1 Create-Job Request..................................23
                5.1.2.2 Create Job Response.................................24
             5.1.3 Send-Document Operation..................................25
                5.1.3.1 Send-Document Request...............................25
                5.1.3.2 Send-Document Response..............................25
             5.1.4 Cancel Job Operation .............................25
              4.2.2.1 Operation.....................................26
                5.1.4.1 Cancel-Job Request ...........................26
              4.2.2.2 Request..................................26
                5.1.4.2 Cancel-Job Response ..........................26
            4.2.3 Get Attributes Operation .........................26
              4.2.3.1 Response.................................26
             5.1.5 Get-Attributes Request .......................27
              4.2.3.2 Operation.................................26
                5.1.5.1 Get-Attributes Response ......................27
            4.2.4 Get Jobs Operation ...............................28
              4.2.4.1 Request..............................27

                        June 3, 1997, Expires December 3, 1997
                5.1.5.2 Get-Attributes Response.............................28
             5.1.6 Get-Jobs Request .............................28
              4.2.4.2 Operation.......................................29
                5.1.6.1 Get-Jobs Response ............................29

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5. Request....................................29
                5.1.6.2 Get-Jobs Response...................................30
          5.2 Operation Status and Messages.................................31
          5.3 Status Codes (type2 keyword)..................................31
       6. Object Attributes......................................30

           5.1 Attribute Syntaxes ..................................30
            5.1.1 Attributes.................................................31
          6.1 Attribute Extensibility ..........................34
            5.1.2 Relationship of Job and Printer Attributes .......36
            5.1.3 Syntaxes............................................32
             6.1.1 Attribute Value Tags .............................38
              5.1.3.1 Tagged Printer Attributes ....................38
              5.1.3.2 Tagged Job Attributes ........................39

           5.2 Extensibility..................................35
          6.2 Job Template (job-template) Attributes ..............39
            5.2.1 Job Sheet Attributes (Set by Client/End User) ....40
              5.2.1.1 Attributes.......................................36
             6.2.1 job-name (name)..........................................41
             6.2.2 job-sheets (type4 keyword) ...................40
            5.2.2 Job Notification (job-notification) Attributes (Set
            by a Client/End User) ..................................41
              5.2.2.1 keyword)...............................42
             6.2.3 notification-events (setOf (1setOf type2 keyword) ....41
              5.2.2.2 keyword)...............42
             6.2.4 notification-addresses (setOf url) ...........42
            5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
            Client/End User) .......................................43
              5.2.3.1 (1setOf uri)......................42
             6.2.5 job-priority (integer(1:100)) ................43
              5.2.3.2 (integer(1:100))............................43
             6.2.6 job-hold-until (type4 keyword) ...............44
            5.2.4 Job Production (job-production) Attributes (Set by
            Client/End User) .......................................45
              5.2.4.1 keyword)...........................43
             6.2.7 multiple-documents-are (type1 keyword) .......47
              5.2.4.2 (type2 keyword)...................44
             6.2.8 best-effort (type2 keyword) ..................48
            5.2.5 Document Production (document-production)
            Attributes (Set by Client/End User) ....................49
              5.2.5.1 medium (setOf type2 keyword) .................49
              5.2.5.2 keyword)..............................44
             6.2.9 media (type4 keyword)....................................45
             6.2.10 number-up (type3Enum) ........................57
              5.2.5.3 (type3 keyword)...............................46
             6.2.11 sides (type2 keyword) ........................58
              5.2.5.4 keyword)...................................46
             6.2.12 printer-resolution (type2 keyword) ...........59
              5.2.5.5 keyword)......................47
             6.2.13 print-quality (type2 keyword) ................60
              5.2.5.6 keyword)...........................47
             6.2.14 copies (integer(1:2**31 - 1)) ................61
              5.2.5.7 finishing (setOf 1))...........................48
             6.2.15 finishings (1setOf type2 keyword) ..............61
              5.2.5.8 keyword).......................48
             6.2.16 compression (type2 keyword) ..................63
            5.2.6 Document Format Attributes (Set by Client/End User)63
              5.2.6.1 document-format (type2 keyword) ..............63
            5.2.7 Job Size (job-size) Attributes (Set by Client and
            Printer) ...............................................68
              5.2.7.1 (type3 keyword).............................48
             6.2.17 job-k-octets (integer(0:2**31 - 1)) ..........69
              5.2.7.2 1)).....................48
             6.2.18 job-impressions (integer(0:2**31 - 1)) .......70
              5.2.7.3 job-media-sheets 1))..................49
             6.2.19 job- media-sheets (integer(0:2**31 - 1)) ......70
            5.2.8 Number of Documents (Set by Printer) .............71
              5.2.8.1 number-of-documents (integer(1:2**31 - 1)) ...71

           5.3 1))................49
          6.3 Job Attributes Set by the Printer ...................71
            5.3.1 Attributes................................................49
             6.3.1 Job Identification (job-identification) Attributes
            (Set by the Printer) ...................................71
              5.3.1.1 job-URL (url) ................................71

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            5.3.2 Template Attributes..................................49
             6.3.2 Job Owner (job-owner) Attributes (Set by a Printer)72
              5.3.2.1 Description Attributes...............................49
                6.3.2.1 job-URI (uri).......................................51
                6.3.2.2 job-originating-user (name) ..................72
              5.3.2.2 (name).........................51
                6.3.2.3 job-originating-host (name) ..................72
              5.3.2.3 (name).........................51
                6.3.2.4 user-locale (type3 keyword) ..................72
              5.3.2.4 job-name (name) ..............................73
            5.3.3 Job Status (job status) Attributes (Set by Printer)73
              5.3.3.1 keyword).........................51
                6.3.2.5 job-state (type1 keyword) ....................73
              5.3.3.2 keyword)...........................51
                6.3.2.6 job-state-reasons (setOf (1setOf  type2 keyword) .....76
              5.3.3.3 job-state-as-text (text) .....................78
              5.3.3.4 keyword)...........55
                6.3.2.7 job-state-message (text)............................58
                6.3.2.8 output-device-assigned (url) .................78
              5.3.3.5 submission-time (dateTime) ...................79
              5.3.3.6 (uri)........................58
                6.3.2.9 time-since-submission (milliseconds)................58
                6.3.2.10 time-since-processing (milliseconds)...............58
                6.3.2.11 number-of-intervening-jobs (integer(0:2**31 -
              1)) ..................................................79
              5.3.3.7 1))..58
                6.3.2.12 job-message-from-operator (text) .............79
              5.3.3.8 completion-time (dateTime) ...................79

           5.4 Document Attributes .................................80
            5.4.1 (text)...................59
                6.3.2.13 time-since-completion (milliseconds)...............59
                6.3.2.14 job-k-octets-completed (integer(0:2**31 - 1))......59
                6.3.2.15 job-impressions-completed  (integer(0:2**31 - 1))..59
                6.3.2.16 job-media-sheets-completed (integer(0:2**31 - 1))..59

                        June 3, 1997, Expires December 3, 1997
          6.4 Document Data (document-data) Attributes (Set by a
            Client/End User) .......................................80
              5.4.1.1 document-name (name) .........................80
              5.4.1.2 document-URL (url) ...........................80
              5.4.1.3 document-content (octetString) ...............81

           5.5 Attributes...........................................59
             6.4.1 document-name(name, Mandatory)...........................60
             6.4.2 document-format (type2 keyword)..........................60
             6.4.3 document-URI (uri).......................................61
          6.5 Printer Description  (printer-description) Attributes81
            5.5.1 Attributes............................................61
             6.5.1 Printer Identification (printer-identification
            Attributes (Set by the Administrator) ..................81
              5.5.1.1 printer-URL (url) ............................81
              5.5.1.2 printer-name (name) ..........................81
            5.5.2 Job Template Attributes..........................61
             6.5.2 Printer Description Attributes (Set by the
            Administrator) .........................................82
              5.5.2.1  Attributes..........................61
                6.5.2.1 printer-URI (uri)...................................63
                6.5.2.2 printer-name (name).................................63
                6.5.2.3 printer-location (text) ......................82
              5.5.2.2 (text).............................63
                6.5.2.4 printer-description (text) ...................83
              5.5.2.3 (text)..........................63
                6.5.2.5 printer-more-info-site (url) .................83
              5.5.2.4 (uri)........................64
                6.5.2.6 printer-driver-installer  (url) ..............83
            5.5.3 Printer Description Attributes (Set by the
            Manufacturer) ..........................................83
              5.5.3.1 (uri)......................64
                6.5.2.7 printer-make-and-model (text) ................83
              5.5.3.2 (text).......................64
                6.5.2.8 maximum-printer-speed (integerUnits) .........83
              5.5.3.3 (integerUnits)................64
                6.5.2.9 printer-more-info-manf (url) .................84

           5.6 Printer Status (printer-status)Attributes ...........84
            5.6.1 Printer Status Attributes (Set by the Printer) ...84
              5.6.1.1 (uri)........................64
                6.5.2.10 printer-state (type1 keywordEnum) ............84
              5.6.1.2 keyword)......................65
                6.5.2.11 printer-state-reasons (setOf (1setOf type2 keyword) ..86
              5.6.1.3 keyword).......67
                6.5.2.12 printer-is-accepting-jobs (boolean) ..........89
              5.6.1.4 printer-state-as-text (text) .................89
              5.6.1.5 (boolean)................69
                6.5.2.13 printer-state-message (text).......................69
                6.5.2.14 queued-job-count (integer(0:2**31 - 1)) ......90

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            5.6.2 Printer Status Attributes (Set by the
            Administrator) .........................................90
              5.6.2.1 1))............70
                6.5.2.15 printer-message-from-the-operator (text) .....90

           5.7 Printer Behavior (printer-behavior) Attributes ......90
            5.7.1 Printer Behavior Attributes (set by the
            Administrator) .........................................90
              5.7.1.1 (text)...........70
                6.5.2.16 printer-locale (locale) ......................90
              5.7.1.2 fonts-substitutions (setOf setOf font) .......90
              5.7.1.3 scheduling-algorithm (type3 keyword) .........91
              5.7.1.4 printer-fonts (setOf font) ...................91

          6. IANA Considerations....................................91 (locale)............................70
                6.5.2.17 printer-locales-supported (1setOf locale)..........70
       7. Conformance.......................................................70
          7.1 Conditionally Mandatory.......................................70
          7.2 Client Conformance Requirements...............................71
          7.3 Printer Object Conformance Requirements.......................71
             7.3.1 Objects..................................................71
             7.3.2 Operations...............................................71
             7.3.3 Attributes...............................................72
             7.3.4 Default Value............................................72
             7.3.5 Availability.............................................73
             7.3.6 Printer extensions.......................................73
             7.3.7 Attribute Syntaxes.......................................73
          7.4 Security Considerations................................92 Conformance Requirements.............................73
       8. References.............................................92 IANA Considerations, Registered Extensions, Private Extensions....73
       9. Security Considerations...........................................74
       10. References.......................................................74
       11. Author's Address.......................................93

            draft-ietf-ipp-model-00.txt, expires September 26, Address.................................................75
       12.77
       Change History.......................................................78
          12.1 Changes made to version 970512, dated 12-May-1997 to make
          version 970603, dated  03-June-1997...............................78
          12.2 Changes made to version 970509, dated 9-May-1997 to make version
          970512, dated 12-May-1997.........................................78
          12.3 Changes made to version 2.2, dated 5-May-1997 to make version
          970509, dated 9-May-1997..........................................79

                        June 3, 1997, Expires December 3, 1997
          12.4 Changes made to version 2.1, dated 24-April-1997 to make version
          2.2, dated 5-May-1997.............................................79
          12.5 Changes made to version 2.0, dated 26-March-1997 to make version
          2.1, dated 22-April-1997..........................................79
          12.6 Changes made to version 1.8, dated 24-March-1997 to make version
          2.0, dated 26-March-1997..........................................79
          12.7 Changes made to version 1.7, dated 24-Mar-1997 to make version
          1.8, dated 24-March-1997..........................................79
          12.8 Changes made to version 1.6, dated 12-Mar-1997 to make version
          1.7, dated 24-March-1997..........................................80
          12.9 Changes made to version 1.5, dated 11-Mar-1997 to make version
          1.6, dated 12-March-1997..........................................80
          12.10 Changes made to version 1.4, dated 27-Feb-1997 to make version
          1.5, dated 9-March-1997...........................................82

       1.

                        June 3, 1997, Expires December 3, 1997
       Introduction

       The Internet Printing Protocol (IPP) is an application level protocol
       that can be used for distributed printing on the Internet.  The protocol
       is heavily influenced by the printing model introduced in the Document
       Printing Application (ISO/IEC 10175 DPA) standard.  Although DPA
       identifies both end user and administrative features, the first version
       of IPP is focused only on the end user functionality.

       Section 2 is a comparison between the new IPP model and a
            generic description of the various solutions and
            architectures that exist in today's distributed printing
            products.  This section shows a high level mapping
            between 2.  Terminology introduces the complex set of inter-dependent distributed
            printing components and terminology used within this
       document.

       Section 0 introduces the simplified IPP model.  This new  The IPP model simplifies the back-end implementations is made
       simple by exposing only the objects, attributes, and operations that are
       essential for end user access and control of the print subsystem.  When
       future versions of IPP include features which satisfy operator and
       administrator requirements, the model can be extended to support the
       appropriate objects, attributes, and operations.

       Section 3 0 introduces the full semantics of the new Printer, Job, and
       Document objects in the IPP model.  It covers how instances of these
       objects are identified, named, and related to each other.

       Section 4 0 covers the operations which that are part of the IPP model.  These
       operations include: the Print, Create-Job, Send-Document, Print-Job, Cancel, Get
            Attributes,
       Get-Attributes, and Get Jobs Get-Jobs operations.  The Print and Get
            Jobs operations are performed by a Printer. The Get
            Attributes operation  is performed by either a Printer or
            a Job.  A Cancel Job operation is performed on a Job
            object.

       Section 5 0 describes the attributes, their syntaxes, and semantics which
       are part of the IPP model.  Each object's attributes are described, and
       the attributes are grouped into logical groups to help clarify their
       relationships and meaning.

            Sections 6-9 cover security, technical references, and
            author contact information.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          1.1 Conformance

            This specification uses the verbs: "shall", "should",
            "may", and "need not"  These groups are also used to specify conformance requirements
            as follows:

            - "shall":  indicates an action simplify
       queries that the subject request multiple attributes.

       Section 7.  Conformance is a review of the
            sentence must implement in order to claim conformance issues and clarifies
       requirements that apply to
            this client side and server side implementations.

       Sections 8. IANA Considerations, Registered Extensions, Private
       Extensions-11. Author's Address cover extensibility, security, technical
       references, and author information.

       2.   Terminology

       This specification

            - "may":  indicates an action that the subject of uses the
            sentence does not have to implement terminology defined in order to claim
            conformance to this specification, in other section.

                        June 3, 1997, Expires December 3, 1997
       2.1  Conformance Terminology

       The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
       "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and  "OPTIONAL" in this
       document are to be interpreted as described in RFC 2119 [25].

       2.1.1     MUST

       This word, or the terms "REQUIRED",  "SHALL" or "MANDATORY", mean that
            action
       the definition is an implementation option

            - "need not":  indicates an action that the subject absolute requirement of the sentence does not have to implement in order to claim
            conformance to this specification.  The verb "need not"
            is used instead of "may not", since "may not" sounds like
            a prohibition.

            - "should":  indicates an action

       2.1.2     MUST NOT

       This phrase, or the phrase "SHALL NOT", mean that is recommended for the subject definition is an
       absolute prohibition of the sentence to implement, but is not
            required, specification.

       2.1.3     SHOULD

       This word, or the adjective "RECOMMENDED", mean that there may exist
       valid reasons in order to claim conformance particular circumstances to this
            specification.

            A conforming implementation shall implement all
            operations ignore a particular item,
       but the full implications must be understood and  objects defined carefully weighed
       before choosing a different course.

       2.1.4     SHOULD NOT

       This phrase, or the phrase "NOT RECOMMENDED" mean that there may exist
       valid reasons in particular circumstances when the particular behavior
       is acceptable or even useful, but the full implications should be
       understood and the case carefully weighed before implementing any
       behavior described with this document.

            Attributes are conditionally mandatory. label.

       2.1.5     MAY

       This means word, or the adjective "OPTIONAL", mean that an implementation need not item is truly
       optional.  One vendor may choose to include an attribute if the
            attribute controls item because a feature
       particular marketplace requires it or because the vendor feels that it
       enhances the product while another vendor may omit the same item.   An
       implementation which does not support.  For example, include a printer that can only print
            on one side need not implement the "sides" attribute.  A
            printer that particular option MUST be
       prepared to interoperate with another implementation which does not support any of include
       the finishing
            attribute values, need not implement option, though perhaps with reduced functionality. In the "finishing"
            attribute.  An same vein
       an implementation that which does not allow for
            non-ready supported values in addition to ready values,
            need not implement a full set of possibly supported
            values.  A printer with only include a single input tray particular option MUST be
       prepared to interoperate with
            only one media type in that tray need another implementation which does not implement
       include the
            "media" attribute.

            Some option (except, of course, for the attributes include values which are
            extensible.  The set of attributes themselves are also
            extensible.  Therefor, an IPP implementation (either
            client or server) shall support these extensions.  Some
            implementations may choose to ignore private extensions,

            draft-ietf-ipp-model-00.txt, expires September 26, feature the option
       provides.)

       2.1.6     CONDITIONALLY MANDATORY

                        June 3, 1997, Expires December 3, 1997
            others my
       This term means that an item MUST be able to support these values.  On the client
            side, this might mean displaying implemented in a conforming
       implementation if the values item corresponds to a feature or behavior that the end
            user via some extensible user interface mechanism.  On
       implementation is capable of realizing.  It is also true, that a
       conforming implementation NEED NOT implement the server side,  it might mean actually performing items that correspond
       to features or behaviors that the
            semantic implmentation is not capable of
       realizing.

       2.1.7     NEED NOT

       The verb "NEED NOT" indicates an action implied by the new value.  In either
            case, that the operation shall not fail because either subject of the
            client or server sentence
       does not understand extended values or
            attributes.

            IPP allows for variations on attributes using have to implement in order to claim conformance to the
       standard.  The verb "NEED NOT" is used instead of "MAY NOT" since "MAY
       NOT" sounds like a mechanism
            called "attribute tags" or "adornments" (see section
            5.1.3).  Clients can supply attributes with tags that
            represent variations on prohibition.

       2.2  Model Terminology

       2.2.1     Keyword

       Keywords are used within this document as identifiers of semantic
       entities within the normal (unadorned) abstract model.  These entities are often attribute
            semantics.  Servers can also respond with tagged
       names, attribute information.  Tags are most applicable values, attribute syntaxes, and
            useful in more sophisticated implementations.  Therefor,
            all adornment tags are optional for conforming
            implementations.  This allows for interoperability since
            the behavior attribute groups. In
       this document, a keyword is a sequence of implementations characters (length of 1 to
       255) which can not support the
            semantics consists of the adornment tags is consistent following ASCII characters: letters, digits,
       hyphen ("-"), and underscore ("_").  A keyword MUST start with a letter.
       In the
            behavior implied by the absence actual protocol, these keywords will be represented using an
       appropriate protocol encoding (strings, enumerated values, constants,
       operation codes, identifiers, etc.).

       2.2.2     Attributes

       An attribute is an item of all tags.

          1.1.1 Client Considerations

            IPP clients shall support all operations, objects, information consisting of an attribute name
       and attribute value(s) using a specific syntax for that attribute. All
       attributes as are defined in this document.  However, there section 6.    Object Attributes.  Attributes
       are identified as being "MANDATORY", "CONDITIONALLY MANDATORY", or
       "OPTIONAL".

       2.2.3     Attribute Name

       Each attribute is no conformance requirements placed on the user
            interfaces provided uniquely identified in this document by IPP clients or their applications.
            For example, one application might not allow an end user
            to submit multiple documents per job, while another does.
            One application might first query its attribute
       name which is a Printer object keyword.  The keyword attribute name is given in
            order to supply a graphical user interface (GUI) dialogue
            box with current supported and default values whereas a
            different application might not.  A conforming client may
            choose to ignore any adornment tags it does not
            understand.

          1.1.2 Server Considerations

            It is not required that a conforming server support all
            (standard) values of all supported attributes.  For
            example, it is not required the
       section header describing that a printer implement all
            finishing methods attribute.  In running text in this
       document, attribute names are indicated by the standard values. inside double quotation marks
       (").

       2.2.4     Group Name

       Related attributes are grouped into named groups.  The
            explicit requirement name of the term "supported", with
            respect to one group
       is a keyword.  It can be used wherever an attribute name is used in

                        June 3, 1997, Expires December 3, 1997
       place of naming all the attributes that deal with printer
            functions or resources, is that the server shall

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            recognize in the group explicitly.  Attribute
       groups are defined in section 6.   Object Attributes.

       2.2.5     Attribute Value

       Each attribute and those shall have one or more values.  Attribute values that are
            supported, and shall be able to respond to a query about
            which values
       represented in the syntax type specified for that printer does, attribute. In running
       text in fact, support.  A
            conforming server shall ignore any adornment tags it does
            not understand.

          2. Simplified Printing Model this document, attribute values are indicated inside single
       quotation marks ('), whether their syntax types are keyword, integer,
       text, etc.

       2.2.6     Attribute Syntax

       Each attribute is defined using an explicit syntax.  In order to a achieve its goal of realizing this document,
       each syntax type is defined as a workable
            printing keyword with specific meaning.  The
       protocol specification document [23] shall indicate the actual
       representation for each syntax type that shall be used for the Internet, IPP is based on a
            simplified printing model which abstracts the many (often
            complex) real world printing solutions.  Many of these
            include features, interfaces, and relationships that actual
       protocol.  Attribute syntaxes are
            beyond the scope of IPP.  IPP has to run defined in section 6.1    Attribute
       Syntaxes.

       2.2.7     Implements

       By definition, an attribute is implemented if, in response to a distributed
            computing environment where requesters of print services
            (clients, applications, PC drivers, etc.) cooperate and
            interact query
       for that attribute, an implementation responds with print service providers.  Although both the
            underlying configuration may be attribute
       and a complex n-tier
            client/server system, an important simplifying step in
            the IPP model is current value (or values) for that attribute. . A conforming
       implementation SHALL implement all MANDATORY attributes and it SHALL
       implement all CONDITIONALLY MANDATORY attributes whose possible values
       correspond to expose only the key objects and
            interfaces.  The IPP model encapsulates behaviors that the important
            elements into three simple objects:

               Printer (section 3.1)
               Job (section 3.2)
               Document (section 3.3)

            Each of these objects has a set implementation is capable of operations associated
            with it.  These include:

               Printer:
                 Print (section 4.2.1)
                 Get Attributes (section 4.2.3)
                 Get Jobs (section 4.2.4)
               Job object
                 Get Attributes (section 4.2.3)
                 Cancel Job (section 4.2.2)

            There are no operations defined for
       realizing.

       2.2.8     Supports

       By definition, a Document object.
            All document information job processing behavior or selectable feature is accessed through
       supported by Printer only if that Printer implements the corresponding
       "supported" attribute populated with the value representing that
       behavior or feature.  A given implementation may exhibit a Job object
            and its operations.

            It is important, however, to understand behavior that in real
            system implementations (which lie underneath
       corresponds to the
            abstracted IPP model), there are other components value of a
            print service which are not explicitly modeled in some supported attribute, but if the IPP
            model.  These components allow
       implementation, when queried for additional operator

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            and administrator functionality. These components are
            illustrated in that attribute, doesn't respond with
       the following figure:

                                       +--------------+
                                       |  Application |
                                       +------+-------+
                                              |
                             o         +..............+
                            \|/        |   Spooler    |
                            / \        +..............+
                          End-User            |
                +-----------+ +-----+  +..............+   Existing
                |  Browser  | | GUI |  | Print Driver |   Print
                +-----+-----+ +--+--+  +..............+   Client
                      |          |            |            |
                      |      +---+------------+---+   +----+----+
          N   D   S   |      |      IPP Client    |<--| Gateway |
          O   I   E   |      +---------+----------+   +---------+
          T   R   C   |                |
          I   E   U   |
          F   C   R  -------------- Transport --------
          I   T   I
          C   O   T                    |         --+
          A   R   Y           +--------+--------+  |
          T   Y               |    IPP Server   |  |
          I                   +--------+--------+  |
          O                            |           |
          N                   +.................+  | supported attribute populated with that specific value, then as far
       as IPP is concerned, that Printer
                              |  Print Service  |  |
                              +.................+  |
                                       |           |
                                Output Device(s)   |
                                                 --+

            This figure shows does not  support that feature.
       Section 6.  Object Attributes describes all of the abstraction Printer object's
       supported attributes.  Most of a the Printer
            object object's supported attributes
       are OPTIONAL or CONDITIONALLY MANDATORY, therefore conformance to IPP
       does not only supports the functionality mandate that all implementations support all possible value
       representing all possible job processing behaviors and features.

                        June 3, 1997, Expires December 3, 1997
       For example, if a given instance of the actual
            output device but additionally a Printer supports (where
            implementation configuration requires) only certain
       document formats, then that Printer SHALL implement the spooling,
            scheduling, "document-
       format-supported" attribute and multiple output device management
            functions often associated that attribute SHALL be populated with a print server.

            In
       set of values, possibly only one, taken from the  IPP model, users take on entire set of possible
       values defined in this model document.  This implemented set of values
       represent the role Printer's set of end users,
            operators, or administrators based on authentication and
            authorization mechanisms provided through the security
            service(s).  Printers are registered as entries in supported document formats.  Another
       example is the
            directory.  End users find and select Printers based on
            some sort "finishings-supported" attribute.  If a Printer is not
       physically capable of filtered and context based searching using

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            the directory.  The directory stapling (there is used to store relatively
            static information about no stapler in the Printer.  This allows end
            users to search for and find Printers that match their
            search criteria (name, context, printer capabilities,
            etc.)  All information about output device
       itself), the Printer, both static and
            dynamic information, can "finishings-supported" attribute MUST NOT be accessed directly from implemented
       with the
            Printer itself. value of 'staple'.  Note: The more dynamic information associated
            with supported attributes are set
       (populated) by some administrative process or automatic sensing
       mechanism which is outside the scope of IPP.

       3.   Simplified Printing Model

       In order to a Printer includes state, currently loaded and ready
            media, number achieve its goal of jobs, errors, warnings, etc.  Once an
            end user selects realizing a Printer, workable printing protocol
       for the end user interacts with Internet, IPP is based on a simplified printing model which
       abstracts the many (often complex) components of real world printing
       solutions.  Many of these systems include features, interfaces, and
       relationships that Printer in order are beyond the scope of IPP.  IPP has to determine status and
            capabilities run in a
       distributed computing environment where requesters of the Printer print services
       (clients, applications, PC drivers, etc.) cooperate and then submits jobs to interact with
       print service providers.  Although the
            Printer.  When underlying configuration may be a job
       complex n-tier client/server system, an important simplifying step in
       the IPP model is submitted to expose only the Printer, a Job
            object is created.  The end user then interacts with this
            new Job to query its status key objects and monitor the progress of
            the job.  End users may also cancel the Job.  The end
            user is able to register to receive certain events which
            are then routed using the notification service(s).

            It should be obvious, that not all existing or even
            future print subsystems conform to this model directly. interfaces required
       for printing.  The IPP model however, can be overlaid on top of  any of encapsulates these products and architectures. How does this IPP model
            fit on top important elements into
       three simple objects:

         Printer (Section 0)
         Job (Section 0)
         Document (Section 0)

       Each of these systems?  In order to answer that
            question we must first consider objects has a generic model that
            allows us set of operations associated with it.  These
       include:

         Printer:
            Create-Job (Section 0)
            Print-Job (Section ???)
            Get-Attributes (Section 0)
            Get-Jobs (Section 0)
         Job
            Send-Document(section ???)
            Get-Attributes (Section 0)
            Cancel Job (Section 0)

                        June 3, 1997, Expires December 3, 1997
       There are no operations defined for a Document object.  All document
       information is accessed through a Job object and its operations.

       It is important, however, to describe understand that in real system
       implementations (which lie underneath the many different features and abstracted IPP model), there
       are other components of these various systems.

            Consider the figure above.  Each distributed a print service product will include elements from the following
            list:

            End Users:  End Users which are humans who submit print jobs.
            End users will  issue not explicitly defined
       in the IPP operation requests  and receive model. The following figure illustrates where IPP operation responses through an end user interface.

            GUI: A Graphical End User Interface developed
            specifically for interacting fits with an IPP Client.

            Browser: A World-Wide-Web Browser. IPP conforming systems
            will support access
       respect to print  functions using standard
            Web Browsers.

            Applications: these other components.

                                    +--------------+
                                    |  Application software which produces printer
            output and submits it for printing. Some applications
            generate printer page description languages directly,
            while others depend on operating system components, such
            as a |
                          o         +. . . . . . . |
                         \|/        |   Spooler    |
                         / \        +. . . . . . . |   +---------+
                       End-User     | Print Driver, to do so.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            Spooler: Driver |---|  File   |
             +-----------+ +-----+  +------+-------+   +----+----+
             |  Browser  | | GUI |         |                |
             +-----+-----+ +--+--+         |                |
                   |          |            |                |
                   |      +---+------------+---+            |
       N   D   S   |      |      IPP Client    |------------+
       O   I   E   |      +---------+----------+
       T   R   C   |                |
       I   E   U   |
       F   C   R   -------------- Transport ------------------
       I   T   I
       C   O   T                    |         --+
       A system component which stores print jobs prior
            to submitting them for printing. On the client side, a
            spooler allows   R   Y           +--------+--------+  |
       T   Y               |    IPP Server   |  |
       I                   +--------+--------+  |
       O                            |           |
       N                   +.................+  | IPP Printer
                           |  Print Service  |  |
                           +.................+  |
                                    |           |
                             Output Device(s)   |
                                              --+

       IPP Printers encapsulate the application to run asynchronously from functions normally associated with physical
       output devices along with the actual transmission spooling, scheduling and multiple device
       management functions associated with a print operation. On the
            server side, server. Printers may be
       registered as entries in a spooler allows the server to receive directory where end users find and
            store multiple jobs while printing. Spoolers are optional
            components.

            Print Driver: In select
       them based on some desktop operating systems, such as
            Windows, Print Drivers are sort of filtered and context based searching.  The
       directory is used by the  operating system to generate store relatively static information about the actual PDL

                        June 3, 1997, Expires December 3, 1997
       Printer, allowing end users to search for a given device from an
            internal, device independent presentation format. This
            keeps the applications themselves  from having to worry
            about generating device specific data streams for each
            possible output device. Print Drivers do not exist in all
            environments.

            IPP clients: and find Printers that match
       their search criteria (name, context, printer capabilities, etc.)

       IPP clients are computer network nodes with
            which humans, though a GUI or a command line, implement the IPP protocol on the client side and give end
       users or programs
            interact in order to manipulate the distributed ability to query an IPP Printer and submit and
       manage their print
            service. jobs.  An IPP client uses server is just that part of the IPP protocol to invoke
            IPP operations on another node. Each operation has
            arguments and results associated with it.
       Printer that implements the protocol.  The rest of the IPP client
            provides arguments which add Printer
       implements the application semantics of the print service itself.  All
       information about the
            operation requested, Printer, both static and receives results which describe dynamic information, can
       be accessed directly from the status Printer itself.  The more dynamic
       information associated with a Printer includes state, currently loaded
       and outcome ready media, number of jobs on the operation.

            Gateway:  Gateways provide Printer, errors, warnings, etc..
       When a mechanism for supporting job is submitted to the
            clients of existing print services, such as LPR. A
            gateway transforms Printer, a Job object is created.  The
       end user then interacts with this new Job to query its status and
       monitor the protocol progress of an existing client
            into IPP and vice-versa.

            Transport: the job.  End users may also cancel the Job.
       The transport system and protocol used end user is able to
            carry register to receive certain events which are
       then routed using the notification service(s).

       4.   IPP messages across Objects

       4.1  Printer Object

       A major component of the network. IPP assumes a
            reliable transport protocol.

            Notification Services: Notification services in model is the
            network provide a means for asynchronously communicating
            events such as completion Printer object.

       The capabilities and state of a print job back to an end-
            user. These notification services IPP Printer are used described by IPP but its
       attributes.  Printer attributes are
            not included natively in the IPP protocol. Example would
            be include e-mail, HTTP POSTs, or any other similar
            service.

            Directory Services: Directory services defined in the network
            provide following categories:

         Job Template Attributes (section 6.5.1     Printer Job Template
            Attributes)
         Printer Description Attributes (section 6.5.2   Printer Description
            Attributes)

       Operations which are invoked on a means where IPP Printers can be advertised by
            registering with the directory.  Although not mandatory
            in an IPP conforming system, the use printer include:

         Create-Job (section 0)
         Print-Job (section ???)
         Get-Attributes (section 0)
         Get-Jobs (section 0)

       An instance of a directory

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            service is suggested in order to provide printer location
            services to Printer object implements IPP.  Using the protocol, end users. A generic directory schema for IPP
            Printers is described in "Internet Printing Protocol/1.0:
            Directory Schema".

            Security: The IPP protocol itself does not contain any
            unique security mechanisms, but rather it depends upon
            existing security systems, such as Secure Sockets Layer
            (SSL)
       users may query the attributes of the Printer, submit jobs to provide authentication, privacy the
       Printer, determine subsequent states of submitted and message
            integrity.

            IPP Server:  An IPP queued jobs, and
       cancel their own print jobs. The realization of a Printer object is an abstraction may
       take on different forms for any given configuration of
            some print service provider.  An Printer, by definition,
            supports real components.
       However, the IPP protocol.  The component that implements details of the protocol on behalf configuration of real components must be
       transparent to the end user.

                        June 3, 1997, Expires December 3, 1997
       Since a Printer object is called an IPP
            Server.  In real configurations, an IPP Server may be a
            component abstraction of a print server generic document output
       device or print service provider, an output device.

            Print Service:  Print Services may IPP Printer object could be embedded in an
            output used to
       represent any real or virtual device with semantics consistent with the
       Printer object. For example, an instance of a Printer object could be
       used to front end a fax-out device, any kind of imager, or implemented in even a separate system which
            is associated CD
       writer.

       Some examples of configurations supporting a Printer object include:

         1) An output device, with an no spooling capabilities
         2) An output device. The device, with a built-in spooler
         3) A print service
            receives requests from the server supporting IPP client, performs the
            requested operation,  and sends back results which
            describe the status and outcome with one or more associated output
            devices
            3a) The associated output devices might or might not be capable of the operation
            requested.  A print service normally provides queuing,
            job management, and device management functions.

            Output Devices: Output
              spooling jobs
            3b) The associated output devices interpret might or might not support IPP

       See the print data
            and generate following figures for some form of output. In the case examples on how to view Printer
       objects on top of a laser
            printer, for example, this normally means rasterizing the several print data system configurations.  The embedded
       case below represents configurations 1 and putting the resulting marks on paper.  An 2. The hosted and fan-out
       figures below represent configuration 3.

                        June 3, 1997, Expires December 3, 1997
       Legend:

       ##### indicates a Printer object which is
             either embedded in an output device may receive print data directly from a
            client or through is
             hosted in a Print server.

            A specific  The implementation of a print service may
             might or might not
            include all of the elements described here, and the
            physical packaging be capable of elements is up to the
            implementation. For example, an queuing/spooling.

       any   indicates any network protocol or direct
             connect, including IPP

       embedded printer:
                                                 output device may include
                                               +---------------+
        O   +--------+                         |  ###########  |
       /|\  | client |------------IPP------------># Printer #  |
       / \  +--------+                         |  # Object  #  |
                                               |  ###########  |
                                               +---------------+

       hosted printer:
                                               +---------------+
        O   +--------+        ###########      |               |
       /|\  | client |--IPP--># Printer #-any->| output device |
       / \  +--------+        # Object  #      |               |
                              ###########      +---------------+

                                                +---------------+
       fan out:                                 |               |
                                            +-->| output device |
                                        any/    |               |
        O   +--------+      ###########   /     +---------------+
       /|\  | client |-IPP-># Printer #--*
       / \  +--------+      # Object  #   \     +---------------+
                            ########### any\    |               |
                                            +-->| output device |
                                                |               |
                                                +---------------+

       4.2  Job Object

       A Job object is used to model a queue job.  A job can contain one or more
       documents.  The information required to create a print server may include Job object is sent in a rasterizer.

          3.
       create request from the end user via an IPP Objects

          3.1 Printer client to a Printer.  A major component

                        June 3, 1997, Expires December 3, 1997
       create request can be either a Create-Job Request or a Print-Job
       Request.  The Printer may perform some validation checks to verify that
       the job may indeed be processed.  For example, the create request may
       specify that the documents within the job are to be printed duplex (on
       both sides of the IPP model is media).  However, the Printer object.
            To the end user, might not support such a
       feature.  Once the Printer validates the submitted information, a Job
       object is an abstraction created.  The instance of

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            not only the functionality typically associated Job object is initialized with an
            actual output device, but also the abstraction
            additionally supports (where necessary)
       information from the spooling,
            scheduling, and multiple output device management
            functions often associated with create request.  If a print server.

            The capabilities and state of an IPP Printer Create-Job operation is used
       to create the Job object, subsequent Send-Document operations are
            described by its attributes.  Printer used
       to transfer the document data from the client to the IPP Printer.

       This model specification defines rules for what MUST be done when:

         - optional attributes are
            defined missing
         - there are  conflicts between what is supported and what is
            requested
         - there are conflicts between what the client requests via external
            attributes in the IPP operation and what the client requests in
            embedded instructions in the document page description language
            (PDL).

       Job attributes are broken up into the following categories: groups:

         Job Template Attributes (section 5.2)
               Printer Description (optionally supplied by the client/end user,
            section 6.3.1  Job Template Attributes (section 5.5)
               Printer Status
         Job Description Attributes (section 5.6)
               Printer Behavior attributes (section 5.7)

            Operations which (set by the Printer, section 6.3.2  Job
            Description Attributes)

       The following operations can be invoked on a printer include:

               Print (section 4.2.1)
               Get Attributes Jobs:
         Send-Document(section 5.1.3 Send-Document Operation)
         Cancel Job (section 4.2.3)
               Get Jobs 0)
         Get-Attributes (section 4.2.4)

            An instance 0)

       4.3  Document Object

       Documents consist of a Printer object implements IPP.  Using
            the protocol, end users may query the printable data and attributes of that describe the
            Printer, submit jobs
       data to the Printer, determine subsequent
            states of submitted and queued jobs, and cancel their own
            print jobs. The realization of a Printer object may take
            on different forms for any given configuration of real
            components. However, the details be printed.  In this version of the configuration of
            real components must be transparent to protocol only the end user.

            Since a Printer object is an abstraction of a generic
            document output device, an IPP Printer object could be
            used to represent any real or virtual device with
            semantics consistent with the Printer object. For
            example, an instance of a  Printer object could be used
            to front end attributes
       in section 6.4 Document Attributes are  defined for individual
       documents.  Documents are sent in a fax-out device, any kind of imager, Send-Document operation or
            even a CD writer.

            Some examples of configurations supporting in a Printer
            object
       Print-Job operation.

       Document attributes include:

               1) An output device, with

         Document Attributes (section 0)

       Currently no spooling capabilities
               2) An output device, operations are defined on documents.

                        June 3, 1997, Expires December 3, 1997
       4.4  Object Relationships

       Instances of objects within the system have relationships that must be
       maintained persistently along with a built-in spooler
               3) the persistent storage of the object
       attributes.  A print server supporting  IPP with Printer can represent one or more
          associated output devices
                 3a) The associated devices.  An
       output devices may or may not device can be
          capable

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                      of spooling jobs
                 3b) The associated output devices may or may not
          support IPP

            See the following figures for some examples on how to
            view Printer objects on top of other printing system
            configurations.  The embedded case represents
            configurations 1 and 2.  Configuration number 3 is represented by the hosted and fan-out figures below.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            Legend:

            ##### indicates a at most one Printer object which is
                  either embedded in an output device object.  A
       Printer can contain zero or more Job objects.  A Job object is
                  hosted contained
       in a server.  A exactly one Printer object.  A Job object
                  may contains one or more
       Documents.  If the Document is simply a reference to some print data
       stream, the reference may not queue/spool.

            any   indicates any network protocol or direct
                  connect, including IPP

            embedded printer:
                                                      output device
                                                    +---------------+
             O   +--------+                         |  ###########  |
            /|\  | client |------------IPP------------># Printer #  |
            / \  +--------+                         |  ###########  |
                                                    +---------------+

            hosted printer:
                                                    +---------------+
             O   +--------+        ###########      |               |
            /|\  | client |--IPP--># Printer #-any->| output device |
            / \  +--------+        ###########      |               |
                                                    +---------------+

                                                    +---------------+
            fan out:                                |               |
                                                +-->| output device |
                                            any/    |               |
             O   +--------+      ###########  /     +---------------+
            /|\  | client |-IPP-># Printer #-*
            / \  +--------+      ###########  \     +---------------+
                                            any\    |               |
                                                +-->| output device |
                                                    |               |
                                                    +---------------+

          3.2 Job

            A be used in multiple documents in the same Job object
       or even in different Jobs.  If the Document is used to model not just a job.  A job can contain reference, but
       an actual stream of print data, it shall only be contained in one or more documents.  The information required to
            create a Job
       Document, although there can be copies of it in other Documents.

       4.5  Object Attributes

       Each object type is sent in defined by a Print operation from set of attributes which describe the
            end user via a client implementation to
       realization of each instance of an object.  That is, a Printer.  The

            draft-ietf-ipp-model-00.txt, expires September 26, 1997 Printer may perform some validation checks to verify that
            the job may indeed be processed.  For example, the Print
            operation may request object is
       defined as set of attributes that the documents within the job
            be printed duplex (on both sides are associated with each instance of the media).  However,
            the Printer may not support such a feature.  Once the
       Printer validates object.  In the submitted information, same manner, a Job object is created.  The instance of the Job object is
            initialized with information from the Print request along
            with default information from defined by defining
       the Printer.  This document
            defines rules which define which pieces of information
            override other pieces set of information and what to do in
            the event attributes that are associated with each instance of conflicts between what is possible and what
            is requested. a Job
       object.  Some attributes are broken up into the following groups: OPTIONAL, some are MANDATORY, and some are
       CONDITIONALLY MANDATORY (see section 2).  Object attributes are defined
       in section 0 of this document.

       4.5.1     Job Template Attribute Overview

       Attributes that a client may optionally supplied by the
          client/end user
                 Job Sheet Attributes (section 5.2.1)
                 Job Notification Attributes (section 5.2.2)
                 Job Scheduling Attributes (section 5.2.3)
                 Job Production Attributes (section 5.2.4)
                 Document Production Attributes (section 5.2.5)
                 Document Format Attributes (section 5.2.6) include in a create request are
       called Job Template Attributes set by Client and attributes.  These are described in detail in
       section 0.  The Printer
                 Job Size Attributes (section 5.2.7)
               Job Template Attributes set by object has associated attributes which define
       supported and default values for the Printer
                 Number of Documents Attribute (section 5.2.8) Printer.

         - When a Job Attributes set Template attribute is supplied by a client in a create
            request, the Printer
                 Job Identification Attributes (section 5.3.1)
                 Job Owner Attributes (section 5.3.2)
                 Job Status Attributes (section  5.3.3)

            The following operations can be invoked on Jobs:

               Cancel Job (section 4.2.2)
               Get Attributes (section 4.2.3)

          3.3 Document Object

            Documents consist of printable data attribute and attributes which its value describe the data to be printed.  In this version of the
            protocol only the document format desired job
            processing behavior.

         - The Printer object's supported attribute may describes what behaviors
            are possible.

         - The Printer object's default value attribute describes what will be
            defined for individual documents.

            Document attributes include:

               Document Attributes (section 5.4)

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            Currently
            done when no operations are defined on documents.

          3.4 Object Relationships

            Instances of objects within the system have relationships
            which must be maintained persistently along with the
            persistent storage of the object attributes.  A Printer
            can represent one or more output devices.  An output
            device can be represented other job processing information is supplied by one or more Printer objects.
            A Printer can contain zero or more Job objects.  A the
            client.

                        June 3, 1997, Expires December 3, 1997
       4.5.2     The "best-effort" Job
            object is contained in exactly one Printer object. Attribute Overview

       A client supplies Job
            object contains one or more Documents.  If the Document
            is simply a reference Template attributes to some print data stream, affect the
            reference may be used in multiple documents in rendering,
       production and finishing of the same
            Job or even documents in different Jobs.  If the Document is not
            just a reference, but an actual stream job.  Similar types of print data, it
            shall only
       instructions may also be contained in one Document.

          3.5 Object Attributes

            Each object type is defined by a set of attributes the document to be printed, that
            support and describe
       is, within the realization of each instance Page Description Language (PDL) of
            an object.  That is, a Printer object the document data.  If
       there is defined as
            specific set a conflict between the value of attributes that are associated with each
            instance one of these IPP Job Template
       attributes, and a Printer object.  In corresponding instruction in the same manner, a Job
            object document (either
       implicit or explicit), it is defined by defining desirable that the set of attributes that
            will be associated with each instance value of the attribute
       shall take precedence over the document instruction.   Until companies
       that supply interpreters for PDLs, such as PostScript and PCL allow a Job object.
            These attributes are defined in section 5 of this
            document.  Some attributes apply
       way to only a Job object.
            Some apply external attributes (such as IPP attributes) to only take precedence
       over internal job production instructions, a Printer object.

            In addition, there are some attributes might not be able
       to implement the semantics that are shared
            between both Printer objects and Job objects.  These
            attributes are defined in section 5.2.  They are called
            Job Template attributes.  When one of these IPP attributes is
            part of override (take on a
       higher precedence) the embedded PDL instructions.   Therefore, IPP
       introduces a special Job object, it specifies some end user job
            processing instruction.  It describes "what is wanted" by Template attribute named "best-effort".  This
       attribute gives the end user.  When the attribute is part of user some ability to influence, or at least
       understand, how a particular Printer
            object, it specifies what implementation handles these
       conflicts.

       This attribute takes on the printer is capable of .  It
            describes "what is supported" by this instance of a
            Printer.  Also, as following values:

         - 'shall-honor-ipp-attributes': If a Printer attribute, , the attribute
            may have an optional default value which shall be used
            for Jobs which do not supply an attribute value .  This
            default supports this value describes "what will happen" if not
            supplied in the by the end user in and
            a client requests this value, the Print Request.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            For example, one such Job Template Printer guarantees that all IPP
            attribute is values take precedence over embedded instructions in the "job-
            priority" attribute.  When this attribute is part
            job data (the PDL of the job's documents).
         - 'should-honor-ipp-attributes': If a Printer object, its value us a range of job priority
            values. This range indicates what job priorities are
            supported at supports this Printer.  It may also have value,
            and a default
            value that determines what the job priority will be if
            not supplied  in the Print Request.  When client requests this value, the "job-
            priority" Printer should try to make
            sure that IPP attribute values take precedence over embedded PDL
            instructions, however there is included with the Print Request,
            it specifies the desired job priority for this job. If
            the request does not include the job-priority attribute,
            the no guarantee

       ISSUE: Should these be 'shall-honor-attribute-precedence' and 'should-
       honor-attribute-prcedence'?

       A Printer creates the Job object using SHALL implement the default
            value from Printer "best-effort-supported" attribute.  If the Print Request  Notice
       that since 'should-honor-ipp-attributes' does
            supply not offer any type of
       guarantee, a job priority value, the Printer must validate
            the user supplied may not do a very "good" job priority; perhaps of implementing the end user is
            requesting
       semantics of "should", but it would still be a job priority which conforming
       implementation.

       If there is higher that ever a conflict between what is
            allowed by the Printer. If a Printer supports and what an
       IPP client requests, the value in Printer shall reject the print request
            is within the range of supported values, request.  A
       client should query the request printer to find out what is
            accepted supported before
       making a request.  This ensures that all requested attribute values are
       supported.

       ISSUE: Should this be called "effort-level" rather than "best-effort"?

                        June 3, 1997, Expires December 3, 1997
       4.6  Object Identity

       All instances of Printer and the Job object is created using the value
            supplied by the end user.  In this case, the Printer's
            default value is not used.  If the objects have an identifier attribute
       whose value supplied in the
            request is outside the range of supported values, the
            request is rejected.

            Section 5.1 also introduces the notion of adornments on
            attribute values in order to handle some nuances
            associated with values of certain Job globally unique so that they can persistently and Printer
            attributes.  These adornments are tags
       unambiguously referenced.  The IPP model requires that are
            associated with specific these values in the attribute.  For
            example, in a Printer object, one of the attributes is
            the medium attribute.  A set be
       URIs as defined by RFC 1738 and RFC 1808.  In addition to an identifier
       attribute, instances of values in this attribute
            implies that the Printer is capable of printing jobs on
            those media types.  However, there and Job objects may be a distinction
            between have a supported value that is "ready" and another
            that is "not-ready".  This semantic information can name.  An
       object name need not be
            passed between the unique across all instances of  all objects.
       The Printer name is chosen and interested clients set by
            using an "availability" tag which identifies each value
            as either being ready or not ready (even though they are
            all supported).

            Two important attributes that need to be mentioned here
            are the "multiple-documents-are" attribute and the "best-
            effort" attribute. administrator.  The "multiple-documents-are attribute" Job name is relevant only
            if a job consists of two or more documents. It controls
            finishing operations, job-sheet placement, and
       created by the order Printer using the name of documents when the copies attribute is specified.  The
            end user uses this attribute in a Print Request to

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            control whether multiple documents first document in the job are
            intended job.
       In all cases, the name only has local meaning, and is not constrained to
       be finished or copied separately or as one
            job. globally unique.

       To summarize, each instance of Printer and Job objects will have two
       identifying attributes:

         - "xxx-URI": The values globally unique identifier for this attribute are: "single-
            document", "separate-documents-uncollated-copies", or
            "separate-documents-collated-copies". object instance
         - "xxx-name": The "best-effort" non-globally unique name for this object instance

       Document objects only have names, no identifiers.  The "document-name"
       attribute determines what is used to do if
            there store the name of the Document.  This name is just
       of interest within the context of a conflict between what a client requests Job.  It need not be globally
       unique.

       If Documents are printed by reference, they are identified by URIs.

       5.   IPP Operations

       Jobs and
            what Printers each have a Printer is capable set of .  Values for this attribute associated operations. End users or
       programs invoke these operations using an IPP client. The operations
       are: "substitute-as-needed"

         For a Printer object:
            Create-Job (section 0)
            Print-Job (section ???)
            Get-Attributes (section 0)
            Get-Jobs (section 0).

         For a Job object:
            Send-Document (section ??)
            Cancel-Job (section 0)
            Get-Attributes (section 0)

       IPP Job and "do-not-substitute".  If Printer objects are identified by URIs.  When a client
       communicates with a remote IPP object, it sends an operation request to
       the value URI for this attribute in that object.  Each request carries along with it the input
       parameters and data required to perform the specified operation.  Each
       request requires a Print Request is
            "substitute-as-needed" then response from the end user desires object indicating success or

                        June 3, 1997, Expires December 3, 1997
       failure of the job
            be printed using substitutions by operation including response data and/or error messages.
       The representation and encoding of the Printer where
            needed IPP protocol are contained in order to resolve conflicts.  If the value
       "Internet Printing Protocol: Protocol Specification."[23]

       It is
            "do-not-substitute", then the end user desires assumed that the
            job should not be processed unless every attribute value
            can be completely satisfied as specified.   It is not
            expected URIs for IPP Printers are available to end users or
       programs that this attribute wish to invoke Printer operations.  Although NOT
       MANDATORY, it is used much.  Many clients
            will submit RECOMMENDED that Printers be registered in a job with no attributes, directory
       service which end users and programs can interrogate. "Internet Printing
       Protocol: Directory Schema"[24] defines the Printer
            will use default values.  Other clients will submit attributes to be associated
       with a job
            via Printer entry in a GUI which limits directory service.

       5.1  Operation Semantics

       In this section, the attribute values to only those
            which IPP operations are supported.  A value of "substitute-as-needed:
            is useful described in terms of their
       contents and semantics including both the GUI context only if an end user expects request and the job to be moved response.

       In order to another Printer and prefers create a sub-
            optimal result to nothing at all.  Also, an end user may
            be printing new Job object, a pre-formatted document where it is not
            obvious that the client supplied attributes conflict with
            what is in MAY use one of two
       operations:  either the print data itself Create-Job operation or even if the printer
            can satisfy Print-Job operation.
       If the instructions already embedded in client wants to create a Job with only a single Document, the pre-
            formatted document.  This "best-effort" attribute is most
            useful in
       client MAY use the case where an end user uses Print-Job operation or a command line
            interface Create-Job operation
       followed by a single Send-Document operation.  For performance reasons,
       the client SHOULD use the Print-Job operation for all single Document
       Jobs.  If the client wants to  blindly request attributes that may not be
            supported.

          3.6 Object Identity

            All instances of Printer and create a Job objects have an
            identifier attribute whose value is globally unique so
            that they can persistently and unambiguously referenced. with more than one Document,
       the client SHALL use the Create-Job operation followed by as many Send-
       Document operations as needed (on Document per Send-Document operation).
       The IPP Print-Job operation is a convenience operation for creating a Job
       with only one Document.  Throughout this model requires that these values be URLs as
            defined by RFC 1738 and RFC 1808.  In addition specification, the term
       create request is used to refer to either a Create-Job Request or a
       Print-Job Request.

       5.1.1     Print-Job Operation

       When an
            identifier attribute, instances of  Printer and Job
            objects may have end user desires to submit a print job with only one document,
       the client sends a Print-Job Request to a name.  An object name need not be
            unique across all instances of  all objects.  The Printer
            name is chosen and set by an administrator.  The receives a Print-
       Job name Response from that Printer. The information in a Print-Job Request
       (along with any default information associated with the Printer) is created by
       sufficient for the Printer using to create a Job object and then process that
       Job.

       5.1.1.1   Print-Job Request

       The following elements are part of the name Print-Job Request:

         Job Template Attributes:
            An optional set of Job Template attributes as defined in section
            6.2  Job Template Attributes.  If the forst
            document client supplies no Job
            Template attributes in the job.  In all cases, Create-Job Request, the name only has

            draft-ietf-ipp-model-00.txt, expires September 26, Printer uses its
            default value attributes when processing the job.

                        June 3, 1997, Expires December 3, 1997
            local meaning, and is not constrained
         Document Content
            The client either supplies the raw document data or a URI reference
            to be globally
            unique.

            To summarize, each instance the data but not both.

       The simplest Print-Job Request consists of Printer just the Document Content and Job objects
            will have two identifying attributes:

            - xxx-URL: The globally unique locator for this object
            instance

            - xxx-name: The non-globally unique name for this object
            instance

            Document objects only have names, no identifiers.  The
            "document-name" attribute is used to store the name of
            the Document.
       nothing else.  This name is just of interest within means that the
            context of a Job.  It need not be globally unique.

            ISSUE: Do Documents need identifiers?

          4. IPP Operations

          4.1 Introduction

            Printers and Jobs each have a set of operations
            associated with it. End users, or programs invoke, these
            operations through interactions with an IPP client. The
            operations are:

               For a Printer object:
                 Print (section 4.2.1)
                 Get Attributes (section 4.2.3)
                 Get Jobs (section 4.2.4)

               For SHALL create a new Job object:
                 Cancel object
       with no Job (section 4.2.2)
                 Get Attributes (section 4.2.3).

            IPP objects are identified by URLs. Template attributes and a single contained Document.

       When a client
            communicates with Printer receives a remote IPP object, it sends an
            operation request to Print-Job Request, the URL for that object.  Each
            request carries along with it Printer SHALL either
       accept or reject the parameters request. The Printer SHALL accept the Print-Job
       Request and data
            required SHALL create a Job object if it is able to perform accept all
       attributes in the request.  The Printer SHALL reject the specified operation.  Each request requires and
       SHALL NOT create a response from the Job object indicating
            success or failure of the operation including response
            data and/or error messages. Details of if the IPP protocol

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            are contained Printer rejects any attribute in "Internet Printing Protocol: Protocol
            Specification."

            It is assumed that URLs for IPP Printers
       the request. There are available six cases to
            end users or programs who wish consider with respect to invoke Printer
            operations.  Although not mandatory, it is recommended
            that Printers be registered in a directory service which
            end users each Job
       and programs can interrogate. "Internet
            Printing Protocol: Directory Schema" defines the
            attributes to be associated with an Printer entry in Document attributes:

         1. The client supplies a
            directory service.

            ISSUE:  We need to add "implementation notes."  These are
            helpful hints of how to map these abstract concepts to
            real development efforts.  Does it go here?

          4.2 Operation Semantics

            In this section, the four IPP operations are described in
            terms of their contents Job Template attribute named "xxx" and semantics.

          4.2.1 Print Operation

            When an end user desires to submit a print job, the
            value supplied by the client sends a Print Request and receives a Print
            Response. The information in a Print Request along with
            any default information associated with is among the values supported by the
            Printer (i.e., is
            sufficient to create a Job object.  An instance among the values of a the Printer's "xxx-supported"
            attribute): The "xxx" Job
            object Template attribute is accepted.  If the
            "best-effort-supported" attribute contains all the information needed value 'shall-honor-
            ipp-attributes' the Printer SHALL guarantee the behavior
            represented by the value in the "xxx" attribute (i.e., the IPP
            attribute has precedence over any other embedded job instruction).
            If the value of the "best-effort-supported" is 'should-honor-ipp-
            attributes' then the Printer SHOULD try to print one or more documents as a print job.

            When a Printer receives a Print Request, it either
            accepts or rejects realize the request. behavior
            requested by the client, but NEED NOT guarantee the behavior.  The
            Printer accepts the
            Print Request and creates a the Job object if it is able to
            accept each and implements the "xxx" attribute
            in the request, and it rejects the
            request and does not create a new Job object if it rejects
            any attribute in and uses the request. There are five cases to
            consider with respect to each attribute.

            - value supplied by the client.

         2. The client supplies an attribute value and it is among
            the values supported by the Printer: The job attribute is
            accepted.

            - The client supplies an attribute value but but the attribute is
            syntactically bad: The Printer rejects shall reject the
            job.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            - job and return the
            ??? error code.

         3. The client supplies an attribute value and  a) the attribute value is
            not among the values supported by the
            Printer, or b) Printer:  The Printer SHALL
            reject the printer job and return the 'attribute-unsupported' error code.

         4. The client supplies an attribute value and the Printer does not specify
            implement the attribute: The job attribute is accepted only ignored.  The Printer
            behaves as if the
            best-effort attribute is set to substitute-as-needed
            which allows the Printer to perform a best effort at
            processing was never supplied by the job rather than rejecting client in the job.   If
            Print-Job Request.  In the job attribute is accepted, response, the Printer sets SHALL return the value
            names of all ignored attributes.  The final result of the Job is
            undefined for an ignored attribute to a reasonable value, which may (that is the desired behavior
            might or might not be realized).

         ISSUE: Should the
            Printer's default value if it is specified.

            - printer just reject the job?

                        June 3, 1997, Expires December 3, 1997
         5. The client does not supply a value, an attribute, but the Printer
            does:
            implements the attribute: The attribute is accepted and when the
            Printer creates a the Job object, the Printer uses its default value.
            If Printer is able to inspect the PDL and determine SHALL NOT implement the
            value of
            attribute in the embedded attribute, it sets Job object.  When the value of Printer processes that Job,
            the
            attribute Printer SHOULD attempt to use the embedded value and adorns it with the
            embedded tag.

            - Neither the client supplies an attribute value nor does behavior implied by the Printer define a
            default value: The print request is
            accepted, the value Printer creates attribute as set at the time of Job object using
            defaults as defined in this specification.

            Issue:  Can
            processing (not Job creation).  In other words, these rules allow
            for a Job object to be created without implementing some of the
            attributes, then as Job
            Template attributes.  As the Printer processes the Job, there
            is some if the
            Printer implements a default behavior as described either in this
            document or a supplied on an implementation defined
            basis.  That is,  if neither the client nor the Printer's
            default supplies a value attribute for a job the missing Job
            Template attribute, then the
            output device shall supply Printer does its own best to realize the
            behavior of the default value.  If the Printer does not implement
            the default value for that
            job attribute, if necessary, in order to produce output.

          4.2.1.1 Print Request

            ISSUE: The client initially submits the request to results are undefined.

            Note: For each Job Template attribute, this specification REQUIRES
            that a Printer URL. If a client submits a job in fragments, the
            initial submission returns a Job URL to which implement the CONDITIONALLY MANDATORY attributes.

         6. The client
            submits subsequent fragments. does not supply an attribute, and the Printer does not
            implement the attribute:  The following abstract data types are part of Printer accepts the Print
            Request:

               Job and       A set of Job object and Document
               Document      attributes as defined in section 5.2.
               Attributes    This section may be empty.  If so,
                             Printer defaults are used.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               Document      Document content is optional and shall
               Contents      not be included when creates a URL
            Job object.  When the Job is provided
                             in processed, the document-URL attribute which
                             points actual behavior
            realized with respect to the content.

          The simplest Print Request consists of a document contents
          and nothing else.

          4.2.1.2 Print missing Job Template attribute is
            undefined.

       5.1.1.2   Print-Job Response

       The Printer shall return to the client the following abstract data types are output parameters
       as part of the Print Print-Job Response:

               Job-

         Job Identifier:
            A URL Used URI which the client shall use for all other operations on
               Identifier this Job.
            Job Status    All job attributes belonging to the job-
                             status group.

         Job Status:
            The following Job attributes:  job-name, job-state, and job-state-
            reasons.  The value of each attribute shall be from a snapshot
            taken sometime after the time the Printer receives the print
            request.  The "job-state-message" attribute is OPTIONAL.

            Note: Since any job affecting printer state information
                             (printer-state-reasons)  is
            reflected in the job-state "job-state" and job-state-reasons, "job-state-reasons" job
            attributes, it is sufficient to return only job status attributes
            and no printer status
                             attributes.

               Status        status information including error
                             status
               Message       optional status message

          The simplest attributes at Job creation time.

         Ignored Attributes:
            A list of attribute names which were ignored in the creation of the
            Job object.

                        June 3, 1997, Expires December 3, 1997
         Unsupported Attributes:
            A list of attribute names which are unsupported.  Any attributes in
            this list imply that the Job object was not created.

         Bad Attributes:
            A list of attribute names which were syntactically incorrect. Any
            attributes in this list imply that the Job object was not created.

         Status
            Status information including error status

       The simplest response consists shall consist of the job identifier, the Job
          status,
       Status attributes, and an operation status which that is either an OK "ok" status
       or
          Error an "error" status.

          4.2.2 Cancel Job

       5.1.2     Create-Job Operation

            This operation allows a

       When an end user desires to cancel one specific Print
            Job any time after the submit a print job has been established on job, the client sends a
       Create-Job Request to a Printer and receives a Create-Job Response from
       that Printer.  Some pages may be printed before The information in a job is
            terminated if printing has already started when the
            Cancel Job operation is received.  Only Create-Job Request along with any
       default information associated with the end user who Printer is also sufficient for the job originator (job-originating-user
       Printer to create a Job
            attribute) can cancel object.  An instance of a Job object contains
       all the job.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          4.2.2.1 Cancel-Job Request

            The client submits information needed by the request Printer to print one or more documents
       as a Job URL. print job.  If the client follows the Create-Job operations with as
       many Send-Document operations as needed.

       5.1.2.1   Create-Job Request

       The following abstract data types elements are part of the Cancel
            Job Create-Job Request:

               Message       Optional message to

         Number of Documents:
            An optional integer value specifying the operator.

          4.2.2.2 Cancel-Job Response number of Documents for
            this Job.  The following information document data is part transferred in a series of
            subsequent Send-Document operations (one document per Send-Document
            operation).  If this value is not supplied by the Cancel Job
            Response:

               Status        status information including error
                             status
               Message       optional status message

          4.2.3 Get Attributes Operation

            This operation allows client, the
            Printer waits to receive an empty Send-Document operation signaling
            the end user of Documents for this Job.  If the client wants to obtain information
            from create a Printer or
            Job object. The with only a single document, the client MAY use the Print-Job
            operation.  This is a convenience operation contains for creating a Job with
            only one Document.  The Print-Job Operation is semantically the
            same as a Create-Job operation followed by one Send-Document
            operation.

         Job Template Attributes:
            An optional set of Job Template attributes names and/or attribute group names that as defined in section
            6.2  Job Template Attributes.  If the requester is interested in.  A corresponding
            attribute list is returned client supplies no Job

                        June 3, 1997, Expires December 3, 1997
            Template attributes in the response with Create-Job Request, the
            appropriate attribute values filled in for each attribute
            (explicitly named or implicitly included in an attribute
            group) in implemented
            Printer defaults are used.

       The simplest Create-Job Request has no data which means that the request.

            If Printer
       SHALL create a new Job object with no Job Template attributes and the request
       number of Documents is yet to be determined.

         When a Printer does not supply any attribute
            names, receives a Create-Job Request, the Printer shall assume that SHALL
         either accept or reject the client is
            implicitly requesting request.  The rules for accepting or
         rejecting a Create-Job Request are the default groups of "printer-
            identification" and "printer-status". If same as the request to a
            Job object does not supply any attribute names, rules for
         accepting or rejecting the Print-Job Request (see section 5.1.1.1
                        Print-Job Request).

       5.1.2.2   Create Job Response

       The Printer shall assume that return to the client is implicitly
            requesting the default groups following output parameters
       as part of "job-identification",
            "job-owner", and "job-status".

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          4.2.3.1 Get-Attributes Request

            The client submits the request to a Create-Job Response:

         Job URL or Printer
            URL.

            The following abstract data types are part of the Get
            Attributes Request:

               Requested Identifier:
            A set of attributes without values in
               Attributes     whose values URI which the requester is
                              interested This is optional.

               format         This is used only when a client shall use for all other operations on this request
                              is sent to a
            Job

         Job Status:
            The following Job attributes:  job-name, job-state, and the end user is
                              interested in production attributes. In
                              that case, the client must the format
                              in the request since the default job-state-
            reasons.  The value of the formats supported for the
                              Printer might be "auto-sense", and a
                              Printer's attributes or attribute
                              values may differ for each format that
                              it supports. This request value allows
                              a client to specify a particular
                              format.

            There attribute shall be from a way to specify certain groups of
            attributes, and it shall be possible to get more than one
            group.  The groups shall be organized in snapshot
            taken sometime after the same way as
            this document and shall have time the same names as Printer receives the
            sections heads of print
            request.

            Note: Since any job affecting printer state information  is
            reflected in the groupings. Each section "job-state" and
            subsection contains the group name for the "job-state-reasons" job
            attributes, it is sufficient to return only job status attributes in
            that section or subsection.

            For Printers
            and Job the special groups include:

            - "none": no printer status attributes at Job creation time.

         Ignored Attributes:
            A list of the specified object.  NOTE:
                 none is primarily useful attribute names which were ignored in Get Jobs, but can be
                 used as a ping with Get Attributes.
            - "all": all attributes the creation of the specified
            Job object.

          4.2.3.2 Get-Attributes Response

            The following abstract data types are part

         Unsupported Attributes:
            A list of the Get
            Attributes Response:

               Result         The requested attribute names which are unsupported.  Any attributes of the object
               Attributes     with their current values, if in
            this list imply that the
                              requester supplied any Requested

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                              Attributes Job object was not created.

         Bad Attributes:
            A list of attribute names which were syntactically incorrect. Any
            attributes in this list imply that the Job object was not created.

         Status
            Status         status information including error status
               Message        optional status message

            A Printer may choose, for security reasons, not to return
            all attributes that a client requests. It may even return
            none

                        June 3, 1997, Expires December 3, 1997
       The simplest response shall consist of the requested attributes. In such cases, job identifier, the Job
       Status attributes, and an operation status returned that is the same as if the Printer had
            returned all requested attributes. The client cannot tell
            by such a response whether the requested attribute was
            present either an "ok" status
       or absent on the Printer.

          4.2.4 Get Jobs an "error" status.

       5.1.3     Send-Document Operation

            This operation allows

       Once a Job object has been created using a Create-Job operation, a
       client uses the Send-Document operation to retrieve Printer
            attributes transport the documents to be
       printed and a list of print jobs belonging add them to the
            target Printer named Job object.  A list of Job attributes or
            attribute groups that the client is interested in seeing
            may document MUST be included sent
       in the request. If a single Send-Document operation.

       5.1.3.1   Send-Document Request

       The client submits the request does not
            supply any Printer attributes, the Printer shall assume
            that to a Job URI.

       The following abstract data types are part of the Send-Document Request:

         Document Attributes:
            An optional set of Document Description attributes (section 6.4
                 Document Attributes).

         Document Content:
            The client is implicitly requesting either supplies the default
            groups: "printer-identification" and "printer-status". If raw document data or a URI reference
            to the request does data but not specify any job attributes, the
            Printer shall assume the default groups: "job-
            identification", "job-status", "job-owner" and "job-
            size". The Printer object will be returned first,
            followed by the requested jobs in chronological order.
            This order is explicitly defined to be: oldest to newest
            with regard to completion time, either actual or
            expected.

            This operation is like Get Attributes, except that Get
            Jobs can return attributes from more than one object.

          4.2.4.1 Get-Jobs Request

            The client submits the request to a Printer URL. both.

       5.1.3.2   Send-Document Response

       The following abstract data types are part of the Get
            Jobs Request:

            draft-ietf-ipp-model-00.txt, expires September 26, 1997 Send-Document
       Response:

         Job Owner     This is the user-name. If the Status:
            The following Job attributes:  job-name, job-state, and job-state-
            reasons.  The value is
                             non-null, then the requester wants only
                             those jobs whose job-originating-owner
                             is the same as of each attribute shall be from a snapshot
            taken sometime after the specified user-name.
                             If time the value is null, then Printer receives the requester
                             wants all jobs.

               Job States    A possibly empty set of print
            request.

            Note: Since any job affecting printer state
                             values.   If the  set is  not empty,
                             then the requester wants only those jobs
                             whose job-state information  is
            reflected in the same as one of
                             the specified "job-state" and "job-state-reasons" job state values,   If the
                             set
            attributes, it is empty , then the requester wants
                             all jobs that are pending or printing.

               Requested sufficient to return only job status attributes
            and no printer status attributes at Job creation time.

         Ignored Attributes:
            A set list of attribute names (without
               Printer       values) which were ignored in whose values the requester is
               Attributes    interested from creation of the specified Printer

               Requested
            Job object.

                        June 3, 1997, Expires December 3, 1997
         Unsupported Attributes:
            A set list of attribute names (without
               Attributes    values) which are unsupported.  Any attributes in whose values
            this list imply that the requester is
                             interested from each Job object was not created.

         Bad Attributes:
            A list of the jobs on the
                             specified Printer.

            There shall be attribute names which were syntactically incorrect. Any
            attributes in this list imply that the Job object was not created.

         Status:
            Status information including error status

       5.1.4     Cancel Job Operation

       This operation allows a way user to specify certain groups of
            attributes, and it shall cancel one specific Print Job any time
       after the print job has been established on the Printer.  Some pages may
       be possible printed before a job is terminated if printing has already started
       when the Cancel Job operation is received.  Only the end user who is
       also the job originator ("job-originating-user" Job attribute) can
       cancel the job using IPP 1.0.

       5.1.4.1   Cancel-Job Request

       The client submits the request to get more than one
            group. a Job URI.

       The groups following abstract data types are part of the same as for Get Attributes.

          4.2.4.2 Get-Jobs Cancel Job Request:

         Message:
            Optional message to the operator

       5.1.4.2   Cancel-Job Response

       The following information is part of the Get Jobs Cancel Job Response:

               Result        The result includes zero or more objects
               Attributes    each with zero or more attributes.

         Status:
            Status        status information including error status
               Message       optional status message

            A Printer may choose, for security reasons, not

       5.1.5     Get-Attributes Operation

       The Get-Attributes operation allows client to return
            all attributes that obtain information from a
       Printer or Job object. The client requests. It may even return
            none of supplies the requested attributes. In such cases, set of attributes names
       and/or attribute group names that the
            status returned requester is the same interested in as if the Printer had
            returned all requested attributes.
       operation input parameters.  The client cannot tell

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            by such Printer shall return a corresponding
       attribute list in the response whether with the requested appropriate attribute was
            present values
       filled in for each attribute (explicitly named or absent on implicitly included in
       an attribute group) that the Printer.

          5. Object Attributes

            This section describes client supplied in the attributes with their
            corresponding syntaxes and values that are request.

                        June 3, 1997, Expires December 3, 1997
       5.1.5.1   Get-Attributes Request

       The client shall submit the Get-Attributes request to a Job URI or
       Printer URI.

       The following input parameters shall be part of the
            IPP model. Get-Attributes
       Request:

         Document Format:
            The sections below show the objects and their
            associated attributes which are included within the scope
            of client shall supply this protocol.  Many of these input parameter only when requesting
            attributes are derived
            from other relevant specifications:

               ISO/IEC 10175 DPA (Final, June 1996)
               RFC 1759 of the Printer MIB (Proposed Standard, May 1995)
               Internet-Draft: object.  The Printer MIB (Draft Standard in
                 progress, December 1996)
               Internet-Draft: Job Monitoring MIB (I-D in progress,
                 March 1997)

            Each attribute is uniquely identified in shall reject this document
            using a "keyword" in the section header describing that
            attribute.  A keyword
            request, if this input parameter is supplied for a sequence of characters (length
            of  1 to 255) which consists of just letters, digits,
            hyphen ("-"), Job object.

            This input parameter conditions the Printer attributes and underscore ("_").  With these
            restrictions, there will be a straight forward encoding
            of these keywords onto real values in
            that might depend on the protocol
            specification.  Not document format.  The Printer shall return
            only are attributes uniquely
            identified with keywords, some (1) those attributes take on a
            syntax which is a set of keywords.  This set of keywords
            represents that are implemented and (2) the domain of
            attribute values that are supported for the attribute.

          5.1 Attribute Syntaxes

            The following table shows specified document
            format.  By specifying the document format, the basic syntax types that a client and server shall be able to handle.

          Table 1

               Basic Type            Description      Comments

               text                  a sequence of    For free form human
                                     characters:      readable text
                                     length: 0 to     intended can
            eliminate the attributes that are not implemented and values that
            are not supported for human
                                     4096             consumption.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               Basic Type            Description      Comments

                                     characters: any

               name                  a sequence of
                                     characters:      some object via a
                                     length: 1 to     user-friendly
                                     255 characters:  string, such as a
                                                      For referencing
                                     any              Printer name, a the document name, a
                                                      user name, or a
                                                      host name.  May
                                                      include format that the SPACE
                                                      character.

                                                      NOTE - The protocol
                                                      may need to provide
                                                      means client has or is
            able to quote generate.

            If the
                                                      SPACE character client omits this input parameter, the effect shall be the
            same as if the protocol uses
                                                      SPACE for other
                                                      purposes.

               fileName              a sequence value of    For referencing
                                     characters:      some file.  The
                                     length: 1 to     limit the Printer's document format attribute
            were supplied.  It is recommended that the same
                                     1024             as POSIX and NT.
                                     characters: any

               keyword client always supply a sequence of    For semantic
                                     characters:      identifiers of
                                     length: 1 to     entities
            value for document-format, since the Printer's default value for
            document-format may be 'auto-sense', in which case the
                                     255 characters:  abstract protocol
                                     letters,         (specified returned
            attributes and values are for the union of the document formats
            that the Printer supports in this
                                     digits, hyphen   document).  These
                                     ("-"),           entities can be
                                     underscore its 'auto-sense' support."

         Requested Attributes:
            An optional set of attribute names (without values) or
                                     ("_") attribute
            group names in whose values of
                                                      attributes,  When a
                                                      keyword the requester is used to
                                                      represent an
                                                      attribute (its
                                                      name), it must interested.  If the
            client omits this input parameter, the effect shall be
                                                      unique within the
                                                      full scope of IPP
                                                      objects and
                                                      attributes.  When a
                                                      keyword is used to

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               Basic Type            Description      Comments

                                                      represent a value
                                                      of an attribute, it
                                                      must be unique just
                                                      within same as
            if the scope of
                                                      that attribute.
                                                      That is, a keyword
                                                      can not "all" attribute group were supplied.

       Attributes may be used for
                                                      two different
                                                      values of requested by name or by group name.  For Jobs, the same
       attribute to mean
                                                      two different
                                                      semantic ideas.
                                                      However, groups include:

         - 'job-template': the same
                                                      keyword can be used
                                                      across two or more
                                                      attributes,
                                                      representing
                                                      different semantic
                                                      ideas for each
                                                      attribute.

               url                   a sequence of    Universal Resource
                                     characters: as   Locator
                                     defined attributes specified in
                                     rfc1738 and      ISSUE: do we keep
                                     rfc1808          URLs abstract here
                                                      too and not define
                                                      them Section 6.3.1    Job
            Template Attributes.
         - 'job-description': the attributes specified in terms of
                                                      rfcs?

               octetString           a sequence of    Used for opaque
                                     octets           data, such as Section 6.3.2 Job
            Description Attributes.

       For Printers, the
                                                      document-content.

               boolean               two values of    like an keywordSet,
                                     true and false   but there are only
                                                      two values. NOTE:
                                                      An application
                                                      might use a
                                                      checkbox for such a
                                                      value.

               integer               an integer       each attribute
                                     value that is    specifies groups include:

         - 'printer-job-template': the range attributes specified in the range     constraint
                                     from -2**31 to

            draft-ietf-ipp-model-00.txt, expires September 26, Section 6.5.1
                 Printer Job Template Attributes.

                        June 3, 1997, Expires December 3, 1997
               Basic Type            Description      Comments

                                     2**31
         - 1        explicitly.

               dateTime              a value that
                                     holds 'printer-description': the date   time
                                     and time to attributes specified in Section 6.5.2
                 Printer Description  Attributes.

       There are also special groups:

         - 'none': no attributes of the
                                                      absolute date and
                                     nearest second.

               integerSeconds        an integer with specified object.  Note: none is
            primarily useful in Get-Jobs, but can be used as a relative time
                                     implicit units
                                     of seconds

               integerPoints         an integer "ping" with  for measurment
                                     implicit units the
            Get-Attributes operation.
         - 'all': all attributes of computer
                                     points, i.e.,
                                     1/72 the specified object

       5.1.5.2   Get-Attributes Response

       The Printer shall return the following output parameters as part of an
                                     inch.

               integerUnits          an integer with  an integer value
                                     explicit units   expressed in units

                                                      ISSUE: we have two
                                                      types with implicit
                                                      units and one the
       Get-Attributes Response:

         Result Attributes:
            The requested attributes of the object with
                                                      explicit units
                                                      where their current values,
            if the units are
                                                      specific for one requester supplied any Requested Attributes.  If the request
            did not supply any attribute printer-
                                                      speed.

               setOf  X              0 or more        for sets of values
                                     values of type
                                     X.

               1setOf  X             1 or more        for sets of values
                                     values of type
                                     X.

               setWithDefaultOf  X   0 or more        for sets of values
                                     values of type   where one names, the Printer shall assume that
            the client is a
                                     X and a default implicitly requesting the default value
                                     value of type X

               1setWithDefaultOf     1 or more        for sets of values

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               Basic Type            Description      Comments

               X                     values group of type   where one is a
                                     X "all" and a default  default value
                                     value
            shall return all attributes implemented for the specified Job or
            Printer object.

         Unimplemented Attributes:
            A list of type X

               withDefault  X        an explicit      For values attribute names which
                                     default value are not restricted
                                     of type X. The   but have a default.
                                     set of values
                                     is implicitly
                                     unrestricted.

               RangeWithDefaultOf    a range unimplemented.

         Unknown:
            A list of attribute names which are unknown.

         Status:
            Status information including error status

       A Printer may choose, for security reasons, not to return all attributes
       that a range of
               X                     value client requests. It may even return none of type X  values, the requested
       attributes. In such as
                                     with a default   integers, where one
                                     value of type X  value cases, the status returned is the
                                                      default.

                                                      OR same as if the below syntax
                                                      type instead

               integerRangeWithDef   an integer       for a range of
               ault                  range with
       Printer had returned all requested attributes. The client cannot tell by
       such a     integers where one
                                     default integer  value is response whether the
                                     value            default.

          5.1.1 Attribute Extensibility

            This document uses prefixes to requested attribute was present or absent on
       the keyword  basic syntax
            type in order to communicate extra information Printer.

       In response to a "Get-Attributes" (or a "Get-Jobs") operation the
            reader through its name. This extra information need not
            be represented in an implementation because it is
            unimportant
       following requirements apply to a the Printer:

         1. If the client or printer.  The table below
            describes supplies an attribute name in the prefixes Requested
            Attribute input parameter and their meaning

               Basic Type     Prefix         Comments

               keyword        type1          someone must revise the IPP
                                             standard to add a new name.
                                             No private names are
                                             allowed.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               Basic Type     Prefix         Comments

               keyword        type2          implementers can, at any
                                             time, add new values that attribute is implemented by
                                             proposing them to the PWG
            Printer, the printer shall respond with all current values for registration (or an
                                             IANA-appointed registry
                                             advisor after that
            attribute.  If the PWG value of an implemented attribute is no
                                             longer certified) where they
                                             are reviewed unknown for approval..
                                             IANA keeps

                        June 3, 1997, Expires December 3, 1997
            some reason, the registry.
                                             Implementers can support
                                             private (unregistered) Printer shall respond with
                                             a suitable distinguishing
                                             prefix, such as -xxx- where
                                             xxx is the company attribute name
                                             registered with IANA for use in domain names.

               keyword        type3          implementers can add new
                                             values
            the "unknown attribute list" response parameter.

         2. If the client supplies an attribute name in the Requested
            Attribute input parameter that attributed is not implemented by submitting a
                                             registration request
                                             directly to IANA, no PWG or
                                             IANA-appointed registry
                                             advisor review is required.
                                             Implementers can support
                                             private (un-registered)
                                             names the
            Printer, the Printer shall respond with a suitable
                                             distinguishing prefix, such
                                             as -xxx- where xxx is the
                                             company attribute name registered with
                                             IANA for use in domain
                                             names.

               keyword        type4 the
            "unimplemented attribute list" response parameter.

         3. If the client supplies an installation defined name attribute group that can be added to a local
                                             system by an administrator.
                                             Care must be taken is implemented by
            the
                                             administrator to see that
                                             keywords do not conflict Printer, the Printer shall respond with other keywords defined
                                             by all current values for
            each implemented attribute in the standard or as
                                             defined by group. It shall not respond for
            unimplemented attributes in the implementing
                                             product. There group. If the value of an attribute
            is no
                                             registration or approval
                                             procedure unknown for type 4
                                             keywords

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.1.2 Relationship of Job and some reason, the Printer Attributes shall respond with the
            attribute name in the "unknown attribute list" response parameter.

         4. If a the client can supply a Job supplies an attribute in a Print
            Request, there group keyword that is a  corresponding Printer attribute with not
            implemented, the same name.  The Printer has no means for determining if it is an
            unimplemented attribute as a similar syntax
            type, however, or attribute group.  In this case, the
            Printer assumes that it is an unimplemented attribute must additionally
            specify a set of supported values and responds
            as if it is an optional default
            value. unimplemented attribute (the Printer responds with
            the attribute name in the "unknown attribute list" response
            parameter).

       5.1.6     Get-Jobs Operation

       The default value is used when creating Get-Jobs operation allows a new Job
            object where the client has not supplied to retrieve Printer attributes
       and a value in the
            Print Request.  These attributes, which can be in both
            Job and list of print jobs belonging to the target Printer objects, are called object. A list
       of Job Template
            attributes and are fully defined in section 5.2 "Job
            Template Attributes".  The table below shows attribute names or attribute group names that the
            relationships between client is
       interested in seeing may be included in the syntax types of Job request.

       This operation is like Get-Attributes, except that Get-Jobs operation
       returns attributes
            and their corresponding from more than one object.

       5.1.6.1   Get-Jobs Request

       The client shall submit the Get-Jobs request to a Printer attributes. URI.

       The syntax
            type following input parameters are part of the Printer object is "constructed" using Get-Jobs Request:

         Job
            attribute type.  For example, Owner
            This is the table shows that if user-name.  If the
            basic syntax type of a Job attribute value is "text" non-null, then the
            corresponding Printer attribute will be of type
            "withDefault text".  Or, if
            requester wants only those jobs whose job-originating-owner is the syntax type of
            same as the Job
            attribute specified user-name.  If the value is "integer", null, then the corresponding Printer
            attribute will be of type "rangeWithDefault
            requester wants all jobs.

         Limit
            This is an integer value which indicates a limit to the number of integer".
            Jobs returned.  The essence of what limit is shown a "stateless limit" in that if the table below

                        June 3, 1997, Expires December 3, 1997
            limit is
            whether a context (Job attribute or Printer attribute)
            allows a single value or multiple values.

               Name of n then only the first n jobs are returned in the Get-Jobs
            Response; there is no mechanism to allow for the "next" n jobs.
            The limit applies across all Job          Printer Attribute
               syntax type    Attribute    Syntax
                              Syntax

               text           text         withDefault  text

               name           name         withDefault  name

               keyword        keyword      setWithDefaultOf
                                           keyword
                              or
                                           or
                              setOf
                              keyword      1setWithDefaultOf
                                           keyword
                              or

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               Name of        Job          Printer Attribute
               syntax type    Attribute    Syntax
                              Syntax

                              1setOfkeywo
                              rd

               boolean        boolean      setWithDefaultOf
                                           boolean

               url            url          withDefault  url

               integer        integer      rangeWithDefaultOf
                                           integer

               integerUnits   integerUnit  rangeWithDefaultOf
                              s            integer, setOf  Units

               dateTime       dateTime     not needed because States requested.  For example, if
            the limit if 50, and there are no job
                                           production attributes
                                           that a client can
                                           supply.

               integerSecon   integerSeco  rangeWithDefaultOf
               ds             nds          integerSeconds

                                           NOTE: if have
                                           integerUnits 75 jobs in the 'completed' state and no
                                           integerSeconds, we can
                                           replace
                                           rangeWithDefaultOf by
                                           integerRangeWithDefaul
                                           t.

               setOf  X       setOf  X     setWithDefaultOf  X

            The Printer
            25 in the 'pending state' and the client shall be knowledgeable about
            each of the above syntax forms requests first 'completed
            jobs' and know how the handle then 'pending' jobs, only the values in a Job attribute and a Printer attribute.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.1.3 Attribute Value Tags

            In order to handle some nuances associated with Job and
            Printer attribute values, attribute values can have tags
            associated with them. first 50 'completed' jobs
            are returned.  The following sections describe
            these tags.  All tags other 25 'completed' jobs are optional.  Fully conforming
            implementations need not support them.

          5.1.3.1 Tagged Printer Attributes returned and
            neither are any of the 'pending' jobs returned.

         Job Template attribute values in a Printer can have extra
            tags associated with them:

            - Availability: Some supported attributes shall have an
            availability value associated with each value. States
            A client
            may choose to display values only with certain values possibly empty set of
            availability.  Standard values are: "ready" and "not-
            ready". job state values.  If an attribute value does the set is not have this tag,
            it empty,
            then the requester wants only those jobs whose job-state is by default "ready".  "not-ready" means that the
            Printer can accept
            same as one of the job, but specified job state values.   If this operation
            parameter has more than one value, the Printer cannot
            complete the job without some external intervention to
            make SHALL return the value ready.

            ISSUE:  Should
            jobs grouped by state with each group being in the following availability tags be added
            which help to more clearly specify some subtle meanings?
            These include "virtually-ready" (ready enough for the
            Printer to schedule the job since it same order as
            supplied by the value is
            intended to always be ready, media client in manual-feed trays
            would have this value),  "on-order" (not-ready and cannot
            be made ready soon, but something is happening), or
            "special-order" (not-ready and cannot be made ready soon,
            nothing is happening).

            - Embedded-only: Some supported production attributes
            have an "embedded-only" tag associated parameter.  Within each group, the
            jobs are ordered from oldest to newest with an attribute respect to indicate that completion
            time (either actual or expected).  For example, if the Printer supported this attribute
            when it is embedded client
            requests all 'pending' and 'completed' jobs, first all jobs in the document data, but it does not
            support it as an explicit attribute. The attributes that
            this tag is attached to varies according
            'pending' state are returned (ordered from oldest to the format
            specified newest) and
            then all jobs in the Get Attributes operation.

            - Default Value: Supported attributes can have a default
            tag associated with the value that is default.   If
            multiple values 'completed' state are tagged with a default value, a client
            shall use the first value that is tagged with default. returned (ordered from
            oldest to newest).  If
            no values are tagged, then it assumes the client request all 'completed' and
            'processing' jobs, first value all jobs in the supported list is 'completed' state are
            returned (ordered from oldest to newest) and then all jobs in the default value.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            - Scheduling:
            'processing' state are returned (oldest to newest).  If a printer uses the client
            does not supply this operation parameter, the value for
            scheduling, then it associates this tag SHALL be
            assumed to indicate that
            it would like be (by both the attribute set when client and the job is
            submitted. The Printer) first 'pending'
            and then 'processing'.

         Requested Job Attributes:
            A optional set of attribute can come back with names (without values) or without
            the embedded tag. If an attribute does not have this tag,
            then the Printer will not use this attribute for
            scheduling.

            NOTE:
            groups names in whose values the mostly likely attribute that a Printer would
            attach this adornment to requester is interested from each
            of the media attribute.

          5.1.3.2 Tagged Job Attributes

            Job attribute values  set by a client and defined in
            section 5.2 "Job Template Attributes" can have the
            following extra tags associated with them:

            - Embedded: If an attribute has this tag, then jobs on the specified Printer.  The attribute value(s) group names
            are embedded in the document.  The
            printer can use this information same as for scheduling, but it
            shall not use it to modify the document.  This attribute
            cannot be associated with individual attribute values.

            - Default: Get-Attributes operation for the Job
            object.  If a attribute value has the client omits this tag, then input parameter, the
            Printer effect shall ignore
            be the Job attribute, same as if any, and shall
            use the Printer's default value for the attribute.

            Issue:  Does 'none'  attribute group were supplied.

       5.1.6.2   Get-Jobs Response

       The Printer shall return the following imply too much about using
            "fan-in" for multiple default sets for a given output
            device? Note: it is the duty of an administrator to
            create a reasonable number parameters as part of Printers feeding into the
       Get-Jobs Response:

         Result Attributes:
            The result includes zero or more objects each
            output device to handle user's expected defaults.  For
            example, a Windows client will send a PostScript document with no zero or more
            attributes.  For production attributes, a
            Printer's defaults must be "as-is".  But other clients
            may want to force PostScript files to print two-sided.
            For those clients, there must be another printer whose
            sides default is "2-sided-long-edge".

          5.2  Each Job Template (job-template) Attributes

            The following attributes can exist in both Jobs and
            Printers. When such an attribute is returned in a Job object, it
            identifies some desired behavior on this Job by the
            Printer. When it chronological order.  This

                        June 3, 1997, Expires December 3, 1997
            order is in a Printer object, it constrains
            the values that explicitly defined to be: oldest to newest with respect to
            completion time, either actual or expected.

            If the corresponding client did not supply any Job attribute can have

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            and it specifies a default value as well.  The set of
            values in attributes, the Printer object are called shall
            assume that the "supported
            values".

            These attributes form client is implicitly requesting  the attribute 'none' group called "job-
            template".

            The
            (that is no Job attributes are described below.  The part in
            parenthesis after each attribute name is the name of returned, just the
            syntax as listed in Table 1 in section 5.1. Job URI for each
            Job).

         Status
            Status information including error status

       A client can specify any of the Printer may choose, for security reasons, not to return all attributes in this group
            in a Print Request. If
       that a client GUI wishes to present a
            user with a list requests. It may even return none of values to choose from, then the
            client program should perform requested
       attributes. In such cases, the Get Attributes
            operation to a Printer URL using status returned is the group job-template
            in order to get same as if the complete list of attributes that a
            client can specify. Each attribute
       Printer had returned with the job-
            template group shall contain all requested attributes. The client cannot tell by
       such a list of supported values
            for response whether the requested attribute and was present or absent on
       the Printer's default value.

          5.2.1 Job Sheet Attributes (Set by Client/End User) Printer.

       5.2  Operation Status and Messages

         The client shall specify these attributes to control Status code provides information on the
            printing results of job sheets.

            There is no group name for these attributes since there
            is only one attribute in the group. a request.
         The client may also specify job sheet attributes in: Get-
            Attributes and Get-Jobs.

          5.2.1.1 job-sheets (type4 keyword)

          5.2.1.1.1 As Message provides a Job Attribute

            This job attribute determines what type short textual description of job-sheets
            (banner pages) the Printer shall print with the job.

            The standard values are: "none", and "default-sheet".

            The value "none" means that end user desires no job sheet
            be printed. Status.  The value "default-sheet" means that the end
            user desires a site specific default sheet defined by and
            administrator be printed.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.2.1.1.2 As a Printer Attribute

            This printer attribute identifies the default job-sheet.
            It also identifies the job-sheet values supported
         Status is intended for use by this
            printer, automata and the state of readiness Message is intended
         for each job-sheet.

            To allow no job sheets, the system administrator shall
            include the value none as human user.  An IPP application (i.e. a value for the supported
            values. If the administrator's policy browser, GUI, print
         driver or gateway) is not required to support
            none, the Printer shall use the default-sheet value if
            the client supplies the none value but also indicates
            (through examine or display the best-effort attribute) that Printer could
            substitute values as needed Message.

       5.3  Status Codes (type2 keyword)

         Each Status is described below, including a description of which
         operation(s) it can follow and any meta-information required in order to process the job.

          5.2.2 Job Notification (job-notification)
         response.

         ISSUE: Keith's doc still need to go here.

       6.   Object Attributes (Set by
          a Client/End User)

            The client shall specify these

       This section describes the attributes to indicate
            events with their corresponding syntaxes
       and values that are part of the client is interested in, along with IPP model. The sections below show the
            notification address
       objects and method for performing the
            notification.

            These their associated attributes form which are included within the attribute group called "job-
            notification".

            The client may also specify notification
       scope of this protocol.  Many of these attributes in:
            Get-Attributes and Get-Jobs.

          5.2.2.1 notification-events (setOf type2 keyword)

          5.2.2.1.1 As a are derived from other
       relevant specifications:

         - ISO/IEC 10175 DPA (Final, June 1996)
         - RFC 1759 Printer MIB (Proposed Standard, May 1995)
         - Internet-Draft: Printer MIB (Draft Standard in progress, December
            1996)
         - Internet-Draft: Job Attribute

            This job Monitoring MIB (I-D in progress, March 1997)

                        June 3, 1997, Expires December 3, 1997
       Each attribute specifies the events about which is uniquely identified in this document using a "keyword"
       in the
            end user want section header describing that attribute.  A keyword is a
       sequence of characters (length of  1 to 255) which consists of just
       letters, digits, hyphen ("-"), and underscore ("_").  With these
       restrictions, there will be notified.

            Standard a straight forward encoding of these
       keywords onto real values within in the protocol specification.  Not only are
       attributes uniquely identified with keywords, some attributes take on a
       syntax which is a set are: job-completion, job-
            canceled,  job-problems and printer-problems.

            If this attribute contains the empty set, the Printer
            shall not notify. of keywords.  This value is useful if an
            administrator has set up a notification Printer default
            but the end user does not want notification.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            If this attribute contains of keywords represents the value: job-completion,
       domain of the
            Printer shall notify attribute.

       6.1  Attribute Syntaxes

       The following table shows the basic syntax types that a client when the job containing
            this attribute completes with or without errors.

            If this attribute contains the value: job-canceled, the
            Printer and
       server shall notify the client when the job containing
            this attribute is canceled by the end-user or by the
            operator, or aborts before completion.

            If this attribute contains the value:  job-problems, the be able to handle.

       Table 1 - Attribute Syntaxes

            Basic Type         Description       Comments

            text               a sequence of     For free form human
                               characters;       readable text
                               length: 0 to      intended for human
                               4095;             consumption.
                               characters: any

            name               a sequence of     For referencing some
                               characters;       object via a user-
                               length: 1 to      friendly string,
                               255;              such as a Printer shall notify the client when this job has
                               characters: any   name, a
            problem while this job is printing. Problems include:
            paper jam and out-of-paper.

            If this attribute contains document
                                                 name, a user name,
                                                 or a host name.  May
                                                 include the value:  printer-problems, SPACE
                                                 character.

                                                 Note: The protocol
                                                 may need to provide
                                                 means to quote the Printer shall notify
                                                 SPACE character if
                                                 the client when any job,
            including this job, is affected by protocol uses
                                                 SPACE for other
                                                 purposes.

            fileName           a Printer problem (the
            printer has moved sequence of     For referencing some
                               characters;       file.  The limit is
                               length: 1 to      the stopped state same as POSIX
                               1024;

                        June 3, 1997, Expires December 3, 1997
            Basic Type         Description       Comments

                               characters: any   and there is NT.

            keyword            a
            reason sequence of
                               characters;       identifiers of
                               length: 1 to      entities in the printer-state-reasons attribute) while
                               255;              abstract protocol
                               characters:       (specified in this
            job is waiting to print or printing. Problems include:
            paper jam and out-of-paper.

          5.2.2.1.2 As a Printer Attribute

            This printer
                               letters, digits,  document).  These
                               hyphen ("-"),     entities can be
                                                 For semantic
                               underscore ("_")  attribute indicates the default value. It
            also indicates the names or
                                                 values of the job and printer
            notification-events
                                                 attributes,  When a
                                                 keyword is used to
                                                 represent an
                                                 attribute supported by this Printer
            and (its
                                                 name), it must be
                                                 unique within the states
                                                 full scope of readiness for each value.

            This document does not specify how or whether an
            administrator can configure the information that a
            Printer sends with an event when IPP
                                                 objects and
                                                 attributes.  When a Printer notifies
                                                 keyword is used to
                                                 represent a
            user about the occurrence value of
                                                 an event.

            If this attribute is unspecified, then attribute, it
                                                 must be unique just
                                                 within the Printer does
            not support notification.  If this attribute is not
            contained in an instance scope of
                                                 that attribute.
                                                 That is, a Printer and the client
            supplies keyword
                                                 can not be used for
                                                 two different values
                                                 of the same
                                                 attribute in the Print Request, to mean
                                                 two different
                                                 semantic ideas.
                                                 However, the
            attribute same
                                                 keyword can be used
                                                 across two or more
                                                 attributes,
                                                 representing
                                                 different semantic
                                                 ideas for each
                                                 attribute.

            uri                a sequence of     Universal Resource
                               characters as     Identifier
                               defined in
                               rfc1738 and

                        June 3, 1997, Expires December 3, 1997
            Basic Type         Description       Comments

                               rfc1808

            uriScheme          a sequence of     "http" for HTTP
                               characters        schemed URIs (e.g.,
                               representing the Print Request is ignored.

          5.2.2.2 notification-addresses (setOf url)

            This address specifies both the address  http://...).  "ftp"
                               URI Scheme        for FTP schemed URIs
                                                 (e.g., ftp://...).

            locale             a standard        ISSUE: What standard
                               identifier for    values will be used
                               language and mechanism      for
            delivery locale?
                               character set

            octetString        a sequence of notification events to the client.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            The Printer shall use this attribute     Used for opaque
                               octets            data, such as the address
                                                 document-content.

            boolean            two values of     like an keywordSet,
                               'true' and        but there are only
                               'false'           two values. Note: An
                                                 application might
                                                 use a checkbox for
            sending messages to
                                                 such a job submitter when value.

            integer            an event occurs integer value  each attribute
                               that is in the end user has registered an interest in.

            If    specifies the URL has range
                               range from -      constraint
                               2**31 to 2**31 -  explicitly.
                               1

            dateTime           a "mailto:" scheme, then email is used value that      absolute date and
                               holds the rest of the URL is used as the email address.  If date    time
                               and time to the
            URL has
                               nearest second.

            seconds            a "http:" scheme, then non-negative    a relative time
                               integer with
                               implicit units
                               of seconds

            milliseconds       a non-negative    a relative time
                               interger with
                               implicit units
                               of milliseconds

                        June 3, 1997, Expires December 3, 1997
            Basic Type         Description       Comments

            integerUnits       an HTTP  method is used to
            add HTML formatted events to integer with   an integer value
                               explicit units    expressed in units

                                                 ISSUE: we have two
                                                 types with implicit
                                                 units and one with
                                                 explicit units where
                                                 the end units are
                                                 specific for one
                                                 attribute:
                                                 "printer-speed".

            1setOf  X          1 or more values  for sets of the specified
            HTML file.

          5.2.2.2.1 As values
                               of type X.

            rangeOf  X         a Job range of value  for a range of
                               of type X         values, such as
                                                 integers

       6.1.1     Attribute Extensibility

         This job attribute specifies the method and addresses document uses prefixes to
            which the Printer should send messages when events
            specified by the notification-events attribute occur.

          5.2.2.2.2 As a Printer Attribute

            This Printer attribute's keyword basic syntax type is "setOf urlScheme"
            so that an interested client shall know which URL schemes
            can be include in order
         to communicate extra information to the notification-addresses attribute reader through its name. This
         extra information need not be represented in
            the Print Request.

          5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
          Client/End User)

            The an implementation
         because it is unimportant to a client shall specify these attributes or Printer.  The table below
         describes the prefixes and their meaning.

         ISSUE: There are some references to provide the Printer with information Working Group (PWG).
         How do we describe in this document the process for the scheduling a print-job.

            These attributes form PWG to
         approve type 2 extensions?

            Basic       Prefix  Comments
            Type

            keyword     type1   someone must revise the attribute group called "job-
            scheduling".

            The client may also specify these attributes in: Get-
            Attributes and Get-Jobs.

          5.2.3.1 job-priority (integer(1:100))

          5.2.3.1.1 As a Job Attribute

            This job attribute specifies IPP standard
                                to add a priority new name.  No private names
                                are allowed.

            keyword     type2   implementers can, at any time, add new
                                values by proposing them to the PWG
                                for scheduling registration (or an IANA-appointed
                                registry advisor after the print-job. Printers that employ a priority-based
            scheduling algorithm use this attribute.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            A higher value specifies a higher priority. The value 1 PWG is defined to indicate no

                        June 3, 1997, Expires December 3, 1997
            Basic       Prefix  Comments
            Type

                                longer certified) where they are
                                reviewed for approval.  IANA keeps the lowest possible priority (a
            job which
                                registry.  Implementers can support
                                private (unregistered) with a priority-based scheduling algorithm shall
            pass over in favor of higher priority jobs). The value
            100 suitable
                                distinguishing prefix, such as -xxx-
                                where xxx is defined to indicate the highest possible priority.
            Priority is expected company name
                                registered with IANA for use in domain
                                names.

            keyword     type3   implementers can, at any time, add new
                                values by submitting a registration
                                request directly to be evenly IANA, no PWG or "normally"
            distributed across this range.  Among those jobs that are
            ready to print, a Printer shall print all jobs
                                IANA-appointed registry advisor review
                                is required.  Implementers can support
                                private (unregistered) names with a
            priority value of n before printing those
                                suitable distinguishing prefix, such
                                as -xxx- where xxx is the company name
                                registered with a priority
            value of n-1 IANA for all n.  The mapping of vendor-defined
            priority over this range is implementation-specific.

          5.2.3.1.2 As use in domain
                                names.

            keyword     type4   system administrators can, at any
                                time, add new installation-defined
                                names to a Printer Attribute

            The printer attribute specifies the default priority. It
            also specifies local system. Care should
                                be taken by the supported range available to end-
            users.  When setting up this attribute, an administrator
            might identify only a subset of the full range which is
            the range to see
                                that keywords do not conflict with
                                other keywords defined by the end user is authorized to use.  There
            might be higher standard
                                or lower priorities (outside the range as defined for end users) available to operators or other
            privileged users.

            If this attribute is not contained in an instance of a
            Printer and the client supplies by the attribute in implementing
                                product. There is no registration or
                                approval procedure for type 4
                                keywords.

                                ISSUE: Since the
            Print Request, standard specifies
                                some of the attribute in type 4 values, shouldn't
                                it be possible to register additional
                                type 4 values after the Print Request standard is
            ignored.

          5.2.3.2 job-hold-until (type4 keyword)

          5.2.3.2.1 As a Job Attribute
                                approved?

       Note: This job attribute specifies the named time period during
            which standard defines keyword values for all of the above types.

       6.2  Job print Template Attributes

       Job Template attributes describe job shall become a candidate for
            printing.

            Standard values processing behavior.  Take for named time periods are:  "no-hold",
            "evening", "night", "weekend", "second-shift", "third-
            shift".  An administrator shall associate allowable print
            times with
       example, a named time period.  An administrator generic Job Template attribute called "xxx":

                        June 3, 1997, Expires December 3, 1997
         1. "xxx" is
            encouraged to pick names that suggest the type of time
            period.

            If optionally supplied by the value of this attribute specifies client in a time period
            that create request.
            If "xxx" is in supplied, the future, client is specifying that the Printer shall add the job-

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            hold-until-specified value
            will apply a specific job processing behavior to this job while
            processing the job's job-state-reasons
            attribute and shall Job.  When "xxx" is not schedule supplied, the print-job for
            printing until the specified time-period arrives.  When
            the specified time period arrives, client expects
            the Printer shall
            remove the job-hold-until-specified value from the job's
            job-state-reason attribute and, if no other reasons
            remain, shall consider the job as a candidate for
            processing.

            If this job attribute value is the named value "no-hold",
            or the time period has already started , will apply the default job shall be
            a candidate for processing immediately.

          5.2.3.2.2 As behavior.

         2. "xxx-supported" is a Printer Attribute

            This printer attribute indicates the default value. It
            also indicates the values of the attribute that describes what is
            behaviors are supported by
            this printer.

            If this attribute that Printer. "xxx-supported" is not contained in an instance of a
            Printer and
            CONDITIONALLY MANDATORY  attribute which means that the client supplies Printer
            only implements the attribute in if it is capable of realizing one or
            more of the
            Print Request, behaviors associated with the attribute in the Print Request is
            ignored.

          5.2.4 Job Production (job-production) Attributes (Set by
          Client/End User)

            The and its values.
            A client shall specify these attributes to affect can query the
            rendering, production Printer and finishing of find out what behaviors are
            supported by inspecting at the documents values in the job.  Similar types of instructions may "xxx-supported"
            attribute.

         3. The Printer also be
            contained in the document to be printed.

            These attributes form the implements a default value attribute group called "job-
            production".

            If there named "xxx".
            This default value attribute describes what will be done when no
            other job processing information is a conflict between supplied by the value of one of these
            attributes, and a corresponding instruction client (either
            explicitly as an IPP attribute in the
            document (either implicit create request or explicit), implicitly
            as an embedded instruction within the value of job data).  Along with the
            attribute shall take precedence over
            supported attribute, the document
            instruction.

            A job production attribute provides a client with a way
            to request some feature at print time that may  not have
            been embedded within the document data when the document
            was created.  A job production default value attribute is also provides a
            client with a way to override a feature at print time

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            that was embedded within
            CONDITIONALLY MANDATORY.  However, if the document data when Printer implements the
            "xxx-supported" attribute, the
            document was created.

            Note: until companies that supply interpreters for PDL's,
            such as PostScript and PCL allow a way to specify
            overrides for internal job production instructions, a Printer may not be able to MUST implement these attributes for
            some PDL's.

            A job  production the
            corresponding default value attribute tells a and vice versa.

         4. The Printer what features OPTIONALLY implements the job needs. A program that translates document data to "xxx-available" attribute.
            This attribute describes a Printer's PDL, and/or merges production attributes into
            the document data should add job  production state of readiness for each supported
            attribute.  The supported and available attributes
            to a job, using have the "embedded" tag. Such a program may
            execute at a same
            number of different points in time:

               1. The program produces a final form document and
               stores these resource attributes in and are ordered so that there is a file before the
               end-user submits set of
            ordered value pairs between the print job.

               2. two attributes.  The program produces availability
            state of a final form document data
               stream when supported attribute value indicates the end-user specifies "Print" level of effort
            required by the Printer to actually use resource indicated by the
               application program (e.g., Windows GDI driver).

               3.
            supported value. The program running following values are used in the context of "xxx-
            available" attributes:

            'ready' - the Printer or
               server translates a revisable or final form document
               into resource can be used by a PDL that the output device understands.

            For example, a job production attribute medium with Job without human
              intervention (the resource is not exhausted)
            'not-ready' - the
            value use of "letter" requests that a job the resource requires human intervention
              (the resource may be printed on
            letter paper, and  gives information about what resources exhausted or not automatically available)

            Note: The "xxx-available" attribute only applies to the job needs. For example, "media" and
            "finishings" attributes.

         5. If a job production  attribute
            media client application wishes to present an end user with the values a list
            of "letter" and "ledger" supported and default values from which to choose, the
            tag "embedded" tell a Printer that client
            program should query the job needs letter supported, default values, and ledger paper, but gives no information about which
            pages use each medium_ possibly
            the available attributes.  The values that information is embedded the client then sends in
            the document.

            A Printer may use these attributes to validate and
            schedule create request will all fall within the print-job without interpreting supported values at the contents
            of

                        June 3, 1997, Expires December 3, 1997
            Printer.  When querying the document. This provides Printer, the opportunity for a
            Printer client MAY enumerate each
            attribute by name in the Get-Attributes Request, or the client MAY
            just name the "printer-job-template" group in order to support a broad get the
            complete set of document formats yet
            still support fast efficient scheduling supported, default value, and validation of
            each job.

            If any of these available attributes
            which are implemented.

       The "job-priority" attribute is unspecified, the Printer
            shall assume that the all resources required by the
            document an example of a Job Template attribute.
       It is an integer in the type specified by the missing attributes

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            are ready, i.e., are available range from 1 to 100.  A client can query the
       Printer and/or
            output device without human intervention.

            The client may specify these attributes in: Get-
            Attributes for the "job-priority-supported" attribute and Get-Jobs. the "job-
       priority" default value attribute.  The client may also specify supported attribute contains a
       set of supported priority values (a range).  The default value attribute
       contains job production-instruction
            attributes in: Get-Attributes and Get-Jobs. For all priority value that will be used for a new job if the
            attributes
       client does not supply one in this section, the default behavior if create request.  If the client does
       supply the "job-priority" attribute, the Printer attribute is unspecified is validates the value to
       make sure that it falls within the document range of supported values.  If the
       client-supplied value is
            printed with supported, the output-device defaults, possibly
            overridden by whatever Job object is in created and the document data, if
            anything.

            Each
       "job-priority" attribute which is of type keyword in this section
            also has a special value: "ignore" which is useful for a
            file type, such as PostScript, which populated with that value.  The Job object,
       when queried, returns the Printer may value supplied by the client.  If the client
       does not
            allow changes to.

          5.2.4.1 multiple-documents-are (type1 keyword)

          5.2.4.1.1 As supply a "job-priority" value in the create request, the Job Attribute

            This job
       object is created, but no "job-priority" attribute is relevant only if a job consists of
            two or more documents. It controls finishing operations,
            job-sheet placement, and the order of documents when implemented for
       the
            copies attribute exceeds 1.

            This attribute can have one of three values: single-
            document, separate-documents-uncollated-copies, separate-
            documents-collated-copies.

            If Job.  The client queries the files for Printer's default value "job-priority"
       value to find out at what priority the job are a and b will be processed.

       The following table summarize the names, relationships, and this attribute's
            value is single-document , then files conformance
       requirements for all Job Template attributes.  The following general
       rules apply to implementation requirements:

         1. In a and b create request, all Job Template attributes are treated
            as OPTIONAL.

         2. In a single document for finishing operations. Also,
            there will be no slip sheets between files a and b. If
            more than one copy is made, the ordering must be a, b, a,
            b, ....

            If the files for the job Printer Object, all supported attributes are a and b and this attribute's CONDITIONALLY
            MANDATORY.

         3. All Printer default value attributes are CONDITIONALLY MANDATORY.
            However, if the supported attribute is separate-documents-uncollated-copies, or
            separate-documents-collated-copies or unspecified, implemented then
            each file is treated as a single document for finishing
            operations. Also, a client may specify that a slip sheet

            draft-ietf-ipp-model-00.txt, expires September 26, 1997 the default
            value attribute MUST be between files a and b. If more than one copy is made, implemented and vice versa.

         4. All "available" attributes are OPTIONAL.

       The table only shows exceptions to the attribute's value is separate-documents-
            uncollated-copies or unspecified, above rules.   The first column
       of the ordering is a, a,
            b, b, .... If more than one copy is made, table (Job) shows the name and syntax for each Job Template

                        June 3, 1997, Expires December 3, 1997
       attribute in the
            attribute's value is separate-documents-collated-copies, Job object (in the ordering is a, b, a, b, ....

          5.2.4.1.2 As a Printer Attribute

            This printer attribute specifies create request, the default value same name and
            the supported values.

          5.2.4.2 best-effort (type2 keyword)

            This attribute determines what to do if there
       syntax is a
            conflict between what a client requests used).  The next three columns show the name and what a
            Printer is capable of .  Values syntax for this attribute are:
            "substitute-as-needed" and "do-not-substitute".

          5.2.4.2.1 As a
       each Job Attribute

            This job Template attribute specifies in the Printer should do if object (the default value
       attribute, the
            Printer can not support all other attribute values supported attribute, and the available attribute).  A
       "No" in
            other Job attributes.  If the value is "substitute-as-
            needed" then table means the end user desires the job to be printed
            using substitutions by Printer SHALL NOT implement the attribute.

              Job            Printer where needed in order
            to resolve conflicts.  If           Printer          Printer
                          Default Value       Supported        Available

       job-name          No               No                No
       (name, MAN))

       job-sheets        job-sheets       job-sheets-       No
       (type4 keyword)   (type4 keyword)  supported
                                          (1setOf type4
                                          keyword)

       notificaiton-     notification-                      No
       events            events           events
                         (1setOf type2    (1setOf type2
                                          notification-
       (1setOf type2
       keyword)          keyword)         keyword)

       notification-     No               notification-     No
       addresses                          addresses-
       (1setOf uri)                       supported
                                          (1setOf uri
                                          scheme)

       job-priority      job-priority     job-priority-     No
       (int)             (int)            supported
                                          (rangeOf int)

       job-hold-until    job-hold-until   job-hold-until-   No
       (type4 keyword)   (type4 keyword)  supported
                                          (1setOf type4
                                          keyword)

       multiple-         multiple-        multiple-         No
       documents-are     documents-are    documents-are-
       (type2 keyword)   (type2 keyword)  supported
                                          (1setOf type2

                        June 3, 1997, Expires December 3, 1997
              Job            Printer           Printer          Printer
                          Default Value       Supported        Available

                                          keyword)

       best-effort       best-effort      best-effort-      No
       (type2 keyword)   (type2 keyword,  supported
                         MAN)             (1setOf type2
                                          keyword, MAN)

       media             media            media-supported   media-available
       (type4 keyword)   (type4 keyword)  (1setOf type2     (1setOf avail
                                          keyword)          keyword)

       number-up         number-up        number-up-
       (type3 keyword)   (type3 keyword)  supported
                                          (1setOf type3
                                          keyword)

       sides             sides            sides-supported
       (type2 keyword)   (type2 keyword)  (1setOf type2
                                          keyword)

       printer-          printer-         printer-
       resolution        resolution       resolution-
       (type2 keyword)   (type2 keyword)  supported
                                          (1setOf type2
                                          keyword)

       print-quality     print-quality    print-quality -
       (type2 keyword)   (type2 keyword)  supported
                                          (1setOf type2
                                          keyword)

       finishings        finishings       finishings-       finishings-
       (setOf type2      (setOf type2     supported         available
       keyword)          keyword)         (setOf type2      (setOf avail
                                          keyword)          keyword)

       copies            copies           copies-supported  No
       (int)             (int)            (rangeOf int)

                        June 3, 1997, Expires December 3, 1997
              Job            Printer           Printer          Printer
                          Default Value       Supported        Available

       compression       compression      compression-      No
       (type3 keyword)   (type3 keyword)  supported
                                          (1setOf type3
                                          keyword)

       job-k-octets      No               job-k-octets-
                                          supported
                                                            No
       (int)
                                          (rangeOf int)

       job-impressions   No               job-impressions-  No
       (int)                              supported
                                          (rangeOf int)

       job-media-sheets  No               job-media-        No
       (int)                              sheets-supported
                                          (rangeOf int)

       6.2.1     job-name (name)

       This attribute defines the value is do-not-substitute
            then name of the end user desires job.  It is a name that is more
       user friendly than the job should not be
            processes unless every attribute value can be completely
            satisfied. job-URI.

       If the client does "job-name" is not supply a value for
            this attribute supplied in a print the in the create request, the Printer shall
            assume that Printer,
       on creation of the value is "do-not-substitute."

            Note: that best-effort Job, shall generate a name which is unlikely to be used much. Many
            clients will submit a job with no attributes, and the
            Printer will use default values. Other clients will
            submit a job via a GUI which limits name of the
       first document in the job. This name comes from the "document-name"
       attribute values
            to those or "document-URI" attribute depending on which are supported. Best-effort attribute is useful
       supplied in the GUI context only if a user expects Create-Job Request for the job to be
            moved to another printer and prefers a sub-optimal result
            to nothing at all. Best-effort first document.  If "job-
       name" is most useful supplied in the case
            where an end-user Create-Job Request, the Printer uses a command line interface to
            request attributes that may not be supported.

            draft-ietf-ipp-model-00.txt, expires September 26, its value
       as the name of the created Job.

                        June 3, 1997, Expires December 3, 1997
          5.2.4.2.2 As a Printer Attribute
       6.2.2     job-sheets (type4 keyword)

       This printer attribute specifies supported and default
            behavior determines which of the Printer if there any banner page(s) shall be printed
       with a job.

       Standard values are:

         'none': no job sheet is printed
         'standard': a conflict between
            Job attributes and Printer site specific standard job sheet is printed
         extensions: names the specific job sheet (banner page)

       To force no job sheets, the system administrator SHALL set the only
       supported attributes, value to 'none'..  To force the use of banner pages, the
       supported values shall not include 'none'.  If a client requests 'none'
       in the
            value is "substitute" then Printer create request, the request is capable of doing rejected.

       6.2.3     notification-events (1setOf type2 keyword)

       This attribute specifies the events for which the end user desires some
       sort of best effort when there notification.  The "notification-addresses" attribute is a conflict,   If used to
       describe the value is do-not-substitute then destination addresses for these events.

       Standard values are:

         'none': the Printer will
            reject all print requests that can shall not be completely
            satisfied.   If notify
         'all': the Printer object does not instantiate
            this attribute, the client shall assume that notify when any of event occurs.
         'job-completion':  the value is
            do-not-subtitute.

          5.2.5 Document Production (document-production) Attributes
          (Set by Client/End User)

            These attributes are similar to Job Production Attributes
            except that they may also be associated with a document
            and override Printer shall notify when the same job containing
            this attribute associated completes with or without errors.
         'job-canceled':  the job.

            These attributes form Printer shall notify when the attribute group called
            "document-production".

          5.2.5.1 medium (setOf type2 keyword)

          5.2.5.1.1 As a Job Attribute

            This job containing
            this attribute identifies is canceled by the medium that end-user or by the operator, or
            aborts before completion.
         'job-problems':  the Printer shall use for all pages of the document regardless notify when this job has a problem
            while this job is printing. Problems include any of
            what media are specified within the document.

            The "job-state-
            reasons" or "printer-state-reason" values for medium include medium-names, medium-sizes,
            input-trays and electronic forms so that one attribute
            specifies
         'printer-problems': the media.

            If a printer allows a client to specify a medium-name as
            the value of Printer shall notify when any job, including
            this attribute, such a medium-name
            implicitly selects an input-tray that contains the
            specified medium.

            If job, is affected by a Printer problem (the printer allows a client has moved
            to specify a medium-size as the value of this attribute, such a medium-size
            implicitly selects stopped state and there is a medium-name which reason in turn implicitly

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            selects an input-tray that contains the medium with the
            specified size. If a printer contains two printer-state-
            reasons attribute) while this job is waiting to print or more medium-
            names with the same medium-size, then a printer shall not printing.
            Problems include that medium-size in the list any of supported the "job-state-reasons" or "printer-state-
            reason" values
            for this

       6.2.4     notification-addresses (1setOf uri)

       This attribute describes both where (the address) and the printer shall reject jobs that
            request such a medium-size.

            If a printer allows a client how (the mechanism
       for delivery )  notification events are to specify an input-tray be delivered. The Printer
       shall use this attribute as the value set of this attribute, such addresses and methods for sending
       messages when an input-tray
            implicitly selects the medium event occurs that the end user (job submitter) has
       registered an interest in.

                        June 3, 1997, Expires December 3, 1997
       Standard uri scheme values are:

         'mailto': email is in that input-tray
            at used
         'http': an HTTP  method is used to add HTML formatted events to the time
            end of the job prints. This case includes manual-
            freed input-trays.

            If a printer allows a client specified HTML file.
         'ftp': FTP is used to specify an electronic
            form as append a record at the value end of this attribute, such an electronic
            form implicitly selects a medium-name which in turn
            implicitly selects an input-tray that contains the medium specified by text
         file.

       6.2.5     job-priority (integer(1:100))

       This attribute specifies a priority for scheduling the electronic form. print-job. A
       higher value specifies a higher priority. The electronic form
            also implicitly selects an image that value 1 is defined to
       indicate the lowest possible priority. The value 100 is defined to
       indicate the highest possible priority. Priority is expected to be
       evenly or "normally" distributed across this range.  Among those jobs
       that are ready to print, a Printer shall
            merge print all jobs with the data from the document as its prints each
            page. When this attribute appears as a job attribute priority
       value of n before printing those with
            the embedded tag, it may contain more than one a priority value and
            it shall indicate of n-1 for all media required by the document.

          5.2.5.1.2 As a Printer Attribute n.
       The mapping of vendor-defined priority over this range is
       implementation-specific.

       6.2.6     job-hold-until (type4 keyword)

       This printer job attribute identifies the default value. It
            also identifies specifies the media, media-sizes, input trays, and
            electronic forms supported by this printer, and indicates named time period during which the state of availability Job
       print job shall become a candidate for each medium resource. printing.

       Standard values are defined(taken from ISO DPA and the
            Printer MIB):

               default           The default medium for named time periods are:

         'no-hold': immediately, if there are not other reasons to hold the
                                 output device
               iso-a4-white      Specifies the ISO A4 white
                                 medium
               iso-a4-colored    Specifies the ISO A4 coloured
                                 medium
               iso-a4-           Specifies the ISO A4
               transparent       transparent medium
               iso-a3-white      Specifies the ISO A3 white
                                 medium
               iso-a3-colored    Specifies the ISO A3 coloured
                                 medium

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               iso-a5-white      Specifies the ISO A5 white
                                 medium
               iso-a5-colored    Specifies the ISO A5 coloured
                                 medium
               iso-b4-white      Specifies
            job.
         'day-time': during the ISO B4 white
                                 medium
               iso-b4-colored    Specifies day.
         'evening': evening
         'night': night
         'weekend': weekend (Saturday or Sunday)
         'second-shift': second-shift
         'third-shift': third-shift (after midnight)

       An administrator shall associate allowable print times with a named time
       period (by means outside IPP 1.0).  An administrator is encouraged to
       pick names that suggest the ISO B4 coloured
                                 medium
               iso-b5-white      Specifies type of time period.

       If the ISO B5 white
                                 medium
               iso-b5-colored    Specifies value of this attribute specifies a time period that is in the ISO B5 coloured
                                 medium
               jis-b4-white      Specifies
       future, the JIS B4 white
                                 medium
               jis-b4-colored    Specifies Printer shall add the JIS B4 coloured
                                 medium
               jis-b5-white      Specifies 'job-hold-until-specified' value to
       the JIS B5 white
                                 medium
               jis-b5-colored    Specifies job's "job-state-reasons" attribute and shall not schedule the JIS B5 coloured
                                 medium

            The following standard values are defined
       print-job for North
            American media:

               na-letter-white   Specifies the North American
                                 letter white medium
               na-letter-        Specifies the North American
               colored           letter coloured medium
               na-letter-        Specifies the North American
               transparent       letter transparent medium
               na-legal-white    Specifies the North American
                                 legal white medium
               na-legal-colored  Specifies printing until the North American
                                 legal coloured medium

            The following standard values are defined for envelopes:

               iso-b4-envelope   Specifies specified time-period arrives.  When
       the ISO B4 envelope
                                 medium
               iso-b5-envelope   Specifies specified time period arrives, the ISO B5 envelope
                                 medium
               iso-c3-envelope   Specifies Printer shall remove the ISO C3 envelope
                                 medium
               iso-c4-envelope   Specifies 'job-
       hold-until-specified' value from the ISO C4 envelope
                                 medium

            draft-ietf-ipp-model-00.txt, expires September 26, job's "job-state-reason attribute"

                        June 3, 1997, Expires December 3, 1997
               iso-c5-envelope   Specifies
       and, if no other reasons remain, shall consider the ISO C5 envelope
                                 medium
               iso-c6-envelope   Specifies job as a candidate
       for processing.

       If this job attribute value is the ISO C6 envelope
                                 medium
               iso-designated-   Specifies named value "'no-hold'", or the ISO Designated
               long-envelope     Long envelope medium
               na-10x13-         Specifies time
       period has already started , the North American
               envelope          10x13 envelope medium
               na-9x12-envelope  Specifies the North American
                                 9x12 envelope medium
               monarch-envelope  Specifies the Monarch envelope
               na-number-10-     Specifies the North American
               envelope          number 10 business envelope
                                 medium
               na-7x9-envelope   Specifies the North American
                                 7x9 inch envelope
               na-9x11-envelope  Specifies the North American
                                 9x11 inch envelope
               na-10x14-         Specifies the North American
               envelope          10x14 inch envelope
               na-number-9-      Specifies the North American
               envelope          number 9 business envelope
               na-6x9-envelope   Specifies the North American
                                 6x9 inch envelope
               na-10x15-         Specifies the North American
               envelope          10x15 inch envelope

            The following standard values are defined job shall be a candidate for processing
       immediately.

       6.2.7     multiple-documents-are (type2 keyword)

       This job attribute is relevant only if a job consists of two or more
       documents. It controls finishing operations, job-sheet placement, and
       the less
            commonly used media (white-only):

               executive-white   Specifies the white executive
                                 medium
               folio-white       Specifies the folio white
                                 medium
               invoice-white     Specifies the white invoice
                                 medium
               ledger-white      Specifies the white ledger
                                 medium
               quarto-white      Specified the white quarto
                                 medium
               iso-a0-white      Specifies the ISO A0 white
                                 medium
               iso-a1-white      Specifies the ISO A1 white
                                 medium
               iso-a2-white      Specifies the ISO A2 white
                                 medium

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               iso-a6-white      Specifies the ISO A6 white
                                 medium
               iso-a7-white      Specifies the ISO A7 white
                                 medium
               iso-a8-white      Specifies the ISO A8 white
                                 medium
               iso-a9-white      Specifies the ISO A9 white
                                 medium
               iso-10-white      Specifies the ISO A10 white
                                 medium
               iso-b0-white      Specifies the ISO B0 white
                                 medium
               iso-b1-white      Specifies the ISO B1 white
                                 medium
               iso-b2-white      Specifies the ISO B2 white
                                 medium
               iso-b3-white      Specifies the ISO B3 white
                                 medium
               iso-b6-white      Specifies the ISO B6 white
                                 medium
               iso-b7-white      Specifies the ISO B7 white
                                 medium
               iso-b8-white      Specifies the ISO B8 white
                                 medium
               iso-b9-white      Specifies the ISO B9 white
                                 medium
               iso-b10-white     Specifies the ISO B10 white
                                 medium
               jis-b0-white      Specifies the JIS B0 white
                                 medium
               jis-b1-white      Specifies the JIS B1 white
                                 medium
               jis-b2-white      Specifies the JIS B2 white
                                 medium
               jis-b3-white      Specifies the JIS B3 white
                                 medium
               jis-b6-white      Specifies the JIS B6 white
                                 medium
               jis-b7-white      Specifies the JIS B7 white
                                 medium
               jis-b8-white      Specifies order of documents when the JIS B8 white
                                 medium
               jis-b9-white      Specifies copies attribute exceeds 1.

       Standard values are:

         'single-document': If the JIS B9 white
                                 medium
               jis-b10-white     Specifies files for the JIS B10 white
                                 medium

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            The following standard values job are defined for engineering
            media: a                 Specifies the engineering A
                                 size medium and b, then files a
            and b                 Specifies the engineering B
                                 size medium
               c                 Specifies are treated as a single document for finishing operations.
            Also, there will be no slip sheets between files a and b. If more
            than one copy is made, the engineering C
                                 size medium
               d                 Specifies ordering shall be a, b, a, b, ....
         'separate-documents-uncollated-copies': If the engineering D
                                 size medium
               e                 Specifies files for the engineering E
                                 size medium

            The following standard values job are defined
            a and b, then each file is treated as a single document for input-trays
            (from ISO DPA
            finishing operations. Also, a client may specify that a slip sheet
            be placed between files a and b.  If more than one copy is made,
            the Printer MIB):

               top        The top input tray in ordering shall be a, a, b, b, ....
         'separate-documents-collated-copies': If the printer.
               middle     The middle input tray in files for the printer.
               bottom     The bottom input tray in job are a
            and b, then each file is treated as a single document for finishing
            operations. Also, a client may specify that a slip sheet be placed
            between files a and b. If more than one copy is made, the printer.
               envelope   The envelope input tray in ordering
            shall be a, b, a, b, ....

       Both of the
                          printer.
               manual     The manual feed input tray 'separate-xxx' values force each new document to start on a
       new media sheet.

       6.2.8     best-effort (type2 keyword)

       This attribute determines what to do if there is a conflict between what
       a client requests and what a Printer supports.

       Standard values for this attribute are:

         - 'shall-honor-ipp-attributes': If a Printer supports this value and
            a client requests this value, the Printer guarantees that all IPP
            attribute values take precedence over embedded instructions in the
                          printer.
               large-
            job data (the PDL of the job's documents).
         - 'should-honor-ipp-attributes': If a Printer supports this value,
            and a client requests this value, the Printer should try to make

                        June 3, 1997, Expires December 3, 1997
            sure that IPP attribute values take precedence over embedded PDL
            instructions, however there is no guarantee

       The large capacity input tray client supplies Job Template attributes in the
               capacity   printer.
               main       The main input tray
               side       The side input tray

            The following standard values are defined for media sizes
            (from ISO DPA):

               iso-a0  Specifies create request to
       affect the ISO A0 size: 841 mm by
                       1189 mm as defined in ISO 216
               iso-a1  Specifies rendering, production and finishing of the ISO A1 size: 594 mm by 841
                       mm as defined documents in ISO 216
               iso-a2  Specifies the ISO A2 size: 420 mm by 594
                       mm as defined
       job.  Similar types of instructions may also be contained in ISO 216
               iso-a3  Specifies the ISO A3 size: 297 mm by 420
                       mm as defined in ISO 216
               iso-a4  Specifies the ISO A4 size: 210 mm by 297
                       mm as defined in ISO 216
               iso-a5  Specifies
       document to be printed, that is, within the ISO A5 size: 148 mm by 210
                       mm as defined in ISO 216
               iso-a6  Specifies Page Description Language
       (PDL) of the ISO A6 size: 105 mm by 148
                       mm as defined in ISO 216

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               iso-a7  Specifies document data.  If there is a conflict between the ISO A7 size: 74 mm by 105
                       mm as defined value of
       one of these attributes, and a corresponding instruction in ISO 216
               iso-a8  Specifies the ISO A8 size: 52 mm by 74
                       mm as defined in ISO 216
               iso-a9  Specifies document
       (either implicit or explicit), it is desireable that the ISO A9 size: 37 mm by 52
                       mm as defined in ISO 216
               iso-a10 Specifies value of the ISO A10 size: 26 mm by 37
                       mm as defined in ISO 216

               iso-b0  Specifies
       attribute shall take precedence over the ISO B0 size: 1000 mm by
                       1414 mm as defined in ISO 216
               iso-b1  Specifies document instruction.  Many of
       these job template attributes provides a client with a way to request
       some feature at print time that might not have been embedded within the ISO B1 size: 707 mm by
                       1000 mm as defined in ISO 216
               iso-b2  Specifies
       document data when the ISO B2 size: 500 mm by 707
                       mm as defined in ISO 216
               iso-b3  Specifies document was created.  Job template attribute
       also provides a client with a way to override a feature at print time
       that was embedded within the ISO B3 size: 353 mm by 500
                       mm as defined in ISO 216
               iso-b4  Specifies document data when the ISO B4 size: 250 mm by 353
                       mm document was
       created.  Note: until companies that supply interpreters for PDLs, such
       as defined in ISO 216
               iso-b5  Specifies PostScript and PCL allow a way to specify overrides for internal job
       production instructions, a Printer might not be able to implement these
       attributes for some PDLs.

       In order to solve this problem, the ISO B5 size: 176 mm by 250
                       mm as defined in ISO 216
               iso-b6  Specifies IPP Printer implements the ISO B6 size: 125 mm by 176
                       mm as defined in ISO 216
               iso-b7  Specifies MANDATORY
       best-effort-supported" attribute.  If the ISO B7 size: 88 mm by 125
                       mm as defined in ISO 216
               iso-b8  Specifies value of this attribute is
       'shall-honor-ipp-attributes', the ISO B8 size: 62 mm by 88
                       mm as defined in ISO 216
               iso-b9  Specifies implementation MUST guarantee that the ISO B9 size: 44 mm by 62
                       mm as defined in ISO 216
               iso-b10 Specifies the ISO B10 size: 31 mm by 44
                       mm as defined in ISO 216

               na-letter   Specifies the North American letter
                           size: 8.5 inches by 11 inches
               na-legal    Specifies the North American legal
                           size: 8.5 inches by 14 inches
               executive   Specifies the executive size (7.25 X
                           10.5 in)
               folio       Specifies the folio size (8.5 X 13
                           in)
               invoice     Specifies the invoice size (5.5 X
                           8.5 in)
               ledger      Specifies the ledger size (11 X 17
                           in)
               quarto      Specifies the quarto size (8.5 X
                           10.83 in)

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               iso-c3      Specifies the ISO C3 size: 324 mm by
                           458 mm as defined
       IPP attribute values take precedence over any related job processing
       instructions in ISO 269
               iso-c4      Specifies the ISO C4 size: 229 mm PDL Job's document data.  This can be done by
                           324 mm as defined in ISO 269
               iso-c5      Specifies
       modifying the ISO C5 size: 162 mm by
                           229 mm as defined in ISO 269
               iso-c6      Specifies interpreter within the ISO C6 size: 114 mm output device itself to understand
       IPP attributes, or by
                           162 mm as defined in ISO 269
               iso-        Specifies mergeing theses Job Template attributes directly
       into the ISO Designated Long
               designated  size: 110 mm by 220 mm as defined document data, or in
               -long       ISO 269

               na-10x13-       Specifies the North American
               envelope        10x13 size: 10 inches by 13
                               inches
               na-9x12-        Specifies the North American
               envelope        9x12 size: 9 inches by 12 inches
               na-number-10-   Specifies the North American
               envelope        number 10 business envelope
                               size: 4.125 inches by 9.5 inches
               na-7x9-         Specifies the North American 7x9
               envelope        inch envelope size
               na-9x11-        Specifies the North American
               envelope        9x11 inch envelope size
               na-10x14-       Specifies the North American
               envelope        10x14 inch envelope size
               na-number-9-    Specifies the North American
               envelope        number 9 business envelope size
               na-6x9-         Specifies the North American 6x9
               envelope        envelope size
               na-10x15-       Specifies the North American
               envelope        10x15 envelope size
               monarch-        Specifies any other implementation specific manner.
       In any case, the Monarch envelope
               envelope        size (3.87 x 7.5 in) semantics of 'shall-honor-ipp-attributes' MUST be
       preserved.

       Note: Since 'should-honor-ipp-attributes' does not offer any type of
       guarantee, a               Specifies the engineering A
                               size: 8.5 inches by 11
                               inches
               b               Specifies the engineering B
                               size: 11 inches by 17
                               inches
               c               Specifies the engineering C
                               size: 17 inches by 22
                               inches
               d               Specifies the engineering D
                               size: 22 inches by 34
                               inches

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               e               Specifies the engineering E
                               size: 34 inches by 44
                               inches

               jis-b0    Specifies the JIS B0 size: 1030mm x
                         1456mm
               jis-b1    Specifies the JIS B1 size: 728mm x
                         1030mm
               jis-b2    Specifies the JIS B2 size: 515mm x
                         728mm
               jis-b3    Specifies the JIS B3 size: 364mm x
                         515mm
               jis-b4    Specifies the JIS B4 size: 257mm x
                         364mm
               jis-b5    Specifies the JIS B5 size: 182mm x
                         257mm
               jis-b6    Specifies the JIS B6 size: 128mm x
                         182mm
               jis-b7    Specifies the JIS B7 size: 91mm x 128mm
               jis-b8    Specifies the JIS B8 size: 64mm x 91mm
               jis-b9    Specifies the JIS B9 size: 45mm x 64mm
               jis-b10   Specifies the JIS B10 size: 32mm x 45mm

          5.2.5.2 number-up (type3Enum)

          5.2.5.2.1 As Printer may not do a Job Attribute

            This very "good" job attribute specifies of implementing the number
       semantics of source page-
            images "should", but it would still be a conforming
       implementation.

       This "best-effort" attribute has nothing to impose upon do with conflict between
       what a single side of Printer supports and what an instance of a
            selected medium.

          5.2.5.2.2 As IPP client requests.  If there is
       such a conflict, the Printer Attribute

            This shall reject the create request.  A client
       SHOULD query the printer to find out what is supported before supplying
       specific values in a create request.

       6.2.9     media (type4 keyword)

       This job attribute identifies the default value and medium that the number-up values supported by this printer..

            The state of readiness Printer shall use for each number-up value is also
            included, though
       all number-up conversions should always
            be ready.

            In general, only certain numeric values are valid for
            this attribute and the value "none", depending upon pages of the
            Printer implementation to which document regardless of what media are specified within
       the print-request is
            directed.  Standard values are: "none", "1", "2", "4".

            draft-ietf-ipp-model-00.txt, expires September 26, document.

                        June 3, 1997, Expires December 3, 1997
            This
       The values for medium include medium-names, medium-sizes, input-trays
       and electronic forms so that one attribute primarily controls specifies the translation,
            scaling and rotation of page images, but media. If a site may
            choose
       printer allows a client to add embellishments, such specify a medium name as borders to each
            logical page.  The the value "none" shall not include any
            embellishments and shall place one logical page on a
            single side of this
       attribute, such a medium name implicitly selects an instance of input-tray that
       contains the selected medium without
            any translation, scaling, or rotation.

          5.2.5.3 sides (type2 keyword)

          5.2.5.3.1 As specified medium.  If a Job Attribute

            This job attribute specifies how source page-images are printer allows a client to be imposed upon specify
       a medium size as the sides of an instance value of a selected
            medium.

            When this attribute appears as attribute, such a job attribute with medium size
       implicitly selects a medium name which in turn implicitly selects an
       input-tray that contains the
            embedded tag, it may contain more than one value and it
            shall indicate all sides operations required by medium with the
            document.

          5.2.5.3.2 As specified size.  If a Printer Attribute

            This
       printer attribute indicates the default. It also
            indicates allows a client to specify an input-tray as the values value of the sides attribute supported by this printer and
       attribute, such an input-tray implicitly selects the states of readiness of each value.

            The standard values are: 1-sided, 2-sided-long-edge, 2-
            sided-short-edge.

            1-sided imposes medium that is in
       that input-tray at the time the job prints. This case includes manual-
       freed input-trays.  If a printer allows a client to specify an
       electronic form as the value of this attribute, such an electronic form
       implicitly selects a medium-name which in turn implicitly selects an
       input-tray that contains the medium specified by the electronic form.
       The electronic form also implicitly selects an image that the Printer
       shall merge with the data from the document as its prints each page.

       Standard values are (taken from ISO DPA and the Printer MIB):

         default:
         iso-a4-white:
         ...

       6.2.10    number-up (type3 keyword)

       This job attribute specifies the number of source page-images to impose
       upon a single side of an instance of a selected medium.

       Standard values are:

         'none': The Printer shall not include any embellishments and shall
            place one logical page on a single side of an instance of the
            selected medium without any translation, scaling, or rotation.
         'one': The Printer shall place one logical page on a single side of
            an instance of the selected medium but is allowed to add
            embellishments or some sort of translation, scaling, or rotation.
         'two':
         'four':

       This attribute primarily controls the translation, scaling and rotation
       of page images, but a site may choose to add embellishments, such as
       borders to each logical page.

       6.2.11    sides (type2 keyword)

       This attribute specifies how source page-images are to be imposed upon
       the sides of an instance of a selected medium.

                        June 3, 1997, Expires December 3, 1997
       The standard values are:

         'one-sided': imposes each consecutive source page-image upon the same
            side of consecutive media sheets.

            2-sided-long-edge
         'two-sided-long-edge': imposes each consecutive pair of source
            page-image page-
            image upon front and back sides of consecutive media sheets, such
            that the orientation of each pair of source-
            pages source-pages on the medium
            would be correct for the reader as if for binding on the long edge.
            This imposition is sometimes called "duplex".

            2-sided-short-edge
         'two-sided-short-edge': imposes each consecutive pair of source page-image page-
            image upon front and back sides of consecutive media sheets, such
            that the orientation of each pair of source-pages on the medium
            would be correct

            draft-ietf-ipp-model-00.txt, expires September 26, 1997 for the reader as if for binding on the short
            edge.  This imposition is sometimes called "tumble" or "head-to-toe".

            2-sided-long-edge "head-to-
            toe".

       'two-sided-long-edge' and 2-sided-short-edge 'two-sided-short-edge' work the same for
       portrait or landscape.  That is, "head-to-toe" is "tumble" in portrait
       but "duplex" in landscape.  "head-
            to-head"  "head-to-head" also switches between
       "duplex" and "tumble" when using portrait and landscape modes.

          5.2.5.4

       6.2.12    printer-resolution (type2 keyword)

          5.2.5.4.1 As a Job Attribute

       This job attribute specifies the resolution that the Printer should use.

            When this attribute appears as a job attribute with the
            embedded tag, it shall indicate the printer resolution
            required by the document.

          5.2.5.4.2 As a Printer Attribute

            This printer attribute indicates the default value. It
            also indicates the values of the printer-resolution-
            select attribute supported by this printer and their
            states of readiness.

            The state of readiness for each printer resolution is
            also included, though normally all printer-resolutions
            should always be ready.

       The values are type2Enums type2 keywords which represent single integers or pair of
       integers. The latter are to specify the resolution when the x and y
       dimensions differ. When two integers are specified, the first is in the
       x direction, i.e., in the direction of the shortest dimension of the
       medium, so that the value is independent of whether the printer feeds
       long edge or short edge first.

       The standard values are:

                  res-100
                  res-200
                  res-240
                  res-300

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                  res-600
                  res-800
                  res-1200
                  res-1800
                  res-100x200
                  res-300x600
                  res-600x300
                  res-400x800
                  res-800x400
                  res-600x1200
                  res-1200x600
                  res-1800x600

          5.2.5.5

         normal:
         res-100:
         res-300x300:
         ...

       6.2.13    print-quality (type2 keyword)

          5.2.5.5.1 As a Job Attribute

       This job attribute specifies the print quality that the Printer should
       use.

            When this attribute appears as a job attribute with the
            embedded tag, it shall indicate the print-quality
            required by the document.

          5.2.5.5.2 As a Printer Attribute

            This printer attribute indicates the default value. It
            also indicates the values of the printer-quality
            attribute supported by this printer and the states of
            readiness for each print-quality value.

            The standard values are defined in the printer-quality
            attribute.

       The standard values are:

                draft         Lowest

         draft: lowest quality available on the printer

                        June 3, 1997, Expires December 3, 1997
         normal: normal        Normal or intermediate quality on the printer

                high          Highest
         high: highest quality available on the printer

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.2.5.6

       6.2.14    copies (integer(1:2**31 - 1))

          5.2.5.6.1 As a Job Attribute

       This job attribute specifies the number of copies of the job to be
       printed.

            NOTE -  Note: The effect of this attribute on jobs and documents is
       controlled by the multiple-files-are job attribute.

          5.2.5.6.2 As a Printer Attribute

            This printer attribute indicates the default value. It
            also specifies the minimum and maximum number of copies
            of a document that can be rendered by this printer in a
            single print-job.

          5.2.5.7 finishing (setOf

       6.2.15    finishings (1setOf type2 keyword)

          5.2.5.7.1 As a Job Attribute

       This job attribute identifies the finishing operation that the Printer
       should apply to each copy of each printed document in the job where the
       definition of a copy is controlled by the multiple-documents-are "multiple-documents-are" Job
       attributes.

            When

       Standard values are:

         none:
         staple:
         ...

       6.2.16    compression (type3 keyword)

       This attribute identifies compression algorithms used for compressed
       document data.

       Standard values for this attribute appears as a job are:

         'none':
         'zip':
         'tar':
         ...

       6.2.17    job-k-octets (integer(0:2**31 - 1))

       This Job attribute with specifies the
            embedded tag, it may contain more than one total size of the job in K octets,
       i.e., in units of 1024 octets.  The value and it shall indicate all finishing operations required by the
            job.

          5.2.5.7.2 As be rounded up, so that a Printer Attribute

            This printer attribute identifies the default value. It
            also identifies the finishing operations supported by
            this Printer
       job between 1 and states of availability  for each
            finishing.

            Standard values for this attribute are:

               none         Perform no finishing.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               staple       This indicates that staples are 1024 octets shall be indicated as being 1K, 1025 to
       2048 shall be used 2, etc. This attribute is not intended to bind the document. The
                            exact number and placement of be a counter as
       in the
                            staples Job Monitoring MIB;  it is site-defined; other
                            finishing object attributes may intended to be
                            included useful routing and
       scheduling information if known.  The Printer might not be able to provide

                        June 3, 1997, Expires December 3, 1997
       compute this
                            information.
               staple-top-  This indicates that one or more
               left         staples should be placed on value (if not supplied by the top
                            left corner of client in the document
               staple-      This indicates that one or more
               bottom-left  staples should be placed on request) at the
                            bottom left corner of
       time the document
               staple-top-  This indicates that one or more
               right        staples should be placed on Job is created.  If not, the top
                            right corner of Printer may implement this
       attribute at any later time as it is able to compute the document
               staple-
               bottom-      staples should be placed on total size of
       the Job.

       6.2.18    job-impressions (integer(0:2**31 - 1))

       This indicates that one or more
               right        bottom right corner job attribute specifies the total size of the document
               saddle- job in impressions.
       This indicates that one or more
               stitch       staples (wire stitches) are attribute is not intended to be
                            used to bind the document along the
                            middle fold.  The exact number and
                            placement of a counter as in the stitches Job Monitoring
       MIB;  it is site-
                            defined.
               edge-stitch  This indicates that one or more
                            staples (wire stitches) are intended to be
                            used to bind the document along one
                            edge.  The exact number useful routing and
                            placement of scheduling information if
       known.  The Printer shall try to compute the staples value if it is site-
                            defined.
               punch        This indicates that holes are
                            required not supplied
       in the finished document.
                            The exact number and placement of
                            the holes is site-defined create request.  The
                            punch specification may Printer might not be
                            satisfied (in a site- and
                            implementation-specific manner)
                            either by drilling/punching, or by
                            substituting predrilled media.
               cover        This able to compute this
       value (if not supplied by the client in the request) at the time the Job
       is specified when created.  If not, the Printer may implement this attribute at any
       later time as it is
                            desired able to select a non-printed (or
                            pre-printed) cover for compute the
                            document. total size of the Job.

       6.2.19    job- media-sheets (integer(0:2**31 - 1))

       This does not supplant job attribute specifies the specification total size of a printed
                            cover (on cover stock medium) by the document itself.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               bind job in media-sheets.
       This indicates that a binding attribute is not intended to be applied to the document; a counter as in the
                            type Job Monitoring
       MIB;  it is intended to be useful routing and placement of scheduling information if
       known. The Printer shall try to compute the binding value if it is site-defined.

          5.2.5.8 compression (type2 keyword)

            This attribute identifies compression algorithms used for
            compression document data.

            Standard values for this attribute are:  zip, tar, ...

          5.2.5.8.1 As a Job Attribute

            This job attribute identifies not supplied
       in the compression algorithm
            that has been applied Create-Job Request.  The Printer might not be able to compute
       this value (if not supplied by the client in the request) at the time
       the Job is created.  If not, the document data.

          5.2.5.8.2 As a Printer Attribute

            This printer may implement this attribute identifies at
       any later time as it is able to compute the default value. It
            also identifies total size of the compression algorithms supported by
            this Printer

          5.2.6 Document Format Job.

       6.3  Job Attributes (Set by Client/End User)

            There is no group name for these

       The attributes since there
            is only one attribute in the group.

          5.2.6.1 document-format (type2 keyword)

          5.2.6.1.1 As this section are associated with a Job.

       6.3.1     Job Template Attributes

       The Job Template attributes which apply specifically to a Job object are
       described in section 6.2   Job Template Attributes.   These Job specific
       attributes form the attribute group called "job-template".

       6.3.2     Job Description Attributes

       These attributes form the attribute group called "job-description".

           Attribute       Man
                            ?

                        June 3, 1997, Expires December 3, 1997
       job-URI             Man
       (uri)

       job-originating-    Man
       user
       (name)

       job-originating-
       host
       (name)

       user-locale
       (type2 keyword)

       job-state           Man
       (type1 keyword)

       job-state-reasons   Man
       (1setOf type2
       keyword)

       job-state-message
       (text)

       output-device-
       assigned
       (name)

       time-since-         Man
       submission
       (milliseconds)

       number-of-          Man
       intervening-jobs
       (int)

       job-message-from-
       operator
       (text)

       time-since-         Man
       completion
       (milliseconds)

       job-k-octets-
       completed
       (int)

                        June 3, 1997, Expires December 3, 1997
       job-impressions-
       completed
       (int)

       job-media-sheets-
       completed
       (int)

       6.3.2.1   job-URI (uri)

       This job attribute identifies contains the document format URI for the job.  The Printer, on receipt of this
            document, and may be
       a per-document attribute.

          5.2.6.1.2 As new job, shall generate a Printer Attribute

            This printer attribute indicates default value. It also
            indicates URI which identifies the values of job on the attribute supported by this

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            printer and Printer.
       The Printer, shall return the states of readiness for each value. One
            possible supported and default value is "auto-sense".

            The following standard values have been reviewed with of the
            Printer Working Group and are registered with IANA URI  job attribute as part of
       the IETF Printer MIB project.  The standard value
            assigned by the PWG starts with the four letters: "lang", PrintResult in order to follow SNMP ASN.1 rules that all enum symbols
            shall start with a lower case letter. the Print operation. The keyword values
            in IPP precise format of a job URI
       shall be implementation dependent.

       6.3.2.2   job-originating-user (name)

       This attribute specifies the same as user name of the PWG standard values
            registered with IANA with person submitting the "lang" removed.
       print job.  The MIB
            (integer) value is included here for reference only, the
            MIB integer value shall not be used in IPP;  the keyword
            value Printer shall be used instead:

                keyword     MIB  Description
                Value       val
                            ue
                other       1
                PCL         3    PCL.  Starting with PCL version 5,
                                 HP-GL/2 is included as part of set this attribute to the
                                 PCL language.  PCL and HP-GL/2 are
                                 registered trademarks of Hewlett-
                                 Packard Company.
                HPGL        4    Hewlett-Packard Graphics Language.
                                 HP-GL is a registered trademark of
                                 Hewlett-Packard Company.
                PJL         5    Peripheral Job Language.  Appears
                                 in most authentic
       name that it can obtain from the data stream between data
                                 intended for a page description
                                 language.  Hewlett-Packard Co.
                PS          6    PostScript Language (tm)
                                 Postscript - a trademark of Adobe
                                 Systems Incorporated protocol over which may be
                                 registered in certain
                                 jurisdictions
                IPDS        7    Intelligent Printer Data Stream
                                 Bi-directional print data stream
                                 for documents consisting the operation was
       received from the client.

       6.3.2.3   job-originating-host (name)

       This attribute identifies the originating host of data
                                 objects (text, image, graphics,
                                 bar codes), resources (fonts,
                                 overlays) and page, form and
                                 finishing instructions.
                                 Facilitates system level device
                                 control, document tracking and
                                 error recovery throughout the
                                 print process.  Pennant Systems,
                                 IBM

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                PPDS        8    IBM Personal job. The Printer Data Stream.
                                 Originally called IBM ASCII,
       shall set this attribute to the most authentic host name was changed to PPDS when it can obtain
       from the
                                 Laser Printer protocol over which the operation was introduced in
                                 1989.  Lexmark International, Inc.
                EscapeP     9    Epson Corp.
                Epson       10
                DDIF        11   Digital Document Interchange
                                 Format Digital Equipment Corp.,
                                 Maynard MA
                Interpress  12   Xerox Corp.
                ISO6429     13   ISO 6429.  Control functions for
                                 Coded Character Sets (has ASCII
                                 control characters, plus
                                 additional controls for character
                                 imaging devices.) ISO Standard,
                                 Geneva, Switzerland
                LineData    14   line-data: Lines received from  the
       client.

       6.3.2.4   user-locale (type3 keyword)

       This attribute identifies the locale of data as
                                 separate ASCII or EBCDIC records the job, i.e, the country,
       language, and containing no control
                                 functions (no CR, LF, HT, FF,
                                 etc.).  For use with traditional
                                 line printers.  May coded character set. The Printer sets this attribute to
       the most authentic value it can obtain from the protocol over which the
       Print operation was received from the client.

       The Printer shall use CR and/or
                                 LF this attribute to delimit lines, instead of
                                 records.  See ISO 10175 Document
                                 Printing Application (DPA) ISO
                                 standard, Geneva, Switzerland
                MODCA       15   Mixed Object Document Content
                                 Architecture Definitions that
                                 allow determine the composition,
                                 interchange, and presentation of
                                 final form documents as a
                                 collection of data objects (text,
                                 image, graphics, bar codes),
                                 resources (fonts, overlays) and
                                 page, form and finishing
                                 instructions.  Pennant Systems,
                                 IBM
                REGIS       16   Remote Graphics Instruction Set,
                                 Digital Equipment Corp., Maynard
                                 MA
                SCS         17   SNA Character String Bi-
                                 directional print data stream for
                                 SNA LU-1 mode of communications
                                 IBM
                SPDL        18   ISO 10180 Standard Page
                                 Description Language ISO Standard
                TEK4014     19   Tektronix Corp.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                PDS         20
                IGP         21   Printronix Corp.
                CodeV       22   Magnum Code-V, Image and printer
                                 control language used to control
                                 impact/dot- matrix printers.  QMS,
                                 Inc., Mobile AL
                DSCDSE      23   DSC-DSE: Data Stream Compatible
                                 and Emulation Bi-directional print
                                 data stream locale for non-SNA (DSC) and
                                 SNA LU-3 3270 controller (DSE)
                                 communications IBM
                WPS         24   Windows Printing System, Resource
                                 based command/data stream used by
                                 Microsoft At Work Peripherals.
                                 Developed by
       notification messages that it sends.

       6.3.2.5   job-state (type1 keyword)

       This attribute identifies the Microsoft
                                 Corporation.
                LN03        25   Early DEC-PPL3, Digital Equipment
                                 Corp.
                CCITT       26
                QUIC        27   QUIC (Quality Information Code),
                                 Page Description Language for
                                 laser printers.  Included
                                 graphics, printer control
                                 capability and emulation current state of other
                                 well- known printer .  QMS, Inc.
                CPAP        28   Common Printer Access Protocol
                                 Digital Equipment Corp
                DecPPL      29   Digital ANSI-Compliant Printing
                                 Protocol (DEC-PPL) Digital
                                 Equipment Corp
                SimpleText  30   simple-text: character coded data,
                                 including NUL, CR , LF, HT, and FF
                                 control characters.  See ISO 10175
                                 Document Printing Application
                                 (DPA) ISO standard, Geneva,
                                 Switzerlan
                NPAP        31   Network the job.

                        June 3, 1997, Expires December 3, 1997
       The Printer Alliance Protocol
                                 (NPAP).  This protocol has been
                                 superseded may provide additional information about each state value by
       supplying one or more values of the IEEE 1284.1
                                 TIPSI standard.  (ref.
                                 LangTIPSI(49)).
                DOC         32   Document Option Commands, Appears
                                 in job's companion "job-state-reasons"
       attribute depending on implementation.  While the data stream between data
                                 intended for a page description .
                                 QMS, Inc
                imPress     33   imPRESS, Page description language
                                 originally developed for job states cannot be
       added to without impacting deployed clients that take actions upon
       receiving job state values, it is the
                                 ImageServer line of systems.  A

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                                 binary language providing
                                 representations for text, simple
                                 graphics (rules, lines, conic
                                 sections), and some large forms
                                 (simple bit-map and CCITT group
                                 3/4 encoded).The language was intent that additional "job-state-
       reasons" values can be defined without impacting such deployed clients.
       In other words, the "job-state-reasons" attribute is intended to be sent over an 8-bit
                                 channel and supported early
                                 document preparation languages
                                 (e.g.  TeX and TROFF).  QMS, Inc.
                Pinwriter   34   24 wire dot matrix printer
       extensible.

       Standard values are:

            unknown     The job state is not known, or its
                        state is indeterminate.
            pending     The job is a candidate to start
                        processing, but is not yet
                        processing..
            pending-    The job is not a candidate for
                                 USA, Europe,
            stopped     processing for any number of reasons
                        and Asia except
                                 Japan.  More widely used in
                                 Germany, and some Asian countries
                                 than in US.  NEC
                NPDL        35   Page printer for Japanese market.
                                 NEC
                NEC201PL    36   Serial printer language used in
                                 the Japanese market.  NEC
                Automatic   37   Automatic PDL sensing.  Automatic
                                 sensing of will resume pending as soon as the interpreter
                                 language family by
                        reasons are no longer present.  The
                        job's "job-state-reason" attribute
                        shall indicate why the printer
                                 examining job is no
                        longer a candidate for processing.

                        June 3, 1997, Expires December 3, 1997
            processing  Either:
                        1.  the job is using, or is attempting
                        to use, one or more document content.
                                 Which actual interpreter language
                                 families
                        transforms which include (1) purely
                        software processes that are sensed depends
                        interpreting a PDL, and (2) hardware
                        devices that are interpreting a PDL,
                        making marks on a medium, and/or
                        performing finishing, such as stapling
                        OR
                        2.  the
                                 printer implementation.
                Pages       38   Page printer Advanced Graphic
                                 Escape Set IBM Japan
                LIPS        39   LBP Image Processing System
                TIFF        40   Tagged Image File Format (Aldus)
                Diagnostic  41   A hex dump of the input to server has made the
                                 interprete
                PSPrinter   42   The PostScript Language used for
                                 control (with any PDLs) Adobe
                                 Systems Incorporated
                CaPSL       43   Canon Print Systems Language
                EXCL        44   Extended Command Language Talaris
                                 Systems Inc
                LCDS        45   Line Conditioned Data Stream Xerox
                                 Corporatio
                XES         46   Xerox Escape Sequences Xerox
                                 Corporation
                PCLXL       47   Printer Control Language.
                                 Extended language features job ready
                        for printing, and printer control.
                                 Technical reference manual # TBD.
                                 Hewlett-Packard Co.
                ART         48   Advanced Rendering Tools (ART).

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                                 Page Description language
                                 originally developed for but the Laser
                                 Press printers.  Tehnical
                                 reference manual: "ART IV
                                 Reference Manual", No F33M.  Fuji
                                 Xerox Co., Ltd.
                TIPSI       49   Transport Independent Printer
                                 System Interface (ref.  IEEE Std.
                                 1284.1)
                Prescribe   50   Page description and printer
                                 control language.  It can be
                                 described with ordinary ASCII
                                 characters.  Technical reference
                                 manual: "PRESCRIBE II Programming
                                 Manual"
                LinePrinte  51   A simple-text character stream
                r                which supports output device is
                        not yet printing it, either because
                        the control codes
                                 LF, VT, FF and CR plus Centronics job hasn't reached the output
                        device or Dataproducts Vertical Format
                                 Unit (VFU).  language because the job is commonly
                                 used on many older model line and
                                 matrix printers.
                IDP         52   Imaging Device Protocol Apple
                                 Computer.
                XJCL        53   Xerox Corp.

          5.2.7 Job Size (job-size) Attributes (Set by Client and
          Printer)

            These attributes form queued in
                        the attribute group called "job-
            size".

            These attribute values all have adornments of either
            "total" output device or "printed" and they indicate some other
                        spooler, awaiting the output device to
                        print it.
                        ISSUE: The "job-state-reasons"
                        specification is that the size of a job is in various units. A client may set these attributes, but
                        'pending' state not an end-user. The Printer may set these attributes if 'processing'
                        state.
                        When the client does not. In both of these cases, job is in the
            attribute value has 'processing'
                        state, the adornment of "total", which
            indicates entire job state includes
                        the client detailed status represented in the
                        printer's "printer-state", "printer-
                        state-reasons", and Printer's best estimate to "printer-state-
                        message attributes.
                        Implementations may include additional
                        values in the
            total.

            If a value has job's "job-state-
                        reasons" attribute to indicate the adornment
                        progress of "printed", then the job, such as adding
                        the 'job-printing' value
            shall to indicate
                        when the current number of octets, impressions
            or media-sheets (depending output device is actually
                        making marks on the attribute) that have

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            been printed. Only the printer shall be allowed to set a
            value paper.  Most
                        implementations won't bother with the "printed" adornment.

            If a value has no adornment, then it implicitly this
                        nuance.

                        June 3, 1997, Expires December 3, 1997
            processing  The job has stopped while processing
            -stopped    for any number of reasons and will
                        continue processing as soon as the
            adornment "total".
                        reasons are no longer present.  The corresponding  Printer attributes
                        job's "job-state-reason" attribute
                        shall indicate why the range
            of allowed values, but there is no explicit default. job has stopped
                        processing.
                        If the Job attribute is not specified and the Printer
            attribute output device is specified, stopped, the Printer shall either compute
            a
                        'printer-stopped' value for shall be
                        included in the job attribute or leave it unspecified.
            An attribute is accepted if any one of job's "job-state-
                        reasons" attribute.  When the following
            conditions output
                        device is satisfied: a) stopped, the Printer attribute is
            unspecified, b) device usually
                        indicates its condition in human
                        readable form locally at the device.
                        A client can obtain more complete
                        device status remotely by querying the
                        printer's "printer-state-reasons"
                        attribute.
            canceled    The job attribute has been canceled by a Cancel-
                        Job operation and is unspecified, c) either (1) in the
            job
                        process of terminating or (2) has
                        completed terminating.  The job's
                        "job-state-reasons" attribute is within shall
                        contain either the range specified 'canceled-by-user'
                        or 'canceled-by-operator' value.
            aborted     The job has been aborted by the
            Printer attribute.

          5.2.7.1 job-k-octets (integer(0:2**31 - 1))

            This attribute specifies
                        system, usually while the total size job was in
                        the 'processing' state.
            completed   The job has completed successfully or
                        with warnings or errors and all of the
                        job media sheets have been properly
                        stacked in K
            octets, i.e., in units of 1024 octets. the appropriate output tray
                        or bin.  The value job's "job-state-reasons"
                        attribute shall
            be rounded up, so contain one of:
                        'completed-successfully', 'completed-
                        with-warnings', or 'completed-with-
                        errors'.

       The length of time that a jobs remain in the 'canceled', 'aborted', and
       'completed' states depends on implementation.

       The following figure shows the normal job between state transitions.  Other
       transitions are unlikely, but are not forbidden.

                        June 3, 1997, Expires December 3, 1997
                                                   +--> canceled
                                                  /
           +----> pending --------> processing --+----> aborted
           |         ^                  ^         \
       ----+         |                  |          +--> completed
           |         v                  v
           +----> pending-stopped   processing-stopped

       Figure 1 and 1024 octets
            shall be indicated as being 1K, 1025 - Normal job state transitions

       Normally a job progresses only from left to 2048 shall be 2,
            etc. right through three states.

       Even though the IPP protocol defines seven values for job states,
       Printers SHALL only implement those states which are appropriate for the
       particular implementation.

       6.3.2.6   job-state-reasons (1setOf  type2 keyword)

       This attribute is not intended to be a counter as in identifies the reason or reasons that the Job Monitoring MIB;  it is intended to be useful
            routing and scheduling information if known.

          5.2.7.1.1 As a Job Attribute

            This job attribute is set by client on in the Print
            Request if
       state that it is known.  It is set by the in (e.g., 'pending', 'processing', 'completed', etc.).
       The Printer once shall indicate the Job object is created if particular reason(s) by setting the Printer is able to
            calculate this value.

          5.2.7.1.2 As a Printer Attribute

            This Printer attribute specifies a support range for job
            sizes.  A default value is not applicable for this
       of the job's "job-state-reasons" attribute.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.2.7.2 job-impressions (integer(0:2**31 - 1))

            This

       The following standard values are defined for use with the job attribute specifies states
       indicated as applicable.

       NOTE - For easy of understanding the total size order of the job in
            impressions. This attribute reasons is not intended to be a
            counter as presented
       in the Job Monitoring MIB;  it is intended to
            be useful routing and scheduling information if known.

          5.2.7.2.1 As a Job Attribute

            This normal order of job attribute is set by client on in state progression:

            none                Mandatory:  There are no reasons
                                for the Print
            Request if it is known.  It is set job's current state.
                                Applicable job states:
                                'pending', 'processing',
                                'aborted'.
            job-incoming        Mandatory.  The PrintJob or
                                CreateJob operation has been
                                accepted by the Printer once
            the Job object is created if Printer, but the
                                Printer is able to
            calculate this value.

          5.2.7.2.2 As a Printer Attribute

            This Printer attribute specifies a support range for job
            sizes.  A default value is not applicable waiting for this
            attribute.

          5.2.7.3 job-media-sheets (integer(0:2**31 - 1))

            This job attribute specifies additional
                                SendDocument operations and/or
                                the total size transfer of the remainder of
                                the job in
            media-sheets. This attribute or document data.
                                Applicable job states: 'pending-
                                stopped'
            job-outgoing        Optional. The Printer is not intended to be a
            counter as in
                                transmitting the Job Monitoring MIB;  it is intended job to
            be useful routing and scheduling information the
                                output device.
                                Applicable job states: 'pending'

                        June 3, 1997, Expires December 3, 1997
            job-hold-until-     Conditionally mandatory.
            specified           Mandatory if known.

          5.2.7.3.1 As a Job Attribute

            This the "job-hold-until"
                                job attribute is set by client on in implemented.
                                The value of the Print
            Request if it is known.  It is set by job's "job-hold-
                                until" attribute has specified a
                                time period that has not yet
                                arrived, so that the Printer once
            the Job object is created if
                                shall not consider the Printer is able to
            calculate this value.

          5.2.7.3.2 As job as a Printer Attribute

            This Printer attribute specifies a support range
                                candidate for processing.
                                Applicable job
            sizes.  A default value states: 'pending-
                                stopped'.
            job-hold-until-     Optional.  At least one of the
            resources-are-      resources needed by the job, such
            ready               as media, fonts, resource
                                objects, etc., is not applicable for this
            attribute.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.2.8 Number ready on
                                any of Documents (Set by Printer)

            This group contains a single attribute the physical printer's for
                                which specifies the number of documents job is a candidate.
                                Usually such a condition is
                                detected while the job is in the job.

            This group does not have
                                'pending' state.  If a name since job starts
                                processing and encounters a
                                resource that is not ready, there
                                are two possible implementations:
                                (1) the device is only one
            attribute in stopped and no
                                jobs can run until the group.

            The client need not set this attribute because,
                                resource(s) are made ready, in
                                which case the Printer sets shall keep
                                the value of this job attribute depending on
            the number of documents that the client supplies in the
            Print operation.  The client may specify this attribute
            in: Get-Attributes 'processing' state
                                and Get-Jobs.

            The printer shall add the 'printer-
                                stopped' reason to the job's
                                "job-state-reasons" attribute is set by an implementation and
            contains
                                (not the range of values supported. Normally, it is
            either exactly 1 document or at least 1 document. The
            printer shall reject a 'job-hold-until-
                                resources-are-ready' value) OR
                                (2) another job if the number of documents is
            not in found to use
                                the range of this attribute.

          5.2.8.1 number-of-documents (integer(1:2**31 - 1))

            This attribute specifies device while the number of documents in current job
                                goes back to waiting for its turn
                                and for the
            job. There are document specific attributes (see section
            5.4).

          5.3 Job Attributes Set by resources to be made
                                ready, in which case the Printer

            These attributes form
                                shall change the attribute group called job's "job-
            set-by-printer".

            The Printer sets
                                state" attribute to 'pending' and
                                add the 'job-hold-until-
                                resources-are-ready' value for each of these job
            attributes. A client may not set them.

          5.3.1 Job Identification (job-identification) Attributes
          (Set by the Printer)

            These attributes form the attribute group called "job-
            identification".

          5.3.1.1 job-URL (url)

            This attribute contains the URL for the job.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            The Printer, on receipt of a new job, shall generate a
            URL which identifies to the
                                job's "job-state-reasons"
                                attribute.
                                Applicable job on states: 'pending-
                                stopped'.

                        June 3, 1997, Expires December 3, 1997
            printer-stopped-    Optional.  This reason appears in
            partly              all jobs in the Printer. The Printer,
            shall return 'pending' state
                                when the value of the URL  job Printer's
                                "printer-state-reasons" attribute as part
            of the PrintResult in
                                contains the Print operation. The precise
            format of a value 'stopped-
                                partly'.
                                Applicable job URL shall be implementation dependent.

          5.3.2 Job Owner (job-owner) Attributes (Set by a Printer) states: 'pending'
            printer-stopped     Mandatory.  The Print shall add output device is
                                stopped.  This reason appears in
                                all of these attributes to a job to
            provide information to identify a print-job.

            These attributes form the attribute group called "job-
            owner".

            The client may specify these attributes jobs in the
            operations: Get-Attributes 'pending' and Get-Jobs, but not in
            Print.

          5.3.2.1 job-originating-user (name)

            This attribute specifies
                                'processing' states when the user name
                                value of the person
            submitting the print job.  The Printer shall set this Printer's "printer-
                                state" attribute is 'stopped'.
                                Applicable job states: 'pending-
                                stopped', 'processing-stopped'
            job-printing        Optional. The output device is
                                marking media. This value is
                                useful for Printers which spend a
                                great deal of time processing
                                when no marking is happening and
                                then want to the most authentic name show that it can obtain
            from marking is
                                now happening.
                                Applicable job states:
                                'processing', 'processing-
                                stopped'
            job-cancelled-by-   Level 2 Mandatory.  The job was
            user                cancelled by the protocol over which user using the operation
                                CancelJob request.
                                Applicable job states:
                                'canceled'.
            job-cancelled-by-   Level 2 Mandatory.  The job was received
            from the client.

          5.3.2.2 job-originating-host (name)

            This attribute identifies
            operator            cancelled by the originating host of operator using
                                the
            job. CancelJob request.
                                Applicable job states:
                                'canceled'.
            logfile-pending     Optional.  The Printer shall set this attribute to the most
            authentic host name it can obtain from the protocol over
            which job's logfile is
                                pending file transfer.
                                Applicable job states:
                                'canceled', 'aborted', and
                                'completed'.
            logfile-            Optional.  The job's logfile is
            transferring        being transferred.
                                Applicable job states:
                                'canceled', 'aborted', and
                                'completed'.

                        June 3, 1997, Expires December 3, 1997
            job-completed-      Mandatory.  The job completed
            successfully        successfully.
                                Applicable job states:
                                'completed'.
            job-completed-      Mandatory.  The job completed
            with-warnings       with warnings.
                                Applicable job states:
                                'completed'.
            job-completed-      Mandatory.  The job completed
            with-errors         with errors (and possibly
                                warnings too).
                                Applicable job states:
                                'completed'.

       6.3.2.7   job-state-message (text)

       This attributes specifies suplimental information about the operation was received from Job State in
       human readable text.  It SHALL be set by the client.

          5.3.2.3 user-locale (type3 keyword) Printer.

       6.3.2.8   output-device-assigned (uri)

       This attribute identifies the locale of Output Device to which the job, i.e, Printer has
       assigned this job.  If an output device implements an embedded IPP
       Printer, the
            country, language, and coded character set. The Printer
            sets NEED NOT set this attribute attribute.  If a Print Server
       implements a Printer, the most authentic value it can
            obtain from the protocol over which the operation was
            received from MAY be empty until the client..

            The Printer shall use this attribute assigns
       an output device to determine the
            locale for notification messages that it sends.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            Issue: Is there a more standard syntax for locale?

            The standard values are listed under the document-locale
            attribute. job.

       ISSUE: specify the list of valid locales.

          5.3.2.4 job-name (name) Why is this a uri?

       6.3.2.9   time-since-submission (milliseconds)

       This attribute contains indicates the name amount of the job.  It is a
            name time that is more user friendly than the job-URL. The
            Printer, on receipt of has passed since the job, shall generate a name
            which is
       Job was first created.

       6.3.2.10  time-since-processing (milliseconds)

       This attribute indicates the name amount of time that has passed since the
       Job first document in entered the job. processing state.

       6.3.2.11  number-of-intervening-jobs (integer(0:2**31 - 1))

       This
            name comes from the document-name or document-URL
            depending on which attribute is specified.

          5.3.3 Job Status (job status) Attributes (Set by Printer)

            These attributes form indicates the attribute group called "job-
            status".

            The Printer shall add these attributes to a number of jobs that are "ahead" of this job when a
            client submits a job, and
       in the Printer shall assign
            appropriate values current scheduled order.  For efficiency, it is only necessary to each such job-status
       calculate this value when an operation if performed that requests this
       attribute.

            The Printer uses these attributes to specify the job
            status before, during and after the processing of the
            print-job by the Printer.

            The client may specify job-status attributes in: Get-
            Attributes and Get-Jobs, but not Print.

          5.3.3.1 job-state (type1 keyword)

                        June 3, 1997, Expires December 3, 1997
       Note: This attribute identifies the current state of the job.
            Standard values are:

               unknown     The job state is not known, or is
                           indeterminate.
               pending     The job is waiting to start processing
                           on a printer. Various job-reasons necessary since an end user may
                           keep a job from moving to the printing
                           state.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               processing  The server is processing the job, or
                           has made the job ready for printing,
                           but request just
       their own jobs and they need some relative position indicator if there
       are other jobs interspersed in the output device is waiting list which are not yet
                           printing it, either because the job
                           hasn't reached returned
       in the output device response or cannot be because of site security policy
       restrictions.

       6.3.2.12  job-message-from-operator (text)

       This attribute provides a message from an operator, system administrator
       or "intelligent" process to indicate to the job is queued in end user the
                           output device reasons for
       modification or some other spooler,
                           awaiting management action taken on a job.

       6.3.2.13  time-since-completion (milliseconds)

       This attribute indicates the output device to print
                           it.

                           Or

                           The server amount of time that has completed processing
                           the job and passed since the output device is
                           currently printing
       Job was first created.

       6.3.2.14  job-k-octets-completed (integer(0:2**31 - 1))

       This attribute specifies the job. That is,
                           an output device is either printing
                           pages number of the job, or failing octets completed in its
                           attempt to print pages of the job
                           because K octets,
       i.e., in units of some wait state, such as,
                           start-wait, end-wait, needs-attention,
                           etc. 1024 octets.  The complete value shall be rounded up, so that a
       job state includes
                           the detailed status represented in the
                           printer's printer-state attribute.
                           As with the printer state, let's let
                           the reason make the distinction between 1 and 1024 octets shall be indicated as to
                           whether paper is being marked or the
                           printer 1K, 1025 to
       2048 shall be 2, etc. This attribute is just processing. Most
                           printers won't bother with this
                           nuance.
               terminatin  The job has been canceled by intended to be a Cancel-
               g           Job request or aborted by the server
                           and is counter as in
       the process of terminating.
                           The job's job-state-reasons Job Monitoring MIB.

       6.3.2.15  job-impressions-completed  (integer(0:2**31 - 1))

       This job attribute
                           contains the reasons that specifies the job is
                           being terminated.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               retained    The job number of impressions completed. This
       attribute is being retained at intended to be a counter as in the
                           server. The Job Monitoring MIB.

       6.3.2.16  job-media-sheets-completed (integer(0:2**31 - 1))

       This job has (1) completed
                           successfully or with warnings or
                           errors, (2) been aborted while
                           printing by the server, or (3) been
                           canceled by the Cancel-Job request
                           before or during processing.  The
                           job's job-state-reasons attribute
                           contains the reasons that specifies the job has
                           been retained.
                           While media-sheets completed. This attribute
       is intended to be a counter as in the retained state, all Job Monitoring MIB.

       6.4  Document Attributes

       This group of attributes describes the job's document data (and
                           resources, if any) shall be retained
                           by for the server; thus a job job.  They
       are supplied in the
                           retained state could be reprinted,
                           using some means outside the scope of
                           IPP V1.0.  If a given implementation
                           does not support this functionality,
                           there is no need to support this
                           value.

            draft-ietf-ipp-model-00.txt, expires September 26, Send-Document request.

                        June 3, 1997, Expires December 3, 1997
               completed   The job has:

                               (1) completed successfully or with
                           warnings or errors,
                               (2) been aborted by the server
                           while printing, or
                               (3) been canceled by the Cancel-
                           Job request,
                           For case 1, "completed " only happens
                           when all job media sheets have been
                           properly stacked in the appropriate
                           output tray or bin.
                           The job's job-state-reasons
           Attribute       Man
                            ?

       document-name       Man
       (name)

       document-format
       (type2 keyword

       document-URI
       (uri)

       6.4.1     document-name(name, Mandatory)

       This attribute contains the reason(s) that name of the job
                           has been completed.
                           While in document used by the completed state, client to
       initially identify the document. When a job's client prints by reference, i.e.
       includes the document-URI attribute and no document data (and resources if any)
                           need not content, this
       attribute shall be retained absent. When a document's contents are spread across
       multiple Send Document operations "document-name" is ignored by the server;
                           thus a job
       Printer in all but the completed state
                           could not be reprinted. The length first Send-Document operation.

       6.4.2     document-format (type2 keyword)

       This attribute defines the document format of
                           time that a job may be in this state,
                           before transitioning to unknown, is
                           implementation-dependent.  However,
                           servers that implement document. When a
       client prints by reference, i.e. includes the completed
                           job-state document-URI attribute and
       no document content, this attribute shall retain, as be absent. When a minimum, document's
       contents are spread across multiple Send-Document operations, document-
       format is ignored by the following attributes for any job Printer in the completed state: job-
                           identifier, job-originator, job-name,
                           current-job-state, output-device-
                           assigned, and job-state-reasons.

            The IPP protocol supports all values for job states, but
            Printers need only support those states which are
            appropriate for the particular implementation.

          5.3.3.2 job-state-reasons (setOf  type2 keyword) first Send Document
       operation for that document.

       This attribute identifies the reason or reasons that the
            job document format of this document.  One
       possible supported and default value is 'auto-sense'.  However, 'auto-
       sense' shall not be sent in the state that it is in (e.g., held,
            terminating, retained, completed, etc.). Send-Document Request.

       The printer
            shall indicate following standard values have been reviewed with the particular reason(s) by setting Printer
       Working Group and are registered with IANA as part of the IETF Printer
       MIB project.  The standard value of assigned by the job-state-reasons attribute.

            ISSUE: Should we  change job-incomplete to job-spooling
            and adde job-queued, job-sent-to-printer and job-held?
            Job-queued is really PWG starts with the default. Job-held can only be

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            changed by an operator
       four letters: "lang", in an unspecified manner. Should
            a job move to the printing state when a spooler sends it order to follow SNMP ASN.1 rules that all enum
       symbols shall start with a printer or  move to the printing state when marking
            starts. Should  it depend on lower case letter.  The keyword values in IPP
       shall be the printer same as to whether it
            announces such nuances. We probably need a state
            transition diagram.

            The following the PWG standard values are defined:

               job-incomplete      The job has been accepted by the
                                   server, but registered with IANA with
       the Printer "lang" removed.  The MIB (integer) value is
                                   waiting included here for

                        June 3, 1997, Expires December 3, 1997
       reference only, the transfer of MIB integer value shall not be used in IPP;  the
                                   remainder
       keyword value shall be used instead:

       Note:  In the protocol specification [22], these keywords will be
       encoded as MIME types.

       6.4.3     document-URI (uri)

       This attribute contains the URI of the job.
               job-sending-to-     Optional. The job document when the document
       content is not included in the
               output-device       pending state but Send Document operation.  Document-number
       is being
                                   transmitted to the output device.
               job-queued-in-      Optional. The job only other attribute allowed when a document-URI attribute is
       present in the
               output-device       pending state and is queued on
                                   the output device.
               job-printing        The job-state is processing, and
                                   the printer is marking media.
                                   This attribute is optional and
                                   useful for printers which spend a
                                   great deal of time processing
                                   when no marking is happening.
               printer-stopped Send Document operation.

       6.5  Printer Attributes

       The printer is stopped.  This
                                   reason appears attributes in all  jobs this section are associated with a Printer object.

       6.5.1     Printer Job Template Attributes

       The Job Template attributes which apply specifically to a Printer object
       are described in section 6.2  Job Template Attributes.

       These Printer attributes form the pending state when the value
                                   of attribute group named "printer-job-
       template".

       6.5.2     Printer Description  Attributes

       These attributes form the Printer's printer-state attribute is stopped. This reason
                                   appears group called "printer-description".

       A Printer object may be realized in either a job in the
                                   processing state when the output-
                                   device print server or output
       device. Note: How these attributes are set by an Administrator is stopped.
               printer-partly-     Optional.
       outside the scope of this specification.

            Attribute         Man?

       printer-URI           Man
       (uri)

       printer-name          Man
       (name)

                        June 3, 1997, Expires December 3, 1997
       printer-location
       (text)

       printer-description
       (text)

       printer-more-info-
       site
       (uri)

       printer-driver-
       installer
       (uri)

       printer-make-and-
       model
       (text)

       maximum-printer-
       speed
       (integerUnits)

       printer-more-info-
       manf
       (uri)

       printer-state         Man
       (type1 keyword)

       printer-state-        Man
       reasons
       (type2 keyword)

       printer-is-           Man
       accepting-job
       (boolean)s

       printer-state-
       message
       (text)

       queued-job-count
       (int)

       printer-message-
       from-operator

                        June 3, 1997, Expires December 3, 1997
       (text)

       printer-locale        Man
       (locale)

       printer-locales-      Man
       supported
       (1setOf locale)

       multiple-documents-
       are-supported
       (boolean)

       6.5.2.1   printer-URI (uri)

       This reason appears in
               stopped             all jobs in attribute contains the pending state
                                   when URI for the value printer.  An administrator shall
       determine a printer's URI and shall set this attribute to that URI. The
       precise format of the Printer's
                                   printer-state-reasons a printer URI shall be implementation dependent.

       6.5.2.2   printer-name (name)

       This attribute contains the value partly-stopped.
               job-hold-until-     The value name of the job's job-hold-
               specified           until attribute has specified printer. It is a
                                   time period that has not yet
                                   arrived, so name that is
       more user friendly than the Printer printer-URI. An administrator shall not consider the job as
       determine a
                                   candidate for processing.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               required-           At least one of the resources
               resources-not-      needed by the job, such as media,
               ready               fonts, resource objects, etc., is
                                   not ready on any of the physical printer's for which the job is a
                                   candidate.
               successful          The job completed successfully.
               completion
               completed-with-     The job completed with warnings.
               warnings
               completed-with-     The job completed with errors
               errors              (and possibly warnings too).
               cancelled-by-user   The job was cancelled by the user
                                   using the CancelJob request.
               cancelled-by-       The job was cancelled by the
               operator            operator using the CancelJob
                                   request.
               aborted-by-system   The job was aborted by the
                                   system.
               logfile-pending     The job's logfile is pending file
                                   transfer.
               logfile-            The job's logfile is being
               transferring        transferred.

          5.3.3.3 job-state-as-text (text)

            This attributes specifies the job-state and job-state-
            reasons in human readable text name and it shall be set by the
            Printer.

          5.3.3.4 output-device-assigned (url)

            This this attribute identifies the Output Device to which the
            Printer has assigned this job. It is the printer-URL
            rather than the printer-name so that the Output-Device is
            not limited to name.
       This name may be near the Printer.

            If an Output Device implements a Printer, last part of the Printer
            need not set this attribute.

            If printer's URI or it may be
       unrelated. In non-US-English locales, a Print Server implements name may contain characters that
       are not allowed in a Printer, the value shall
            be empty until the Printer assigns an Output Device to URI.

       6.5.2.3   printer-location (text)

       This attribute identifies the job.

            The value location of the job's output-device-assigned this printer.

       6.5.2.4   printer-description (text)

       This attribute
            shall remain after the job has completed, so that end

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            users can determine identifies the Output Device on which descriptive information about the job
            was printed.

          5.3.3.5 submission-time (dateTime) this
       Printer.  This attribute indicates the date and time at which this
            job was accepted by the Printer.  If the Printer does not
            support the notion of time, the attribute need not could include things like: "This printer can be
            stored as part of the job object.

          5.3.3.6 number-of-intervening-jobs (integer(0:2**31 - 1))

            This attribute indicates the number used for
       printing color transparencies for HR presentations", or "Out of courtesy
       for others, please print only small (1-5 page) jobs that are
            "ahead" of at this job in the current scheduled order.  For
            efficiency, it printer", or
       even "This printer is only necessary going away on July 1, 1997, please find a new
       printer".

                        June 3, 1997, Expires December 3, 1997
       6.5.2.5   printer-more-info-site (uri)

       This attribute contains a URI used to calculate obtain more information about this value
            when an operation if performed that requests
       specific printer.  The information obtained from this
            attribute.

            NOTE - This attribute URI is necessary since an intended
       for end user may
            request just their own jobs and they need some relative
            position indicator if there are other jobs interspersed
            in the waiting list which are not returned in consumption. Features outside the
            response or cannot be because scope of site security policy
            restrictions.

          5.3.3.7 job-message-from-operator (text)

            This attribute provides a message IPP can be
       accessed from an operator,
            system administrator or "intelligent" process this URI.  The information is intended to indicate be specific to the
       this printer instance and site services (e.g. job pricing, services
       offered, end user the reasons for modification or other
            management action taken on a job.

          5.3.3.8 completion-time (dateTime) assistance).  The manufacturer may initially populate
       this attribute.

       6.5.2.6   printer-driver-installer (uri)

       This attribute indicates contains a URI to use to locate the date and time at which driver installer for
       this
            job completed. printer.   This time is useful for jobs which are
            retained after printing.  If the Printer does not support
            the notion of time, the attribute is not stored as part
            of the Job object.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.4 Document Attributes

          5.4.1 Document Data (document-data) Attributes (Set intended for consumption by a
          Client/End User)

            These attributes form the attribute group called
            "document-data".

            This group automata.
       The mechanics of attributes describes the document data for
            the job. These attributes also include print driver installation is outside the document data
            or reference it.

            All job attributes in other sections scope of this document
            occur only once per job and apply to all documents in a
            job.

            The client may specify document-data attributes in Print. IPP.
       The client must specify either the document-URL or
            document-content in Print.

            Except for document-content, the client manufacturer may specify
            document-data attributes in: Get-Attributes, and Get-
            Jobs.

          5.4.1.1 document-name (name)

            This attribute contains the name of the document used by
            the client to initially identify the document. If the
            client uses a URL, this attribute shall be absent.

            ISSUE: Do we need to add a document-file-name attribute
            for files that don't have a URL?

          5.4.1.2 document-URL (url)

            This attribute contains the URL of the document if the
            client specified the document with a URL.

            If populate this attribute is specified, then document-content
            shall be unspecified.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.4.1.3 document-content (octetString) attribute.

       6.5.2.7   printer-make-and-model (text)

       This attribute contains identifies the actual contents make and model of the
            document.

            If printer.

       ISSUE: Several comments that we should break this attribute up into two
       attributes.  It is specified, then document-URL shall just a text string, so it could really be unspecified. anything.

       6.5.2.8   maximum-printer-speed (integerUnits)

       This attribute shall be used during indicates the transmission maximum printer speed of the Print operation over a network. A Printer shall save
            the document data to a file in
       units of pages per minute, impressions per minute, lines per minute, and reference it with the
            document-URL.
       characters per second. A Get-Attribute or Get-Jobs operation shall
            always find that this attribute is unspecified.

          5.5 Printer Description  (printer-description) Attributes

            These attributes form the attribute group called
            "printer-description".

          5.5.1 job cannot control a Printer's speed, but a
       Printer Identification (printer-identification
          Attributes (Set by the Administrator) Browser can use printer speed as a criteria.

       The standard units are a type2 setOf keyword : ppm, ipm, spm, lpm, and
       cps.  These attributes form the attribute group called
            "printer-identification".

          5.5.1.1 printer-URL (url)  mean pages per minute, impressions per minutes, sides per
       minutes, lines per minute, and characters-per-second, respectively.

       6.5.2.9   printer-more-info-manf (uri)

       This attribute contains the URL for the printer.

            An administrator shall determine a printer's URL and
            shall set this attribute URI used to that URL. obtain more information about this
       type of printer.  The precise format information obtained from this URI is intended for
       end user consumption.  Features outside the scope of a printer URL shall IPP can be implementation dependent.

          5.5.1.2 printer-name (name) accessed
       from this URI (e.g., latest firmware, upgrades, print drivers, optional
       features available).  The information is intended to be germane to this
       printer without regard to site specific modifications or services.

                        June 3, 1997, Expires December 3, 1997
       6.5.2.10  printer-state (type1 keyword)

       This attribute contains identifies the name current state of the printer. It is a
            name that is  The
       printer-state reasons attribute augments the printer-state attribute to
       give more user friendly than detailed information about the printer-URL.

            An administrator Printer is in the given printer
       state.

       The protocol shall determine a printer's name and support all values for printer states. A Printer
       shall set continually keep this attribute set to that name. This name may be the last part value in the table
       below which most accurately reflects the state of the printer's URL Printer.

       The following standard values are defined:

            unknown     The Printer state is not known, or it may be
            unrelated. In non-US-English locales, a name may contain
            characters that are not allowed in a URL.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.5.2 Printer Description Attributes (Set by the
          Administrator)

            A printer object may be realized in either a Print Server
            or Output Device. Note: How these attribute are set by an
            Administrator is outside the scope of this specification.
                        indeterminate. A Printer Object in an Output Device contains shall use
                        this state only if it cannot
                        determine its actual state.

            idle        If a set of
            printer object attributes that represent an Output Device
            capable of rendering Printer receives a document job (whose
                        required resources are ready) while
                        in visible form.
            Examples include electronic and electro-mechanical
            printers such as laser printers, ink-jet printers, and
            various kinds of impact printers, but may include other
            types of output devices this state, such as microfiche imagers and
            plotters as well.

            A Printer Object in a Print Server may supply queuing,
            spooling, and scheduling for an Output device job shall
                        transit into the processing state
                        immediately.

                        If the printer-state-reasons
                        attribute contains any reasons, they
                        shall be reasons that does would not queue or spool.

            A Print Server, in
                        prevent a job from transiting into
                        the most common case, processing state immediately,
                        e.g., toner-low.

                        Note: if a Printer controls exactly more than
                        one downstream Output Device. The Print Server's Printer
            object has attributes whose values are the same as those
            of the Printer object in output device, the downstream Output Device.

            A above
                        definition implies that a Printer Object in is
                        idle if at least one output device is
                        idle.

                        June 3, 1997, Expires December 3, 1997
            processing  If a Print Server may contain Printer receives a set of
            printer object attributes that job (whose
                        required resources are the union of the
            Printer objects ready) while
                        in the downstream Output Devices.  This
            object extends the capabilities of an Output Device.  For
            example, an administrator might define this state, such a single Print
            Server to represent all of the Output Devices of job shall
                        transit into the same
            type and capability in a single location, associated with
            a particular server.  A end user would normally send a
            print-job to pending state
                        immediately. Such a Print Server, and allow the Print Server
            to assign the job to a particular Output Device  based on shall transit
                        into the relative load and availability processing state only after
                        jobs ahead of it complete printing.

                        If the printers under
            its control, thus providing a load balancing service.
            However, nothing precludes an administrator printer-state-reasons
                        attribute contains any reasons, they
                        shall be reasons that do not prevent
                        the current job from
            configuring printing, e.g.
                        toner-low.

                        Note: if a print system so Printer controls more than
                        one output device, the above
                        definition implies that an end user can send a
            print-job directly to an Output Device.

            The attributes defined Printer is
                        processing if at least one output
                        device is processing, and none is
                        idle.

            stopped     If a Printer receives a job (whose
                        required resources are ready) while
                        in this section provide
            information about state, such a particular Printer.

          5.5.2.1 printer-location (text)

            This attribute identifies job shall
                        transit into the location of this printer.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          5.5.2.2 printer-description (text)

            This attribute identifies pending state
                        immediately. Such a job shall transit
                        into the descriptive information
            about processing state only after
                        some human fixes the problem that
                        stopped the this Printer.  This could include things like:
            "This printer can be used for printing color
            transparencies for HR presentations", or "Out of courtesy
            for others, please print only small (1-5 page) and after jobs
                        ahead of it complete printing.

                        The printer-state-reasons attribute
                        shall contain at
            this printer", least one reason,
                        e.g. paper-jam, which prevents it
                        from either processing the current
                        job or even "this printer is going away on
            July 1, 1997, please find a new printer".

          5.5.2.3 printer-more-info-site (url)

            This attribute contains transiting a URL used pending job to obtain
                        the processing state.

                        Note: if a Printer controls more
            information about   this specific  printer.   The
            information obtained from this URL than
                        one output device, the above
                        definition implies that a Printer is intended for
            end-user   consumption. Features outside
                        stopped only if all output devices
                        are stopped.

       Note: In the scope of IPP
            can be accessed from this URL.  The information case where a Printer controls more than one output device,
       it is
            intended to be specific tempting to this printer instance and site
            services. (e.g. job pricing, services   offered, end user
            assistance)  The manufacturer may initially populate this
            attribute

          5.5.2.4 printer-driver-installer  (url)

            This attribute contains define stopped as when a URL sufficient number of output
       devices are stopped and leave it to use an implementation to locate define the driver
            installer for this printer.   This attribute is intended
            for consumption by automata. The mechanics of print
            driver installation is outside

                        June 3, 1997, Expires December 3, 1997
       sufficient number.  But such a rule complicates the scope definition of IPP.  The
            manufacturer may initially populate this attribute.

          5.5.3 Printer Description Attributes (Set by the
          Manufacturer)

          5.5.3.1 printer-make-and-model (text)

            This attribute identifies the make
       stopped and model processing. For example, with this alternate definition of
       stopped, a job can move from idle to processing without human
       intervention, even though the
            printer.

          5.5.3.2 maximum-printer-speed (integerUnits) Printer is stopped.

       6.5.2.11  printer-state-reasons (1setOf type2 keyword)

       This attribute indicates the maximum printer speed of supplies additional detail about the
            Printer in units of pages per minute, impressions per
            minute, lines per minute, and characters per second. A

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            job cannot control a Printer's speed, but a Printer
            Browser can use printer speed as a criteria.

            The standard units are a type2 setOf keyword : ppm, ipm,
            spm, lpm, and cps.  These  mean pages per minute,
            impressions per minutes, sides per minutes, lines per
            minute, and characters-per-second, respectively.

          5.5.3.3 printer-more-info-manf (url)

            This attribute contains a URL used printer's state.

       Each value shall have an adornment to obtain more
            information about   this type indicate its level of printer. severity.
       The
            information obtained from this URL is intended for
            end-user   consumption. Features outside three levels are: report (least severe), warning and error (most
       severe).

         - 'report':  it has the scope adornment of IPP
            can be accessed from this URL. (e.g. latest firmware,
            upgrades, print drivers, optional features available)
            The information is intended to be germane   to this
            printer without regard "report". An implementation may
            choose to site specific modifications omit some or
            services.

          5.6 Printer Status (printer-status)Attributes

            These attributes form the attribute group called
            "printer-status".

          5.6.1 Printer Status Attributes (Set by the Printer)

          5.6.1.1 printer-state (type1 keywordEnum)

            This attribute identifies the current state of the
            printer. The printer-state reasons attribute augments the
            printer-state attribute to give more detailed information all reports. Some reports specify finer
            granularity about the printer state.

            The protocol shall support all values for printer states. state; others serve as a precursor to
            a warning. A Printer report shall continually keep this attribute set to
            the value in contain nothing that could affect the table below which most accurately
            reflects
            printed output.
         - 'warning': it has the state adornment of the Printer..

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            The following standard values are defined:

               unknown     The Printer state is not known, "warning". An implementation may
            choose to omit some or is
                           indeterminate. all warnings. Warnings serve as a precursor
            to an error. A Printer warning shall use
                           this state only if it cannot
                           determine its actual state.

               idle        If a Printer receives contain nothing that prevents a job (whose
                           required resources are ready) while
            from completing, though in this state, such a job shall
                           transit into some cases the processing state
                           immediately. output may be of lower
            quality.
         - 'error': it has no adornment. An implementation shall include all
            errors. If the printer-state-reasons this attribute contains any reasons, they one or more errors, printer
            shall be in the stopped state.

       ISSUE: How do we indicate report, warning, or error without adornments?
       Proposal add a parallel attribute to print-state-reasons and name it
       "printer-state-reasons-severity-level".  The ith element of the reasons that would not
                           prevent
       attribute has the severity level of the ith element of the severity
       level attribute.  Another proposal:  an implementation may add 'error-',
       'warning-', or 'report-' to any of the reasons to indicate the level of
       severity.

       ISSUE: Toner-low should be a warning because it allows printing to
       proceed, but in some printers, toner-low may also produce degraded
       output. Do we want a fourth category, perhaps severe-warning which
       allows a job from transiting into
                           the processing state immediately,
                           e.g. is toner-low.

                           NOTE: if to continue printing but with reduced quality?

       If a Printer controls more than one output device, each value of this
       attribute shall apply to one more of the above
                           definition implies that a Printer is
                           idle if at least output devices. An error on one
       output device is
                           idle.

               processing  If a that does not stop the Printer receives as a job (whose
                           required resources are ready) while whole appears as a
       warning in this state, such a job shall
                           transit into the pending state
                           immediately. Printer's printer-state-reasons attribute. Such a job shall transit
                           into the processing state only after
                           jobs ahead of it complete printing.

                           If the printer-state-reasons
                           attribute contains any reasons, they
                           shall
       Printer's printer-state value may be stopped even with no printer-state-
       reasons that do not prevent
                           the current job from printing, e.g.
                           toner-low.

                           NOTE: if are errors.

       The following standard values are defined:

                        June 3, 1997, Expires December 3, 1997
            stopped-partly      When a Printer controls more than
                                one output device, the above
                           definition implies this reason
                                indicates that a Printer is
                           processing if at least one or more output
                           device is processing, and none is
                           idle.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               stopped     If a Printer receives a job (whose
                           required resources
                                devices are ready) while
                           in this state, such a job shall
                           transit into stopped. If the pending state
                           immediately. Such
                                reason is a job shall transit
                           into report, fewer than
                                half of the processing state only after
                           some human fixes output devices are
                                stopped. If the problem that
                           stopped reason is a
                                warning, fewer than all of the printer and after jobs
                           ahead
                                output devices are stopped.
            media-needed        A tray has run out of it complete printing. media
            paper-jam           The printer-state-reasons attribute printer has a paper jam.
            paused              Someone has paused the Printer.
                                In this state, a Printer shall contain at least one reason,
                           e.g. paper-jam, which prevents
                                not produce printed output, but
                                it
                           from either processing the current
                           job or transiting shall perform other operations
                                requested by a client. If a
                                Printer had been printing a pending job to
                                when the processing state.

                           NOTE: if a Printer controls more than
                           one output device, was paused, the above
                           definition implies
                                Printer shall resume printing
                                that a job when the Printer is
                           stopped only if all output devices
                           are stopped.

            NOTE: no
                                longer paused and leave no
                                evidence in the case where printed output of
                                such a pause .
            shutdown            Someone has removed a Printer controls more than one
            output device,
                                from service, and it is tempting to define stopped as when may be
                                powered down or physical removed.
                                In this state, a
            sufficient number of output devices are stopped Printer shall
                                not produce printed output, and leave
            it to an implementation to define
                                unless the sufficient number.
            But such Printer is realized by
                                a rule complicates print server that is still
                                active, the definition of stopped
            and processing. For example, with Printer shall perform
                                no other operations requested by
                                a client, including returning
                                this alternate
            definition of stopped, value. If a Printer had been
                                printing a job can move from idle to
            processing without human intervention, even though when it was
                                shutdown, the Printer need not
                                resume printing that job when the
                                Printer is stopped.

          5.6.1.2 printer-state-reasons (setOf type2 keyword)

            This attribute supplies additional detail about no longer shutdown. If
                                the
            printer state.

            Each value shall have an adornment to indicate its level
            of severity.  The three levels are: report (least
            severe), warning and error (most severe).

            - "report": Printer resumes printing such
                                a job, it has the adornment of "report". An
                 implementation may choose to omit some or all
                 reports. Some reports specify finer granularity
                 about leave evidence in
                                the printer state; others serve as a precursor

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
                 to printed output of such a warning. A report shall contain nothing that
                 could affect
                                shutdown, e.g. the part printed output.

            - "warning": it has
                                before the adornment of "warning". An
                 implementation shutdown may choose to omit some or all
                 warnings. Warnings serve as a precursor to an error.
                 A warning shall contain nothing that prevents be
                                printed a job
                 from completing, though in some cases second time after the output may
                 be of lower quality.

            - "error": it
                                shutdown..

                        June 3, 1997, Expires December 3, 1997
            connecting-to-      The server has no adornment. An implementation shall
                 include all errors. If this attribute contains one
                 or more errors, scheduled a job on
            printer shall be in             the stopped
                 state.

            ISSUE: Toner-low should be a warning because it allows
            printing to proceed, but Printer and is in some printers, toner-low may
            also produce degraded output. Do we want a fourth
            category, perhaps severe-warning which allows a job the process
                                of connecting to
            continue printing but with reduced quality?

            If a Printer controls more than one shared network
                                output device, each
            value of this attribute shall apply device (and might not be
                                able to one more actually start printing
                                the job for an arbitrarily long
                                time depending on the usage of
                                the output devices. An error device by other
                                servers on one the network).
            timed-out           The server was able to connect to
                                the output device that does
            not stop the Printer as a whole appears as (or is always
                                connected), but was unable to get
                                a warning response from the output device
                                in the Printer's printer-state-reasons time specified by the
                                printer's printer-timeout-period
                                attribute. Such a
            Printer's printer-state value may
            stopping            The printer will be stopped stopping in a
                                while and will change its reason
                                to printer-stopped. This reason
                                is a non-critical, even with no
            printer-state-reasons that are errors.

            The following standard values are defined:

               partly-stopped      When for a
                                Printer controls more than
                                   one output device, with a single output
                                device. When an output-device
                                ceases accepting jobs, the
                                Printer will have this reason
                                   indicates that one or more state
                                while the output
                                   devices are stopped. device completes
                                printing.

       6.5.2.12  printer-is-accepting-jobs (boolean)

       This attribute determines whether the printer is currently accepting
       job.  If the
                                   reason value is a report, fewer than
                                   half of true, the output devices are
                                   stopped. printer is accepting jobs. If the reason value
       is a
                                   warning, fewer than all of false, the
                                   output devices are stopped.
               media-needed        A tray has run out of media
               paper-jam           The printer has a paper jam.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               paused              Someone has paused is currently rejecting any jobs submitted to it.

       Note: This value is independent of the Printer.
                                   In this state, a Printer shall printer state and printer-state-
       reasons because its value does not produce printed output, but affect the current job; rather it shall perform other operations
                                   requested by a client. If a
       affects future jobs. This attribute may cause the Printer had been printing a job to reject jobs
       when the Printer was paused, printer-state is idle or it may cause the Printer shall resume printing
                                   that job to accepts
       jobs when the Printer printer-state is no
                                   longer paused and leave no
                                   evidence stopped.

       6.5.2.13  printer-state-message (text)

       This attribute specifies the additional informaion about the printer
       state in human readable text and it shall be set by the printed output Printer (or the
       Administrator by some mechanism outside the scope of
                                   such a pause .
               shutdown            Someone has removed IPP). When a
       Printer
                                   from service, and it may be
                                   powered down or physical removed.
                                   In returns the value of this state, attribute to a client, the Printer

                        June 3, 1997, Expires December 3, 1997
       shall
                                   not produce printed output, and
                                   unless localize the Printer is realized value of this attribute to be in the locale of the
       user, as specified by the Get-Attributes or Get-Jobs operation.

       6.5.2.14  queued-job-count (integer(0:2**31 - 1))

       This attribute contains a print server that is still
                                   active, count of the Printer number of jobs that are either
       pending and/or processing and shall perform
                                   no other operations requested be set by the Printer.

       6.5.2.15  printer-message-from-the-operator (text)

       This attribute provides a client, including returning
                                   this value. If a Printer had been
                                   printing a job message from an operator, system administrator
       or "intelligent" process to indicate to the end user information or
       status of the printer, such as why it is unavailable or when it was
                                   shutdown, is
       expected to be available.

       6.5.2.16  printer-locale (locale)

       This attribute specifies the Printer need not
                                   resume printing current locale that job when the Printer is no longer shutdown. If
       operating in.

       6.5.2.17  printer-locales-supported (1setOf locale)

       This attribute specifies the Printer resumes printing such
                                   a job, it may leave evidence in locales that the printed output of Printer operates in.

       7.   Conformance

         This section describes conformance issues and requirements. This
         document introduces model entities such a
                                   shutdown, e.g. the part printed
                                   before as objects, operations,
         attributes, and attribute values.  These conformance sections
         describe the shutdown may be
                                   printed conformance requirements which apply to these model
         entities.

       7.1  Conditionally Mandatory

         For example, a second time after the
                                   shutdown..
               connecting-to-      The server has scheduled conditionally mandatory attribute means that a job on
               printer             the Printer and is in
         implementation need not implement the process
                                   of connecting to attribute if the attribute
         controls a shared network feature that the output device (and may does not be
                                   able to actually start printing
                                   the job implement or
         expose.  For example, for an arbitrarily long
                                   time depending on the usage of
                                   the output device by other
                                   servers that can only print on the network).

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
               timed-out           The server was able to connect to
                                   the output device (or is always
                                   connected), but was unable to get one
         side, a response from Printer need not implement the "sides" attribute.  For an
         output device
                                   in that does not support any of the time specified by finishing attribute
         values, a Printer need not implement the
                                   printer's printer-timeout-period "finishing" attribute.
               stopping            The printer will be stopping  An
         implementation that does not allow for 'not-ready' supported values
         in a
                                   while and will change its reason addition to printer-stopped. This reason
                                   is a non-critical, even for a 'ready' values, need not implement the corresponding
         "xxx-availability" Printer attribute.  For an output device with only
         a single output
                                   device. When an output-device
                                   ceases accepting jobs, the input tray with only one media type in that tray, a Printer will have this state
                                   while the output device completes
                                   printing.

          5.6.1.3 printer-is-accepting-jobs (boolean)

            This attribute determines whether the printer is
            currently accepting job.  If the value is true, the
            printer is accepting jobs. If the value is false, the
            printer is currently rejecting any jobs submitted to it.

            Note: this value is independent of the printer state and
            printer-state-reasons because its value does
         need not affect
            the current job; rather it affects future jobs. This
            attribute may cause implement the Printer to reject jobs when "media" attribute.

                        June 3, 1997, Expires December 3, 1997
       7.2  Client Conformance Requirements

         There are no conformance requirements placed on the
            printer-state is idle user interfaces
         provided by IPP clients or it may cause the Printer their applications.  For example, one
         application might not allow an end user to
            accepts jobs when the printer-state is stopped.

          5.6.1.4 printer-state-as-text (text)

            This attributes specifies the printer-state, printer-
            state-reasons, printer-is-accepting-jobs submit multiple documents
         per job, while another does.  One application might first query a
         Printer object in human
            readable text order to supply a graphical user interface (GUI)
         dialogue box with supported and it default values whereas a different
         application might not.

         When sending a Get-Attributes or Create-Job request, an IPP client
         need not supply any attributes.

         A client shall be set by able to accept any of the Printer.

            When attribute syntaxes
         defined in Section 0 that may be returned to it in a response from a
         Printer returns

         ISSUE: Are there any attributes that are mandatory for a client to
         set in a Print request?

         A query response may contain attributes and values that the value of this attribute client
         does not implement or expect.  Therefore, a client implementation
         must gracefully handle such responses and not refuse to interoperate
         with a
            client, conforming Printer that is returning extended registered or
         private attributes and/or attribute values that conform to Section 8.
                        IANA Considerations, Registered Extensions, Private
         Extensions.  Some clients may choose to ignore any attributes that it
         does not implement.

       7.3  Printer Object Conformance Requirements

         This section specifies the conformance requirements for conforming
         Printer object implementations with respect to objects, operations,
         and attributes.

       7.3.1     Objects

         Conforming Printer implementations shall localize the value implement all of the model
         objects as defined in this
            attribute to be specification in the locale indicated sections:

            Section 0 4.1  Printer Object
            Section 0 4.2  Job Object
            Section 0 4.3  Document Object
       7.3.2     Operations

         Conforming Printer implementations shall implement all of the user, model
         operations, including mandatory responses, as specified
            by the Get Attributes or Get Jobs operation.

            ISSUE: Give the syntax of defined in this message
         specification in English.

            draft-ietf-ipp-model-00.txt, expires September 26, the indicated sections:

                        June 3, 1997, Expires December 3, 1997
          5.6.1.5 queued-job-count (integer(0:2**31 - 1))

            This attribute contains a count of the number of jobs
            that are either pending and/or processing and shall be
            set by the Printer.

          5.6.2 Printer Status
            Section 0
            Section Job 0 5.1.4 Cancel Job Operation
            Section 0 5.1.5     Get-Attributes Operation
            Section 0 5.1.6     Get-Jobs Operation
       7.3.3     Attributes (Set by the Administrator)

          5.6.2.1 printer-message-from-the-operator (text)

            This attribute provides a message from an operator,
            system administrator or "intelligent" process to indicate
            to the end user information or status of the printer,

         ISSUE:  Some Printer attributes are purely software, so that
         Conditionally Mandatory doesn't apply, such as why it is unavailable or when Printer Description
         Attributes.  For example, what does it is expected mean for the "printer-
         location" to be available.

          5.7 Printer Behavior (printer-behavior) Attributes

            These attribute specify Conditionally Mandatory?  Should we add a "OPTIONAL"
         in the behavior header of a printer.

            These attributes form the attribute group called
            "printer-behavior".

          5.7.1 few attributes for which Conditionally Mandatory
         doesn't make sense?

         Conforming Printer Behavior Attributes (set by the Administrator)

          5.7.1.1 printer-locale (locale)

            This attribute specifies implementations shall implement all of the locale that
         mandatory attributes, as defined in this specification in the Printer
            operates in.

            The standard values
         indicated sections.  Mandatory attributes are defined indicated as
         "MANDATORY" in the section on header of each sub-section of Section 0 that
         specifies the
            document-locale attribute. attribute which is copied into the Table of Contents:

         ISSUE: reference What if this list differs from the locales.

          5.7.1.2 fonts-substitutions (setOf setOf font)

            This attribute specifies an appropriate substitute for headers, which wins?
         Wouldn't it be safer and more compact to replace the above list with
         a
            font reference to section 6 attributes that is advertised are flagged as supported MANDATORY in
         the fonts-
            supported attribute, even though header line (and automatically copied to the Table of Contents)?

         Conforming Printer doesn't
            actually have implementations shall implement all conditionally
         mandatory attributes in Section 0, i.e., the font available.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
            This attribute consists of a set of font pairs: a font
            name additional Job and
         Printer attributes that represent features that the font to use instead.

            If this output device
         implements.

         It is not required that a conforming Printer implement or support all
         values of all implemented attributes.  For example, if a Printer
         supports some of the "finishing" attribute values in this document,
         it is unspecified, not required that a Printer implement or support all finishing
         methods indicated by all the values of the "finishing" attribute
         contained in this document.

         If a Printer does not
            perform any font substitutions.

          5.7.1.3 scheduling-algorithm (type3 keyword)

            This implements a "xxx-supported" attribute indicates it must implement
         the current scheduling algorithm
            for this Printer.

            Standard values are: "none", "smallest-job-first", "time-
            received".

          5.7.1.4 printer-fonts (setOf font)

            This corresponding "xxx" default value attribute specifies what fonts are available at and vice versa.

       7.3.4     Default Value

         If the
            Printer output device itself does not support the concept of a default
         value or the output device's default value is unpredictable, or accessible
         unknown, the implementation of the Printer shall always supply its
         default value to the Printer.  Documents may use
            these fonts without requiring that physical device each time the fonts be
            downloaded with Printer submits

                        June 3, 1997, Expires December 3, 1997
         the document data. job to the output device.  The standard values are font names.

            ISSUE: Should default value specified by a
         Printer shall not be 'unknown'.

       7.3.5     Availability

         Conforming implementation need not implement the IPP model include all information that
            is currently contained in "xxx-available"
         attributes since if an "xxx-supported"  printer definition files such attribute does not
         have have an associated "xxx-available" Printer attribute, all
         supported values shall be 'ready'.

       7.3.6     Printer extensions

         A conforming Printer may implement registered extensions and private
         extensions, as PostScripts printer definition (ppd) files?

          6. long as they meet the requirements specified in
         Section 8.     IANA Considerations

            IPP is explicitly designed to be extensible.  Additional
            attributes can Considerations, Registered Extensions, Private
         Extensions.

       7.3.7     Attribute Syntaxes

         A Printer shall be proposed able to be registered by going
            through the accept any of the attribute syntaxes
         defined in Section 0 in any operation in which a client may supply
         attributes.  Furthermore, a Printer shall return attributes to the
         client in operation responses that conform to the syntax specified in
         Section 0.

       7.4  Security Conformance Requirements

         The security mechanisms being considered for IPP fall outside the
         scope of the application layer protocol itself.  There are two
         mechanisms used to begin secure communications using IPP:

         1. Information in the directory entry for an IPP Printer (or from
         additional information at a Web site hosting the IPP Priner) indicate
         which, if any, security protocols are used in conjunction with IPP.

         2. The URI for the IPP Printer contains the security protocol
         information (https://..., etc.)

         In either case, the security protocol (if any) is initiated first
         which allows for the negotiation of security features.  IPP is then
         run as an application protocol on top of the security protocols.  One
         cannot "bootstrap" the security features from IPP itself.

       8.   IANA Considerations, Registered Extensions, Private Extensions

         IPP is explicitly designed to be extensible.  Additional attributes
         can be proposed to be registered by going through the type 2 or type
         3 keyword process which will register their specification after

                        June 3, 1997, Expires December 3, 1997
         approval with IANA.  In addition specific implementation instances
         may support not only the basic protocol as defined in this
         specification, but may add vendor-specific private extensions by
         prefixing attribute-names with their company name registered with
         IANA for use in domains.  See attribute syntax section.  However,
         such private extensions shall not duplicate attribute semantics
         already in this specification.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          7.

       9.   Security Considerations

            NOTE:

         There is another Internet-Draft called "Internet Printing
         Protocol/1.0: Security." Security" [22].  That document is being drafted and
         reviewed in parallel with this document.
            Before this document can become a formal RFC, any
            relevant issues from that document  The mapping of IPP on top
         of appropriate security protocols will be rolled into
            this one. described in that document.
         IPP does not introduce any new, general purpose security mechanisms
         for authentication and encryption.

         A Printer may choose, for security reasons, not to return all
         attributes that a client requests. It may even return none of the
         requested attributes. In such cases, the status returned is the same
         as if the Printer had returned all requested attributes. The client
         cannot tell by such a response whether the requested attribute was
         present or absent on the Printer.

          8.

       10.  References

       [1]  Smith, R., Wright, F., Hastings, T., Zilles, S., and Gyllenskog,
            J., "Printer MIB", RFC 1759, March 1995.

       [2]  Berners-Lee, T, Fielding, R., and Nielsen, H., "Hypertext Transfer
            Protocol - HTTP/1.0", RFC 1945, August 1995.

       [3]  Crocker, D., "Standard for the Format of ARPA Internet Text
            Messages", RFC 822, August 1982.

       [4]  Postel, J., "Instructions to RFC Authors", RFC 1543, October 1993.

       [5]  ISO/IEC 10175 Document Printing Application (DPA), Final, June
            1996.

       [6]  Herriot, R. (editor), X/Open A Printing System Interoperability
            Specification (PSIS), August 1995.

       [7]  Kirk, M. (editor), POSIX System Administration - Part 4: Printing
            Interfaces, POSIX 1387.4 D8, 1994.

                        June 3, 1997, Expires December 3, 1997
       [8]  Borenstein, N., and Freed, N., "MIME (Multi-purpose Internet Mail
            Extensions) Part One: Mechanism for Specifying and Describing the
            Format of Internet Message Bodies", RFC 1521, September, 1993.

            draft-ietf-ipp-model-00.txt, expires September 26, 1997

       [9]  Braden, S., "Requirements for Internet Hosts - Application and
            Support", RFC 1123, October, 1989,

       [10] McLaughlin, L. III, (editor), "Line Printer Daemon Protocol" RFC
            1179, August 1990.

       [11] Berners-Lee, T., Masinter, L., McCahill, M. , "Uniform Resource
            Locators (URL)", RFC 1738, December, 1994.

          9.

        [20]     Internet Printing Protocol: Requirements

       [21] Internet Printing Protocol/1.0: Model and Semantics (This document)

       [22] Internet Printing Protocol/1.0: Security

       [23] Internet Printing Protocol/1.0: Protocol Specification

       [24] Internet Printing Protocol/1.0: Directory Schema

       [25] S. Bradner, "Key words for use in RFCs to Indicate Requirement
            Levels", RFC 2119 , March 1997

       11.  Author's Address

            Scott A. Isaacson
            Novell, Inc.
            122 E 1700 S
            Provo, UT   84606

            Phone: 801-861-7366
            Fax:   801-861-4025
            EMail: scott_isaacson@novell.com

            Tom Hastings
            Xerox Corporation
            701 S. Aviation Blvd.
            El Segundo, CA   90245

            Phone: 310-333-6413
            Fax:   310-333-5514
            EMail: hastings@cp10.es.xerox.com

                        June 3, 1997, Expires December 3, 1997
            Robert Herriot
            Sun Microsystems Inc.
            2550 Garcia Ave., MPK-17
            Mountain View, CA 94043

            Phone: 415-786-8995
            Fax:  415-786-7077
            Email: robert.herriot@eng.sun.com

            Roger deBry
            HUC/003G
            IBM Corporation
            P.O. Box 1900
            Boulder, CO 80301-9191

            Phone: (303) 924-4080
            Fax: (303) 924-9889
            Email: debry@vnet.ibm.com

            draft-ietf-ipp-model-00.txt, expires September 26, 1997

            Patrick Powell
            San Diego State University
            9475 Chesapeake Dr. Suite D
            San Diego, CA  92123

            Phone: (619) 874-6543
            Fax: (619) 279-8424
            Email: papowell@sdsu.edu

            IPP Mailing List:  ipp@pwg.org
            IPP Mailing List Subscription:  ipp-request@pwg.org
            IPP Web Page:  http://www.pwg.org/ipp/

         Other Participants:

            Devon Taylor, Novell, Inc.
            Mike MacKay, Novell, Inc.
            Peter Zehler, Xerox, Corp.

            Chuck Adams - Tektronix
            Jeff Barnett - IBM
            Ron Bergman - Data Products
            Keith Carter, IBM Corporation
            Carl-Uno Manros, Xerox, Corp.
            Don Wright - Lexmark
            Steve Gebert
            Jeff Copeland - IBM
            Ray Lutz QMS
            Andy Davidson - Cognisys Tektronix
            Mabry Dozier - QMS
            Lee Farrell - Canon Information Systems
            Hiroyuki Sato
            Steve Gebert - Canon
            Pat Nogay IBM
            David Kellerman - Northlake Software
            Rick Landau - Digital
            Harry Lewis - IBM
            Jim Walker
            Pete Loya - HP

                        June 3, 1997, Expires December 3, 1997
            Ray Lutz - Dazel Cognisys
            Mike MacKay, Novell, Inc.
            Carl-Uno Manros, Xerox, Corp.
            Jay Martin - Underscore
            Bill Wagner - DPI
            Stan McConnell - Xerox
            Bob Setterbo
            Pat Nogay - Adobe
            Randy Turner IBM
            Bob Pentecost - Sharp HP
            Rob Whittle - Novell
            Ron Bergman - Data Products
            Lloyd Young - Lexmark
            Andy Davidson - Tektronix
            Rick Landau - Digital
            David Kellerman Rhoads - Northlake Software Intel
            David Roach - Unisys
            Mike Timperman - Lexmark
            Chris Wellens - Interworking Labs
            Pete Loya
            Hiroyuki Sato - HP Canon
            Bob Pentecost Setterbo - HP
            Harry Lewis Adobe
            Devon Taylor, Novell, Inc.
            Mike Timperman - IBM
            William Wagner Lexmark
            Randy Turner - Digital Products Sharp
            Atsushi Yuki - Kyocera
            Rob Rhoads
            Lloyd Young - Intel
            Jeff Barnett Lexmark
            Bill Wagner - IBM DPI
            Jim Walker - Dazel
            Jeff Copeland DAZEL
            Chris Wellens - QMS
            Chuck Adams Interworking Labs
            Rob Whittle - Tektronix

            draft-ietf-ipp-model-00.txt, expires September 26, Novell
            Don Wright - Lexmark
            Peter Zehler, Xerox, Corp.

       12.

                        June 3, 1997, Expires December 3, 1997
       Change History

         This section will be deleted when the document is forwarded to the
         IESG to be considered for becoming an RFC.  The changes are
         summarized in reverse chronological order.

       12.1 Changes made to version 970512, dated 12-May-1997 to make version
       970603, dated  03-June-1997.

       1. Removed the idea of "default beahvior"

       2. Removed the idea of "best-effort" 'substitute-as-needed' and 'do-not-
       substitute'

       3. Deleted all of the definitions from section 3 and changed the figures

       4. Added references to RFC 2119 (standard conformance language) and
       started to capitalize all of the implementation requirement words such
       as SHALL, NEED NOT, MUST, etc.

       5. Removed font Printer attributes and scheduling algorithm

       6. Reformated all the of 6.2 (Job Template)

       7. Consolidated the 3 sections on Job Template down into just one
       section.

       8. Added attribute tables to be beginning of each first level section in
       6.0.  These tables show attribute name, syntax, and MAND/OPT/etc.

       9. Fixed the definitions for Implements and Supports

       10. Added Create-Job, Print-Job, and Send-Document operations

       11. Reformatted the whole Operations section

       12. Reformatted most of the standard values sections for keyword
       attributes.  This needs to be finished for the next rev of the document.

       13. Changed URL to URI.

       12.2 Changes made to version 970509, dated 9-May-1997 to make version
       970512, dated 12-May-1997.

         1. Replaced Print with Create-Job and Send-Document

         2. Added status codes (ok, error, and messages)

                        June 3, 1997, Expires December 3, 1997
         3. Removed all "may not" language (replace with might not)

         4. Fixed attribute sections to show more detail

         5. Misc. typos and edits

       12.3 Changes made to version 2.2, dated 5-May-1997 to make version
       970509, dated 9-May-1997.

         1.
            Too many to mention.

       12.4 Changes made to version 2.1, dated 24-April-1997 to make version
       2.2, dated 5-May-1997.

         Added terminology to the conformance section for keyword, attribute,
         attribute name, attribute value(s), default, default behavior,
         availabilty.

         Removed most discussion about adornments and tags, except for
         embedded tag and job-state-reasons, report, warning, error tags.

         Moved Conformance description to the appropriate operation sections,
         so that the Conformance section is a checklist with references to the
         sections where the semantics are described.

         Changed the job-size attributes into xxx-requested, xxx-completed Job
         attributes, and xxx-supported Printer attributes.

       12.5 Changes made to version 2.0, dated 26-March-1997 to make version
       2.1, dated 22-April-1997.

         1.
            Added terminology to the conformance section for supported and
            implemented.

       12.6 Changes made to version 1.8, dated 24-March-1997 to make version
       2.0, dated 26-March-1997.

         The following changes were made to version 1.8 to make version 2.0:

         1. Minor editing fixes

         2. Submitted 2.0 as draft-ietf-ipp-model-00.txt

       12.7 Changes made to version 1.7, dated 24-Mar-1997 to make version 1.8,
       dated 24-March-1997.

         The following changes were made to version 1.7 to make version 1.8:

                        June 3, 1997, Expires December 3, 1997
         1. Minor editing fixes

       12.8 Changes made to version 1.6, dated 12-Mar-1997 to make version 1.7,
       dated 24-March-1997.

         The following changes were made to version 1.6 to make version 1.7:

         1. Removed Text Handling attributes

         2. Removed best-effort tag, added best-effort Job attribute

         3. Moved job-name from Job Template to Job Identification

         4. Fixed many typos, spelling errors, etc.

         5. Removed enum and added keyword

         6. Print Response returns Job Status not Printer Status (since Job
         status includes interesting Printer

         Status)

         7. Removed file type, added format to Get-Attributes

         8. Added Patrick Powell as author

         9. Move conformance to section 1, added client and server
         considerations

         10. Added a IANA considerations section

         11. Added a type4 keyword

         12. Removed the notion of "secondary tags"

         13. Added more section headers

         14. Merged the Job Production Attributes and Document Production
         Attributes section

       12.9 Changes made to version 1.5, dated 11-Mar-1997 to make version 1.6,
       dated 12-March-1997.

         The following changes were made to version 1.5, dated 11-Feb-1997 to
         make version 1.6, dated 12-March-1997 from the miscellaneous e-mail
         messages, suggestions, and agreements:

                        June 3, 1997, Expires December 3, 1997
         1.
            Added a new abstract with includes a reference to other IPP
            documents

         2.
            Added Roger deBry's "new intro" document.

         3.
            Added a modified text diagram showing IPP mapped onto a generic
            distributed printing model in section 2.0

         4.
            Added some new summary and introductory comments to 2.0 to clarify
            that this section is not only meant to introduce the IPP model but
            to show a mapping onto the various architecture and product
            solutions on which IPP will be implemented.

         5.
            Added a new section (3.4) summarizing the role of object attributes
            and introduced the notion of Job Template (Printer and Job)
            attributes along with "adornments"

         6.
            Fixed up section 3.3 on Object relationships.

         7.
            Fixed Section 3.5 on object identity.  This section now shows that
            Jobs and Printers have both URLs and Names.  Documents have Names
            and Ids

         8.
            Added the correct references to Printer attributes in section 3.1

         9.
            Fixed the references to Job attributes in section 3.2

         10.
            Added a high level over view of the IPP operations and their
            purpose and interactions to section 4.1 (Roger deBry worked on this
            section)

         11.
            Replaced the security section with a reference to a new IPP
            Security document which will eventually be merged back into this
            document

         12.
            In section 5.2 I added subheading for each attribute to more
            easily locate the text associated with the attribute as a Job
            object attribute and then the text associated with the attribute as
            a Printer object attribute.

         13.
            Reorganized section 3 to include a Document object.

         14.
            Added IPP Mailing list info to contact list

                        June 3, 1997, Expires December 3, 1997
       12.10     Changes made to version 1.4, dated 27-Feb-1997 to make version
       1.5, dated 9-March-1997.

         The following changes were made to version 1.4, dated 27-Feb-1997 to
         make version 1.5, dated 9-March-1997 from the 3/6/97 telecon
         agreements:

         1.
            Replaced the data types with the ones discussed on the 3/6/97
            telecon.  Added back octetString, type1Enum, type2Enum, type3Enum
            types as well.

         2.
            Added range constraints to the integer data type.

         3.
            Changed the xxx-locale attributes to be type3Enum.

         4.
            Added standard printer-resolution enum values.

         5.
            Added standard document-format enum values from the Printer MIB and
            IANA registries.

         6.
            Added back job-hold-until attribute using named periods only and
            added back the job-hold-until-specified value to the job-state-
            reasons attribute.

         7.
            Changed the job state from printing to processing to agree with the
            Printer state and changed the optional job-processing job-state-
            reasons value to job-printing for use with Printers that take a lot
            of time processing while not marking.

         8.
            Deleted the second occurrence of the job-name attribute, since we
            removed any attributes that are common to both Job and Printer.

         9.
            Changed job-priority from a type1Enum to integer(1:100) so as to
            have more levels so as to be able to match existing systems.

         10.
            Changed job-retention-period to use integerSeconds, instead of
            minutes.

         11.
            Changed the Text Formatting attributes to take only the computer
            points as units.

         12.
            Changed job-octets to job-K-octets, in order to be able to print
            large documents.  Aligns with the IETF Job Monitoring MIB.

         13.
            Clarified that the job-incomplete value of job-state-reasons is
            waiting for document data, as opposed waiting for the job to be
            closed.

                        June 3, 1997, Expires December 3, 1997