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, 1997
          
              Internet Printing Protocol/1.0: Model and Semantics
                          draft-ietf-ipp-model-00.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."
          
            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 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.  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 focused only on end user functionality.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 1]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            The full set of IPP documents includes:
          
               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 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 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.
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 2]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
                                Table of Contents
          
          
          
          1. Introduction............................................7
          
           1.1 Conformance ..........................................8
            1.1.1 Client Considerations .............................9
            1.1.2 Server Considerations .............................9
          
          
          2. Simplified Printing Model..............................10
          
          
          3. IPP Objects............................................14
          
           3.1 Printer .............................................14
          
           3.2 Job .................................................17
          
           3.3 Document Object .....................................18
          
           3.4 Object Relationships ................................19
          
           3.5 Object Attributes ...................................19
          
           3.6 Object Identity .....................................21
          
          
          4. IPP Operations.........................................22
          
           4.1 Introduction ........................................22
          
           4.2 Operation Semantics .................................23
            4.2.1 Print Operation ..................................23
              4.2.1.1 Print Request ................................24
              4.2.1.2 Print Response ...............................25
            4.2.2 Cancel Job Operation .............................25
              4.2.2.1 Cancel-Job Request ...........................26
              4.2.2.2 Cancel-Job Response ..........................26
            4.2.3 Get Attributes Operation .........................26
              4.2.3.1 Get-Attributes Request .......................27
              4.2.3.2 Get-Attributes Response ......................27
            4.2.4 Get Jobs Operation ...............................28
              4.2.4.1 Get-Jobs Request .............................28
              4.2.4.2 Get-Jobs Response ............................29
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 3]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5. Object Attributes......................................30
          
           5.1 Attribute Syntaxes ..................................30
            5.1.1 Attribute Extensibility ..........................34
            5.1.2 Relationship of Job and Printer Attributes .......36
            5.1.3 Attribute Value Tags .............................38
              5.1.3.1 Tagged Printer Attributes ....................38
              5.1.3.2 Tagged Job Attributes ........................39
          
           5.2 Job Template (job-template) Attributes ..............39
            5.2.1 Job Sheet Attributes (Set by Client/End User) ....40
              5.2.1.1 job-sheets (type4 keyword) ...................40
            5.2.2 Job Notification (job-notification) Attributes (Set
            by a Client/End User) ..................................41
              5.2.2.1 notification-events (setOf type2 keyword) ....41
              5.2.2.2 notification-addresses (setOf url) ...........42
            5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
            Client/End User) .......................................43
              5.2.3.1 job-priority (integer(1:100)) ................43
              5.2.3.2 job-hold-until (type4 keyword) ...............44
            5.2.4 Job Production (job-production) Attributes (Set by
            Client/End User) .......................................45
              5.2.4.1 multiple-documents-are (type1 keyword) .......47
              5.2.4.2 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 number-up (type3Enum) ........................57
              5.2.5.3 sides (type2 keyword) ........................58
              5.2.5.4 printer-resolution (type2 keyword) ...........59
              5.2.5.5 print-quality (type2 keyword) ................60
              5.2.5.6 copies (integer(1:2**31 - 1)) ................61
              5.2.5.7 finishing (setOf type2 keyword) ..............61
              5.2.5.8 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 job-k-octets (integer(0:2**31 - 1)) ..........69
              5.2.7.2 job-impressions (integer(0:2**31 - 1)) .......70
              5.2.7.3 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 Job Attributes Set by the Printer ...................71
            5.3.1 Job Identification (job-identification) Attributes
            (Set by the Printer) ...................................71
              5.3.1.1 job-URL (url) ................................71
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 4]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            5.3.2 Job Owner (job-owner) Attributes (Set by a Printer)72
              5.3.2.1 job-originating-user (name) ..................72
              5.3.2.2 job-originating-host (name) ..................72
              5.3.2.3 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 job-state (type1 keyword) ....................73
              5.3.3.2 job-state-reasons (setOf  type2 keyword) .....76
              5.3.3.3 job-state-as-text (text) .....................78
              5.3.3.4 output-device-assigned (url) .................78
              5.3.3.5 submission-time (dateTime) ...................79
              5.3.3.6 number-of-intervening-jobs (integer(0:2**31 -
              1)) ..................................................79
              5.3.3.7 job-message-from-operator (text) .............79
              5.3.3.8 completion-time (dateTime) ...................79
          
           5.4 Document Attributes .................................80
            5.4.1 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 Printer Description  (printer-description) Attributes81
            5.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 Printer Description Attributes (Set by the
            Administrator) .........................................82
              5.5.2.1 printer-location (text) ......................82
              5.5.2.2 printer-description (text) ...................83
              5.5.2.3 printer-more-info-site (url) .................83
              5.5.2.4 printer-driver-installer  (url) ..............83
            5.5.3 Printer Description Attributes (Set by the
            Manufacturer) ..........................................83
              5.5.3.1 printer-make-and-model (text) ................83
              5.5.3.2 maximum-printer-speed (integerUnits) .........83
              5.5.3.3 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 printer-state (type1 keywordEnum) ............84
              5.6.1.2 printer-state-reasons (setOf type2 keyword) ..86
              5.6.1.3 printer-is-accepting-jobs (boolean) ..........89
              5.6.1.4 printer-state-as-text (text) .................89
              5.6.1.5 queued-job-count (integer(0:2**31 - 1)) ......90
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 5]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            5.6.2 Printer Status Attributes (Set by the
            Administrator) .........................................90
              5.6.2.1 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 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
          
          
          7. Security Considerations................................92
          
          
          8. References.............................................92
          
          
          9. Author's Address.......................................93
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 6]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          
          1. 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 the complex set of inter-dependent distributed
            printing components and the IPP model.  This new IPP
            model simplifies the back-end implementations 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 operator
            and administrator requirements, the model can be extended
            to support the appropriate objects, attributes, and
            operations.
          
            Section 3 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 covers the operations which are part of the IPP
            model.  These operations include: the Print, Cancel, Get
            Attributes, and 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 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.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 7]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          1.1 Conformance
          
            This specification uses the verbs: "shall", "should",
            "may", and "need not" to specify conformance requirements
            as follows:
          
            - "shall":  indicates an action that the subject of the
            sentence must implement in order to claim conformance to
            this specification
          
            - "may":  indicates an action that the subject of the
            sentence does not have to implement in order to claim
            conformance to this specification, in other words that
            action is an implementation option
          
            - "need not":  indicates an action that the subject 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 that is recommended for
            the subject of the sentence to implement, but is not
            required, in order to claim conformance to this
            specification.
          
            A conforming implementation shall implement all
            operations and  objects defined in this document.
          
            Attributes are conditionally mandatory.  This means that
            an implementation need not include an attribute if the
            attribute controls a feature that the implementation does
            not support.  For example, a printer that can only print
            on one side need not implement the "sides" attribute.  A
            printer that does not support any of the finishing
            attribute values, need not implement the "finishing"
            attribute.  An implementation that 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 a single input tray with
            only one media type in that tray need not implement the
            "media" attribute.
          
            Some of 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,
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 8]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            others my be able to support these values.  On the client
            side, this might mean displaying the values to the end
            user via some extensible user interface mechanism.  On
            the server side,  it might mean actually performing the
            semantic action implied by the new value.  In either
            case, the operation shall not fail because either the
            client or server does not understand extended values or
            attributes.
          
            IPP allows for variations on attributes using a mechanism
            called "attribute tags" or "adornments" (see section
            5.1.3).  Clients can supply attributes with tags that
            represent variations on the normal (unadorned) attribute
            semantics.  Servers can also respond with tagged
            attribute information.  Tags are most applicable and
            useful in more sophisticated implementations.  Therefor,
            all adornment tags are optional for conforming
            implementations.  This allows for interoperability since
            the behavior of implementations which can not support the
            semantics of the adornment tags is consistent with the
            behavior implied by the absence of all tags.
          
          
          1.1.1 Client Considerations
          
            IPP clients shall support all operations, objects, and
            attributes as defined in this document.  However, there
            is no conformance requirements placed on the user
            interfaces provided 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 a Printer object 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 that a printer implement all
            finishing methods indicated by the standard values.  The
            explicit requirement of the term "supported", with
            respect to one of the attributes that deal with printer
            functions or resources, is that the server shall
          
          
          deBry, Hastings, Herriot, Isaacson, Powell          [Page 9]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            recognize the attribute and those values that are
            supported, and shall be able to respond to a query about
            which values that printer does, in fact, support.  A
            conforming server shall ignore any adornment tags it does
            not understand.
          
          
          2. Simplified Printing Model
          
            In order to a achieve its goal of realizing a workable
            printing protocol 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 are
            beyond the scope of IPP.  IPP has to run in a distributed
            computing environment where requesters of print services
            (clients, applications, PC drivers, etc.) cooperate and
            interact with print service providers.  Although the
            underlying configuration may be a complex n-tier
            client/server system, an important simplifying step in
            the IPP model is to expose only the key objects and
            interfaces.  The IPP model encapsulates 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 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 a Document object.
            All document information is accessed through a Job object
            and its operations.
          
            It is important, however, to understand that in real
            system implementations (which lie underneath the
            abstracted IPP model), there are other components of a
            print service which are not explicitly modeled in the IPP
            model.  These components allow for additional operator
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 10]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            and administrator functionality. These components are
            illustrated in 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                   +.................+  | IPP Printer
                              |  Print Service  |  |
                              +.................+  |
                                       |           |
                                Output Device(s)   |
                                                 --+
          
            This figure shows  that the abstraction of a Printer
            object not only supports the functionality of the actual
            output device but additionally supports (where
            implementation configuration requires) the spooling,
            scheduling, and multiple output device management
            functions often associated with a print server.
          
            In the  IPP model, users take on the role of end users,
            operators, or administrators based on authentication and
            authorization mechanisms provided through the security
            service(s).  Printers are registered as entries in the
            directory.  End users find and select Printers based on
            some sort of filtered and context based searching using
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 11]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            the directory.  The directory is used to store relatively
            static information about 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 the Printer, both static and
            dynamic information, can be accessed directly from the
            Printer itself.  The more dynamic information associated
            with a Printer includes state, currently loaded and ready
            media, number of jobs, errors, warnings, etc.  Once an
            end user selects a Printer, the end user interacts with
            that Printer in order to determine status and
            capabilities of the Printer and then submits jobs to the
            Printer.  When a job is submitted to the Printer, a Job
            object is created.  The end user then interacts with this
            new Job to query its status 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.
            The IPP model however, can be overlaid on top of  any of
            these products and architectures. How does this IPP model
            fit on top of these systems?  In order to answer that
            question we must first consider a generic model that
            allows us to describe the many different features and
            components of these various systems.
          
            Consider the figure above.  Each distributed print
            service product will include elements from the following
            list:
          
            End Users:  End Users are humans who submit print jobs.
            End users will  issue IPP operation requests  and receive
            IPP operation responses through an end user interface.
          
            GUI: A Graphical End User Interface developed
            specifically for interacting with an IPP Client.
          
            Browser: A World-Wide-Web Browser. IPP conforming systems
            will support access to print  functions using standard
            Web Browsers.
          
            Applications: 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 Print Driver, to do so.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 12]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            Spooler: A system component which stores print jobs prior
            to submitting them for printing. On the client side, a
            spooler allows the application to run asynchronously from
            the actual transmission and print operation. On the
            server side, a spooler allows the server to receive and
            store multiple jobs while printing. Spoolers are optional
            components.
          
            Print Driver: In some desktop operating systems, such as
            Windows, Print Drivers are used by the  operating system
            to generate the actual PDL 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:  IPP clients are computer network nodes with
            which humans, though a GUI or a command line, or programs
            interact in order to manipulate the distributed print
            service. An IPP client uses the IPP protocol to invoke
            IPP operations on another node. Each operation has
            arguments and results associated with it. The IPP client
            provides arguments which add information about the
            operation requested, and receives results which describe
            the status and outcome of the operation.
          
            Gateway:  Gateways provide a mechanism for supporting the
            clients of existing print services, such as LPR. A
            gateway transforms the protocol of an existing client
            into IPP and vice-versa.
          
            Transport: The transport system and protocol used to
            carry IPP messages across the network. IPP assumes a
            reliable transport protocol.
          
            Notification Services: Notification services in the
            network provide a means for asynchronously communicating
            events such as completion of a print job back to an end-
            user. These notification services are used by IPP but 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 in the network
            provide a means where IPP Printers can be advertised by
            registering with the directory.  Although not mandatory
            in an IPP conforming system, the use of a directory
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 13]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            service is suggested in order to provide printer location
            services to 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) to provide authentication, privacy and message
            integrity.
          
            IPP Server:  An IPP Printer object is an abstraction of
            some print service provider.  An Printer, by definition,
            supports the IPP protocol.  The component that implements
            the protocol on behalf of the Printer is called an IPP
            Server.  In real configurations, an IPP Server may be a
            component of a print server or an output device.
          
            Print Service:  Print Services may be embedded in an
            output device or implemented in a separate system which
            is associated with an output device. The print service
            receives requests from the IPP client, performs the
            requested operation,  and sends back results which
            describe the status and outcome of the operation
            requested.  A print service normally provides queuing,
            job management, and device management functions.
          
            Output Devices: Output devices interpret the print data
            and generate some form of output. In the case of a laser
            printer, for example, this normally means rasterizing the
            print data and putting the resulting marks on paper.  An
            output device may receive print data directly from a
            client or through a Print server.
          
            A specific implementation of a print service may not
            include all of the elements described here, and the
            physical packaging of elements is up to the
            implementation. For example, an output device may include
            a queue or a print server may include a rasterizer.
          
          
          3. IPP Objects
          
          
          3.1 Printer
          
            A major component of the IPP model is the Printer object.
            To the end user, the Printer object is an abstraction of
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 14]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            not only  the functionality typically associated with an
            actual output device, but also the abstraction
            additionally supports (where necessary) the spooling,
            scheduling, and multiple output device management
            functions often associated with a print server.
          
            The capabilities and state of an IPP Printer are
            described by its attributes.  Printer attributes are
            defined in the following categories:
          
               Job Template Attributes (section 5.2)
               Printer Description Attributes (section 5.5)
               Printer Status Attributes (section 5.6)
               Printer Behavior attributes (section 5.7)
          
            Operations which can be invoked on a printer include:
          
               Print (section 4.2.1)
               Get Attributes (section 4.2.3)
               Get Jobs (section 4.2.4)
          
            An instance of a Printer object implements IPP.  Using
            the protocol, end users may query the attributes of the
            Printer, submit jobs 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 of the configuration of
            real components must be transparent to 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 a fax-out device, any kind of imager, or
            even a CD writer.
          
            Some examples of configurations supporting a Printer
            object include:
          
               1) An output device, with no spooling capabilities
               2) An output device, with a built-in spooler
               3) A print server supporting  IPP with one or more
          associated
                    output devices
                 3a) The associated output devices may or may not be
          capable
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 15]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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.
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 16]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            Legend:
          
            ##### indicates a Printer object which is
                  either embedded in an output device or is
                  hosted in a server.  A Printer object
                  may or 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 Job object is used to model a job.  A job can contain
            one or more documents.  The information required to
            create a Job object is sent in a Print operation from the
            end user via a client implementation to a Printer.  The
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 17]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            Printer may perform some validation checks to verify that
            the job may indeed be processed.  For example, the Print
            operation may request that the documents within the job
            be printed duplex (on both sides of the media).  However,
            the Printer may not support such a feature.  Once the
            Printer validates the submitted information, a Job object
            is created.  The instance of the Job object is
            initialized with information from the Print request along
            with default information from the Printer.  This document
            defines rules which define which pieces of information
            override other pieces of information and what to do in
            the event of conflicts between what is possible and what
            is requested.
          
            Job attributes are broken up into the following groups:
          
               Job Template Attributes 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)
               Job Template Attributes set by Client and Printer
                 Job Size Attributes (section 5.2.7)
               Job Template Attributes set by the Printer
                 Number of Documents Attribute (section 5.2.8)
               Job Attributes set by 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 and attributes which
            describe the data to be printed.  In this version of the
            protocol only the document format attribute may be
            defined for individual documents.
          
            Document attributes include:
          
               Document Attributes (section 5.4)
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 18]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          
            Currently 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 by one or more Printer objects.
            A Printer can contain zero or more Job objects.  A Job
            object is contained in exactly one Printer object.  A Job
            object contains one or more Documents.  If the Document
            is simply a reference to some print data stream, the
            reference may be used in multiple documents in the same
            Job or even in different Jobs.  If the Document is not
            just a reference, but an actual stream of print data, it
            shall only be contained in one Document.
          
          
          3.5 Object Attributes
          
            Each object type is defined by a set of attributes that
            support and describe the realization of each instance of
            an object.  That is, a Printer object is defined as
            specific set of attributes that are associated with each
            instance of a Printer object.  In the same manner, a Job
            object is defined by defining the set of attributes that
            will be associated with each instance of a Job object.
            These attributes are defined in section 5 of this
            document.  Some attributes apply to only a Job object.
            Some apply to only a Printer object.
          
            In addition, there are some attributes 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 attributes is
            part of a Job object, it specifies some end user job
            processing instruction.  It describes "what is wanted" by
            the end user.  When the attribute is part of a Printer
            object, it specifies what the printer is capable of .  It
            describes "what is supported" by this instance of a
            Printer.  Also, as 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 value describes "what will happen" if not
            supplied in the by the end user in the Print Request.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 19]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            For example, one such Job Template attribute is the "job-
            priority" attribute.  When this attribute is part of a
            Printer object, its value us a range of job priority
            values. This range indicates what job priorities are
            supported at this Printer.  It may also have a default
            value that determines what the job priority will be if
            not supplied  in the Print Request.  When the "job-
            priority" attribute 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 Printer creates the Job object using the default
            value from Printer attribute.  If the Print Request does
            supply a job priority value, the Printer must validate
            the user supplied job priority; perhaps the end user is
            requesting a job priority which is higher that what is
            allowed by the Printer. If the value in the print request
            is within the range of supported values, the request is
            accepted 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 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 and Printer
            attributes.  These adornments are tags that are
            associated with specific values in the attribute.  For
            example, in a Printer object, one of the attributes is
            the medium attribute.  A set of values in this attribute
            implies that the Printer is capable of printing jobs on
            those media types.  However, there may be a distinction
            between a supported value that is "ready" and another
            that is "not-ready".  This semantic information can be
            passed between the Printer and interested clients 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.
          
            The "multiple-documents-are 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 the copies attribute is specified.  The
            end user uses this attribute in a Print Request to
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 20]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            control whether multiple documents in the job are
            intended to be finished or copied separately or as one
            job.  The values for this attribute are: "single-
            document", "separate-documents-uncollated-copies", or
            "separate-documents-collated-copies".
          
            The "best-effort" attribute determines what to do if
            there is a conflict between what a client requests and
            what a Printer is capable of .  Values for this attribute
            are: "substitute-as-needed" and "do-not-substitute".  If
            the value for this attribute in a Print Request is
            "substitute-as-needed" then the end user desires the job
            be printed using substitutions by the Printer where
            needed in order to resolve conflicts.  If the value is
            "do-not-substitute", then the end user desires that the
            job should not be processed unless every attribute value
            can be completely satisfied as specified.   It is not
            expected that this attribute is 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 the attribute values to only those
            which are supported.  A value of "substitute-as-needed:
            is useful in the GUI context only if an end user expects
            the job to be moved to another Printer and prefers a sub-
            optimal result to nothing at all.  Also, an end user may
            be printing a pre-formatted document where it is not
            obvious that the client supplied attributes conflict with
            what is in the print data itself or even if the printer
            can satisfy the instructions already embedded in the pre-
            formatted document.  This "best-effort" attribute is most
            useful in the case where an end user uses a command line
            interface to  blindly request attributes that may not be
            supported.
          
          
          3.6 Object Identity
          
            All instances of Printer and Job objects have an
            identifier attribute whose value is globally unique so
            that they can persistently and unambiguously referenced.
            The IPP model requires that these values be URLs as
            defined by RFC 1738 and RFC 1808.  In addition to an
            identifier attribute, instances of  Printer and Job
            objects may have 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 Job name
            is created by the Printer using the name of the forst
            document in the job.  In all cases, the name only has
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 21]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            local meaning, and is not constrained to be globally
            unique.
          
            To summarize, each instance of Printer 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.  This name is just of interest within 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 a Job object:
                 Cancel Job (section 4.2.2)
                 Get Attributes (section 4.2.3).
          
            IPP objects are identified by URLs.  When a client
            communicates with a remote IPP object, it sends an
            operation request to the URL for that object.  Each
            request carries along with it the parameters and data
            required to perform the specified operation.  Each
            request requires a response from the object indicating
            success or failure of the operation including response
            data and/or error messages. Details of the IPP protocol
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 22]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            are contained in "Internet Printing Protocol: Protocol
            Specification."
          
            It is assumed that URLs for IPP Printers are available to
            end users or programs who wish to invoke Printer
            operations.  Although not mandatory, it is recommended
            that Printers be registered in a directory service which
            end users and programs can interrogate. "Internet
            Printing Protocol: Directory Schema" defines the
            attributes to be associated with an Printer entry in 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 and semantics.
          
          
          4.2.1 Print Operation
          
            When an end user desires to submit a print job, the
            client sends a Print Request and receives a Print
            Response. The information in a Print Request along with
            any default information associated with the Printer is
            sufficient to create a Job object.  An instance of a Job
            object contains all the information needed by the Printer
            to print one or more documents as a print job.
          
            When a Printer receives a Print Request, it either
            accepts or rejects the request. The Printer accepts the
            Print Request and creates a Job object if it is able to
            accept each attribute in the request, and it rejects the
            request and does not create a Job object if it rejects
            any attribute in the request. There are five cases to
            consider with respect to each attribute.
          
            - 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 the
            attribute is syntactically bad: The Printer rejects the
            job.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 23]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            - The client supplies an attribute value and  a) the
            attribute value is not among the values supported by the
            Printer, or b) the printer does not specify the
            attribute: The job attribute is accepted only if the
            best-effort attribute is set to substitute-as-needed
            which allows the Printer to perform a best effort at
            processing the job rather than rejecting the job.   If
            the job attribute is accepted, the Printer sets the value
            of the attribute to a reasonable value, which may be the
            Printer's default value if it is specified.
          
            - The client does not supply a value, but the Printer
            does: The attribute is accepted and when the Printer
            creates a Job object, the Printer uses its default value.
            If Printer is able to inspect the PDL and determine the
            value of the embedded attribute, it sets the value of the
            attribute to the embedded value and adorns it with the
            embedded tag.
          
            - Neither the client supplies an attribute value nor does
            the Printer define a default value: The print request is
            accepted, the Printer creates the Job object using
            defaults as defined in this specification.
          
            Issue:  Can a Job object be created without some of the
            attributes, then as the Printer processes the Job, there
            is some 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 for a job attribute, then the
            output device shall supply its own 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 a
            Printer URL. If a client submits a job in fragments, the
            initial submission returns a Job URL to which the client
            submits subsequent fragments.
          
            The following abstract data types are part of 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.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 24]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          
          
               Document      Document content is optional and shall
               Contents      not be included when a URL is provided
                             in the document-URL attribute which
                             points to the content.
          
          The simplest Print Request consists of a document contents
          and nothing else.
          
          4.2.1.2 Print Response
          
            The following abstract data types are part of the Print
            Response:
          
          
               Job-          A URL Used for all other operations on
               Identifier    this Job.
               Job Status    All job attributes belonging to the job-
                             status group. The value of each
                             attribute shall be from a snapshot taken
                             sometime after the time the Printer
                             receives the print request.  Since any
                             job affecting printer state information
                             (printer-state-reasons) is reflected in
                             the job-state and job-state-reasons, 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 response consists of the job identifier, Job
          status, and operation status which is either an OK status or
          Error status.
          
          4.2.2 Cancel Job Operation
          
            This operation allows a user to cancel one specific Print
            Job any time after the print job has been established on
            the Printer.  Some pages may be 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.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 25]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          4.2.2.1 Cancel-Job Request
          
            The client submits the request to a Job URL.
          
            The following abstract data types are part of the Cancel
            Job Request:
          
               Message       Optional message to the operator.
          
          
          
          
          4.2.2.2 Cancel-Job Response
          
            The following information is part of the Cancel Job
            Response:
          
               Status        status information including error
                             status
               Message       optional status message
          
          
          
          
          4.2.3 Get Attributes Operation
          
            This operation allows an end user to obtain information
            from a Printer or Job object. The operation contains the
            set of attributes names and/or attribute group names that
            the requester is interested in.  A corresponding
            attribute list is returned in the response with the
            appropriate attribute values filled in for each attribute
            (explicitly named or implicitly included in an attribute
            group) in the request.
          
            If the request to a Printer does not supply any attribute
            names, the Printer shall assume that the client is
            implicitly requesting the default groups of "printer-
            identification" and "printer-status". If the request to a
            Job object does not supply any attribute names, the
            Printer shall assume that the client is implicitly
            requesting the default groups of "job-identification",
            "job-owner", and "job-status".
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 26]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          4.2.3.1 Get-Attributes Request
          
            The client submits the request to a Job URL or Printer
            URL.
          
            The following abstract data types are part of the Get
            Attributes Request:
          
               Requested      A set of attributes without values in
               Attributes     whose values the requester is
                              interested This is optional.
          
               format         This is used only when a this request
                              is sent to a Job and the end user is
                              interested in production attributes. In
                              that case, the client must the format
                              in the request since the default 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 shall be 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 the same way as
            this document and shall have the same names as the
            sections heads of the groupings. Each section and
            subsection contains the group name for the attributes in
            that section or subsection.
          
            For Printers and Job the special groups include:
          
            - "none": no attributes of the specified object.  NOTE:
                 none is primarily useful in Get Jobs, but can be
                 used as a ping with Get Attributes.
            - "all": all attributes of the specified object.
          
          4.2.3.2 Get-Attributes Response
          
            The following abstract data types are part of the Get
            Attributes Response:
          
               Result         The requested attributes of the object
               Attributes     with their current values, if the
                              requester supplied any Requested
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 27]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
                              Attributes
          
               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 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.
          
          
          4.2.4 Get Jobs Operation
          
            This operation allows a client to retrieve Printer
            attributes and a list of print jobs belonging to the
            target Printer object. A list of Job attributes or
            attribute groups that the client is interested in seeing
            may be included in the request. If the request does not
            supply any Printer attributes, the Printer shall assume
            that the client is implicitly requesting the default
            groups: "printer-identification" and "printer-status". If
            the request does 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.
          
            The following abstract data types are part of the Get
            Jobs Request:
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 28]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               Job Owner     This is the user-name. If the value is
                             non-null, then the requester wants only
                             those jobs whose job-originating-owner
                             is the same as the specified user-name.
                             If the value is null, then the requester
                             wants all jobs.
          
               Job States    A possibly empty set of job state
                             values.   If the  set is  not empty,
                             then the requester wants only those jobs
                             whose job-state is the same as one of
                             the specified job state values,   If the
                             set is empty , then the requester wants
                             all jobs that are pending or printing.
          
               Requested     A set of attribute names (without
               Printer       values) in whose values the requester is
               Attributes    interested from the specified Printer
          
               Requested Job A set of attribute names (without
               Attributes    values) in whose values the requester is
                             interested from each of the jobs on the
                             specified Printer.
          
          
            There shall be a way to specify certain groups of
            attributes, and it shall be possible to get more than one
            group. The groups are the same as for Get Attributes.
          
          
          4.2.4.2 Get-Jobs Response
          
            The following information is part of the Get Jobs
            Response:
          
               Result        The result includes zero or more objects
               Attributes    each with zero or more attributes.
          
               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 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
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 29]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            by such a response whether the requested attribute was
            present or absent on the Printer.
          
          
          5. Object Attributes
          
            This section describes the attributes with their
            corresponding syntaxes and values that are part of the
            IPP model. The sections below show the objects and their
            associated attributes which are included within the scope
            of this protocol.  Many of these attributes 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 Monitoring MIB (I-D in progress,
                 March 1997)
          
            Each attribute is uniquely identified in this document
            using a "keyword" in the 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 a straight forward encoding
            of these keywords onto real values in the protocol
            specification.  Not only are attributes uniquely
            identified with keywords, some attributes take on a
            syntax which is a set of keywords.  This set of keywords
            represents the domain of the attribute.
          
          
          5.1 Attribute Syntaxes
          
            The following table shows 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 for human
                                     4096             consumption.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 30]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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
                                                      document name, a
                                                      user name, or a
                                                      host name.  May
                                                      include the SPACE
                                                      character.
          
                                                      NOTE - The protocol
                                                      may need to provide
                                                      means to quote the
                                                      SPACE character if
                                                      the protocol uses
                                                      SPACE for other
                                                      purposes.
          
               fileName              a sequence of    For referencing
                                     characters:      some file.  The
                                     length: 1 to     limit is the same
                                     1024             as POSIX and NT.
                                     characters: any
          
               keyword               a sequence of    For semantic
                                     characters:      identifiers of
                                     length: 1 to     entities in the
                                     255 characters:  abstract protocol
                                     letters,         (specified in this
                                     digits, hyphen   document).  These
                                     ("-"),           entities can be
                                     underscore       attribute names or
                                     ("_")            values of
                                                      attributes,  When a
                                                      keyword is used to
                                                      represent an
                                                      attribute (its
                                                      name), it must be
                                                      unique within the
                                                      full scope of IPP
                                                      objects and
                                                      attributes.  When a
                                                      keyword is used to
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 31]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               Basic Type            Description      Comments
          
                                                      represent a value
                                                      of an attribute, it
                                                      must be unique just
                                                      within the scope of
                                                      that attribute.
                                                      That is, a keyword
                                                      can not be used for
                                                      two different
                                                      values of the same
                                                      attribute to mean
                                                      two different
                                                      semantic ideas.
                                                      However, 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 in
                                     rfc1738 and      ISSUE: do we keep
                                     rfc1808          URLs abstract here
                                                      too and not define
                                                      them in terms of
                                                      rfcs?
          
               octetString           a sequence of    Used for opaque
                                     octets           data, such as 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 the range
                                     in the range     constraint
                                     from -2**31 to
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 32]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               Basic Type            Description      Comments
          
                                     2**31 - 1        explicitly.
          
          
          
               dateTime              a value that
                                     holds the date   time
                                     and time to the
                                                      absolute date and
                                     nearest second.
          
               integerSeconds        an integer with  a relative time
                                     implicit units
                                     of seconds
          
               integerPoints         an integer with  for measurment
                                     implicit units
                                     of computer
                                     points, i.e.,
                                     1/72 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 with
                                                      explicit units
                                                      where the units are
                                                      specific for one
                                                      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 is a
                                     X and a default  default value
                                     value of type X
          
               1setWithDefaultOf     1 or more        for sets of values
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 33]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               Basic Type            Description      Comments
          
               X                     values of type   where one is a
                                     X and a default  default value
                                     value of type X
          
               withDefault  X        an explicit      For values which
                                     default value    are not restricted
                                     of type X. The   but have a default.
                                     set of values
                                     is implicitly
                                     unrestricted.
          
               RangeWithDefaultOf    a range of       for a range of
               X                     value of type X  values, such as
                                     with a default   integers, where one
                                     value of type X  value is the
                                                      default.
          
                                                      OR the below syntax
                                                      type instead
          
               integerRangeWithDef   an integer       for a range of
               ault                  range with a     integers where one
                                     default integer  value is the
                                     value            default.
          
          
          
          
          5.1.1 Attribute Extensibility
          
            This document uses prefixes to the keyword  basic syntax
            type in order to communicate extra information to the
            reader through its name. This extra information need not
            be represented in an implementation because it is
            unimportant to a client or printer.  The table below
            describes the prefixes 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.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 34]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               Basic Type     Prefix         Comments
          
               keyword        type2          implementers can, at any
                                             time, add new values by
                                             proposing them to the PWG
                                             for registration (or an
                                             IANA-appointed registry
                                             advisor after the PWG is no
                                             longer certified) where they
                                             are reviewed for approval..
                                             IANA keeps the registry.
                                             Implementers can support
                                             private (unregistered) with
                                             a suitable distinguishing
                                             prefix, such as -xxx- where
                                             xxx is the company name
                                             registered with IANA for use
                                             in domain names.
          
               keyword        type3          implementers can add new
                                             values 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 with a suitable
                                             distinguishing prefix, such
                                             as -xxx- where xxx is the
                                             company name registered with
                                             IANA for use in domain
                                             names.
          
               keyword        type4          an installation defined name
                                             that can be added to a local
                                             system by an administrator.
                                             Care must be taken by the
                                             administrator to see that
                                             keywords do not conflict
                                             with other keywords defined
                                             by the standard or as
                                             defined by the implementing
                                             product. There is no
                                             registration or approval
                                             procedure for type 4
                                             keywords
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 35]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          
          
          
          5.1.2 Relationship of Job and Printer Attributes
          
            If a client can supply a Job attribute in a Print
            Request, there is a  corresponding Printer attribute with
            the same name.  The Printer attribute as a similar syntax
            type, however, the Printer attribute must additionally
            specify a set of supported values and an optional default
            value.  The default value is used when creating a new Job
            object where the client has not supplied a value in the
            Print Request.  These attributes, which can be in both
            Job and Printer objects, are called Job Template
            attributes and are fully defined in section 5.2 "Job
            Template Attributes".  The table below shows the
            relationships between the syntax types of Job attributes
            and their corresponding Printer attributes. The syntax
            type of the Printer object is "constructed" using Job
            attribute type.  For example, the table shows that if the
            basic syntax type of a Job attribute is "text" then the
            corresponding Printer attribute will be of type
            "withDefault text".  Or, if the syntax type of the Job
            attribute is "integer", then the corresponding Printer
            attribute will be of type "rangeWithDefault of integer".
            The essence of what is shown in the table below is
            whether a context (Job attribute or Printer attribute)
            allows a single value or multiple values.
          
          
          
               Name of        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
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 36]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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
                                           there are no job
                                           production attributes
                                           that a client can
                                           supply.
          
               integerSecon   integerSeco  rangeWithDefaultOf
               ds             nds          integerSeconds
          
                                           NOTE: if have
                                           integerUnits and no
                                           integerSeconds, we can
                                           replace
                                           rangeWithDefaultOf by
                                           integerRangeWithDefaul
                                           t.
          
               setOf  X       setOf  X     setWithDefaultOf  X
          
          
          
            The Printer and the client shall be knowledgeable about
            each of the above syntax forms and know how the handle
            the values in a Job attribute and a Printer attribute.
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 37]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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.  The following sections describe
            these tags.  All tags are optional.  Fully conforming
            implementations need not support them.
          
          
          5.1.3.1 Tagged Printer Attributes
          
            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.  A client
            may choose to display values only with certain values of
            availability.  Standard values are: "ready" and "not-
            ready".   If an attribute value does not have this tag,
            it is by default "ready".  "not-ready" means that the
            Printer can accept the job, but the Printer cannot
            complete the job without some external intervention to
            make the value ready.
          
            ISSUE:  Should 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 the value is
            intended to always be ready, media 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 with an attribute
            to indicate that the Printer supported this attribute
            when it is embedded in the document data, but it does not
            support it as an explicit attribute. The attributes that
            this tag is attached to varies according to the format
            specified in the Get Attributes operation.
          
            - Default Value: Supported attributes can have a default
            tag associated with the value that is default.   If
            multiple values are tagged with a default value, a client
            shall use the first value that is tagged with default. If
            no values are tagged, then it assumes the first value in
            the supported list is the default value.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 38]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            - Scheduling: If a printer uses this value for
            scheduling, then it associates this tag to indicate that
            it would like the attribute set when the job is
            submitted. The attribute can come back with or without
            the embedded tag. If an attribute does not have this tag,
            then the Printer will not use this attribute for
            scheduling.
          
            NOTE: the mostly likely attribute that a Printer would
            attach this adornment to is 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 the
            attribute value(s) are embedded in the document.  The
            printer can use this information for scheduling, but it
            shall not use it to modify the document.  This attribute
            cannot be associated with individual attribute values.
          
            - Default: If a attribute value has this tag, then the
            Printer shall ignore the Job attribute, if any, and shall
            use the Printer's default value for the attribute.
          
            Issue:  Does 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 of Printers feeding into each
            output device to handle user's expected defaults.  For
            example, a Windows client will send a PostScript document
            with no 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 Job Template (job-template) Attributes
          
            The following attributes can exist in both Jobs and
            Printers. When such an attribute is in a Job object, it
            identifies some desired behavior on this Job by the
            Printer. When it is in a Printer object, it constrains
            the values that the corresponding Job attribute can have
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 39]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            and it specifies a default value as well.  The set of
            values in the Printer object are called the "supported
            values".
          
            These attributes form the attribute group called "job-
            template".
          
            The attributes are described below.  The part in
            parenthesis after each attribute name is the name of the
            syntax as listed in Table 1 in section 5.1.
          
            A client can specify any of the attributes in this group
            in a Print Request. If a client GUI wishes to present a
            user with a list of values to choose from, then the
            client program should perform the Get Attributes
            operation to a Printer URL using the group job-template
            in order to get the complete list of attributes that a
            client can specify. Each attribute returned with the job-
            template group shall contain a list of supported values
            for the attribute and the Printer's default value.
          
          
          5.2.1 Job Sheet Attributes (Set by Client/End User)
          
            The client shall specify these attributes to control the
            printing of job sheets.
          
            There is no group name for these attributes since there
            is only one attribute in the group.
          
            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 a Job Attribute
          
            This job attribute determines what type 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.  The value "default-sheet" means that the end
            user desires a site specific default sheet defined by and
            administrator be printed.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 40]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 by this
            printer, and the state of readiness for each job-sheet.
          
            To allow no job sheets, the system administrator shall
            include the value none as a value for the supported
            values. If the administrator's policy is not to support
            none, the Printer shall use the default-sheet value if
            the client supplies the none value but also indicates
            (through the best-effort attribute) that Printer could
            substitute values as needed in order to process the job.
          
          
          5.2.2 Job Notification (job-notification) Attributes (Set by
          a Client/End User)
          
            The client shall specify these attributes to indicate
            events that the client is interested in, along with the
            notification address and method for performing the
            notification.
          
            These attributes form the attribute group called "job-
            notification".
          
            The client may also specify notification attributes in:
            Get-Attributes and Get-Jobs.
          
          
          5.2.2.1 notification-events (setOf type2 keyword)
          
          
          5.2.2.1.1 As a Job Attribute
          
            This job attribute specifies the events about which the
            end user want to be notified.
          
            Standard values within the set are: job-completion, job-
            canceled,  job-problems and printer-problems.
          
            If this attribute contains the empty set, the Printer
            shall not notify.  This value is useful if an
            administrator has set up a notification Printer default
            but the end user does not want notification.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 41]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            If this attribute contains the value: job-completion, the
            Printer shall notify the client when the job containing
            this attribute completes with or without errors.
          
            If this attribute contains the value: job-canceled, the
            Printer 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
            Printer shall notify the client when this job has a
            problem while this job is printing. Problems include:
            paper jam and out-of-paper.
          
            If this attribute contains the value:  printer-problems,
            the Printer shall notify the client when any job,
            including this job, is affected by a Printer problem (the
            printer has moved to the stopped state and there is a
            reason in the printer-state-reasons attribute) while 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 attribute indicates the default value. It
            also indicates the values of the job and printer
            notification-events attribute supported by this Printer
            and the states 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 a Printer notifies a
            user about the occurrence of an event.
          
            If this attribute is unspecified, then the Printer does
            not support notification.  If this attribute is not
            contained in an instance of a Printer and the client
            supplies the attribute in the Print Request, the
            attribute in the Print Request is ignored.
          
          
          5.2.2.2 notification-addresses (setOf url)
          
            This address specifies both the address and mechanism for
            delivery of notification events to the client.
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 42]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            The Printer shall use this attribute as the address for
            sending messages to a job submitter when an event occurs
            that the end user has registered an interest in.
          
            If the URL has a "mailto:" scheme, then email is used and
            the rest of the URL is used as the email address.  If the
            URL has a "http:" scheme, then an HTTP  method is used to
            add HTML formatted events to the end of the specified
            HTML file.
          
          
          5.2.2.2.1 As a Job Attribute
          
            This job attribute specifies the method and addresses 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 syntax type is "setOf urlScheme"
            so that an interested client shall know which URL schemes
            can be include in the notification-addresses attribute in
            the Print Request.
          
          
          5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
          Client/End User)
          
            The client shall specify these attributes to provide the
            Printer with information for the scheduling a print-job.
          
            These attributes form 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 a priority for scheduling
            the print-job. Printers that employ a priority-based
            scheduling algorithm use this attribute.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 43]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            A higher value specifies a higher priority. The value 1
            is defined to indicate the lowest possible priority (a
            job which a priority-based scheduling algorithm shall
            pass over in favor of higher priority jobs). 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 print all jobs with a
            priority value of n before printing those with a priority
            value of n-1 for all n.  The mapping of vendor-defined
            priority over this range is implementation-specific.
          
          
          5.2.3.1.2 As a Printer Attribute
          
            The printer attribute specifies the default priority. It
            also specifies 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 that the end user is authorized to use.  There
            might be higher or lower priorities (outside the range
            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 the attribute in the
            Print Request, the attribute in the Print Request is
            ignored.
          
          
          5.2.3.2 job-hold-until (type4 keyword)
          
          
          5.2.3.2.1 As a Job Attribute
          
            This job attribute specifies the named time period during
            which the Job print job shall become a candidate for
            printing.
          
            Standard values for named time periods are:  "no-hold",
            "evening", "night", "weekend", "second-shift", "third-
            shift".  An administrator shall associate allowable print
            times with a named time period.  An administrator is
            encouraged to pick names that suggest the type of time
            period.
          
            If the value of this attribute specifies a time period
            that is in the future, the Printer shall add the job-
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 44]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            hold-until-specified value to the job's job-state-reasons
            attribute and shall not schedule the print-job for
            printing until the specified time-period arrives.  When
            the specified time period arrives, 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 , the job shall be
            a candidate for processing immediately.
          
          
          5.2.3.2.2 As a Printer Attribute
          
            This printer attribute indicates the default value. It
            also indicates the values of the attribute supported by
            this printer.
          
            If this attribute is not contained in an instance of a
            Printer and the client supplies the attribute in the
            Print Request, the attribute in the Print Request is
            ignored.
          
          
          5.2.4 Job Production (job-production) Attributes (Set by
          Client/End User)
          
            The client shall specify these attributes to affect the
            rendering, production and finishing of the documents in
            the job.  Similar types of instructions may also be
            contained in the document to be printed.
          
            These attributes form the attribute group called "job-
            production".
          
            If there is a conflict between the value of one of these
            attributes, and a corresponding instruction in the
            document (either implicit or explicit), the value of the
            attribute shall take precedence over 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 attribute also provides a
            client with a way to override a feature at print time
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 45]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            that was embedded within the document data when 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 implement these attributes for
            some PDL's.
          
            A job  production attribute tells a Printer what features
            the job needs. A program that translates document data to
            a Printer's PDL, and/or merges production attributes into
            the document data should add job  production  attributes
            to a job, using the "embedded" tag. Such a program may
            execute at a number of different points in time:
          
               1. The program produces a final form document and
               stores these resource attributes in a file before the
               end-user submits the print job.
          
               2. The program produces a final form document data
               stream when the end-user specifies "Print" to the
               application program (e.g., Windows GDI driver).
          
               3. The program running in the context of the Printer or
               server translates a revisable or final form document
               into a PDL that the output device understands.
          
            For example, a job production attribute medium with the
            value of "letter" requests that a job be printed on
            letter paper, and  gives information about what resources
            the job needs. For example, a job production  attribute
            media with the values of "letter" and "ledger"  and the
            tag "embedded" tell a Printer that the job needs letter
            and ledger paper, but gives no information about which
            pages use each medium_ that information is embedded in
            the document.
          
            A Printer may use these attributes to validate and
            schedule the print-job without interpreting the contents
            of the document. This provides the opportunity for a
            Printer to support a broad set of document formats yet
            still support fast efficient scheduling and validation of
            each job.
          
            If any of these attributes is unspecified, the Printer
            shall assume that the all resources required by the
            document of the type specified by the missing attributes
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 46]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            are ready, i.e., are available to the Printer and/or
            output device without human intervention.
          
            The client may specify these attributes in: Get-
            Attributes and Get-Jobs.
          
          
          
            The client may also specify job production-instruction
            attributes in: Get-Attributes and Get-Jobs. For all the
            attributes in this section, the default behavior if the
            Printer attribute is unspecified is that the document is
            printed with the output-device defaults, possibly
            overridden by whatever is in the document data, if
            anything.
          
            Each 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 the Printer may not
            allow changes to.
          
          
          5.2.4.1 multiple-documents-are (type1 keyword)
          
          
          5.2.4.1.1 As a Job Attribute
          
            This job 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 the
            copies attribute exceeds 1.
          
            This attribute can have one of three values: single-
            document, separate-documents-uncollated-copies, separate-
            documents-collated-copies.
          
            If the files for the job are a and b and this attribute's
            value is single-document , then files a and b 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 ordering must be a, b, a,
            b, ....
          
            If the files for the job are a and b and this attribute's
            value is separate-documents-uncollated-copies, or
            separate-documents-collated-copies or unspecified, then
            each file is treated as a single document for finishing
            operations. Also, a client may specify that a slip sheet
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 47]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            be between files a and b. If more than one copy is made,
            and the attribute's value is separate-documents-
            uncollated-copies or unspecified, the ordering is a, a,
            b, b, .... If more than one copy is made, and the
            attribute's value is separate-documents-collated-copies,
            the ordering is a, b, a, b, ....
          
          
          5.2.4.1.2 As a Printer Attribute
          
            This printer attribute specifies the default value and
            the supported values.
          
          
          5.2.4.2 best-effort (type2 keyword)
          
            This attribute determines what to do if there is a
            conflict between what a client requests and what a
            Printer is capable of .  Values for this attribute are:
            "substitute-as-needed" and "do-not-substitute".
          
          
          5.2.4.2.1 As a Job Attribute
          
            This job attribute specifies the Printer should do if the
            Printer can not support all other attribute values in
            other Job attributes.  If the value is "substitute-as-
            needed" then the end user desires the job to be printed
            using substitutions by the Printer where needed in order
            to resolve conflicts.  If the value is do-not-substitute
            then the end user desires that the job should not be
            processes unless every attribute value can be completely
            satisfied.  If the client does not supply a value for
            this attribute in a print request, the Printer shall
            assume that the value is "do-not-substitute."
          
            Note: that best-effort 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 the attribute values
            to those which are supported. Best-effort is useful in
            the GUI context only if a user expects the job to be
            moved to another printer and prefers a sub-optimal result
            to nothing at all. Best-effort is most useful in the case
            where an end-user uses a command line interface to
            request attributes that may not be supported.
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 48]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5.2.4.2.2 As a Printer Attribute
          
            This printer attribute specifies supported and default
            behavior of the Printer if there is a conflict between
            Job attributes and Printer supported attributes,  If the
            value is "substitute" then Printer is capable of doing
            some sort of best effort when there is a conflict,   If
            the value is do-not-substitute then the  Printer will
            reject all print requests that can not be completely
            satisfied.   If the Printer object does not instantiate
            this attribute, the client shall assume that 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 the same attribute associated with the job.
          
            These attributes form 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 attribute identifies the medium that the Printer
            shall use for all pages of the document regardless of
            what media are specified within the document.
          
            The values for medium include medium-names, medium-sizes,
            input-trays and electronic forms so that one attribute
            specifies the media.
          
            If a printer allows a client to specify a medium-name as
            the value of this attribute, such a medium-name
            implicitly selects an input-tray that contains the
            specified medium.
          
            If a printer allows a client to specify a medium-size as
            the value of this attribute, such a medium-size
            implicitly selects a medium-name which in turn implicitly
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 49]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            selects an input-tray that contains the medium with the
            specified size. If a printer contains two or more medium-
            names with the same medium-size, then a printer shall not
            include that medium-size in the list of supported values
            for this attribute and the printer shall reject jobs that
            request such a medium-size.
          
            If a printer allows a client to specify an input-tray as
            the value of this attribute, such an input-tray
            implicitly selects the 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. When this attribute appears as a job attribute with
            the embedded tag, it may contain more than one value and
            it shall indicate all media required by the document.
          
          
          5.2.5.1.2 As a Printer Attribute
          
            This printer attribute identifies the default value. It
            also identifies the media, media-sizes, input trays, and
            electronic forms supported by this printer, and indicates
            the state of availability  for each medium resource.
          
            Standard values are defined(taken from ISO DPA and the
            Printer MIB):
          
               default           The default medium for 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
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 50]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               iso-a5-white      Specifies the ISO A5 white
                                 medium
               iso-a5-colored    Specifies the ISO A5 coloured
                                 medium
               iso-b4-white      Specifies the ISO B4 white
                                 medium
               iso-b4-colored    Specifies the ISO B4 coloured
                                 medium
               iso-b5-white      Specifies the ISO B5 white
                                 medium
               iso-b5-colored    Specifies the ISO B5 coloured
                                 medium
               jis-b4-white      Specifies the JIS B4 white
                                 medium
               jis-b4-colored    Specifies the JIS B4 coloured
                                 medium
               jis-b5-white      Specifies the JIS B5 white
                                 medium
               jis-b5-colored    Specifies the JIS B5 coloured
                                 medium
          
          
            The following standard values are defined 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 the North American
                                 legal coloured medium
          
          
            The following standard values are defined for envelopes:
          
               iso-b4-envelope   Specifies the ISO B4 envelope
                                 medium
               iso-b5-envelope   Specifies the ISO B5 envelope
                                 medium
               iso-c3-envelope   Specifies the ISO C3 envelope
                                 medium
               iso-c4-envelope   Specifies the ISO C4 envelope
                                 medium
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 51]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               iso-c5-envelope   Specifies the ISO C5 envelope
                                 medium
               iso-c6-envelope   Specifies the ISO C6 envelope
                                 medium
               iso-designated-   Specifies the ISO Designated
               long-envelope     Long envelope medium
               na-10x13-         Specifies 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 for 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
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 52]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 the JIS B8 white
                                 medium
               jis-b9-white      Specifies the JIS B9 white
                                 medium
               jis-b10-white     Specifies the JIS B10 white
                                 medium
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 53]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            The following standard values are defined for engineering
            media:
          
               a                 Specifies the engineering A
                                 size medium
               b                 Specifies the engineering B
                                 size medium
               c                 Specifies the engineering C
                                 size medium
               d                 Specifies the engineering D
                                 size medium
               e                 Specifies the engineering E
                                 size medium
          
          
            The following standard values are defined for input-trays
            (from ISO DPA and the Printer MIB):
          
               top        The top input tray in the printer.
               middle     The middle input tray in the printer.
               bottom     The bottom input tray in the printer.
               envelope   The envelope input tray in the
                          printer.
               manual     The manual feed input tray in the
                          printer.
               large-     The large capacity input tray 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 the ISO A0 size: 841 mm by
                       1189 mm as defined in ISO 216
               iso-a1  Specifies the ISO A1 size: 594 mm by 841
                       mm as defined in ISO 216
               iso-a2  Specifies the ISO A2 size: 420 mm by 594
                       mm as defined 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 the ISO A5 size: 148 mm by 210
                       mm as defined in ISO 216
               iso-a6  Specifies the ISO A6 size: 105 mm by 148
                       mm as defined in ISO 216
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 54]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               iso-a7  Specifies the ISO A7 size: 74 mm by 105
                       mm as defined in ISO 216
               iso-a8  Specifies the ISO A8 size: 52 mm by 74
                       mm as defined in ISO 216
               iso-a9  Specifies the ISO A9 size: 37 mm by 52
                       mm as defined in ISO 216
               iso-a10 Specifies the ISO A10 size: 26 mm by 37
                       mm as defined in ISO 216
          
               iso-b0  Specifies the ISO B0 size: 1000 mm by
                       1414 mm as defined in ISO 216
               iso-b1  Specifies the ISO B1 size: 707 mm by
                       1000 mm as defined in ISO 216
               iso-b2  Specifies the ISO B2 size: 500 mm by 707
                       mm as defined in ISO 216
               iso-b3  Specifies the ISO B3 size: 353 mm by 500
                       mm as defined in ISO 216
               iso-b4  Specifies the ISO B4 size: 250 mm by 353
                       mm as defined in ISO 216
               iso-b5  Specifies the ISO B5 size: 176 mm by 250
                       mm as defined in ISO 216
               iso-b6  Specifies the ISO B6 size: 125 mm by 176
                       mm as defined in ISO 216
               iso-b7  Specifies the ISO B7 size: 88 mm by 125
                       mm as defined in ISO 216
               iso-b8  Specifies the ISO B8 size: 62 mm by 88
                       mm as defined in ISO 216
               iso-b9  Specifies 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)
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 55]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               iso-c3      Specifies the ISO C3 size: 324 mm by
                           458 mm as defined in ISO 269
               iso-c4      Specifies the ISO C4 size: 229 mm by
                           324 mm as defined in ISO 269
               iso-c5      Specifies the ISO C5 size: 162 mm by
                           229 mm as defined in ISO 269
               iso-c6      Specifies the ISO C6 size: 114 mm by
                           162 mm as defined in ISO 269
               iso-        Specifies the ISO Designated Long
               designated  size: 110 mm by 220 mm as defined 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 the Monarch envelope
               envelope        size (3.87 x 7.5 in)
          
               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
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 56]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 a Job Attribute
          
            This job attribute specifies the number of source page-
            images to impose upon a single side of an instance of a
            selected medium.
          
          
          5.2.5.2.2 As a Printer Attribute
          
            This printer attribute identifies the default value and
            the number-up values supported by this printer..
          
            The state of readiness 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 the
            Printer implementation to which the print-request is
            directed.  Standard values are: "none", "1", "2", "4".
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 57]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            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.  The value "none" 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.
          
          
          5.2.5.3 sides (type2 keyword)
          
          
          5.2.5.3.1 As a Job Attribute
          
            This job attribute specifies how source page-images are
            to be imposed upon the sides of an instance of a selected
            medium.
          
            When this attribute appears as a job attribute with the
            embedded tag, it may contain more than one value and it
            shall indicate all sides operations required by the
            document.
          
          
          5.2.5.3.2 As a Printer Attribute
          
            This printer attribute indicates the default. It also
            indicates the values of the sides attribute supported by
            this printer and the states of readiness of each value.
          
            The standard values are: 1-sided, 2-sided-long-edge, 2-
            sided-short-edge.
          
            1-sided imposes each consecutive source page-image upon
            the same side of consecutive media sheets.
          
            2-sided-long-edge imposes each consecutive pair of source
            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 for the reader as if
            for binding on the long edge.  This imposition is
            sometimes called "duplex".
          
            2-sided-short-edge imposes each consecutive pair of
            source 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
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 58]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 and 2-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" also switches between "duplex" and "tumble" when
            using portrait and landscape modes.
          
          
          5.2.5.4 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 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
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 59]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 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 quality available on the
                              printer
          
                normal        Normal or intermediate quality on
                              the printer
          
                high          Highest quality available on the
                              printer
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 60]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5.2.5.6 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 - 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 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  Job
            attributes.
          
            When this attribute appears as a job attribute with the
            embedded tag, it may contain more than one value and it
            shall indicate all finishing operations required by the
            job.
          
          
          5.2.5.7.2 As a Printer Attribute
          
            This printer attribute identifies the default value. It
            also identifies the finishing operations supported by
            this Printer and states of availability  for each
            finishing.
          
            Standard values for this attribute are:
          
               none         Perform no finishing.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 61]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               staple       This indicates that staples are to
                            be used to bind the document. The
                            exact number and placement of the
                            staples is site-defined; other
                            finishing object attributes may be
                            included to provide this
                            information.
               staple-top-  This indicates that one or more
               left         staples should be placed on the top
                            left corner of the document
               staple-      This indicates that one or more
               bottom-left  staples should be placed on the
                            bottom left corner of the document
               staple-top-  This indicates that one or more
               right        staples should be placed on the top
                            right corner of the document
               staple-
               bottom-      staples should be placed on the
                            This indicates that one or more
               right        bottom right corner of the document
               saddle-      This indicates that one or more
               stitch       staples (wire stitches) are to be
                            used to bind the document along the
                            middle fold.  The exact number and
                            placement of the stitches is site-
                            defined.
               edge-stitch  This indicates that one or more
                            staples (wire stitches) are to be
                            used to bind the document along one
                            edge.  The exact number and
                            placement of the staples is site-
                            defined.
               punch        This indicates that holes are
                            required in the finished document.
                            The exact number and placement of
                            the holes is site-defined  The
                            punch specification may be
                            satisfied (in a site- and
                            implementation-specific manner)
                            either by drilling/punching, or by
                            substituting predrilled media.
               cover        This value is specified when it is
                            desired to select a non-printed (or
                            pre-printed) cover for the
                            document. This does not supplant
                            the specification of a printed
                            cover (on cover stock medium) by
                            the document itself.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 62]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               bind         This indicates that a binding is to
                            be applied to the document; the
                            type and placement of the binding
                            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 the compression algorithm
            that has been applied to the document data.
          
          
          5.2.5.8.2 As a Printer Attribute
          
            This printer attribute identifies the default value. It
            also identifies the compression algorithms supported by
            this Printer
          
          
          5.2.6 Document Format Attributes (Set by Client/End User)
          
            There is no group name for these attributes since there
            is only one attribute in the group.
          
          
          5.2.6.1 document-format (type2 keyword)
          
          
          5.2.6.1.1 As a Job Attribute
          
            This job attribute identifies the document format of this
            document, and may be a per-document attribute.
          
          
          5.2.6.1.2 As a Printer Attribute
          
            This printer attribute indicates default value. It also
            indicates the values of the attribute supported by this
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 63]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            printer and the states of readiness for each value. One
            possible supported and default value is "auto-sense".
          
            The following standard values have been reviewed with the
            Printer Working Group and are registered with IANA as
            part of the IETF Printer MIB project.  The standard value
            assigned by the PWG starts with the four letters: "lang",
            in order to follow SNMP ASN.1 rules that all enum symbols
            shall start with a lower case letter.  The keyword values
            in IPP shall be the same as the PWG standard values
            registered with IANA with the "lang" removed.  The MIB
            (integer) value is included here for reference only, the
            MIB integer value shall not be used in IPP;  the keyword
            value 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 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 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 which may be
                                 registered in certain
                                 jurisdictions
                IPDS        7    Intelligent Printer Data Stream
                                 Bi-directional print data stream
                                 for documents consisting 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
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 64]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
                PPDS        8    IBM Personal Printer Data Stream.
                                 Originally called IBM ASCII, the
                                 name was changed to PPDS when the
                                 Laser Printer 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 of data as
                                 separate ASCII or EBCDIC records
                                 and containing no control
                                 functions (no CR, LF, HT, FF,
                                 etc.).  For use with traditional
                                 line printers.  May use CR and/or
                                 LF 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 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.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 65]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 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 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 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 Printer Alliance Protocol
                                 (NPAP).  This protocol has been
                                 superseded by the IEEE 1284.1
                                 TIPSI standard.  (ref.
                                 LangTIPSI(49)).
                DOC         32   Document Option Commands, Appears
                                 in the data stream between data
                                 intended for a page description .
                                 QMS, Inc
                imPress     33   imPRESS, Page description language
                                 originally developed for the
                                 ImageServer line of systems.  A
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 66]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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
                                 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 for
                                 USA, Europe, 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 the interpreter
                                 language family by the printer
                                 examining the document content.
                                 Which actual interpreter language
                                 families are sensed depends on 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 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 for
                                 printing, and printer control.
                                 Technical reference manual # TBD.
                                 Hewlett-Packard Co.
                ART         48   Advanced Rendering Tools (ART).
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 67]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
                                 Page Description language
                                 originally developed for 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 the control codes
                                 LF, VT, FF and CR plus Centronics
                                 or Dataproducts Vertical Format
                                 Unit (VFU).  language 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 the attribute group called "job-
            size".
          
            These attribute values all have adornments of either
            "total" or "printed" and they indicate the size of a job
            in various units. A client may set these attributes, but
            not an end-user. The Printer may set these attributes if
            the client does not. In both of these cases, the
            attribute value has the adornment of "total", which
            indicates the client and Printer's best estimate to the
            total.
          
            If a value has the adornment of "printed", then the value
            shall indicate the current number of octets, impressions
            or media-sheets (depending on the attribute) that have
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 68]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            been printed. Only the printer shall be allowed to set a
            value with the "printed" adornment.
          
            If a value has no adornment, then it implicitly has the
            adornment "total".
          
            The corresponding  Printer attributes indicate the range
            of allowed values, but there is no explicit default. If
            the Job attribute is not specified and the Printer
            attribute is specified, the Printer shall either compute
            a value for the job attribute or leave it unspecified.
            An attribute is accepted if any one of the following
            conditions is satisfied: a) the Printer attribute is
            unspecified, b) the job attribute is unspecified, c) the
            job attribute is within the range specified by the
            Printer attribute.
          
          
          
          
          5.2.7.1 job-k-octets (integer(0:2**31 - 1))
          
            This attribute specifies the total size of the job in K
            octets, i.e., in units of 1024 octets.  The value shall
            be rounded up, so that a job between 1 and 1024 octets
            shall be indicated as being 1K, 1025 to 2048 shall be 2,
            etc. This attribute is not intended to be a counter as in
            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 it is known.  It is set by the Printer once
            the Job object is created if 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
            attribute.
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 69]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5.2.7.2 job-impressions (integer(0:2**31 - 1))
          
            This job attribute specifies the total size of the job in
            impressions. This attribute is not intended to be a
            counter as 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 job attribute is set by client on in the Print
            Request if it is known.  It is set by the Printer once
            the Job object is created if 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 for this
            attribute.
          
          
          
          
          5.2.7.3 job-media-sheets (integer(0:2**31 - 1))
          
            This job attribute specifies the total size of the job in
            media-sheets. This attribute is not intended to be a
            counter as in the Job Monitoring MIB;  it is intended to
            be useful routing and scheduling information if known.
          
          
          5.2.7.3.1 As a Job Attribute
          
            This job attribute is set by client on in the Print
            Request if it is known.  It is set by the Printer once
            the Job object is created if the Printer is able to
            calculate this value.
          
          
          5.2.7.3.2 As a Printer Attribute
          
            This Printer attribute specifies a support range for job
            sizes.  A default value is not applicable for this
            attribute.
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 70]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5.2.8 Number of Documents (Set by Printer)
          
            This group contains a single attribute which specifies
            the number of documents in the job.
          
            This group does not have a name since there is only one
            attribute in the group.
          
            The client need not set this attribute because, the
            Printer sets 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 and Get-Jobs.
          
            The printer attribute is set by an implementation and
            contains the range of values supported. Normally, it is
            either exactly 1 document or at least 1 document. The
            printer shall reject a job if the number of documents is
            not in the range of this attribute.
          
          
          5.2.8.1 number-of-documents (integer(1:2**31 - 1))
          
            This attribute specifies the number of documents in the
            job. There are document specific attributes (see section
            5.4).
          
          
          5.3 Job Attributes Set by the Printer
          
            These attributes form the attribute group called  "job-
            set-by-printer".
          
            The Printer sets the 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.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 71]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            The Printer, on receipt of a new job, shall generate a
            URL which identifies the job on the Printer. The Printer,
            shall return the value of the URL  job attribute as part
            of the PrintResult in the Print operation. The precise
            format of a job URL shall be implementation dependent.
          
          
          5.3.2 Job Owner (job-owner) Attributes (Set by a Printer)
          
            The Print shall add 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 in the
            operations: Get-Attributes and Get-Jobs, but not in
            Print.
          
          
          5.3.2.1 job-originating-user (name)
          
            This attribute specifies the user name of the person
            submitting the print job.  The Printer shall set this
            attribute to the most authentic name that it can obtain
            from the protocol over which the operation was received
            from the client.
          
          
          5.3.2.2 job-originating-host (name)
          
            This attribute identifies the originating host of the
            job. The Printer shall set this attribute to the most
            authentic host name it can obtain from the protocol over
            which the operation was received from  the client.
          
          
          5.3.2.3 user-locale (type3 keyword)
          
            This attribute identifies the locale of the job, i.e, the
            country, language, and coded character set. The Printer
            sets this attribute the most authentic value it can
            obtain from the protocol over which the operation was
            received from  the client..
          
            The Printer shall use this attribute to determine the
            locale for notification messages that it sends.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 72]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            Issue: Is there a more standard syntax for locale?
          
            The standard values are listed under the document-locale
            attribute.
          
            ISSUE: specify the list of valid locales.
          
          
          5.3.2.4 job-name (name)
          
            This attribute contains the name of the job.  It is a
            name that is more user friendly than the job-URL. The
            Printer, on receipt of the job, shall generate a name
            which is the name of the first document in the job. 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 the attribute group called "job-
            status".
          
            The Printer shall add these attributes to a job when a
            client submits a job, and the Printer shall assign
            appropriate values to each such job-status 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)
          
            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 may
                           keep a job from moving to the printing
                           state.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 73]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               processing  The server is processing the job, or
                           has made the job ready for printing,
                           but the output device is not yet
                           printing it, either because the job
                           hasn't reached the output device or
                           because the job is queued in the
                           output device or some other spooler,
                           awaiting the output device to print
                           it.
          
                           Or
          
                           The server has completed processing
                           the job and the output device is
                           currently printing the job. That is,
                           an output device is either printing
                           pages of the job, or failing in its
                           attempt to print pages of the job
                           because of some wait state, such as,
                           start-wait, end-wait, needs-attention,
                           etc.  The complete 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 as to
                           whether paper is being marked or the
                           printer is just processing. Most
                           printers won't bother with this
                           nuance.
               terminatin  The job has been canceled by a Cancel-
               g           Job request or aborted by the server
                           and is in the process of terminating.
                           The job's job-state-reasons attribute
                           contains the reasons that the job is
                           being terminated.
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 74]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               retained    The job is being retained at the
                           server. The 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 the job has
                           been retained.
                           While in the retained state, all of
                           the job's document data (and
                           resources, if any) shall be retained
                           by the server; thus a job 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.
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 75]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 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
                           contains the reason(s) that the job
                           has been completed.
                           While in the completed state, a job's
                           document data (and resources if any)
                           need not be retained by the server;
                           thus a job in the completed state
                           could not be reprinted. The length of
                           time that a job may be in this state,
                           before transitioning to unknown, is
                           implementation-dependent.  However,
                           servers that implement the completed
                           job-state shall retain, as a minimum,
                           the following attributes for any job
                           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)
          
            This attribute identifies the reason or reasons that the
            job is in the state that it is in (e.g., held,
            terminating, retained, completed, etc.).  The printer
            shall indicate the particular reason(s) by setting the
            value of 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 the default. Job-held can only be
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 76]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            changed by an operator in an unspecified manner. Should
            a job move to the printing state when a spooler sends it
            to a printer or  move to the printing state when marking
            starts. Should  it depend on the printer as to whether it
            announces such nuances. We probably need a state
            transition diagram.
          
            The following standard values are defined:
          
               job-incomplete      The job has been accepted by the
                                   server, but the Printer is
                                   waiting for the transfer of the
                                   remainder of the job.
               job-sending-to-     Optional. The job is in the
               output-device       pending state but is being
                                   transmitted to the output device.
               job-queued-in-      Optional. The job is 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     The printer is stopped.  This
                                   reason appears in all  jobs in
                                   the pending state when the value
                                   of the Printer's printer-state
                                   attribute is stopped. This reason
                                   appears in a job in the
                                   processing state when the output-
                                   device is stopped.
               printer-partly-     Optional.  This reason appears in
               stopped             all jobs in the pending state
                                   when the value of the Printer's
                                   printer-state-reasons contains
                                   the value partly-stopped.
               job-hold-until-     The value of the job's job-hold-
               specified           until attribute has specified a
                                   time period that has not yet
                                   arrived, so that the Printer
                                   shall not consider the job as a
                                   candidate for processing.
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 77]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 and it shall be set by the
            Printer.
          
          
          5.3.3.4 output-device-assigned (url)
          
            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 be near the Printer.
          
            If an Output Device implements a Printer, the Printer
            need not set this attribute.
          
            If a Print Server implements a Printer, the value shall
            be empty until the Printer assigns an Output Device to
            the job.
          
            The value of the job's output-device-assigned attribute
            shall remain after the job has completed, so that end
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 78]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            users can determine the Output Device on which the job
            was printed.
          
          
          5.3.3.5 submission-time (dateTime)
          
            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 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 of jobs that are
            "ahead" of this job in the current scheduled order.  For
            efficiency, it is only necessary to calculate this value
            when an operation if performed that requests this
            attribute.
          
            NOTE - This attribute is necessary since an 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 the
            response or cannot be because of site security policy
            restrictions.
          
          
          5.3.3.7 job-message-from-operator (text)
          
            This attribute provides a message from an operator,
            system administrator or "intelligent" process to indicate
            to the end user the reasons for modification or other
            management action taken on a job.
          
          
          5.3.3.8 completion-time (dateTime)
          
            This attribute indicates the date and time at which this
            job completed. 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.
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 79]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5.4 Document Attributes
          
          
          5.4.1 Document Data (document-data) Attributes (Set by a
          Client/End User)
          
            These attributes form the attribute group called
            "document-data".
          
            This group of attributes describes the document data for
            the job. These attributes also include the document data
            or reference it.
          
            All job attributes in other sections 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.
            The client must specify either the document-URL or
            document-content in Print.
          
            Except for document-content, the client 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 this attribute is specified, then document-content
            shall be unspecified.
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 80]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5.4.1.3 document-content (octetString)
          
            This attribute contains the actual contents of the
            document.
          
            If this attribute is specified, then document-URL shall
            be unspecified.
          
            This attribute shall be used during the transmission of
            the Print operation over a network. A Printer shall save
            the document data to a file and reference it with the
            document-URL. 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 Printer Identification (printer-identification
          Attributes (Set by the Administrator)
          
            These attributes form the attribute group called
            "printer-identification".
          
          
          5.5.1.1 printer-URL (url)
          
            This attribute contains the URL for the printer.
          
            An administrator shall determine a printer's URL and
            shall set this attribute to that URL. The precise format
            of a printer URL shall be implementation dependent.
          
          
          5.5.1.2 printer-name (name)
          
            This attribute contains the name of the printer. It is a
            name that is more user friendly than the printer-URL.
          
            An administrator shall determine a printer's name and
            shall set this attribute to that name. This name may be
            the last part of the printer's URL or it may be
            unrelated. In non-US-English locales, a name may contain
            characters that are not allowed in a URL.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 81]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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.
          
            A Printer Object in an Output Device contains a set of
            printer object attributes that represent an Output Device
            capable of rendering a document 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 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 that does
            not queue or spool.
          
            A Print Server, in the most common case, controls exactly
            one downstream Output Device. The Print Server's Printer
            object has attributes whose values are the same as those
            of the Printer object in the downstream Output Device.
          
            A Printer Object in a Print Server may contain a set of
            printer object attributes that are the union of the
            Printer objects in the downstream Output Devices.  This
            object extends the capabilities of an Output Device.  For
            example, an administrator might define a single Print
            Server to represent all of the Output Devices of the same
            type and capability in a single location, associated with
            a particular server.  A end user would normally send a
            print-job to a Print Server, and allow the Print Server
            to assign the job to a particular Output Device  based on
            the relative load and availability of the printers under
            its control, thus providing a load balancing service.
            However, nothing precludes an administrator from
            configuring a print system so that an end user can send a
            print-job directly to an Output Device.
          
            The attributes defined in this section provide
            information about a particular Printer.
          
          
          5.5.2.1 printer-location (text)
          
            This attribute identifies the location of this printer.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 82]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          5.5.2.2 printer-description (text)
          
            This attribute identifies the descriptive information
            about 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) jobs at
            this printer", 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 a URL used to obtain more
            information about   this specific  printer.   The
            information obtained from this URL is intended for
            end-user   consumption. Features outside the scope of IPP
            can be accessed from this URL.  The information is
            intended to be specific 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 a URL to use to locate the driver
            installer for this printer.   This attribute is intended
            for consumption by automata. The mechanics of print
            driver installation is outside the scope 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 and model of the
            printer.
          
          
          5.5.3.2 maximum-printer-speed (integerUnits)
          
            This attribute indicates the maximum printer speed of the
            Printer in units of pages per minute, impressions per
            minute, lines per minute, and characters per second. A
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 83]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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 to obtain more
            information about   this type of printer.   The
            information obtained from this URL is intended for
            end-user   consumption. Features outside the scope 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 to site specific modifications 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
            about the printer state.
          
            The protocol shall support all values for printer states.
            A Printer shall continually keep this attribute set to
            the value in the table below which most accurately
            reflects the state of the Printer..
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 84]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            The following standard values are defined:
          
               unknown     The Printer state is not known, or is
                           indeterminate. A Printer shall use
                           this state only if it cannot
                           determine its actual state.
          
               idle        If a Printer receives a job (whose
                           required resources are ready) while
                           in this state, such a job shall
                           transit into the processing state
                           immediately.
          
                           If the printer-state-reasons
                           attribute contains any reasons, they
                           shall be reasons that would not
                           prevent a job from transiting into
                           the processing state immediately,
                           e.g. is toner-low.
          
                           NOTE: if a Printer controls more than
                           one output device, the above
                           definition implies that a Printer is
                           idle if at least one output device is
                           idle.
          
               processing  If a Printer receives a job (whose
                           required resources are ready) while
                           in this state, such a job shall
                           transit into the pending state
                           immediately. 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 be reasons that do not prevent
                           the current job from printing, e.g.
                           toner-low.
          
                           NOTE: if a Printer controls more than
                           one output device, the above
                           definition implies that a Printer is
                           processing if at least one output
                           device is processing, and none is
                           idle.
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 85]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               stopped     If a Printer receives a job (whose
                           required resources are ready) while
                           in this state, such a job shall
                           transit into the pending state
                           immediately. Such a job shall transit
                           into the processing state only after
                           some human fixes the problem that
                           stopped the printer and after jobs
                           ahead of it complete printing.
          
                           The printer-state-reasons attribute
                           shall contain at least one reason,
                           e.g. paper-jam, which prevents it
                           from either processing the current
                           job or transiting a pending job to
                           the processing state.
          
                           NOTE: if a Printer controls more than
                           one output device, the above
                           definition implies that a Printer is
                           stopped only if all output devices
                           are stopped.
          
          
            NOTE: in the case where a Printer controls more than one
            output device, it is tempting to define stopped as when a
            sufficient number of output devices are stopped and leave
            it to an implementation to define the sufficient number.
            But such a rule complicates  the definition of stopped
            and processing. For example, with this alternate
            definition of stopped, a job can move from idle to
            processing without human intervention, even though the
            Printer is stopped.
          
          
          5.6.1.2 printer-state-reasons (setOf type2 keyword)
          
            This attribute supplies additional detail about 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":  it has the adornment of "report". An
                 implementation may choose to omit some or all
                 reports. Some reports specify finer granularity
                 about the printer state; others serve as a precursor
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 86]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
                 to a warning. A report shall contain nothing that
                 could affect the printed output.
          
            - "warning": it has the adornment of "warning". An
                 implementation may choose to omit some or all
                 warnings. Warnings serve as a precursor to an error.
                 A warning shall contain nothing that prevents a job
                 from completing, though in some cases the output may
                 be of lower quality.
          
            - "error": it has no adornment. An implementation shall
                 include all errors. If this attribute contains one
                 or more errors, printer shall be in the stopped
                 state.
          
            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 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
            output devices. An error on one output device that does
            not stop the Printer as a whole appears as a warning in
            the Printer's printer-state-reasons attribute. Such a
            Printer's printer-state value may be stopped even with no
            printer-state-reasons that are errors.
          
            The following standard values are defined:
          
               partly-stopped      When a Printer controls more than
                                   one output device, this reason
                                   indicates that one or more output
                                   devices are stopped. If the
                                   reason is a report, fewer than
                                   half of the output devices are
                                   stopped. If the reason is a
                                   warning, fewer than all of the
                                   output devices are stopped.
               media-needed        A tray has run out of media
               paper-jam           The printer has a paper jam.
          
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 87]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               paused              Someone has paused the Printer.
                                   In this state, a Printer shall
                                   not produce printed output, but
                                   it shall perform other operations
                                   requested by a client. If a
                                   Printer had been printing a job
                                   when the Printer was paused, the
                                   Printer shall resume printing
                                   that job when the Printer is no
                                   longer paused and leave no
                                   evidence in the printed output of
                                   such a pause .
               shutdown            Someone has removed a Printer
                                   from service, and it may be
                                   powered down or physical removed.
                                   In this state, a Printer shall
                                   not produce printed output, and
                                   unless the Printer is realized by
                                   a print server that is still
                                   active, the Printer shall perform
                                   no other operations requested by
                                   a client, including returning
                                   this value. If a Printer had been
                                   printing a job when it was
                                   shutdown, the Printer need not
                                   resume printing that job when the
                                   Printer is no longer shutdown. If
                                   the Printer resumes printing such
                                   a job, it may leave evidence in
                                   the printed output of such a
                                   shutdown, e.g. the part printed
                                   before the shutdown may be
                                   printed a second time after the
                                   shutdown..
               connecting-to-      The server has scheduled a job on
               printer             the Printer and is in the process
                                   of connecting to a shared network
                                   output device (and may not be
                                   able to actually start printing
                                   the job for an arbitrarily long
                                   time depending on the usage of
                                   the output device by other
                                   servers on the network).
          
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 88]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
               timed-out           The server was able to connect to
                                   the output device (or is always
                                   connected), but was unable to get
                                   a response from the output device
                                   in the time specified by the
                                   printer's printer-timeout-period
                                   attribute.
               stopping            The printer will be stopping in a
                                   while and will change its reason
                                   to printer-stopped. This reason
                                   is a non-critical, even for a
                                   Printer with a single output
                                   device. When an output-device
                                   ceases accepting jobs, the
                                   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 not affect
            the current job; rather it affects future jobs. This
            attribute may cause the Printer to reject jobs when the
            printer-state is idle or it may cause the Printer 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 in human
            readable text and it shall be set by the Printer.
          
            When a Printer returns the value of this attribute to a
            client, the Printer shall localize the value of this
            attribute to be in the locale of the user, as specified
            by the Get Attributes or Get Jobs operation.
          
            ISSUE: Give the syntax of this message in English.
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 89]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 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 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,
            such as why it is unavailable or when it is expected to
            be available.
          
          
          5.7 Printer Behavior (printer-behavior) Attributes
          
            These attribute specify the behavior of a printer.
          
            These attributes form the attribute group called
            "printer-behavior".
          
          
          5.7.1 Printer Behavior Attributes (set by the Administrator)
          
          
          5.7.1.1 printer-locale (locale)
          
            This attribute specifies the locale that the Printer
            operates in.
          
            The standard values are defined in the section on the
            document-locale attribute.
          
            ISSUE: reference the locales.
          
          
          5.7.1.2 fonts-substitutions (setOf setOf font)
          
            This attribute specifies an appropriate substitute for a
            font that is advertised as supported in the fonts-
            supported attribute, even though the Printer doesn't
            actually have the font available.
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 90]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
            This attribute consists of a set of font pairs: a font
            name and the font to use instead.
          
            If this attribute is unspecified, the Printer does not
            perform any font substitutions.
          
          
          5.7.1.3 scheduling-algorithm (type3 keyword)
          
            This attribute indicates 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 attribute specifies what fonts are available at the
            Printer or accessible to the Printer.  Documents may use
            these fonts without requiring that the fonts be
            downloaded with the document data.
          
            The standard values are font names.
          
            ISSUE: Should the IPP model include all information that
            is currently contained in printer definition files such
            as PostScripts printer definition (ppd) files?
          
          
          6. IANA Considerations
          
            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 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.
          
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 91]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          7. Security Considerations
          
            NOTE: There is another Internet-Draft called "Internet
            Printing Protocol/1.0: Security."  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 will be rolled into
            this one.
          
            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. 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.
          
            [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.
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 92]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 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. 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
          
            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
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 93]


            draft-ietf-ipp-model-00.txt, expires September 26, 1997
          
          
          
          INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
          
          
          
            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.
            Keith Carter, IBM Corporation
            Carl-Uno Manros, Xerox, Corp.
            Don Wright - Lexmark
            Steve Gebert - IBM
            Ray Lutz - Cognisys
            Mabry Dozier - QMS
            Lee Farrell - Canon Information Systems
            Hiroyuki Sato - Canon
            Pat Nogay - IBM
            Jim Walker - Dazel
            Jay Martin - Underscore
            Bill Wagner - DPI
            Stan McConnell - Xerox
            Bob Setterbo - Adobe
            Randy Turner - Sharp
            Rob Whittle - Novell
            Ron Bergman - Data Products
            Lloyd Young - Lexmark
            Andy Davidson - Tektronix
            Rick Landau - Digital
            David Kellerman - Northlake Software
            David Roach - Unisys
            Mike Timperman - Lexmark
            Chris Wellens - Interworking Labs
            Pete Loya - HP
            Bob Pentecost - HP
            Harry Lewis - IBM
            William Wagner - Digital Products
            Atsushi Yuki - Kyocera
            Rob Rhoads - Intel
            Jeff Barnett - IBM
            Jim Walker - Dazel
            Jeff Copeland - QMS
            Chuck Adams - Tektronix
          
          
          
          
          
          deBry, Hastings, Herriot, Isaacson, Powell         [Page 94]

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