home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-ipp-model-00.txt < prev    next >
Text File  |  1997-03-26  |  226KB  |  5,457 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.           INTERNET-DRAFT                                      R. deBry
  8.                                                        IBM Corporation
  9.                                                            T. Hastings
  10.                                                      Xerox Corporation
  11.                                                             R. Herriot
  12.                                                       Sun Microsystems
  13.                                                            S. Isaacson
  14.                                                           Novell, Inc.
  15.                                                              P. Powell
  16.                                             San Diego State University
  17.                                                         March 26, 1997
  18.  
  19.               Internet Printing Protocol/1.0: Model and Semantics
  20.                           draft-ietf-ipp-model-00.txt
  21.  
  22.           Status of this Memo
  23.  
  24.             This document is an Internet-Draft.  Internet-Drafts are
  25.             working documents of the Internet Engineering Task Force
  26.             (IETF), its areas, and its working groups.  Note that
  27.             other groups may also distribute working documents as
  28.             Internet-Drafts.
  29.  
  30.             Internet-Drafts are draft documents valid for a maximum
  31.             of six months and may be updated, replaced, or obsoleted
  32.             by other documents at any time.  It is inappropriate to
  33.             use Internet-Drafts as reference material or to cite them
  34.             other than as "work in progress."
  35.  
  36.             To learn the current status of any Internet-Draft, please
  37.             check the "1id-abstracts.txt" listing contained in the
  38.             Internet-Drafts Shadow Directories on ftp.is.co.za
  39.             (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific
  40.             Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US
  41.             West Coast).
  42.  
  43.           Abstract
  44.  
  45.             This document is one of a set of documents which together
  46.             describe all aspects of a new Internet Printing Protocol
  47.             (IPP).  IPP is an application level protocol that can be
  48.             used for distributed printing on the Internet.  The
  49.             protocol is heavily influenced by the printing model
  50.             introduced in the Document Printing Application (ISO/IEC
  51.             10175 DPA) standard.  Although DPA specifies the both end
  52.             user and administrative features,  IPP version 1.0
  53.             (v1.0)is focused only on end user functionality.
  54.  
  55.  
  56.  
  57.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 1]
  58.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  59.  
  60.  
  61.  
  62.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  63.  
  64.  
  65.             The full set of IPP documents includes:
  66.  
  67.                Internet Printing Protocol: Requirements
  68.                Internet Printing Protocol/1.0: Model and Semantics
  69.                Internet Printing Protocol/1.0: Security
  70.                Internet Printing Protocol/1.0: Protocol Specification
  71.                Internet Printing Protocol/1.0: Directory Schema
  72.  
  73.             The requirements document takes a broad look at
  74.             distributed printing functionality, and it enumerates
  75.             real-life scenarios which help to clarify the features
  76.             that need to be included in a printing protocol for the
  77.             Internet.  It identifies requirements for three types of
  78.             users:  end users, operators, and administrators.  The
  79.             requirements document calls out a subset of end user
  80.             requirements which must be satisfied in the first version
  81.             of IPP.  Operator and administrator requirements are out
  82.             of scope for v1.0. The model and semantics document
  83.             describes a simplified model with abstract objects, their
  84.             attributes, and their operations. The model introduces a
  85.             Printer object and a Job object.  The Job object supports
  86.             multiple documents per job.  The security document covers
  87.             potential threats and proposed counters to those threats.
  88.             The protocol specification is formal document which
  89.             incorporates the ideas in all the other documents into a
  90.             concrete mapping using clearly defined data
  91.             representations and transport protocol mappings that real
  92.             implementers can use to develop interoperable client and
  93.             server side components. Finally, the directory schema
  94.             document shows a generic schema for directory service
  95.             entries that represent  instances of IPP Printers.
  96.  
  97.             This document is the "Internet Printing Protocol/1.0:
  98.             Model and Semantics" document.
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 2]
  116.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  117.  
  118.  
  119.  
  120.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  121.  
  122.  
  123.                                 Table of Contents
  124.  
  125.  
  126.  
  127.           1. Introduction............................................7
  128.  
  129.            1.1 Conformance ..........................................8
  130.             1.1.1 Client Considerations .............................9
  131.             1.1.2 Server Considerations .............................9
  132.  
  133.  
  134.           2. Simplified Printing Model..............................10
  135.  
  136.  
  137.           3. IPP Objects............................................14
  138.  
  139.            3.1 Printer .............................................14
  140.  
  141.            3.2 Job .................................................17
  142.  
  143.            3.3 Document Object .....................................18
  144.  
  145.            3.4 Object Relationships ................................19
  146.  
  147.            3.5 Object Attributes ...................................19
  148.  
  149.            3.6 Object Identity .....................................21
  150.  
  151.  
  152.           4. IPP Operations.........................................22
  153.  
  154.            4.1 Introduction ........................................22
  155.  
  156.            4.2 Operation Semantics .................................23
  157.             4.2.1 Print Operation ..................................23
  158.               4.2.1.1 Print Request ................................24
  159.               4.2.1.2 Print Response ...............................25
  160.             4.2.2 Cancel Job Operation .............................25
  161.               4.2.2.1 Cancel-Job Request ...........................26
  162.               4.2.2.2 Cancel-Job Response ..........................26
  163.             4.2.3 Get Attributes Operation .........................26
  164.               4.2.3.1 Get-Attributes Request .......................27
  165.               4.2.3.2 Get-Attributes Response ......................27
  166.             4.2.4 Get Jobs Operation ...............................28
  167.               4.2.4.1 Get-Jobs Request .............................28
  168.               4.2.4.2 Get-Jobs Response ............................29
  169.  
  170.  
  171.  
  172.  
  173.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 3]
  174.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  175.  
  176.  
  177.  
  178.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  179.  
  180.  
  181.           5. Object Attributes......................................30
  182.  
  183.            5.1 Attribute Syntaxes ..................................30
  184.             5.1.1 Attribute Extensibility ..........................34
  185.             5.1.2 Relationship of Job and Printer Attributes .......36
  186.             5.1.3 Attribute Value Tags .............................38
  187.               5.1.3.1 Tagged Printer Attributes ....................38
  188.               5.1.3.2 Tagged Job Attributes ........................39
  189.  
  190.            5.2 Job Template (job-template) Attributes ..............39
  191.             5.2.1 Job Sheet Attributes (Set by Client/End User) ....40
  192.               5.2.1.1 job-sheets (type4 keyword) ...................40
  193.             5.2.2 Job Notification (job-notification) Attributes (Set
  194.             by a Client/End User) ..................................41
  195.               5.2.2.1 notification-events (setOf type2 keyword) ....41
  196.               5.2.2.2 notification-addresses (setOf url) ...........42
  197.             5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
  198.             Client/End User) .......................................43
  199.               5.2.3.1 job-priority (integer(1:100)) ................43
  200.               5.2.3.2 job-hold-until (type4 keyword) ...............44
  201.             5.2.4 Job Production (job-production) Attributes (Set by
  202.             Client/End User) .......................................45
  203.               5.2.4.1 multiple-documents-are (type1 keyword) .......47
  204.               5.2.4.2 best-effort (type2 keyword) ..................48
  205.             5.2.5 Document Production (document-production)
  206.             Attributes (Set by Client/End User) ....................49
  207.               5.2.5.1 medium (setOf type2 keyword) .................49
  208.               5.2.5.2 number-up (type3Enum) ........................57
  209.               5.2.5.3 sides (type2 keyword) ........................58
  210.               5.2.5.4 printer-resolution (type2 keyword) ...........59
  211.               5.2.5.5 print-quality (type2 keyword) ................60
  212.               5.2.5.6 copies (integer(1:2**31 - 1)) ................61
  213.               5.2.5.7 finishing (setOf type2 keyword) ..............61
  214.               5.2.5.8 compression (type2 keyword) ..................63
  215.             5.2.6 Document Format Attributes (Set by Client/End User)63
  216.               5.2.6.1 document-format (type2 keyword) ..............63
  217.             5.2.7 Job Size (job-size) Attributes (Set by Client and
  218.             Printer) ...............................................68
  219.               5.2.7.1 job-k-octets (integer(0:2**31 - 1)) ..........69
  220.               5.2.7.2 job-impressions (integer(0:2**31 - 1)) .......70
  221.               5.2.7.3 job-media-sheets (integer(0:2**31 - 1)) ......70
  222.             5.2.8 Number of Documents (Set by Printer) .............71
  223.               5.2.8.1 number-of-documents (integer(1:2**31 - 1)) ...71
  224.  
  225.            5.3 Job Attributes Set by the Printer ...................71
  226.             5.3.1 Job Identification (job-identification) Attributes
  227.             (Set by the Printer) ...................................71
  228.               5.3.1.1 job-URL (url) ................................71
  229.  
  230.  
  231.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 4]
  232.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  233.  
  234.  
  235.  
  236.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  237.  
  238.  
  239.             5.3.2 Job Owner (job-owner) Attributes (Set by a Printer)72
  240.               5.3.2.1 job-originating-user (name) ..................72
  241.               5.3.2.2 job-originating-host (name) ..................72
  242.               5.3.2.3 user-locale (type3 keyword) ..................72
  243.               5.3.2.4 job-name (name) ..............................73
  244.             5.3.3 Job Status (job status) Attributes (Set by Printer)73
  245.               5.3.3.1 job-state (type1 keyword) ....................73
  246.               5.3.3.2 job-state-reasons (setOf  type2 keyword) .....76
  247.               5.3.3.3 job-state-as-text (text) .....................78
  248.               5.3.3.4 output-device-assigned (url) .................78
  249.               5.3.3.5 submission-time (dateTime) ...................79
  250.               5.3.3.6 number-of-intervening-jobs (integer(0:2**31 -
  251.               1)) ..................................................79
  252.               5.3.3.7 job-message-from-operator (text) .............79
  253.               5.3.3.8 completion-time (dateTime) ...................79
  254.  
  255.            5.4 Document Attributes .................................80
  256.             5.4.1 Document Data (document-data) Attributes (Set by a
  257.             Client/End User) .......................................80
  258.               5.4.1.1 document-name (name) .........................80
  259.               5.4.1.2 document-URL (url) ...........................80
  260.               5.4.1.3 document-content (octetString) ...............81
  261.  
  262.            5.5 Printer Description  (printer-description) Attributes81
  263.             5.5.1 Printer Identification (printer-identification
  264.             Attributes (Set by the Administrator) ..................81
  265.               5.5.1.1 printer-URL (url) ............................81
  266.               5.5.1.2 printer-name (name) ..........................81
  267.             5.5.2 Printer Description Attributes (Set by the
  268.             Administrator) .........................................82
  269.               5.5.2.1 printer-location (text) ......................82
  270.               5.5.2.2 printer-description (text) ...................83
  271.               5.5.2.3 printer-more-info-site (url) .................83
  272.               5.5.2.4 printer-driver-installer  (url) ..............83
  273.             5.5.3 Printer Description Attributes (Set by the
  274.             Manufacturer) ..........................................83
  275.               5.5.3.1 printer-make-and-model (text) ................83
  276.               5.5.3.2 maximum-printer-speed (integerUnits) .........83
  277.               5.5.3.3 printer-more-info-manf (url) .................84
  278.  
  279.            5.6 Printer Status (printer-status)Attributes ...........84
  280.             5.6.1 Printer Status Attributes (Set by the Printer) ...84
  281.               5.6.1.1 printer-state (type1 keywordEnum) ............84
  282.               5.6.1.2 printer-state-reasons (setOf type2 keyword) ..86
  283.               5.6.1.3 printer-is-accepting-jobs (boolean) ..........89
  284.               5.6.1.4 printer-state-as-text (text) .................89
  285.               5.6.1.5 queued-job-count (integer(0:2**31 - 1)) ......90
  286.  
  287.  
  288.  
  289.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 5]
  290.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  291.  
  292.  
  293.  
  294.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  295.  
  296.  
  297.             5.6.2 Printer Status Attributes (Set by the
  298.             Administrator) .........................................90
  299.               5.6.2.1 printer-message-from-the-operator (text) .....90
  300.  
  301.            5.7 Printer Behavior (printer-behavior) Attributes ......90
  302.             5.7.1 Printer Behavior Attributes (set by the
  303.             Administrator) .........................................90
  304.               5.7.1.1 printer-locale (locale) ......................90
  305.               5.7.1.2 fonts-substitutions (setOf setOf font) .......90
  306.               5.7.1.3 scheduling-algorithm (type3 keyword) .........91
  307.               5.7.1.4 printer-fonts (setOf font) ...................91
  308.  
  309.  
  310.           6. IANA Considerations....................................91
  311.  
  312.  
  313.           7. Security Considerations................................92
  314.  
  315.  
  316.           8. References.............................................92
  317.  
  318.  
  319.           9. Author's Address.......................................93
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 6]
  348.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  349.  
  350.  
  351.  
  352.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  353.  
  354.  
  355.  
  356.           1. Introduction
  357.  
  358.             The Internet Printing Protocol (IPP) is an application
  359.             level protocol that can be used for distributed printing
  360.             on the Internet.  The protocol is heavily influenced by
  361.             the printing model introduced in the Document Printing
  362.             Application (ISO/IEC 10175 DPA) standard.  Although DPA
  363.             identifies both end user and administrative features, the
  364.             first version of IPP is focused only on the end user
  365.             functionality.
  366.  
  367.             Section 2 is a comparison between the new IPP model and a
  368.             generic description of the various solutions and
  369.             architectures that exist in today's distributed printing
  370.             products.  This section shows a high level mapping
  371.             between the complex set of inter-dependent distributed
  372.             printing components and the IPP model.  This new IPP
  373.             model simplifies the back-end implementations by exposing
  374.             only the objects, attributes, and operations that are
  375.             essential for end user access and control of the print
  376.             subsystem.  When future versions of IPP include operator
  377.             and administrator requirements, the model can be extended
  378.             to support the appropriate objects, attributes, and
  379.             operations.
  380.  
  381.             Section 3 introduces the full semantics of the new
  382.             Printer, Job, and Document objects in the IPP model.  It
  383.             covers how instances of these objects are identified,
  384.             named, and related to each other.
  385.  
  386.             Section 4 covers the operations which are part of the IPP
  387.             model.  These operations include: the Print, Cancel, Get
  388.             Attributes, and Get Jobs operations.  The Print and Get
  389.             Jobs operations are performed by a Printer. The Get
  390.             Attributes operation  is performed by either a Printer or
  391.             a Job.  A Cancel Job operation is performed on a Job
  392.             object.
  393.  
  394.             Section 5 describes the attributes, their syntaxes, and
  395.             semantics which are part of the IPP model.  Each object's
  396.             attributes are described, and the attributes are grouped
  397.             into logical groups to help clarify their relationships
  398.             and meaning.
  399.  
  400.             Sections 6-9 cover security, technical references, and
  401.             author contact information.
  402.  
  403.  
  404.  
  405.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 7]
  406.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  407.  
  408.  
  409.  
  410.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  411.  
  412.  
  413.           1.1 Conformance
  414.  
  415.             This specification uses the verbs: "shall", "should",
  416.             "may", and "need not" to specify conformance requirements
  417.             as follows:
  418.  
  419.             - "shall":  indicates an action that the subject of the
  420.             sentence must implement in order to claim conformance to
  421.             this specification
  422.  
  423.             - "may":  indicates an action that the subject of the
  424.             sentence does not have to implement in order to claim
  425.             conformance to this specification, in other words that
  426.             action is an implementation option
  427.  
  428.             - "need not":  indicates an action that the subject of
  429.             the sentence does not have to implement in order to claim
  430.             conformance to this specification.  The verb "need not"
  431.             is used instead of "may not", since "may not" sounds like
  432.             a prohibition.
  433.  
  434.             - "should":  indicates an action that is recommended for
  435.             the subject of the sentence to implement, but is not
  436.             required, in order to claim conformance to this
  437.             specification.
  438.  
  439.             A conforming implementation shall implement all
  440.             operations and  objects defined in this document.
  441.  
  442.             Attributes are conditionally mandatory.  This means that
  443.             an implementation need not include an attribute if the
  444.             attribute controls a feature that the implementation does
  445.             not support.  For example, a printer that can only print
  446.             on one side need not implement the "sides" attribute.  A
  447.             printer that does not support any of the finishing
  448.             attribute values, need not implement the "finishing"
  449.             attribute.  An implementation that does not allow for
  450.             non-ready supported values in addition to ready values,
  451.             need not implement a full set of possibly supported
  452.             values.  A printer with only a single input tray with
  453.             only one media type in that tray need not implement the
  454.             "media" attribute.
  455.  
  456.             Some of the attributes include values which are
  457.             extensible.  The set of attributes themselves are also
  458.             extensible.  Therefor, an IPP implementation (either
  459.             client or server) shall support these extensions.  Some
  460.             implementations may choose to ignore private extensions,
  461.  
  462.  
  463.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 8]
  464.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  465.  
  466.  
  467.  
  468.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  469.  
  470.  
  471.             others my be able to support these values.  On the client
  472.             side, this might mean displaying the values to the end
  473.             user via some extensible user interface mechanism.  On
  474.             the server side,  it might mean actually performing the
  475.             semantic action implied by the new value.  In either
  476.             case, the operation shall not fail because either the
  477.             client or server does not understand extended values or
  478.             attributes.
  479.  
  480.             IPP allows for variations on attributes using a mechanism
  481.             called "attribute tags" or "adornments" (see section
  482.             5.1.3).  Clients can supply attributes with tags that
  483.             represent variations on the normal (unadorned) attribute
  484.             semantics.  Servers can also respond with tagged
  485.             attribute information.  Tags are most applicable and
  486.             useful in more sophisticated implementations.  Therefor,
  487.             all adornment tags are optional for conforming
  488.             implementations.  This allows for interoperability since
  489.             the behavior of implementations which can not support the
  490.             semantics of the adornment tags is consistent with the
  491.             behavior implied by the absence of all tags.
  492.  
  493.  
  494.           1.1.1 Client Considerations
  495.  
  496.             IPP clients shall support all operations, objects, and
  497.             attributes as defined in this document.  However, there
  498.             is no conformance requirements placed on the user
  499.             interfaces provided by IPP clients or their applications.
  500.             For example, one application might not allow an end user
  501.             to submit multiple documents per job, while another does.
  502.             One application might first query a Printer object in
  503.             order to supply a graphical user interface (GUI) dialogue
  504.             box with current supported and default values whereas a
  505.             different application might not.  A conforming client may
  506.             choose to ignore any adornment tags it does not
  507.             understand.
  508.  
  509.  
  510.           1.1.2 Server Considerations
  511.  
  512.             It is not required that a conforming server support all
  513.             (standard) values of all supported attributes.  For
  514.             example, it is not required that a printer implement all
  515.             finishing methods indicated by the standard values.  The
  516.             explicit requirement of the term "supported", with
  517.             respect to one of the attributes that deal with printer
  518.             functions or resources, is that the server shall
  519.  
  520.  
  521.           deBry, Hastings, Herriot, Isaacson, Powell          [Page 9]
  522.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  523.  
  524.  
  525.  
  526.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  527.  
  528.  
  529.             recognize the attribute and those values that are
  530.             supported, and shall be able to respond to a query about
  531.             which values that printer does, in fact, support.  A
  532.             conforming server shall ignore any adornment tags it does
  533.             not understand.
  534.  
  535.  
  536.           2. Simplified Printing Model
  537.  
  538.             In order to a achieve its goal of realizing a workable
  539.             printing protocol for the Internet, IPP is based on a
  540.             simplified printing model which abstracts the many (often
  541.             complex) real world printing solutions.  Many of these
  542.             include features, interfaces, and relationships that are
  543.             beyond the scope of IPP.  IPP has to run in a distributed
  544.             computing environment where requesters of print services
  545.             (clients, applications, PC drivers, etc.) cooperate and
  546.             interact with print service providers.  Although the
  547.             underlying configuration may be a complex n-tier
  548.             client/server system, an important simplifying step in
  549.             the IPP model is to expose only the key objects and
  550.             interfaces.  The IPP model encapsulates the important
  551.             elements into three simple objects:
  552.  
  553.                Printer (section 3.1)
  554.                Job (section 3.2)
  555.                Document (section 3.3)
  556.  
  557.             Each of these objects has a set of operations associated
  558.             with it.  These include:
  559.  
  560.                Printer:
  561.                  Print (section 4.2.1)
  562.                  Get Attributes (section 4.2.3)
  563.                  Get Jobs (section 4.2.4)
  564.                Job object
  565.                  Get Attributes (section 4.2.3)
  566.                  Cancel Job (section 4.2.2)
  567.  
  568.             There are no operations defined for a Document object.
  569.             All document information is accessed through a Job object
  570.             and its operations.
  571.  
  572.             It is important, however, to understand that in real
  573.             system implementations (which lie underneath the
  574.             abstracted IPP model), there are other components of a
  575.             print service which are not explicitly modeled in the IPP
  576.             model.  These components allow for additional operator
  577.  
  578.  
  579.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 10]
  580.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  581.  
  582.  
  583.  
  584.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  585.  
  586.  
  587.             and administrator functionality. These components are
  588.             illustrated in the following figure:
  589.  
  590.  
  591.                                        +--------------+
  592.                                        |  Application |
  593.                                        +------+-------+
  594.                                               |
  595.                              o         +..............+
  596.                             \|/        |   Spooler    |
  597.                             / \        +..............+
  598.                           End-User            |
  599.                 +-----------+ +-----+  +..............+   Existing
  600.                 |  Browser  | | GUI |  | Print Driver |   Print
  601.                 +-----+-----+ +--+--+  +..............+   Client
  602.                       |          |            |            |
  603.                       |      +---+------------+---+   +----+----+
  604.           N   D   S   |      |      IPP Client    |<--| Gateway |
  605.           O   I   E   |      +---------+----------+   +---------+
  606.           T   R   C   |                |
  607.           I   E   U   |
  608.           F   C   R  -------------- Transport --------
  609.           I   T   I
  610.           C   O   T                    |         --+
  611.           A   R   Y           +--------+--------+  |
  612.           T   Y               |    IPP Server   |  |
  613.           I                   +--------+--------+  |
  614.           O                            |           |
  615.           N                   +.................+  | IPP Printer
  616.                               |  Print Service  |  |
  617.                               +.................+  |
  618.                                        |           |
  619.                                 Output Device(s)   |
  620.                                                  --+
  621.  
  622.             This figure shows  that the abstraction of a Printer
  623.             object not only supports the functionality of the actual
  624.             output device but additionally supports (where
  625.             implementation configuration requires) the spooling,
  626.             scheduling, and multiple output device management
  627.             functions often associated with a print server.
  628.  
  629.             In the  IPP model, users take on the role of end users,
  630.             operators, or administrators based on authentication and
  631.             authorization mechanisms provided through the security
  632.             service(s).  Printers are registered as entries in the
  633.             directory.  End users find and select Printers based on
  634.             some sort of filtered and context based searching using
  635.  
  636.  
  637.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 11]
  638.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  639.  
  640.  
  641.  
  642.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  643.  
  644.  
  645.             the directory.  The directory is used to store relatively
  646.             static information about the Printer.  This allows end
  647.             users to search for and find Printers that match their
  648.             search criteria (name, context, printer capabilities,
  649.             etc.)  All information about the Printer, both static and
  650.             dynamic information, can be accessed directly from the
  651.             Printer itself.  The more dynamic information associated
  652.             with a Printer includes state, currently loaded and ready
  653.             media, number of jobs, errors, warnings, etc.  Once an
  654.             end user selects a Printer, the end user interacts with
  655.             that Printer in order to determine status and
  656.             capabilities of the Printer and then submits jobs to the
  657.             Printer.  When a job is submitted to the Printer, a Job
  658.             object is created.  The end user then interacts with this
  659.             new Job to query its status and monitor the progress of
  660.             the job.  End users may also cancel the Job.  The end
  661.             user is able to register to receive certain events which
  662.             are then routed using the notification service(s).
  663.  
  664.             It should be obvious, that not all existing or even
  665.             future print subsystems conform to this model directly.
  666.             The IPP model however, can be overlaid on top of  any of
  667.             these products and architectures. How does this IPP model
  668.             fit on top of these systems?  In order to answer that
  669.             question we must first consider a generic model that
  670.             allows us to describe the many different features and
  671.             components of these various systems.
  672.  
  673.             Consider the figure above.  Each distributed print
  674.             service product will include elements from the following
  675.             list:
  676.  
  677.             End Users:  End Users are humans who submit print jobs.
  678.             End users will  issue IPP operation requests  and receive
  679.             IPP operation responses through an end user interface.
  680.  
  681.             GUI: A Graphical End User Interface developed
  682.             specifically for interacting with an IPP Client.
  683.  
  684.             Browser: A World-Wide-Web Browser. IPP conforming systems
  685.             will support access to print  functions using standard
  686.             Web Browsers.
  687.  
  688.             Applications: Application software which produces printer
  689.             output and submits it for printing. Some applications
  690.             generate printer page description languages directly,
  691.             while others depend on operating system components, such
  692.             as a Print Driver, to do so.
  693.  
  694.  
  695.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 12]
  696.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  697.  
  698.  
  699.  
  700.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  701.  
  702.  
  703.             Spooler: A system component which stores print jobs prior
  704.             to submitting them for printing. On the client side, a
  705.             spooler allows the application to run asynchronously from
  706.             the actual transmission and print operation. On the
  707.             server side, a spooler allows the server to receive and
  708.             store multiple jobs while printing. Spoolers are optional
  709.             components.
  710.  
  711.             Print Driver: In some desktop operating systems, such as
  712.             Windows, Print Drivers are used by the  operating system
  713.             to generate the actual PDL for a given device from an
  714.             internal, device independent presentation format. This
  715.             keeps the applications themselves  from having to worry
  716.             about generating device specific data streams for each
  717.             possible output device. Print Drivers do not exist in all
  718.             environments.
  719.  
  720.             IPP clients:  IPP clients are computer network nodes with
  721.             which humans, though a GUI or a command line, or programs
  722.             interact in order to manipulate the distributed print
  723.             service. An IPP client uses the IPP protocol to invoke
  724.             IPP operations on another node. Each operation has
  725.             arguments and results associated with it. The IPP client
  726.             provides arguments which add information about the
  727.             operation requested, and receives results which describe
  728.             the status and outcome of the operation.
  729.  
  730.             Gateway:  Gateways provide a mechanism for supporting the
  731.             clients of existing print services, such as LPR. A
  732.             gateway transforms the protocol of an existing client
  733.             into IPP and vice-versa.
  734.  
  735.             Transport: The transport system and protocol used to
  736.             carry IPP messages across the network. IPP assumes a
  737.             reliable transport protocol.
  738.  
  739.             Notification Services: Notification services in the
  740.             network provide a means for asynchronously communicating
  741.             events such as completion of a print job back to an end-
  742.             user. These notification services are used by IPP but are
  743.             not included natively in the IPP protocol. Example would
  744.             be include e-mail, HTTP POSTs, or any other similar
  745.             service.
  746.  
  747.             Directory Services: Directory services in the network
  748.             provide a means where IPP Printers can be advertised by
  749.             registering with the directory.  Although not mandatory
  750.             in an IPP conforming system, the use of a directory
  751.  
  752.  
  753.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 13]
  754.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  755.  
  756.  
  757.  
  758.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  759.  
  760.  
  761.             service is suggested in order to provide printer location
  762.             services to end users. A generic directory schema for IPP
  763.             Printers is described in "Internet Printing Protocol/1.0:
  764.             Directory Schema".
  765.  
  766.             Security: The IPP protocol itself does not contain any
  767.             unique security mechanisms, but rather it depends upon
  768.             existing security systems, such as Secure Sockets Layer
  769.             (SSL) to provide authentication, privacy and message
  770.             integrity.
  771.  
  772.             IPP Server:  An IPP Printer object is an abstraction of
  773.             some print service provider.  An Printer, by definition,
  774.             supports the IPP protocol.  The component that implements
  775.             the protocol on behalf of the Printer is called an IPP
  776.             Server.  In real configurations, an IPP Server may be a
  777.             component of a print server or an output device.
  778.  
  779.             Print Service:  Print Services may be embedded in an
  780.             output device or implemented in a separate system which
  781.             is associated with an output device. The print service
  782.             receives requests from the IPP client, performs the
  783.             requested operation,  and sends back results which
  784.             describe the status and outcome of the operation
  785.             requested.  A print service normally provides queuing,
  786.             job management, and device management functions.
  787.  
  788.             Output Devices: Output devices interpret the print data
  789.             and generate some form of output. In the case of a laser
  790.             printer, for example, this normally means rasterizing the
  791.             print data and putting the resulting marks on paper.  An
  792.             output device may receive print data directly from a
  793.             client or through a Print server.
  794.  
  795.             A specific implementation of a print service may not
  796.             include all of the elements described here, and the
  797.             physical packaging of elements is up to the
  798.             implementation. For example, an output device may include
  799.             a queue or a print server may include a rasterizer.
  800.  
  801.  
  802.           3. IPP Objects
  803.  
  804.  
  805.           3.1 Printer
  806.  
  807.             A major component of the IPP model is the Printer object.
  808.             To the end user, the Printer object is an abstraction of
  809.  
  810.  
  811.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 14]
  812.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  813.  
  814.  
  815.  
  816.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  817.  
  818.  
  819.             not only  the functionality typically associated with an
  820.             actual output device, but also the abstraction
  821.             additionally supports (where necessary) the spooling,
  822.             scheduling, and multiple output device management
  823.             functions often associated with a print server.
  824.  
  825.             The capabilities and state of an IPP Printer are
  826.             described by its attributes.  Printer attributes are
  827.             defined in the following categories:
  828.  
  829.                Job Template Attributes (section 5.2)
  830.                Printer Description Attributes (section 5.5)
  831.                Printer Status Attributes (section 5.6)
  832.                Printer Behavior attributes (section 5.7)
  833.  
  834.             Operations which can be invoked on a printer include:
  835.  
  836.                Print (section 4.2.1)
  837.                Get Attributes (section 4.2.3)
  838.                Get Jobs (section 4.2.4)
  839.  
  840.             An instance of a Printer object implements IPP.  Using
  841.             the protocol, end users may query the attributes of the
  842.             Printer, submit jobs to the Printer, determine subsequent
  843.             states of submitted and queued jobs, and cancel their own
  844.             print jobs. The realization of a Printer object may take
  845.             on different forms for any given configuration of real
  846.             components. However, the details of the configuration of
  847.             real components must be transparent to the end user.
  848.  
  849.             Since a Printer object is an abstraction of a generic
  850.             document output device, an IPP Printer object could be
  851.             used to represent any real or virtual device with
  852.             semantics consistent with the Printer object. For
  853.             example, an instance of a  Printer object could be used
  854.             to front end a fax-out device, any kind of imager, or
  855.             even a CD writer.
  856.  
  857.             Some examples of configurations supporting a Printer
  858.             object include:
  859.  
  860.                1) An output device, with no spooling capabilities
  861.                2) An output device, with a built-in spooler
  862.                3) A print server supporting  IPP with one or more
  863.           associated
  864.                     output devices
  865.                  3a) The associated output devices may or may not be
  866.           capable
  867.  
  868.  
  869.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 15]
  870.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  871.  
  872.  
  873.  
  874.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  875.  
  876.  
  877.                       of spooling jobs
  878.                  3b) The associated output devices may or may not
  879.           support IPP
  880.  
  881.             See the following figures for some examples on how to
  882.             view Printer objects on top of other printing system
  883.             configurations.  The embedded case represents
  884.             configurations 1 and 2.  Configuration number 3 is
  885.             represented by the hosted and fan-out figures below.
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 16]
  928.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  929.  
  930.  
  931.  
  932.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  933.  
  934.  
  935.             Legend:
  936.  
  937.             ##### indicates a Printer object which is
  938.                   either embedded in an output device or is
  939.                   hosted in a server.  A Printer object
  940.                   may or may not queue/spool.
  941.  
  942.             any   indicates any network protocol or direct
  943.                   connect, including IPP
  944.  
  945.  
  946.             embedded printer:
  947.                                                       output device
  948.                                                     +---------------+
  949.              O   +--------+                         |  ###########  |
  950.             /|\  | client |------------IPP------------># Printer #  |
  951.             / \  +--------+                         |  ###########  |
  952.                                                     +---------------+
  953.  
  954.  
  955.             hosted printer:
  956.                                                     +---------------+
  957.              O   +--------+        ###########      |               |
  958.             /|\  | client |--IPP--># Printer #-any->| output device |
  959.             / \  +--------+        ###########      |               |
  960.                                                     +---------------+
  961.  
  962.  
  963.                                                     +---------------+
  964.             fan out:                                |               |
  965.                                                 +-->| output device |
  966.                                             any/    |               |
  967.              O   +--------+      ###########  /     +---------------+
  968.             /|\  | client |-IPP-># Printer #-*
  969.             / \  +--------+      ###########  \     +---------------+
  970.                                             any\    |               |
  971.                                                 +-->| output device |
  972.                                                     |               |
  973.                                                     +---------------+
  974.  
  975.  
  976.  
  977.           3.2 Job
  978.  
  979.             A Job object is used to model a job.  A job can contain
  980.             one or more documents.  The information required to
  981.             create a Job object is sent in a Print operation from the
  982.             end user via a client implementation to a Printer.  The
  983.  
  984.  
  985.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 17]
  986.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  987.  
  988.  
  989.  
  990.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  991.  
  992.  
  993.             Printer may perform some validation checks to verify that
  994.             the job may indeed be processed.  For example, the Print
  995.             operation may request that the documents within the job
  996.             be printed duplex (on both sides of the media).  However,
  997.             the Printer may not support such a feature.  Once the
  998.             Printer validates the submitted information, a Job object
  999.             is created.  The instance of the Job object is
  1000.             initialized with information from the Print request along
  1001.             with default information from the Printer.  This document
  1002.             defines rules which define which pieces of information
  1003.             override other pieces of information and what to do in
  1004.             the event of conflicts between what is possible and what
  1005.             is requested.
  1006.  
  1007.             Job attributes are broken up into the following groups:
  1008.  
  1009.                Job Template Attributes optionally supplied by the
  1010.           client/end user
  1011.                  Job Sheet Attributes (section 5.2.1)
  1012.                  Job Notification Attributes (section 5.2.2)
  1013.                  Job Scheduling Attributes (section 5.2.3)
  1014.                  Job Production Attributes (section 5.2.4)
  1015.                  Document Production Attributes (section 5.2.5)
  1016.                  Document Format Attributes (section 5.2.6)
  1017.                Job Template Attributes set by Client and Printer
  1018.                  Job Size Attributes (section 5.2.7)
  1019.                Job Template Attributes set by the Printer
  1020.                  Number of Documents Attribute (section 5.2.8)
  1021.                Job Attributes set by the Printer
  1022.                  Job Identification Attributes (section 5.3.1)
  1023.                  Job Owner Attributes (section 5.3.2)
  1024.                  Job Status Attributes (section  5.3.3)
  1025.  
  1026.             The following operations can be invoked on Jobs:
  1027.  
  1028.                Cancel Job (section 4.2.2)
  1029.                Get Attributes (section 4.2.3)
  1030.  
  1031.           3.3 Document Object
  1032.  
  1033.             Documents consist of printable data and attributes which
  1034.             describe the data to be printed.  In this version of the
  1035.             protocol only the document format attribute may be
  1036.             defined for individual documents.
  1037.  
  1038.             Document attributes include:
  1039.  
  1040.                Document Attributes (section 5.4)
  1041.  
  1042.  
  1043.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 18]
  1044.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1045.  
  1046.  
  1047.  
  1048.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1049.  
  1050.  
  1051.  
  1052.             Currently no operations are defined on documents.
  1053.  
  1054.  
  1055.           3.4 Object Relationships
  1056.  
  1057.             Instances of objects within the system have relationships
  1058.             which must be maintained persistently along with the
  1059.             persistent storage of the object attributes.  A Printer
  1060.             can represent one or more output devices.  An output
  1061.             device can be represented by one or more Printer objects.
  1062.             A Printer can contain zero or more Job objects.  A Job
  1063.             object is contained in exactly one Printer object.  A Job
  1064.             object contains one or more Documents.  If the Document
  1065.             is simply a reference to some print data stream, the
  1066.             reference may be used in multiple documents in the same
  1067.             Job or even in different Jobs.  If the Document is not
  1068.             just a reference, but an actual stream of print data, it
  1069.             shall only be contained in one Document.
  1070.  
  1071.  
  1072.           3.5 Object Attributes
  1073.  
  1074.             Each object type is defined by a set of attributes that
  1075.             support and describe the realization of each instance of
  1076.             an object.  That is, a Printer object is defined as
  1077.             specific set of attributes that are associated with each
  1078.             instance of a Printer object.  In the same manner, a Job
  1079.             object is defined by defining the set of attributes that
  1080.             will be associated with each instance of a Job object.
  1081.             These attributes are defined in section 5 of this
  1082.             document.  Some attributes apply to only a Job object.
  1083.             Some apply to only a Printer object.
  1084.  
  1085.             In addition, there are some attributes that are shared
  1086.             between both Printer objects and Job objects.  These
  1087.             attributes are defined in section 5.2.  They are called
  1088.             Job Template attributes.  When one of these attributes is
  1089.             part of a Job object, it specifies some end user job
  1090.             processing instruction.  It describes "what is wanted" by
  1091.             the end user.  When the attribute is part of a Printer
  1092.             object, it specifies what the printer is capable of .  It
  1093.             describes "what is supported" by this instance of a
  1094.             Printer.  Also, as a Printer attribute, , the attribute
  1095.             may have an optional default value which shall be used
  1096.             for Jobs which do not supply an attribute value .  This
  1097.             default value describes "what will happen" if not
  1098.             supplied in the by the end user in the Print Request.
  1099.  
  1100.  
  1101.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 19]
  1102.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1103.  
  1104.  
  1105.  
  1106.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1107.  
  1108.  
  1109.             For example, one such Job Template attribute is the "job-
  1110.             priority" attribute.  When this attribute is part of a
  1111.             Printer object, its value us a range of job priority
  1112.             values. This range indicates what job priorities are
  1113.             supported at this Printer.  It may also have a default
  1114.             value that determines what the job priority will be if
  1115.             not supplied  in the Print Request.  When the "job-
  1116.             priority" attribute is included with the Print Request,
  1117.             it specifies the desired job priority for this job. If
  1118.             the request does not include the job-priority attribute,
  1119.             the Printer creates the Job object using the default
  1120.             value from Printer attribute.  If the Print Request does
  1121.             supply a job priority value, the Printer must validate
  1122.             the user supplied job priority; perhaps the end user is
  1123.             requesting a job priority which is higher that what is
  1124.             allowed by the Printer. If the value in the print request
  1125.             is within the range of supported values, the request is
  1126.             accepted and the Job object is created using the value
  1127.             supplied by the end user.  In this case, the Printer's
  1128.             default value is not used.  If the value supplied in the
  1129.             request is outside the range of supported values, the
  1130.             request is rejected.
  1131.  
  1132.             Section 5.1 also introduces the notion of adornments on
  1133.             attribute values in order to handle some nuances
  1134.             associated with values of certain Job and Printer
  1135.             attributes.  These adornments are tags that are
  1136.             associated with specific values in the attribute.  For
  1137.             example, in a Printer object, one of the attributes is
  1138.             the medium attribute.  A set of values in this attribute
  1139.             implies that the Printer is capable of printing jobs on
  1140.             those media types.  However, there may be a distinction
  1141.             between a supported value that is "ready" and another
  1142.             that is "not-ready".  This semantic information can be
  1143.             passed between the Printer and interested clients by
  1144.             using an "availability" tag which identifies each value
  1145.             as either being ready or not ready (even though they are
  1146.             all supported).
  1147.  
  1148.             Two important attributes that need to be mentioned here
  1149.             are the "multiple-documents-are" attribute and the "best-
  1150.             effort" attribute.
  1151.  
  1152.             The "multiple-documents-are attribute" is relevant only
  1153.             if a job consists of two or more documents. It controls
  1154.             finishing operations, job-sheet placement, and the order
  1155.             of documents when the copies attribute is specified.  The
  1156.             end user uses this attribute in a Print Request to
  1157.  
  1158.  
  1159.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 20]
  1160.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1161.  
  1162.  
  1163.  
  1164.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1165.  
  1166.  
  1167.             control whether multiple documents in the job are
  1168.             intended to be finished or copied separately or as one
  1169.             job.  The values for this attribute are: "single-
  1170.             document", "separate-documents-uncollated-copies", or
  1171.             "separate-documents-collated-copies".
  1172.  
  1173.             The "best-effort" attribute determines what to do if
  1174.             there is a conflict between what a client requests and
  1175.             what a Printer is capable of .  Values for this attribute
  1176.             are: "substitute-as-needed" and "do-not-substitute".  If
  1177.             the value for this attribute in a Print Request is
  1178.             "substitute-as-needed" then the end user desires the job
  1179.             be printed using substitutions by the Printer where
  1180.             needed in order to resolve conflicts.  If the value is
  1181.             "do-not-substitute", then the end user desires that the
  1182.             job should not be processed unless every attribute value
  1183.             can be completely satisfied as specified.   It is not
  1184.             expected that this attribute is used much.  Many clients
  1185.             will submit a job with no attributes, and the Printer
  1186.             will use default values.  Other clients will submit a job
  1187.             via a GUI which limits the attribute values to only those
  1188.             which are supported.  A value of "substitute-as-needed:
  1189.             is useful in the GUI context only if an end user expects
  1190.             the job to be moved to another Printer and prefers a sub-
  1191.             optimal result to nothing at all.  Also, an end user may
  1192.             be printing a pre-formatted document where it is not
  1193.             obvious that the client supplied attributes conflict with
  1194.             what is in the print data itself or even if the printer
  1195.             can satisfy the instructions already embedded in the pre-
  1196.             formatted document.  This "best-effort" attribute is most
  1197.             useful in the case where an end user uses a command line
  1198.             interface to  blindly request attributes that may not be
  1199.             supported.
  1200.  
  1201.  
  1202.           3.6 Object Identity
  1203.  
  1204.             All instances of Printer and Job objects have an
  1205.             identifier attribute whose value is globally unique so
  1206.             that they can persistently and unambiguously referenced.
  1207.             The IPP model requires that these values be URLs as
  1208.             defined by RFC 1738 and RFC 1808.  In addition to an
  1209.             identifier attribute, instances of  Printer and Job
  1210.             objects may have a name.  An object name need not be
  1211.             unique across all instances of  all objects.  The Printer
  1212.             name is chosen and set by an administrator.  The Job name
  1213.             is created by the Printer using the name of the forst
  1214.             document in the job.  In all cases, the name only has
  1215.  
  1216.  
  1217.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 21]
  1218.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1219.  
  1220.  
  1221.  
  1222.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1223.  
  1224.  
  1225.             local meaning, and is not constrained to be globally
  1226.             unique.
  1227.  
  1228.             To summarize, each instance of Printer and Job objects
  1229.             will have two identifying attributes:
  1230.  
  1231.             - xxx-URL: The globally unique locator for this object
  1232.             instance
  1233.  
  1234.             - xxx-name: The non-globally unique name for this object
  1235.             instance
  1236.  
  1237.             Document objects only have names, no identifiers.  The
  1238.             "document-name" attribute is used to store the name of
  1239.             the Document.  This name is just of interest within the
  1240.             context of a Job.  It need not be globally unique.
  1241.  
  1242.             ISSUE: Do Documents need identifiers?
  1243.  
  1244.  
  1245.           4. IPP Operations
  1246.  
  1247.  
  1248.           4.1 Introduction
  1249.  
  1250.             Printers and Jobs each have a set of operations
  1251.             associated with it. End users, or programs invoke, these
  1252.             operations through interactions with an IPP client. The
  1253.             operations are:
  1254.  
  1255.                For a Printer object:
  1256.                  Print (section 4.2.1)
  1257.                  Get Attributes (section 4.2.3)
  1258.                  Get Jobs (section 4.2.4)
  1259.  
  1260.                For a Job object:
  1261.                  Cancel Job (section 4.2.2)
  1262.                  Get Attributes (section 4.2.3).
  1263.  
  1264.             IPP objects are identified by URLs.  When a client
  1265.             communicates with a remote IPP object, it sends an
  1266.             operation request to the URL for that object.  Each
  1267.             request carries along with it the parameters and data
  1268.             required to perform the specified operation.  Each
  1269.             request requires a response from the object indicating
  1270.             success or failure of the operation including response
  1271.             data and/or error messages. Details of the IPP protocol
  1272.  
  1273.  
  1274.  
  1275.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 22]
  1276.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1277.  
  1278.  
  1279.  
  1280.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1281.  
  1282.  
  1283.             are contained in "Internet Printing Protocol: Protocol
  1284.             Specification."
  1285.  
  1286.             It is assumed that URLs for IPP Printers are available to
  1287.             end users or programs who wish to invoke Printer
  1288.             operations.  Although not mandatory, it is recommended
  1289.             that Printers be registered in a directory service which
  1290.             end users and programs can interrogate. "Internet
  1291.             Printing Protocol: Directory Schema" defines the
  1292.             attributes to be associated with an Printer entry in a
  1293.             directory service.
  1294.  
  1295.             ISSUE:  We need to add "implementation notes."  These are
  1296.             helpful hints of how to map these abstract concepts to
  1297.             real development efforts.  Does it go here?
  1298.  
  1299.  
  1300.           4.2 Operation Semantics
  1301.  
  1302.             In this section, the four IPP operations are described in
  1303.             terms of their contents and semantics.
  1304.  
  1305.  
  1306.           4.2.1 Print Operation
  1307.  
  1308.             When an end user desires to submit a print job, the
  1309.             client sends a Print Request and receives a Print
  1310.             Response. The information in a Print Request along with
  1311.             any default information associated with the Printer is
  1312.             sufficient to create a Job object.  An instance of a Job
  1313.             object contains all the information needed by the Printer
  1314.             to print one or more documents as a print job.
  1315.  
  1316.             When a Printer receives a Print Request, it either
  1317.             accepts or rejects the request. The Printer accepts the
  1318.             Print Request and creates a Job object if it is able to
  1319.             accept each attribute in the request, and it rejects the
  1320.             request and does not create a Job object if it rejects
  1321.             any attribute in the request. There are five cases to
  1322.             consider with respect to each attribute.
  1323.  
  1324.             - The client supplies an attribute value and it is among
  1325.             the values supported by the Printer: The job attribute is
  1326.             accepted.
  1327.  
  1328.             - The client supplies an attribute value but the
  1329.             attribute is syntactically bad: The Printer rejects the
  1330.             job.
  1331.  
  1332.  
  1333.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 23]
  1334.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1335.  
  1336.  
  1337.  
  1338.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1339.  
  1340.  
  1341.             - The client supplies an attribute value and  a) the
  1342.             attribute value is not among the values supported by the
  1343.             Printer, or b) the printer does not specify the
  1344.             attribute: The job attribute is accepted only if the
  1345.             best-effort attribute is set to substitute-as-needed
  1346.             which allows the Printer to perform a best effort at
  1347.             processing the job rather than rejecting the job.   If
  1348.             the job attribute is accepted, the Printer sets the value
  1349.             of the attribute to a reasonable value, which may be the
  1350.             Printer's default value if it is specified.
  1351.  
  1352.             - The client does not supply a value, but the Printer
  1353.             does: The attribute is accepted and when the Printer
  1354.             creates a Job object, the Printer uses its default value.
  1355.             If Printer is able to inspect the PDL and determine the
  1356.             value of the embedded attribute, it sets the value of the
  1357.             attribute to the embedded value and adorns it with the
  1358.             embedded tag.
  1359.  
  1360.             - Neither the client supplies an attribute value nor does
  1361.             the Printer define a default value: The print request is
  1362.             accepted, the Printer creates the Job object using
  1363.             defaults as defined in this specification.
  1364.  
  1365.             Issue:  Can a Job object be created without some of the
  1366.             attributes, then as the Printer processes the Job, there
  1367.             is some default behavior as described either in this
  1368.             document or a supplied on an implementation defined
  1369.             basis.  That is,  if neither the client nor the Printer's
  1370.             default supplies a value for a job attribute, then the
  1371.             output device shall supply its own default value for that
  1372.             job attribute, if necessary, in order to produce output.
  1373.  
  1374.  
  1375.           4.2.1.1 Print Request
  1376.  
  1377.             ISSUE: The client initially submits the request to a
  1378.             Printer URL. If a client submits a job in fragments, the
  1379.             initial submission returns a Job URL to which the client
  1380.             submits subsequent fragments.
  1381.  
  1382.             The following abstract data types are part of the Print
  1383.             Request:
  1384.  
  1385.                Job and       A set of Job object and Document
  1386.                Document      attributes as defined in section 5.2.
  1387.                Attributes    This section may be empty.  If so,
  1388.                              Printer defaults are used.
  1389.  
  1390.  
  1391.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 24]
  1392.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1393.  
  1394.  
  1395.  
  1396.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1397.  
  1398.  
  1399.  
  1400.  
  1401.                Document      Document content is optional and shall
  1402.                Contents      not be included when a URL is provided
  1403.                              in the document-URL attribute which
  1404.                              points to the content.
  1405.  
  1406.           The simplest Print Request consists of a document contents
  1407.           and nothing else.
  1408.  
  1409.           4.2.1.2 Print Response
  1410.  
  1411.             The following abstract data types are part of the Print
  1412.             Response:
  1413.  
  1414.  
  1415.                Job-          A URL Used for all other operations on
  1416.                Identifier    this Job.
  1417.                Job Status    All job attributes belonging to the job-
  1418.                              status group. The value of each
  1419.                              attribute shall be from a snapshot taken
  1420.                              sometime after the time the Printer
  1421.                              receives the print request.  Since any
  1422.                              job affecting printer state information
  1423.                              (printer-state-reasons) is reflected in
  1424.                              the job-state and job-state-reasons, it
  1425.                              is sufficient to return only job status
  1426.                              attributes and no printer status
  1427.                              attributes.
  1428.  
  1429.                Status        status information including error
  1430.                              status
  1431.                Message       optional status message
  1432.  
  1433.  
  1434.           The simplest response consists of the job identifier, Job
  1435.           status, and operation status which is either an OK status or
  1436.           Error status.
  1437.  
  1438.           4.2.2 Cancel Job Operation
  1439.  
  1440.             This operation allows a user to cancel one specific Print
  1441.             Job any time after the print job has been established on
  1442.             the Printer.  Some pages may be printed before a job is
  1443.             terminated if printing has already started when the
  1444.             Cancel Job operation is received.  Only the end user who
  1445.             is also the job originator (job-originating-user Job
  1446.             attribute) can cancel the job.
  1447.  
  1448.  
  1449.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 25]
  1450.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1451.  
  1452.  
  1453.  
  1454.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1455.  
  1456.  
  1457.           4.2.2.1 Cancel-Job Request
  1458.  
  1459.             The client submits the request to a Job URL.
  1460.  
  1461.             The following abstract data types are part of the Cancel
  1462.             Job Request:
  1463.  
  1464.                Message       Optional message to the operator.
  1465.  
  1466.  
  1467.  
  1468.  
  1469.           4.2.2.2 Cancel-Job Response
  1470.  
  1471.             The following information is part of the Cancel Job
  1472.             Response:
  1473.  
  1474.                Status        status information including error
  1475.                              status
  1476.                Message       optional status message
  1477.  
  1478.  
  1479.  
  1480.  
  1481.           4.2.3 Get Attributes Operation
  1482.  
  1483.             This operation allows an end user to obtain information
  1484.             from a Printer or Job object. The operation contains the
  1485.             set of attributes names and/or attribute group names that
  1486.             the requester is interested in.  A corresponding
  1487.             attribute list is returned in the response with the
  1488.             appropriate attribute values filled in for each attribute
  1489.             (explicitly named or implicitly included in an attribute
  1490.             group) in the request.
  1491.  
  1492.             If the request to a Printer does not supply any attribute
  1493.             names, the Printer shall assume that the client is
  1494.             implicitly requesting the default groups of "printer-
  1495.             identification" and "printer-status". If the request to a
  1496.             Job object does not supply any attribute names, the
  1497.             Printer shall assume that the client is implicitly
  1498.             requesting the default groups of "job-identification",
  1499.             "job-owner", and "job-status".
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 26]
  1508.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1509.  
  1510.  
  1511.  
  1512.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1513.  
  1514.  
  1515.           4.2.3.1 Get-Attributes Request
  1516.  
  1517.             The client submits the request to a Job URL or Printer
  1518.             URL.
  1519.  
  1520.             The following abstract data types are part of the Get
  1521.             Attributes Request:
  1522.  
  1523.                Requested      A set of attributes without values in
  1524.                Attributes     whose values the requester is
  1525.                               interested This is optional.
  1526.  
  1527.                format         This is used only when a this request
  1528.                               is sent to a Job and the end user is
  1529.                               interested in production attributes. In
  1530.                               that case, the client must the format
  1531.                               in the request since the default value
  1532.                               of the formats supported for the
  1533.                               Printer might be "auto-sense", and a
  1534.                               Printer's attributes or attribute
  1535.                               values may differ for each format that
  1536.                               it supports. This request value allows
  1537.                               a client to specify a particular
  1538.                               format.
  1539.  
  1540.             There shall be a way to specify certain groups of
  1541.             attributes, and it shall be possible to get more than one
  1542.             group.  The groups shall be organized in the same way as
  1543.             this document and shall have the same names as the
  1544.             sections heads of the groupings. Each section and
  1545.             subsection contains the group name for the attributes in
  1546.             that section or subsection.
  1547.  
  1548.             For Printers and Job the special groups include:
  1549.  
  1550.             - "none": no attributes of the specified object.  NOTE:
  1551.                  none is primarily useful in Get Jobs, but can be
  1552.                  used as a ping with Get Attributes.
  1553.             - "all": all attributes of the specified object.
  1554.  
  1555.           4.2.3.2 Get-Attributes Response
  1556.  
  1557.             The following abstract data types are part of the Get
  1558.             Attributes Response:
  1559.  
  1560.                Result         The requested attributes of the object
  1561.                Attributes     with their current values, if the
  1562.                               requester supplied any Requested
  1563.  
  1564.  
  1565.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 27]
  1566.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1567.  
  1568.  
  1569.  
  1570.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1571.  
  1572.  
  1573.                               Attributes
  1574.  
  1575.                Status         status information including error
  1576.                               status
  1577.                Message        optional status message
  1578.  
  1579.  
  1580.  
  1581.             A Printer may choose, for security reasons, not to return
  1582.             all attributes that a client requests. It may even return
  1583.             none of the requested attributes. In such cases, the
  1584.             status returned is the same as if the Printer had
  1585.             returned all requested attributes. The client cannot tell
  1586.             by such a response whether the requested attribute was
  1587.             present or absent on the Printer.
  1588.  
  1589.  
  1590.           4.2.4 Get Jobs Operation
  1591.  
  1592.             This operation allows a client to retrieve Printer
  1593.             attributes and a list of print jobs belonging to the
  1594.             target Printer object. A list of Job attributes or
  1595.             attribute groups that the client is interested in seeing
  1596.             may be included in the request. If the request does not
  1597.             supply any Printer attributes, the Printer shall assume
  1598.             that the client is implicitly requesting the default
  1599.             groups: "printer-identification" and "printer-status". If
  1600.             the request does not specify any job attributes, the
  1601.             Printer shall assume the default groups: "job-
  1602.             identification", "job-status", "job-owner" and "job-
  1603.             size". The Printer object will be returned first,
  1604.             followed by the requested jobs in chronological order.
  1605.             This order is explicitly defined to be: oldest to newest
  1606.             with regard to completion time, either actual or
  1607.             expected.
  1608.  
  1609.             This operation is like Get Attributes, except that Get
  1610.             Jobs can return attributes from more than one object.
  1611.  
  1612.  
  1613.           4.2.4.1 Get-Jobs Request
  1614.  
  1615.             The client submits the request to a Printer URL.
  1616.  
  1617.             The following abstract data types are part of the Get
  1618.             Jobs Request:
  1619.  
  1620.  
  1621.  
  1622.  
  1623.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 28]
  1624.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1625.  
  1626.  
  1627.  
  1628.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1629.  
  1630.  
  1631.                Job Owner     This is the user-name. If the value is
  1632.                              non-null, then the requester wants only
  1633.                              those jobs whose job-originating-owner
  1634.                              is the same as the specified user-name.
  1635.                              If the value is null, then the requester
  1636.                              wants all jobs.
  1637.  
  1638.                Job States    A possibly empty set of job state
  1639.                              values.   If the  set is  not empty,
  1640.                              then the requester wants only those jobs
  1641.                              whose job-state is the same as one of
  1642.                              the specified job state values,   If the
  1643.                              set is empty , then the requester wants
  1644.                              all jobs that are pending or printing.
  1645.  
  1646.                Requested     A set of attribute names (without
  1647.                Printer       values) in whose values the requester is
  1648.                Attributes    interested from the specified Printer
  1649.  
  1650.                Requested Job A set of attribute names (without
  1651.                Attributes    values) in whose values the requester is
  1652.                              interested from each of the jobs on the
  1653.                              specified Printer.
  1654.  
  1655.  
  1656.             There shall be a way to specify certain groups of
  1657.             attributes, and it shall be possible to get more than one
  1658.             group. The groups are the same as for Get Attributes.
  1659.  
  1660.  
  1661.           4.2.4.2 Get-Jobs Response
  1662.  
  1663.             The following information is part of the Get Jobs
  1664.             Response:
  1665.  
  1666.                Result        The result includes zero or more objects
  1667.                Attributes    each with zero or more attributes.
  1668.  
  1669.                Status        status information including error
  1670.                              status
  1671.                Message       optional status message
  1672.  
  1673.  
  1674.             A Printer may choose, for security reasons, not to return
  1675.             all attributes that a client requests. It may even return
  1676.             none of the requested attributes. In such cases, the
  1677.             status returned is the same as if the Printer had
  1678.             returned all requested attributes. The client cannot tell
  1679.  
  1680.  
  1681.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 29]
  1682.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1683.  
  1684.  
  1685.  
  1686.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1687.  
  1688.  
  1689.             by such a response whether the requested attribute was
  1690.             present or absent on the Printer.
  1691.  
  1692.  
  1693.           5. Object Attributes
  1694.  
  1695.             This section describes the attributes with their
  1696.             corresponding syntaxes and values that are part of the
  1697.             IPP model. The sections below show the objects and their
  1698.             associated attributes which are included within the scope
  1699.             of this protocol.  Many of these attributes are derived
  1700.             from other relevant specifications:
  1701.  
  1702.                ISO/IEC 10175 DPA (Final, June 1996)
  1703.                RFC 1759 Printer MIB (Proposed Standard, May 1995)
  1704.                Internet-Draft: Printer MIB (Draft Standard in
  1705.                  progress, December 1996)
  1706.                Internet-Draft: Job Monitoring MIB (I-D in progress,
  1707.                  March 1997)
  1708.  
  1709.             Each attribute is uniquely identified in this document
  1710.             using a "keyword" in the section header describing that
  1711.             attribute.  A keyword is a sequence of characters (length
  1712.             of  1 to 255) which consists of just letters, digits,
  1713.             hyphen ("-"), and underscore ("_").  With these
  1714.             restrictions, there will be a straight forward encoding
  1715.             of these keywords onto real values in the protocol
  1716.             specification.  Not only are attributes uniquely
  1717.             identified with keywords, some attributes take on a
  1718.             syntax which is a set of keywords.  This set of keywords
  1719.             represents the domain of the attribute.
  1720.  
  1721.  
  1722.           5.1 Attribute Syntaxes
  1723.  
  1724.             The following table shows the basic syntax types that a
  1725.             client and server shall be able to handle.
  1726.  
  1727.  
  1728.           Table 1
  1729.  
  1730.                Basic Type            Description      Comments
  1731.  
  1732.                text                  a sequence of    For free form human
  1733.                                      characters:      readable text
  1734.                                      length: 0 to     intended for human
  1735.                                      4096             consumption.
  1736.  
  1737.  
  1738.  
  1739.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 30]
  1740.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1741.  
  1742.  
  1743.  
  1744.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1745.  
  1746.  
  1747.                Basic Type            Description      Comments
  1748.  
  1749.                                      characters: any
  1750.  
  1751.                name                  a sequence of
  1752.                                      characters:      some object via a
  1753.                                      length: 1 to     user-friendly
  1754.                                      255 characters:  string, such as a
  1755.                                                       For referencing
  1756.                                      any              Printer name, a
  1757.                                                       document name, a
  1758.                                                       user name, or a
  1759.                                                       host name.  May
  1760.                                                       include the SPACE
  1761.                                                       character.
  1762.  
  1763.                                                       NOTE - The protocol
  1764.                                                       may need to provide
  1765.                                                       means to quote the
  1766.                                                       SPACE character if
  1767.                                                       the protocol uses
  1768.                                                       SPACE for other
  1769.                                                       purposes.
  1770.  
  1771.                fileName              a sequence of    For referencing
  1772.                                      characters:      some file.  The
  1773.                                      length: 1 to     limit is the same
  1774.                                      1024             as POSIX and NT.
  1775.                                      characters: any
  1776.  
  1777.                keyword               a sequence of    For semantic
  1778.                                      characters:      identifiers of
  1779.                                      length: 1 to     entities in the
  1780.                                      255 characters:  abstract protocol
  1781.                                      letters,         (specified in this
  1782.                                      digits, hyphen   document).  These
  1783.                                      ("-"),           entities can be
  1784.                                      underscore       attribute names or
  1785.                                      ("_")            values of
  1786.                                                       attributes,  When a
  1787.                                                       keyword is used to
  1788.                                                       represent an
  1789.                                                       attribute (its
  1790.                                                       name), it must be
  1791.                                                       unique within the
  1792.                                                       full scope of IPP
  1793.                                                       objects and
  1794.                                                       attributes.  When a
  1795.                                                       keyword is used to
  1796.  
  1797.  
  1798.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 31]
  1799.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1800.  
  1801.  
  1802.  
  1803.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1804.  
  1805.  
  1806.                Basic Type            Description      Comments
  1807.  
  1808.                                                       represent a value
  1809.                                                       of an attribute, it
  1810.                                                       must be unique just
  1811.                                                       within the scope of
  1812.                                                       that attribute.
  1813.                                                       That is, a keyword
  1814.                                                       can not be used for
  1815.                                                       two different
  1816.                                                       values of the same
  1817.                                                       attribute to mean
  1818.                                                       two different
  1819.                                                       semantic ideas.
  1820.                                                       However, the same
  1821.                                                       keyword can be used
  1822.                                                       across two or more
  1823.                                                       attributes,
  1824.                                                       representing
  1825.                                                       different semantic
  1826.                                                       ideas for each
  1827.                                                       attribute.
  1828.  
  1829.                url                   a sequence of    Universal Resource
  1830.                                      characters: as   Locator
  1831.                                      defined in
  1832.                                      rfc1738 and      ISSUE: do we keep
  1833.                                      rfc1808          URLs abstract here
  1834.                                                       too and not define
  1835.                                                       them in terms of
  1836.                                                       rfcs?
  1837.  
  1838.                octetString           a sequence of    Used for opaque
  1839.                                      octets           data, such as the
  1840.                                                       document-content.
  1841.  
  1842.                boolean               two values of    like an keywordSet,
  1843.                                      true and false   but there are only
  1844.                                                       two values. NOTE:
  1845.                                                       An application
  1846.                                                       might use a
  1847.                                                       checkbox for such a
  1848.                                                       value.
  1849.  
  1850.                integer               an integer       each attribute
  1851.                                      value that is    specifies the range
  1852.                                      in the range     constraint
  1853.                                      from -2**31 to
  1854.  
  1855.  
  1856.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 32]
  1857.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1858.  
  1859.  
  1860.  
  1861.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1862.  
  1863.  
  1864.                Basic Type            Description      Comments
  1865.  
  1866.                                      2**31 - 1        explicitly.
  1867.  
  1868.  
  1869.  
  1870.                dateTime              a value that
  1871.                                      holds the date   time
  1872.                                      and time to the
  1873.                                                       absolute date and
  1874.                                      nearest second.
  1875.  
  1876.                integerSeconds        an integer with  a relative time
  1877.                                      implicit units
  1878.                                      of seconds
  1879.  
  1880.                integerPoints         an integer with  for measurment
  1881.                                      implicit units
  1882.                                      of computer
  1883.                                      points, i.e.,
  1884.                                      1/72 of an
  1885.                                      inch.
  1886.  
  1887.                integerUnits          an integer with  an integer value
  1888.                                      explicit units   expressed in units
  1889.  
  1890.                                                       ISSUE: we have two
  1891.                                                       types with implicit
  1892.                                                       units and one with
  1893.                                                       explicit units
  1894.                                                       where the units are
  1895.                                                       specific for one
  1896.                                                       attribute printer-
  1897.                                                       speed.
  1898.  
  1899.                setOf  X              0 or more        for sets of values
  1900.                                      values of type
  1901.                                      X.
  1902.  
  1903.                1setOf  X             1 or more        for sets of values
  1904.                                      values of type
  1905.                                      X.
  1906.  
  1907.                setWithDefaultOf  X   0 or more        for sets of values
  1908.                                      values of type   where one is a
  1909.                                      X and a default  default value
  1910.                                      value of type X
  1911.  
  1912.                1setWithDefaultOf     1 or more        for sets of values
  1913.  
  1914.  
  1915.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 33]
  1916.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1917.  
  1918.  
  1919.  
  1920.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1921.  
  1922.  
  1923.                Basic Type            Description      Comments
  1924.  
  1925.                X                     values of type   where one is a
  1926.                                      X and a default  default value
  1927.                                      value of type X
  1928.  
  1929.                withDefault  X        an explicit      For values which
  1930.                                      default value    are not restricted
  1931.                                      of type X. The   but have a default.
  1932.                                      set of values
  1933.                                      is implicitly
  1934.                                      unrestricted.
  1935.  
  1936.                RangeWithDefaultOf    a range of       for a range of
  1937.                X                     value of type X  values, such as
  1938.                                      with a default   integers, where one
  1939.                                      value of type X  value is the
  1940.                                                       default.
  1941.  
  1942.                                                       OR the below syntax
  1943.                                                       type instead
  1944.  
  1945.                integerRangeWithDef   an integer       for a range of
  1946.                ault                  range with a     integers where one
  1947.                                      default integer  value is the
  1948.                                      value            default.
  1949.  
  1950.  
  1951.  
  1952.  
  1953.           5.1.1 Attribute Extensibility
  1954.  
  1955.             This document uses prefixes to the keyword  basic syntax
  1956.             type in order to communicate extra information to the
  1957.             reader through its name. This extra information need not
  1958.             be represented in an implementation because it is
  1959.             unimportant to a client or printer.  The table below
  1960.             describes the prefixes and their meaning
  1961.  
  1962.  
  1963.  
  1964.                Basic Type     Prefix         Comments
  1965.  
  1966.                keyword        type1          someone must revise the IPP
  1967.                                              standard to add a new name.
  1968.                                              No private names are
  1969.                                              allowed.
  1970.  
  1971.  
  1972.  
  1973.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 34]
  1974.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  1975.  
  1976.  
  1977.  
  1978.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  1979.  
  1980.  
  1981.                Basic Type     Prefix         Comments
  1982.  
  1983.                keyword        type2          implementers can, at any
  1984.                                              time, add new values by
  1985.                                              proposing them to the PWG
  1986.                                              for registration (or an
  1987.                                              IANA-appointed registry
  1988.                                              advisor after the PWG is no
  1989.                                              longer certified) where they
  1990.                                              are reviewed for approval..
  1991.                                              IANA keeps the registry.
  1992.                                              Implementers can support
  1993.                                              private (unregistered) with
  1994.                                              a suitable distinguishing
  1995.                                              prefix, such as -xxx- where
  1996.                                              xxx is the company name
  1997.                                              registered with IANA for use
  1998.                                              in domain names.
  1999.  
  2000.                keyword        type3          implementers can add new
  2001.                                              values by submitting a
  2002.                                              registration request
  2003.                                              directly to IANA, no PWG or
  2004.                                              IANA-appointed registry
  2005.                                              advisor review is required.
  2006.                                              Implementers can support
  2007.                                              private (un-registered)
  2008.                                              names with a suitable
  2009.                                              distinguishing prefix, such
  2010.                                              as -xxx- where xxx is the
  2011.                                              company name registered with
  2012.                                              IANA for use in domain
  2013.                                              names.
  2014.  
  2015.                keyword        type4          an installation defined name
  2016.                                              that can be added to a local
  2017.                                              system by an administrator.
  2018.                                              Care must be taken by the
  2019.                                              administrator to see that
  2020.                                              keywords do not conflict
  2021.                                              with other keywords defined
  2022.                                              by the standard or as
  2023.                                              defined by the implementing
  2024.                                              product. There is no
  2025.                                              registration or approval
  2026.                                              procedure for type 4
  2027.                                              keywords
  2028.  
  2029.  
  2030.  
  2031.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 35]
  2032.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2033.  
  2034.  
  2035.  
  2036.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.           5.1.2 Relationship of Job and Printer Attributes
  2043.  
  2044.             If a client can supply a Job attribute in a Print
  2045.             Request, there is a  corresponding Printer attribute with
  2046.             the same name.  The Printer attribute as a similar syntax
  2047.             type, however, the Printer attribute must additionally
  2048.             specify a set of supported values and an optional default
  2049.             value.  The default value is used when creating a new Job
  2050.             object where the client has not supplied a value in the
  2051.             Print Request.  These attributes, which can be in both
  2052.             Job and Printer objects, are called Job Template
  2053.             attributes and are fully defined in section 5.2 "Job
  2054.             Template Attributes".  The table below shows the
  2055.             relationships between the syntax types of Job attributes
  2056.             and their corresponding Printer attributes. The syntax
  2057.             type of the Printer object is "constructed" using Job
  2058.             attribute type.  For example, the table shows that if the
  2059.             basic syntax type of a Job attribute is "text" then the
  2060.             corresponding Printer attribute will be of type
  2061.             "withDefault text".  Or, if the syntax type of the Job
  2062.             attribute is "integer", then the corresponding Printer
  2063.             attribute will be of type "rangeWithDefault of integer".
  2064.             The essence of what is shown in the table below is
  2065.             whether a context (Job attribute or Printer attribute)
  2066.             allows a single value or multiple values.
  2067.  
  2068.  
  2069.  
  2070.                Name of        Job          Printer Attribute
  2071.                syntax type    Attribute    Syntax
  2072.                               Syntax
  2073.  
  2074.                text           text         withDefault  text
  2075.  
  2076.                name           name         withDefault  name
  2077.  
  2078.                keyword        keyword      setWithDefaultOf
  2079.                                            keyword
  2080.                               or
  2081.                                            or
  2082.                               setOf
  2083.                               keyword      1setWithDefaultOf
  2084.                                            keyword
  2085.                               or
  2086.  
  2087.  
  2088.  
  2089.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 36]
  2090.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2091.  
  2092.  
  2093.  
  2094.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2095.  
  2096.  
  2097.                Name of        Job          Printer Attribute
  2098.                syntax type    Attribute    Syntax
  2099.                               Syntax
  2100.  
  2101.                               1setOfkeywo
  2102.                               rd
  2103.  
  2104.  
  2105.  
  2106.                boolean        boolean      setWithDefaultOf
  2107.                                            boolean
  2108.  
  2109.                url            url          withDefault  url
  2110.  
  2111.                integer        integer      rangeWithDefaultOf
  2112.                                            integer
  2113.  
  2114.                integerUnits   integerUnit  rangeWithDefaultOf
  2115.                               s            integer, setOf  Units
  2116.  
  2117.                dateTime       dateTime     not needed because
  2118.                                            there are no job
  2119.                                            production attributes
  2120.                                            that a client can
  2121.                                            supply.
  2122.  
  2123.                integerSecon   integerSeco  rangeWithDefaultOf
  2124.                ds             nds          integerSeconds
  2125.  
  2126.                                            NOTE: if have
  2127.                                            integerUnits and no
  2128.                                            integerSeconds, we can
  2129.                                            replace
  2130.                                            rangeWithDefaultOf by
  2131.                                            integerRangeWithDefaul
  2132.                                            t.
  2133.  
  2134.                setOf  X       setOf  X     setWithDefaultOf  X
  2135.  
  2136.  
  2137.  
  2138.             The Printer and the client shall be knowledgeable about
  2139.             each of the above syntax forms and know how the handle
  2140.             the values in a Job attribute and a Printer attribute.
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 37]
  2148.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2149.  
  2150.  
  2151.  
  2152.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2153.  
  2154.  
  2155.           5.1.3 Attribute Value Tags
  2156.  
  2157.             In order to handle some nuances associated with Job and
  2158.             Printer attribute values, attribute values can have tags
  2159.             associated with them.  The following sections describe
  2160.             these tags.  All tags are optional.  Fully conforming
  2161.             implementations need not support them.
  2162.  
  2163.  
  2164.           5.1.3.1 Tagged Printer Attributes
  2165.  
  2166.             Job Template attribute values in a Printer can have extra
  2167.             tags associated with them:
  2168.  
  2169.             - Availability: Some supported attributes shall have an
  2170.             availability value associated with each value.  A client
  2171.             may choose to display values only with certain values of
  2172.             availability.  Standard values are: "ready" and "not-
  2173.             ready".   If an attribute value does not have this tag,
  2174.             it is by default "ready".  "not-ready" means that the
  2175.             Printer can accept the job, but the Printer cannot
  2176.             complete the job without some external intervention to
  2177.             make the value ready.
  2178.  
  2179.             ISSUE:  Should the following availability tags be added
  2180.             which help to more clearly specify some subtle meanings?
  2181.             These include "virtually-ready" (ready enough for the
  2182.             Printer to schedule the job since it the value is
  2183.             intended to always be ready, media in manual-feed trays
  2184.             would have this value),  "on-order" (not-ready and cannot
  2185.             be made ready soon, but something is happening), or
  2186.             "special-order" (not-ready and cannot be made ready soon,
  2187.             nothing is happening).
  2188.  
  2189.             - Embedded-only: Some supported production attributes
  2190.             have an "embedded-only" tag associated with an attribute
  2191.             to indicate that the Printer supported this attribute
  2192.             when it is embedded in the document data, but it does not
  2193.             support it as an explicit attribute. The attributes that
  2194.             this tag is attached to varies according to the format
  2195.             specified in the Get Attributes operation.
  2196.  
  2197.             - Default Value: Supported attributes can have a default
  2198.             tag associated with the value that is default.   If
  2199.             multiple values are tagged with a default value, a client
  2200.             shall use the first value that is tagged with default. If
  2201.             no values are tagged, then it assumes the first value in
  2202.             the supported list is the default value.
  2203.  
  2204.  
  2205.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 38]
  2206.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2207.  
  2208.  
  2209.  
  2210.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2211.  
  2212.  
  2213.             - Scheduling: If a printer uses this value for
  2214.             scheduling, then it associates this tag to indicate that
  2215.             it would like the attribute set when the job is
  2216.             submitted. The attribute can come back with or without
  2217.             the embedded tag. If an attribute does not have this tag,
  2218.             then the Printer will not use this attribute for
  2219.             scheduling.
  2220.  
  2221.             NOTE: the mostly likely attribute that a Printer would
  2222.             attach this adornment to is the media attribute.
  2223.  
  2224.  
  2225.           5.1.3.2 Tagged Job Attributes
  2226.  
  2227.             Job attribute values  set by a client and defined in
  2228.             section 5.2 "Job Template Attributes" can have the
  2229.             following extra tags associated with them:
  2230.  
  2231.             - Embedded: If an attribute has this tag, then the
  2232.             attribute value(s) are embedded in the document.  The
  2233.             printer can use this information for scheduling, but it
  2234.             shall not use it to modify the document.  This attribute
  2235.             cannot be associated with individual attribute values.
  2236.  
  2237.             - Default: If a attribute value has this tag, then the
  2238.             Printer shall ignore the Job attribute, if any, and shall
  2239.             use the Printer's default value for the attribute.
  2240.  
  2241.             Issue:  Does the following imply too much about using
  2242.             "fan-in" for multiple default sets for a given output
  2243.             device? Note: it is the duty of an administrator to
  2244.             create a reasonable number of Printers feeding into each
  2245.             output device to handle user's expected defaults.  For
  2246.             example, a Windows client will send a PostScript document
  2247.             with no attributes.  For production attributes, a
  2248.             Printer's defaults must be "as-is".  But other clients
  2249.             may want to force PostScript files to print two-sided.
  2250.             For those clients, there must be another printer whose
  2251.             sides default is "2-sided-long-edge".
  2252.  
  2253.  
  2254.           5.2 Job Template (job-template) Attributes
  2255.  
  2256.             The following attributes can exist in both Jobs and
  2257.             Printers. When such an attribute is in a Job object, it
  2258.             identifies some desired behavior on this Job by the
  2259.             Printer. When it is in a Printer object, it constrains
  2260.             the values that the corresponding Job attribute can have
  2261.  
  2262.  
  2263.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 39]
  2264.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2265.  
  2266.  
  2267.  
  2268.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2269.  
  2270.  
  2271.             and it specifies a default value as well.  The set of
  2272.             values in the Printer object are called the "supported
  2273.             values".
  2274.  
  2275.             These attributes form the attribute group called "job-
  2276.             template".
  2277.  
  2278.             The attributes are described below.  The part in
  2279.             parenthesis after each attribute name is the name of the
  2280.             syntax as listed in Table 1 in section 5.1.
  2281.  
  2282.             A client can specify any of the attributes in this group
  2283.             in a Print Request. If a client GUI wishes to present a
  2284.             user with a list of values to choose from, then the
  2285.             client program should perform the Get Attributes
  2286.             operation to a Printer URL using the group job-template
  2287.             in order to get the complete list of attributes that a
  2288.             client can specify. Each attribute returned with the job-
  2289.             template group shall contain a list of supported values
  2290.             for the attribute and the Printer's default value.
  2291.  
  2292.  
  2293.           5.2.1 Job Sheet Attributes (Set by Client/End User)
  2294.  
  2295.             The client shall specify these attributes to control the
  2296.             printing of job sheets.
  2297.  
  2298.             There is no group name for these attributes since there
  2299.             is only one attribute in the group.
  2300.  
  2301.             The client may also specify job sheet attributes in: Get-
  2302.             Attributes and Get-Jobs.
  2303.  
  2304.  
  2305.           5.2.1.1 job-sheets (type4 keyword)
  2306.  
  2307.  
  2308.           5.2.1.1.1 As a Job Attribute
  2309.  
  2310.             This job attribute determines what type of job-sheets
  2311.             (banner pages) the Printer shall print with the job.
  2312.  
  2313.             The standard values are: "none", and "default-sheet".
  2314.  
  2315.             The value "none" means that end user desires no job sheet
  2316.             be printed.  The value "default-sheet" means that the end
  2317.             user desires a site specific default sheet defined by and
  2318.             administrator be printed.
  2319.  
  2320.  
  2321.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 40]
  2322.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2323.  
  2324.  
  2325.  
  2326.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.           5.2.1.1.2 As a Printer Attribute
  2333.  
  2334.             This printer attribute identifies the default job-sheet.
  2335.             It also identifies the job-sheet values supported by this
  2336.             printer, and the state of readiness for each job-sheet.
  2337.  
  2338.             To allow no job sheets, the system administrator shall
  2339.             include the value none as a value for the supported
  2340.             values. If the administrator's policy is not to support
  2341.             none, the Printer shall use the default-sheet value if
  2342.             the client supplies the none value but also indicates
  2343.             (through the best-effort attribute) that Printer could
  2344.             substitute values as needed in order to process the job.
  2345.  
  2346.  
  2347.           5.2.2 Job Notification (job-notification) Attributes (Set by
  2348.           a Client/End User)
  2349.  
  2350.             The client shall specify these attributes to indicate
  2351.             events that the client is interested in, along with the
  2352.             notification address and method for performing the
  2353.             notification.
  2354.  
  2355.             These attributes form the attribute group called "job-
  2356.             notification".
  2357.  
  2358.             The client may also specify notification attributes in:
  2359.             Get-Attributes and Get-Jobs.
  2360.  
  2361.  
  2362.           5.2.2.1 notification-events (setOf type2 keyword)
  2363.  
  2364.  
  2365.           5.2.2.1.1 As a Job Attribute
  2366.  
  2367.             This job attribute specifies the events about which the
  2368.             end user want to be notified.
  2369.  
  2370.             Standard values within the set are: job-completion, job-
  2371.             canceled,  job-problems and printer-problems.
  2372.  
  2373.             If this attribute contains the empty set, the Printer
  2374.             shall not notify.  This value is useful if an
  2375.             administrator has set up a notification Printer default
  2376.             but the end user does not want notification.
  2377.  
  2378.  
  2379.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 41]
  2380.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2381.  
  2382.  
  2383.  
  2384.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2385.  
  2386.  
  2387.             If this attribute contains the value: job-completion, the
  2388.             Printer shall notify the client when the job containing
  2389.             this attribute completes with or without errors.
  2390.  
  2391.             If this attribute contains the value: job-canceled, the
  2392.             Printer shall notify the client when the job containing
  2393.             this attribute is canceled by the end-user or by the
  2394.             operator, or aborts before completion.
  2395.  
  2396.             If this attribute contains the value:  job-problems, the
  2397.             Printer shall notify the client when this job has a
  2398.             problem while this job is printing. Problems include:
  2399.             paper jam and out-of-paper.
  2400.  
  2401.             If this attribute contains the value:  printer-problems,
  2402.             the Printer shall notify the client when any job,
  2403.             including this job, is affected by a Printer problem (the
  2404.             printer has moved to the stopped state and there is a
  2405.             reason in the printer-state-reasons attribute) while this
  2406.             job is waiting to print or printing. Problems include:
  2407.             paper jam and out-of-paper.
  2408.  
  2409.  
  2410.           5.2.2.1.2 As a Printer Attribute
  2411.  
  2412.             This printer attribute indicates the default value. It
  2413.             also indicates the values of the job and printer
  2414.             notification-events attribute supported by this Printer
  2415.             and the states of readiness for each value.
  2416.  
  2417.             This document does not specify how or whether an
  2418.             administrator can configure the information that a
  2419.             Printer sends with an event when a Printer notifies a
  2420.             user about the occurrence of an event.
  2421.  
  2422.             If this attribute is unspecified, then the Printer does
  2423.             not support notification.  If this attribute is not
  2424.             contained in an instance of a Printer and the client
  2425.             supplies the attribute in the Print Request, the
  2426.             attribute in the Print Request is ignored.
  2427.  
  2428.  
  2429.           5.2.2.2 notification-addresses (setOf url)
  2430.  
  2431.             This address specifies both the address and mechanism for
  2432.             delivery of notification events to the client.
  2433.  
  2434.  
  2435.  
  2436.  
  2437.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 42]
  2438.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2439.  
  2440.  
  2441.  
  2442.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2443.  
  2444.  
  2445.             The Printer shall use this attribute as the address for
  2446.             sending messages to a job submitter when an event occurs
  2447.             that the end user has registered an interest in.
  2448.  
  2449.             If the URL has a "mailto:" scheme, then email is used and
  2450.             the rest of the URL is used as the email address.  If the
  2451.             URL has a "http:" scheme, then an HTTP  method is used to
  2452.             add HTML formatted events to the end of the specified
  2453.             HTML file.
  2454.  
  2455.  
  2456.           5.2.2.2.1 As a Job Attribute
  2457.  
  2458.             This job attribute specifies the method and addresses to
  2459.             which the Printer should send messages when events
  2460.             specified by the notification-events attribute occur.
  2461.  
  2462.  
  2463.           5.2.2.2.2 As a Printer Attribute
  2464.  
  2465.             This Printer attribute's syntax type is "setOf urlScheme"
  2466.             so that an interested client shall know which URL schemes
  2467.             can be include in the notification-addresses attribute in
  2468.             the Print Request.
  2469.  
  2470.  
  2471.           5.2.3 Job Scheduling (job-scheduling) Attributes (Set by
  2472.           Client/End User)
  2473.  
  2474.             The client shall specify these attributes to provide the
  2475.             Printer with information for the scheduling a print-job.
  2476.  
  2477.             These attributes form the attribute group called "job-
  2478.             scheduling".
  2479.  
  2480.             The client may also specify these attributes in: Get-
  2481.             Attributes and Get-Jobs.
  2482.  
  2483.  
  2484.           5.2.3.1 job-priority (integer(1:100))
  2485.  
  2486.  
  2487.           5.2.3.1.1 As a Job Attribute
  2488.  
  2489.             This job attribute specifies a priority for scheduling
  2490.             the print-job. Printers that employ a priority-based
  2491.             scheduling algorithm use this attribute.
  2492.  
  2493.  
  2494.  
  2495.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 43]
  2496.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2497.  
  2498.  
  2499.  
  2500.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2501.  
  2502.  
  2503.             A higher value specifies a higher priority. The value 1
  2504.             is defined to indicate the lowest possible priority (a
  2505.             job which a priority-based scheduling algorithm shall
  2506.             pass over in favor of higher priority jobs). The value
  2507.             100 is defined to indicate the highest possible priority.
  2508.             Priority is expected to be evenly or "normally"
  2509.             distributed across this range.  Among those jobs that are
  2510.             ready to print, a Printer shall print all jobs with a
  2511.             priority value of n before printing those with a priority
  2512.             value of n-1 for all n.  The mapping of vendor-defined
  2513.             priority over this range is implementation-specific.
  2514.  
  2515.  
  2516.           5.2.3.1.2 As a Printer Attribute
  2517.  
  2518.             The printer attribute specifies the default priority. It
  2519.             also specifies the supported range available to end-
  2520.             users.  When setting up this attribute, an administrator
  2521.             might identify only a subset of the full range which is
  2522.             the range that the end user is authorized to use.  There
  2523.             might be higher or lower priorities (outside the range
  2524.             defined for end users) available to operators or other
  2525.             privileged users.
  2526.  
  2527.             If this attribute is not contained in an instance of a
  2528.             Printer and the client supplies the attribute in the
  2529.             Print Request, the attribute in the Print Request is
  2530.             ignored.
  2531.  
  2532.  
  2533.           5.2.3.2 job-hold-until (type4 keyword)
  2534.  
  2535.  
  2536.           5.2.3.2.1 As a Job Attribute
  2537.  
  2538.             This job attribute specifies the named time period during
  2539.             which the Job print job shall become a candidate for
  2540.             printing.
  2541.  
  2542.             Standard values for named time periods are:  "no-hold",
  2543.             "evening", "night", "weekend", "second-shift", "third-
  2544.             shift".  An administrator shall associate allowable print
  2545.             times with a named time period.  An administrator is
  2546.             encouraged to pick names that suggest the type of time
  2547.             period.
  2548.  
  2549.             If the value of this attribute specifies a time period
  2550.             that is in the future, the Printer shall add the job-
  2551.  
  2552.  
  2553.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 44]
  2554.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2555.  
  2556.  
  2557.  
  2558.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2559.  
  2560.  
  2561.             hold-until-specified value to the job's job-state-reasons
  2562.             attribute and shall not schedule the print-job for
  2563.             printing until the specified time-period arrives.  When
  2564.             the specified time period arrives, the Printer shall
  2565.             remove the job-hold-until-specified value from the job's
  2566.             job-state-reason attribute and, if no other reasons
  2567.             remain, shall consider the job as a candidate for
  2568.             processing.
  2569.  
  2570.             If this job attribute value is the named value "no-hold",
  2571.             or the time period has already started , the job shall be
  2572.             a candidate for processing immediately.
  2573.  
  2574.  
  2575.           5.2.3.2.2 As a Printer Attribute
  2576.  
  2577.             This printer attribute indicates the default value. It
  2578.             also indicates the values of the attribute supported by
  2579.             this printer.
  2580.  
  2581.             If this attribute is not contained in an instance of a
  2582.             Printer and the client supplies the attribute in the
  2583.             Print Request, the attribute in the Print Request is
  2584.             ignored.
  2585.  
  2586.  
  2587.           5.2.4 Job Production (job-production) Attributes (Set by
  2588.           Client/End User)
  2589.  
  2590.             The client shall specify these attributes to affect the
  2591.             rendering, production and finishing of the documents in
  2592.             the job.  Similar types of instructions may also be
  2593.             contained in the document to be printed.
  2594.  
  2595.             These attributes form the attribute group called "job-
  2596.             production".
  2597.  
  2598.             If there is a conflict between the value of one of these
  2599.             attributes, and a corresponding instruction in the
  2600.             document (either implicit or explicit), the value of the
  2601.             attribute shall take precedence over the document
  2602.             instruction.
  2603.  
  2604.             A job production attribute provides a client with a way
  2605.             to request some feature at print time that may  not have
  2606.             been embedded within the document data when the document
  2607.             was created.  A job production attribute also provides a
  2608.             client with a way to override a feature at print time
  2609.  
  2610.  
  2611.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 45]
  2612.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2613.  
  2614.  
  2615.  
  2616.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2617.  
  2618.  
  2619.             that was embedded within the document data when the
  2620.             document was created.
  2621.  
  2622.             Note: until companies that supply interpreters for PDL's,
  2623.             such as PostScript and PCL allow a way to specify
  2624.             overrides for internal job production instructions, a
  2625.             Printer may not be able to implement these attributes for
  2626.             some PDL's.
  2627.  
  2628.             A job  production attribute tells a Printer what features
  2629.             the job needs. A program that translates document data to
  2630.             a Printer's PDL, and/or merges production attributes into
  2631.             the document data should add job  production  attributes
  2632.             to a job, using the "embedded" tag. Such a program may
  2633.             execute at a number of different points in time:
  2634.  
  2635.                1. The program produces a final form document and
  2636.                stores these resource attributes in a file before the
  2637.                end-user submits the print job.
  2638.  
  2639.                2. The program produces a final form document data
  2640.                stream when the end-user specifies "Print" to the
  2641.                application program (e.g., Windows GDI driver).
  2642.  
  2643.                3. The program running in the context of the Printer or
  2644.                server translates a revisable or final form document
  2645.                into a PDL that the output device understands.
  2646.  
  2647.             For example, a job production attribute medium with the
  2648.             value of "letter" requests that a job be printed on
  2649.             letter paper, and  gives information about what resources
  2650.             the job needs. For example, a job production  attribute
  2651.             media with the values of "letter" and "ledger"  and the
  2652.             tag "embedded" tell a Printer that the job needs letter
  2653.             and ledger paper, but gives no information about which
  2654.             pages use each medium_ that information is embedded in
  2655.             the document.
  2656.  
  2657.             A Printer may use these attributes to validate and
  2658.             schedule the print-job without interpreting the contents
  2659.             of the document. This provides the opportunity for a
  2660.             Printer to support a broad set of document formats yet
  2661.             still support fast efficient scheduling and validation of
  2662.             each job.
  2663.  
  2664.             If any of these attributes is unspecified, the Printer
  2665.             shall assume that the all resources required by the
  2666.             document of the type specified by the missing attributes
  2667.  
  2668.  
  2669.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 46]
  2670.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2671.  
  2672.  
  2673.  
  2674.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2675.  
  2676.  
  2677.             are ready, i.e., are available to the Printer and/or
  2678.             output device without human intervention.
  2679.  
  2680.             The client may specify these attributes in: Get-
  2681.             Attributes and Get-Jobs.
  2682.  
  2683.  
  2684.  
  2685.             The client may also specify job production-instruction
  2686.             attributes in: Get-Attributes and Get-Jobs. For all the
  2687.             attributes in this section, the default behavior if the
  2688.             Printer attribute is unspecified is that the document is
  2689.             printed with the output-device defaults, possibly
  2690.             overridden by whatever is in the document data, if
  2691.             anything.
  2692.  
  2693.             Each attribute which is of type keyword in this section
  2694.             also has a special value: "ignore" which is useful for a
  2695.             file type, such as PostScript, which the Printer may not
  2696.             allow changes to.
  2697.  
  2698.  
  2699.           5.2.4.1 multiple-documents-are (type1 keyword)
  2700.  
  2701.  
  2702.           5.2.4.1.1 As a Job Attribute
  2703.  
  2704.             This job attribute is relevant only if a job consists of
  2705.             two or more documents. It controls finishing operations,
  2706.             job-sheet placement, and the order of documents when the
  2707.             copies attribute exceeds 1.
  2708.  
  2709.             This attribute can have one of three values: single-
  2710.             document, separate-documents-uncollated-copies, separate-
  2711.             documents-collated-copies.
  2712.  
  2713.             If the files for the job are a and b and this attribute's
  2714.             value is single-document , then files a and b are treated
  2715.             as a single document for finishing operations. Also,
  2716.             there will be no slip sheets between files a and b. If
  2717.             more than one copy is made, the ordering must be a, b, a,
  2718.             b, ....
  2719.  
  2720.             If the files for the job are a and b and this attribute's
  2721.             value is separate-documents-uncollated-copies, or
  2722.             separate-documents-collated-copies or unspecified, then
  2723.             each file is treated as a single document for finishing
  2724.             operations. Also, a client may specify that a slip sheet
  2725.  
  2726.  
  2727.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 47]
  2728.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2729.  
  2730.  
  2731.  
  2732.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2733.  
  2734.  
  2735.             be between files a and b. If more than one copy is made,
  2736.             and the attribute's value is separate-documents-
  2737.             uncollated-copies or unspecified, the ordering is a, a,
  2738.             b, b, .... If more than one copy is made, and the
  2739.             attribute's value is separate-documents-collated-copies,
  2740.             the ordering is a, b, a, b, ....
  2741.  
  2742.  
  2743.           5.2.4.1.2 As a Printer Attribute
  2744.  
  2745.             This printer attribute specifies the default value and
  2746.             the supported values.
  2747.  
  2748.  
  2749.           5.2.4.2 best-effort (type2 keyword)
  2750.  
  2751.             This attribute determines what to do if there is a
  2752.             conflict between what a client requests and what a
  2753.             Printer is capable of .  Values for this attribute are:
  2754.             "substitute-as-needed" and "do-not-substitute".
  2755.  
  2756.  
  2757.           5.2.4.2.1 As a Job Attribute
  2758.  
  2759.             This job attribute specifies the Printer should do if the
  2760.             Printer can not support all other attribute values in
  2761.             other Job attributes.  If the value is "substitute-as-
  2762.             needed" then the end user desires the job to be printed
  2763.             using substitutions by the Printer where needed in order
  2764.             to resolve conflicts.  If the value is do-not-substitute
  2765.             then the end user desires that the job should not be
  2766.             processes unless every attribute value can be completely
  2767.             satisfied.  If the client does not supply a value for
  2768.             this attribute in a print request, the Printer shall
  2769.             assume that the value is "do-not-substitute."
  2770.  
  2771.             Note: that best-effort is unlikely to be used much. Many
  2772.             clients will submit a job with no attributes, and the
  2773.             Printer will use default values. Other clients will
  2774.             submit a job via a GUI which limits the attribute values
  2775.             to those which are supported. Best-effort is useful in
  2776.             the GUI context only if a user expects the job to be
  2777.             moved to another printer and prefers a sub-optimal result
  2778.             to nothing at all. Best-effort is most useful in the case
  2779.             where an end-user uses a command line interface to
  2780.             request attributes that may not be supported.
  2781.  
  2782.  
  2783.  
  2784.  
  2785.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 48]
  2786.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2787.  
  2788.  
  2789.  
  2790.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2791.  
  2792.  
  2793.           5.2.4.2.2 As a Printer Attribute
  2794.  
  2795.             This printer attribute specifies supported and default
  2796.             behavior of the Printer if there is a conflict between
  2797.             Job attributes and Printer supported attributes,  If the
  2798.             value is "substitute" then Printer is capable of doing
  2799.             some sort of best effort when there is a conflict,   If
  2800.             the value is do-not-substitute then the  Printer will
  2801.             reject all print requests that can not be completely
  2802.             satisfied.   If the Printer object does not instantiate
  2803.             this attribute, the client shall assume that the value is
  2804.             do-not-subtitute.
  2805.  
  2806.  
  2807.  
  2808.  
  2809.           5.2.5 Document Production (document-production) Attributes
  2810.           (Set by Client/End User)
  2811.  
  2812.             These attributes are similar to Job Production Attributes
  2813.             except that they may also be associated with a document
  2814.             and override the same attribute associated with the job.
  2815.  
  2816.             These attributes form the attribute group called
  2817.             "document-production".
  2818.  
  2819.  
  2820.           5.2.5.1 medium (setOf type2 keyword)
  2821.  
  2822.  
  2823.           5.2.5.1.1 As a Job Attribute
  2824.  
  2825.             This job attribute identifies the medium that the Printer
  2826.             shall use for all pages of the document regardless of
  2827.             what media are specified within the document.
  2828.  
  2829.             The values for medium include medium-names, medium-sizes,
  2830.             input-trays and electronic forms so that one attribute
  2831.             specifies the media.
  2832.  
  2833.             If a printer allows a client to specify a medium-name as
  2834.             the value of this attribute, such a medium-name
  2835.             implicitly selects an input-tray that contains the
  2836.             specified medium.
  2837.  
  2838.             If a printer allows a client to specify a medium-size as
  2839.             the value of this attribute, such a medium-size
  2840.             implicitly selects a medium-name which in turn implicitly
  2841.  
  2842.  
  2843.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 49]
  2844.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2845.  
  2846.  
  2847.  
  2848.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2849.  
  2850.  
  2851.             selects an input-tray that contains the medium with the
  2852.             specified size. If a printer contains two or more medium-
  2853.             names with the same medium-size, then a printer shall not
  2854.             include that medium-size in the list of supported values
  2855.             for this attribute and the printer shall reject jobs that
  2856.             request such a medium-size.
  2857.  
  2858.             If a printer allows a client to specify an input-tray as
  2859.             the value of this attribute, such an input-tray
  2860.             implicitly selects the medium that is in that input-tray
  2861.             at the time the job prints. This case includes manual-
  2862.             freed input-trays.
  2863.  
  2864.             If a printer allows a client to specify an electronic
  2865.             form as the value of this attribute, such an electronic
  2866.             form implicitly selects a medium-name which in turn
  2867.             implicitly selects an input-tray that contains the medium
  2868.             specified by the electronic form. The electronic form
  2869.             also implicitly selects an image that the Printer shall
  2870.             merge with the data from the document as its prints each
  2871.             page. When this attribute appears as a job attribute with
  2872.             the embedded tag, it may contain more than one value and
  2873.             it shall indicate all media required by the document.
  2874.  
  2875.  
  2876.           5.2.5.1.2 As a Printer Attribute
  2877.  
  2878.             This printer attribute identifies the default value. It
  2879.             also identifies the media, media-sizes, input trays, and
  2880.             electronic forms supported by this printer, and indicates
  2881.             the state of availability  for each medium resource.
  2882.  
  2883.             Standard values are defined(taken from ISO DPA and the
  2884.             Printer MIB):
  2885.  
  2886.                default           The default medium for the
  2887.                                  output device
  2888.                iso-a4-white      Specifies the ISO A4 white
  2889.                                  medium
  2890.                iso-a4-colored    Specifies the ISO A4 coloured
  2891.                                  medium
  2892.                iso-a4-           Specifies the ISO A4
  2893.                transparent       transparent medium
  2894.                iso-a3-white      Specifies the ISO A3 white
  2895.                                  medium
  2896.                iso-a3-colored    Specifies the ISO A3 coloured
  2897.                                  medium
  2898.  
  2899.  
  2900.  
  2901.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 50]
  2902.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2903.  
  2904.  
  2905.  
  2906.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2907.  
  2908.  
  2909.                iso-a5-white      Specifies the ISO A5 white
  2910.                                  medium
  2911.                iso-a5-colored    Specifies the ISO A5 coloured
  2912.                                  medium
  2913.                iso-b4-white      Specifies the ISO B4 white
  2914.                                  medium
  2915.                iso-b4-colored    Specifies the ISO B4 coloured
  2916.                                  medium
  2917.                iso-b5-white      Specifies the ISO B5 white
  2918.                                  medium
  2919.                iso-b5-colored    Specifies the ISO B5 coloured
  2920.                                  medium
  2921.                jis-b4-white      Specifies the JIS B4 white
  2922.                                  medium
  2923.                jis-b4-colored    Specifies the JIS B4 coloured
  2924.                                  medium
  2925.                jis-b5-white      Specifies the JIS B5 white
  2926.                                  medium
  2927.                jis-b5-colored    Specifies the JIS B5 coloured
  2928.                                  medium
  2929.  
  2930.  
  2931.             The following standard values are defined for North
  2932.             American media:
  2933.  
  2934.                na-letter-white   Specifies the North American
  2935.                                  letter white medium
  2936.                na-letter-        Specifies the North American
  2937.                colored           letter coloured medium
  2938.                na-letter-        Specifies the North American
  2939.                transparent       letter transparent medium
  2940.                na-legal-white    Specifies the North American
  2941.                                  legal white medium
  2942.                na-legal-colored  Specifies the North American
  2943.                                  legal coloured medium
  2944.  
  2945.  
  2946.             The following standard values are defined for envelopes:
  2947.  
  2948.                iso-b4-envelope   Specifies the ISO B4 envelope
  2949.                                  medium
  2950.                iso-b5-envelope   Specifies the ISO B5 envelope
  2951.                                  medium
  2952.                iso-c3-envelope   Specifies the ISO C3 envelope
  2953.                                  medium
  2954.                iso-c4-envelope   Specifies the ISO C4 envelope
  2955.                                  medium
  2956.  
  2957.  
  2958.  
  2959.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 51]
  2960.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  2961.  
  2962.  
  2963.  
  2964.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  2965.  
  2966.  
  2967.                iso-c5-envelope   Specifies the ISO C5 envelope
  2968.                                  medium
  2969.                iso-c6-envelope   Specifies the ISO C6 envelope
  2970.                                  medium
  2971.                iso-designated-   Specifies the ISO Designated
  2972.                long-envelope     Long envelope medium
  2973.                na-10x13-         Specifies the North American
  2974.                envelope          10x13 envelope medium
  2975.                na-9x12-envelope  Specifies the North American
  2976.                                  9x12 envelope medium
  2977.                monarch-envelope  Specifies the Monarch envelope
  2978.                na-number-10-     Specifies the North American
  2979.                envelope          number 10 business envelope
  2980.                                  medium
  2981.                na-7x9-envelope   Specifies the North American
  2982.                                  7x9 inch envelope
  2983.                na-9x11-envelope  Specifies the North American
  2984.                                  9x11 inch envelope
  2985.                na-10x14-         Specifies the North American
  2986.                envelope          10x14 inch envelope
  2987.                na-number-9-      Specifies the North American
  2988.                envelope          number 9 business envelope
  2989.                na-6x9-envelope   Specifies the North American
  2990.                                  6x9 inch envelope
  2991.                na-10x15-         Specifies the North American
  2992.                envelope          10x15 inch envelope
  2993.  
  2994.  
  2995.             The following standard values are defined for the less
  2996.             commonly used media (white-only):
  2997.  
  2998.                executive-white   Specifies the white executive
  2999.                                  medium
  3000.                folio-white       Specifies the folio white
  3001.                                  medium
  3002.                invoice-white     Specifies the white invoice
  3003.                                  medium
  3004.                ledger-white      Specifies the white ledger
  3005.                                  medium
  3006.                quarto-white      Specified the white quarto
  3007.                                  medium
  3008.                iso-a0-white      Specifies the ISO A0 white
  3009.                                  medium
  3010.                iso-a1-white      Specifies the ISO A1 white
  3011.                                  medium
  3012.                iso-a2-white      Specifies the ISO A2 white
  3013.                                  medium
  3014.  
  3015.  
  3016.  
  3017.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 52]
  3018.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3019.  
  3020.  
  3021.  
  3022.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3023.  
  3024.  
  3025.                iso-a6-white      Specifies the ISO A6 white
  3026.                                  medium
  3027.                iso-a7-white      Specifies the ISO A7 white
  3028.                                  medium
  3029.                iso-a8-white      Specifies the ISO A8 white
  3030.                                  medium
  3031.                iso-a9-white      Specifies the ISO A9 white
  3032.                                  medium
  3033.                iso-10-white      Specifies the ISO A10 white
  3034.                                  medium
  3035.                iso-b0-white      Specifies the ISO B0 white
  3036.                                  medium
  3037.                iso-b1-white      Specifies the ISO B1 white
  3038.                                  medium
  3039.                iso-b2-white      Specifies the ISO B2 white
  3040.                                  medium
  3041.                iso-b3-white      Specifies the ISO B3 white
  3042.                                  medium
  3043.                iso-b6-white      Specifies the ISO B6 white
  3044.                                  medium
  3045.                iso-b7-white      Specifies the ISO B7 white
  3046.                                  medium
  3047.                iso-b8-white      Specifies the ISO B8 white
  3048.                                  medium
  3049.                iso-b9-white      Specifies the ISO B9 white
  3050.                                  medium
  3051.                iso-b10-white     Specifies the ISO B10 white
  3052.                                  medium
  3053.                jis-b0-white      Specifies the JIS B0 white
  3054.                                  medium
  3055.                jis-b1-white      Specifies the JIS B1 white
  3056.                                  medium
  3057.                jis-b2-white      Specifies the JIS B2 white
  3058.                                  medium
  3059.                jis-b3-white      Specifies the JIS B3 white
  3060.                                  medium
  3061.                jis-b6-white      Specifies the JIS B6 white
  3062.                                  medium
  3063.                jis-b7-white      Specifies the JIS B7 white
  3064.                                  medium
  3065.                jis-b8-white      Specifies the JIS B8 white
  3066.                                  medium
  3067.                jis-b9-white      Specifies the JIS B9 white
  3068.                                  medium
  3069.                jis-b10-white     Specifies the JIS B10 white
  3070.                                  medium
  3071.  
  3072.  
  3073.  
  3074.  
  3075.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 53]
  3076.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3077.  
  3078.  
  3079.  
  3080.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3081.  
  3082.  
  3083.             The following standard values are defined for engineering
  3084.             media:
  3085.  
  3086.                a                 Specifies the engineering A
  3087.                                  size medium
  3088.                b                 Specifies the engineering B
  3089.                                  size medium
  3090.                c                 Specifies the engineering C
  3091.                                  size medium
  3092.                d                 Specifies the engineering D
  3093.                                  size medium
  3094.                e                 Specifies the engineering E
  3095.                                  size medium
  3096.  
  3097.  
  3098.             The following standard values are defined for input-trays
  3099.             (from ISO DPA and the Printer MIB):
  3100.  
  3101.                top        The top input tray in the printer.
  3102.                middle     The middle input tray in the printer.
  3103.                bottom     The bottom input tray in the printer.
  3104.                envelope   The envelope input tray in the
  3105.                           printer.
  3106.                manual     The manual feed input tray in the
  3107.                           printer.
  3108.                large-     The large capacity input tray in the
  3109.                capacity   printer.
  3110.                main       The main input tray
  3111.                side       The side input tray
  3112.  
  3113.  
  3114.             The following standard values are defined for media sizes
  3115.             (from ISO DPA):
  3116.  
  3117.                iso-a0  Specifies the ISO A0 size: 841 mm by
  3118.                        1189 mm as defined in ISO 216
  3119.                iso-a1  Specifies the ISO A1 size: 594 mm by 841
  3120.                        mm as defined in ISO 216
  3121.                iso-a2  Specifies the ISO A2 size: 420 mm by 594
  3122.                        mm as defined in ISO 216
  3123.                iso-a3  Specifies the ISO A3 size: 297 mm by 420
  3124.                        mm as defined in ISO 216
  3125.                iso-a4  Specifies the ISO A4 size: 210 mm by 297
  3126.                        mm as defined in ISO 216
  3127.                iso-a5  Specifies the ISO A5 size: 148 mm by 210
  3128.                        mm as defined in ISO 216
  3129.                iso-a6  Specifies the ISO A6 size: 105 mm by 148
  3130.                        mm as defined in ISO 216
  3131.  
  3132.  
  3133.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 54]
  3134.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3135.  
  3136.  
  3137.  
  3138.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3139.  
  3140.  
  3141.                iso-a7  Specifies the ISO A7 size: 74 mm by 105
  3142.                        mm as defined in ISO 216
  3143.                iso-a8  Specifies the ISO A8 size: 52 mm by 74
  3144.                        mm as defined in ISO 216
  3145.                iso-a9  Specifies the ISO A9 size: 37 mm by 52
  3146.                        mm as defined in ISO 216
  3147.                iso-a10 Specifies the ISO A10 size: 26 mm by 37
  3148.                        mm as defined in ISO 216
  3149.  
  3150.                iso-b0  Specifies the ISO B0 size: 1000 mm by
  3151.                        1414 mm as defined in ISO 216
  3152.                iso-b1  Specifies the ISO B1 size: 707 mm by
  3153.                        1000 mm as defined in ISO 216
  3154.                iso-b2  Specifies the ISO B2 size: 500 mm by 707
  3155.                        mm as defined in ISO 216
  3156.                iso-b3  Specifies the ISO B3 size: 353 mm by 500
  3157.                        mm as defined in ISO 216
  3158.                iso-b4  Specifies the ISO B4 size: 250 mm by 353
  3159.                        mm as defined in ISO 216
  3160.                iso-b5  Specifies the ISO B5 size: 176 mm by 250
  3161.                        mm as defined in ISO 216
  3162.                iso-b6  Specifies the ISO B6 size: 125 mm by 176
  3163.                        mm as defined in ISO 216
  3164.                iso-b7  Specifies the ISO B7 size: 88 mm by 125
  3165.                        mm as defined in ISO 216
  3166.                iso-b8  Specifies the ISO B8 size: 62 mm by 88
  3167.                        mm as defined in ISO 216
  3168.                iso-b9  Specifies the ISO B9 size: 44 mm by 62
  3169.                        mm as defined in ISO 216
  3170.                iso-b10 Specifies the ISO B10 size: 31 mm by 44
  3171.                        mm as defined in ISO 216
  3172.  
  3173.                na-letter   Specifies the North American letter
  3174.                            size: 8.5 inches by 11 inches
  3175.                na-legal    Specifies the North American legal
  3176.                            size: 8.5 inches by 14 inches
  3177.                executive   Specifies the executive size (7.25 X
  3178.                            10.5 in)
  3179.                folio       Specifies the folio size (8.5 X 13
  3180.                            in)
  3181.                invoice     Specifies the invoice size (5.5 X
  3182.                            8.5 in)
  3183.                ledger      Specifies the ledger size (11 X 17
  3184.                            in)
  3185.                quarto      Specifies the quarto size (8.5 X
  3186.                            10.83 in)
  3187.  
  3188.  
  3189.  
  3190.  
  3191.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 55]
  3192.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3193.  
  3194.  
  3195.  
  3196.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3197.  
  3198.  
  3199.                iso-c3      Specifies the ISO C3 size: 324 mm by
  3200.                            458 mm as defined in ISO 269
  3201.                iso-c4      Specifies the ISO C4 size: 229 mm by
  3202.                            324 mm as defined in ISO 269
  3203.                iso-c5      Specifies the ISO C5 size: 162 mm by
  3204.                            229 mm as defined in ISO 269
  3205.                iso-c6      Specifies the ISO C6 size: 114 mm by
  3206.                            162 mm as defined in ISO 269
  3207.                iso-        Specifies the ISO Designated Long
  3208.                designated  size: 110 mm by 220 mm as defined in
  3209.                -long       ISO 269
  3210.  
  3211.                na-10x13-       Specifies the North American
  3212.                envelope        10x13 size: 10 inches by 13
  3213.                                inches
  3214.                na-9x12-        Specifies the North American
  3215.                envelope        9x12 size: 9 inches by 12 inches
  3216.                na-number-10-   Specifies the North American
  3217.                envelope        number 10 business envelope
  3218.                                size: 4.125 inches by 9.5 inches
  3219.                na-7x9-         Specifies the North American 7x9
  3220.                envelope        inch envelope size
  3221.                na-9x11-        Specifies the North American
  3222.                envelope        9x11 inch envelope size
  3223.                na-10x14-       Specifies the North American
  3224.                envelope        10x14 inch envelope size
  3225.                na-number-9-    Specifies the North American
  3226.                envelope        number 9 business envelope size
  3227.                na-6x9-         Specifies the North American 6x9
  3228.                envelope        envelope size
  3229.                na-10x15-       Specifies the North American
  3230.                envelope        10x15 envelope size
  3231.                monarch-        Specifies the Monarch envelope
  3232.                envelope        size (3.87 x 7.5 in)
  3233.  
  3234.                a               Specifies the engineering A
  3235.                                size: 8.5 inches by 11
  3236.                                inches
  3237.                b               Specifies the engineering B
  3238.                                size: 11 inches by 17
  3239.                                inches
  3240.                c               Specifies the engineering C
  3241.                                size: 17 inches by 22
  3242.                                inches
  3243.                d               Specifies the engineering D
  3244.                                size: 22 inches by 34
  3245.                                inches
  3246.  
  3247.  
  3248.  
  3249.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 56]
  3250.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3251.  
  3252.  
  3253.  
  3254.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3255.  
  3256.  
  3257.                e               Specifies the engineering E
  3258.                                size: 34 inches by 44
  3259.                                inches
  3260.  
  3261.                jis-b0    Specifies the JIS B0 size: 1030mm x
  3262.                          1456mm
  3263.                jis-b1    Specifies the JIS B1 size: 728mm x
  3264.                          1030mm
  3265.                jis-b2    Specifies the JIS B2 size: 515mm x
  3266.                          728mm
  3267.                jis-b3    Specifies the JIS B3 size: 364mm x
  3268.                          515mm
  3269.                jis-b4    Specifies the JIS B4 size: 257mm x
  3270.                          364mm
  3271.                jis-b5    Specifies the JIS B5 size: 182mm x
  3272.                          257mm
  3273.                jis-b6    Specifies the JIS B6 size: 128mm x
  3274.                          182mm
  3275.                jis-b7    Specifies the JIS B7 size: 91mm x 128mm
  3276.                jis-b8    Specifies the JIS B8 size: 64mm x 91mm
  3277.                jis-b9    Specifies the JIS B9 size: 45mm x 64mm
  3278.                jis-b10   Specifies the JIS B10 size: 32mm x 45mm
  3279.  
  3280.           5.2.5.2 number-up (type3Enum)
  3281.  
  3282.  
  3283.           5.2.5.2.1 As a Job Attribute
  3284.  
  3285.             This job attribute specifies the number of source page-
  3286.             images to impose upon a single side of an instance of a
  3287.             selected medium.
  3288.  
  3289.  
  3290.           5.2.5.2.2 As a Printer Attribute
  3291.  
  3292.             This printer attribute identifies the default value and
  3293.             the number-up values supported by this printer..
  3294.  
  3295.             The state of readiness for each number-up value is also
  3296.             included, though all number-up conversions should always
  3297.             be ready.
  3298.  
  3299.             In general, only certain numeric values are valid for
  3300.             this attribute and the value "none", depending upon the
  3301.             Printer implementation to which the print-request is
  3302.             directed.  Standard values are: "none", "1", "2", "4".
  3303.  
  3304.  
  3305.  
  3306.  
  3307.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 57]
  3308.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3309.  
  3310.  
  3311.  
  3312.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3313.  
  3314.  
  3315.             This attribute primarily controls the translation,
  3316.             scaling and rotation of page images, but a site may
  3317.             choose to add embellishments, such as borders to each
  3318.             logical page.  The value "none" shall not include any
  3319.             embellishments and shall place one logical page on a
  3320.             single side of an instance of the selected medium without
  3321.             any translation, scaling, or rotation.
  3322.  
  3323.  
  3324.           5.2.5.3 sides (type2 keyword)
  3325.  
  3326.  
  3327.           5.2.5.3.1 As a Job Attribute
  3328.  
  3329.             This job attribute specifies how source page-images are
  3330.             to be imposed upon the sides of an instance of a selected
  3331.             medium.
  3332.  
  3333.             When this attribute appears as a job attribute with the
  3334.             embedded tag, it may contain more than one value and it
  3335.             shall indicate all sides operations required by the
  3336.             document.
  3337.  
  3338.  
  3339.           5.2.5.3.2 As a Printer Attribute
  3340.  
  3341.             This printer attribute indicates the default. It also
  3342.             indicates the values of the sides attribute supported by
  3343.             this printer and the states of readiness of each value.
  3344.  
  3345.             The standard values are: 1-sided, 2-sided-long-edge, 2-
  3346.             sided-short-edge.
  3347.  
  3348.             1-sided imposes each consecutive source page-image upon
  3349.             the same side of consecutive media sheets.
  3350.  
  3351.             2-sided-long-edge imposes each consecutive pair of source
  3352.             page-image upon front and back sides of consecutive media
  3353.             sheets, such that the orientation of each pair of source-
  3354.             pages on the medium would be correct for the reader as if
  3355.             for binding on the long edge.  This imposition is
  3356.             sometimes called "duplex".
  3357.  
  3358.             2-sided-short-edge imposes each consecutive pair of
  3359.             source page-image upon front and back sides of
  3360.             consecutive media sheets, such that the orientation of
  3361.             each pair of source-pages on the medium would be correct
  3362.  
  3363.  
  3364.  
  3365.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 58]
  3366.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3367.  
  3368.  
  3369.  
  3370.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3371.  
  3372.  
  3373.             for the reader as if for binding on the short edge.  This
  3374.             imposition is sometimes called "tumble" or "head-to-toe".
  3375.  
  3376.             2-sided-long-edge and 2-sided-short-edge work the same
  3377.             for portrait or landscape.  That is, "head-to-toe" is
  3378.             "tumble" in portrait but "duplex" in landscape.  "head-
  3379.             to-head" also switches between "duplex" and "tumble" when
  3380.             using portrait and landscape modes.
  3381.  
  3382.  
  3383.           5.2.5.4 printer-resolution (type2 keyword)
  3384.  
  3385.  
  3386.           5.2.5.4.1 As a Job Attribute
  3387.  
  3388.             This job attribute specifies the resolution that the
  3389.             Printer should use.
  3390.  
  3391.             When this attribute appears as a job attribute with the
  3392.             embedded tag, it shall indicate the printer resolution
  3393.             required by the document.
  3394.  
  3395.  
  3396.           5.2.5.4.2 As a Printer Attribute
  3397.  
  3398.             This printer attribute indicates the default value. It
  3399.             also indicates the values of the printer-resolution-
  3400.             select attribute supported by this printer and their
  3401.             states of readiness.
  3402.  
  3403.             The state of readiness for each printer resolution is
  3404.             also included, though normally all printer-resolutions
  3405.             should always be ready.
  3406.  
  3407.             The values are type2Enums which represent single integers
  3408.             or pair of integers. The latter are to specify the
  3409.             resolution when the x and y dimensions differ. When two
  3410.             integers are specified, the first is in the x direction,
  3411.             i.e., in the direction of the shortest dimension of the
  3412.             medium, so that the value is independent of whether the
  3413.             printer feeds long edge or short edge first.
  3414.  
  3415.             The standard values are:
  3416.  
  3417.                   res-100
  3418.                   res-200
  3419.                   res-240
  3420.                   res-300
  3421.  
  3422.  
  3423.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 59]
  3424.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3425.  
  3426.  
  3427.  
  3428.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3429.  
  3430.  
  3431.                   res-600
  3432.                   res-800
  3433.                   res-1200
  3434.                   res-1800
  3435.                   res-100x200
  3436.                   res-300x600
  3437.                   res-600x300
  3438.                   res-400x800
  3439.                   res-800x400
  3440.                   res-600x1200
  3441.                   res-1200x600
  3442.                   res-1800x600
  3443.  
  3444.           5.2.5.5 print-quality (type2 keyword)
  3445.  
  3446.  
  3447.           5.2.5.5.1 As a Job Attribute
  3448.  
  3449.             This job attribute specifies the print quality that the
  3450.             Printer should use.
  3451.  
  3452.             When this attribute appears as a job attribute with the
  3453.             embedded tag, it shall indicate the print-quality
  3454.             required by the document.
  3455.  
  3456.  
  3457.           5.2.5.5.2 As a Printer Attribute
  3458.  
  3459.             This printer attribute indicates the default value. It
  3460.             also indicates the values of the printer-quality
  3461.             attribute supported by this printer and the states of
  3462.             readiness for each print-quality value.
  3463.  
  3464.             The standard values are defined in the printer-quality
  3465.             attribute.
  3466.  
  3467.             The standard values are:
  3468.  
  3469.                 draft         Lowest quality available on the
  3470.                               printer
  3471.  
  3472.                 normal        Normal or intermediate quality on
  3473.                               the printer
  3474.  
  3475.                 high          Highest quality available on the
  3476.                               printer
  3477.  
  3478.  
  3479.  
  3480.  
  3481.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 60]
  3482.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3483.  
  3484.  
  3485.  
  3486.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3487.  
  3488.  
  3489.           5.2.5.6 copies (integer(1:2**31 - 1))
  3490.  
  3491.  
  3492.           5.2.5.6.1 As a Job Attribute
  3493.  
  3494.             This job attribute specifies the number of copies of the
  3495.             job to be printed.
  3496.  
  3497.             NOTE - The effect of this attribute on jobs and documents
  3498.             is controlled by the multiple-files-are job attribute.
  3499.  
  3500.  
  3501.           5.2.5.6.2 As a Printer Attribute
  3502.  
  3503.             This printer attribute indicates the default value. It
  3504.             also specifies the minimum and maximum number of copies
  3505.             of a document that can be rendered by this printer in a
  3506.             single print-job.
  3507.  
  3508.  
  3509.           5.2.5.7 finishing (setOf type2 keyword)
  3510.  
  3511.  
  3512.           5.2.5.7.1 As a Job Attribute
  3513.  
  3514.             This job attribute identifies the finishing operation
  3515.             that the Printer should apply to each copy of each
  3516.             printed document in the job where the definition of a
  3517.             copy is controlled by the multiple-documents-are  Job
  3518.             attributes.
  3519.  
  3520.             When this attribute appears as a job attribute with the
  3521.             embedded tag, it may contain more than one value and it
  3522.             shall indicate all finishing operations required by the
  3523.             job.
  3524.  
  3525.  
  3526.           5.2.5.7.2 As a Printer Attribute
  3527.  
  3528.             This printer attribute identifies the default value. It
  3529.             also identifies the finishing operations supported by
  3530.             this Printer and states of availability  for each
  3531.             finishing.
  3532.  
  3533.             Standard values for this attribute are:
  3534.  
  3535.                none         Perform no finishing.
  3536.  
  3537.  
  3538.  
  3539.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 61]
  3540.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3541.  
  3542.  
  3543.  
  3544.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3545.  
  3546.  
  3547.                staple       This indicates that staples are to
  3548.                             be used to bind the document. The
  3549.                             exact number and placement of the
  3550.                             staples is site-defined; other
  3551.                             finishing object attributes may be
  3552.                             included to provide this
  3553.                             information.
  3554.                staple-top-  This indicates that one or more
  3555.                left         staples should be placed on the top
  3556.                             left corner of the document
  3557.                staple-      This indicates that one or more
  3558.                bottom-left  staples should be placed on the
  3559.                             bottom left corner of the document
  3560.                staple-top-  This indicates that one or more
  3561.                right        staples should be placed on the top
  3562.                             right corner of the document
  3563.                staple-
  3564.                bottom-      staples should be placed on the
  3565.                             This indicates that one or more
  3566.                right        bottom right corner of the document
  3567.                saddle-      This indicates that one or more
  3568.                stitch       staples (wire stitches) are to be
  3569.                             used to bind the document along the
  3570.                             middle fold.  The exact number and
  3571.                             placement of the stitches is site-
  3572.                             defined.
  3573.                edge-stitch  This indicates that one or more
  3574.                             staples (wire stitches) are to be
  3575.                             used to bind the document along one
  3576.                             edge.  The exact number and
  3577.                             placement of the staples is site-
  3578.                             defined.
  3579.                punch        This indicates that holes are
  3580.                             required in the finished document.
  3581.                             The exact number and placement of
  3582.                             the holes is site-defined  The
  3583.                             punch specification may be
  3584.                             satisfied (in a site- and
  3585.                             implementation-specific manner)
  3586.                             either by drilling/punching, or by
  3587.                             substituting predrilled media.
  3588.                cover        This value is specified when it is
  3589.                             desired to select a non-printed (or
  3590.                             pre-printed) cover for the
  3591.                             document. This does not supplant
  3592.                             the specification of a printed
  3593.                             cover (on cover stock medium) by
  3594.                             the document itself.
  3595.  
  3596.  
  3597.  
  3598.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 62]
  3599.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3600.  
  3601.  
  3602.  
  3603.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3604.  
  3605.  
  3606.                bind         This indicates that a binding is to
  3607.                             be applied to the document; the
  3608.                             type and placement of the binding
  3609.                             is site-defined.
  3610.  
  3611.  
  3612.  
  3613.           5.2.5.8 compression (type2 keyword)
  3614.  
  3615.             This attribute identifies compression algorithms used for
  3616.             compression document data.
  3617.  
  3618.             Standard values for this attribute are:  zip, tar, ...
  3619.  
  3620.  
  3621.           5.2.5.8.1 As a Job Attribute
  3622.  
  3623.             This job attribute identifies the compression algorithm
  3624.             that has been applied to the document data.
  3625.  
  3626.  
  3627.           5.2.5.8.2 As a Printer Attribute
  3628.  
  3629.             This printer attribute identifies the default value. It
  3630.             also identifies the compression algorithms supported by
  3631.             this Printer
  3632.  
  3633.  
  3634.           5.2.6 Document Format Attributes (Set by Client/End User)
  3635.  
  3636.             There is no group name for these attributes since there
  3637.             is only one attribute in the group.
  3638.  
  3639.  
  3640.           5.2.6.1 document-format (type2 keyword)
  3641.  
  3642.  
  3643.           5.2.6.1.1 As a Job Attribute
  3644.  
  3645.             This job attribute identifies the document format of this
  3646.             document, and may be a per-document attribute.
  3647.  
  3648.  
  3649.           5.2.6.1.2 As a Printer Attribute
  3650.  
  3651.             This printer attribute indicates default value. It also
  3652.             indicates the values of the attribute supported by this
  3653.  
  3654.  
  3655.  
  3656.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 63]
  3657.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3658.  
  3659.  
  3660.  
  3661.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3662.  
  3663.  
  3664.             printer and the states of readiness for each value. One
  3665.             possible supported and default value is "auto-sense".
  3666.  
  3667.             The following standard values have been reviewed with the
  3668.             Printer Working Group and are registered with IANA as
  3669.             part of the IETF Printer MIB project.  The standard value
  3670.             assigned by the PWG starts with the four letters: "lang",
  3671.             in order to follow SNMP ASN.1 rules that all enum symbols
  3672.             shall start with a lower case letter.  The keyword values
  3673.             in IPP shall be the same as the PWG standard values
  3674.             registered with IANA with the "lang" removed.  The MIB
  3675.             (integer) value is included here for reference only, the
  3676.             MIB integer value shall not be used in IPP;  the keyword
  3677.             value shall be used instead:
  3678.  
  3679.                 keyword     MIB  Description
  3680.                 Value       val
  3681.                             ue
  3682.                 other       1
  3683.                 PCL         3    PCL.  Starting with PCL version 5,
  3684.                                  HP-GL/2 is included as part of the
  3685.                                  PCL language.  PCL and HP-GL/2 are
  3686.                                  registered trademarks of Hewlett-
  3687.                                  Packard Company.
  3688.                 HPGL        4    Hewlett-Packard Graphics Language.
  3689.                                  HP-GL is a registered trademark of
  3690.                                  Hewlett-Packard Company.
  3691.                 PJL         5    Peripheral Job Language.  Appears
  3692.                                  in the data stream between data
  3693.                                  intended for a page description
  3694.                                  language.  Hewlett-Packard Co.
  3695.                 PS          6    PostScript Language (tm)
  3696.                                  Postscript - a trademark of Adobe
  3697.                                  Systems Incorporated which may be
  3698.                                  registered in certain
  3699.                                  jurisdictions
  3700.                 IPDS        7    Intelligent Printer Data Stream
  3701.                                  Bi-directional print data stream
  3702.                                  for documents consisting of data
  3703.                                  objects (text, image, graphics,
  3704.                                  bar codes), resources (fonts,
  3705.                                  overlays) and page, form and
  3706.                                  finishing instructions.
  3707.                                  Facilitates system level device
  3708.                                  control, document tracking and
  3709.                                  error recovery throughout the
  3710.                                  print process.  Pennant Systems,
  3711.                                  IBM
  3712.  
  3713.  
  3714.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 64]
  3715.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3716.  
  3717.  
  3718.  
  3719.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3720.  
  3721.  
  3722.                 PPDS        8    IBM Personal Printer Data Stream.
  3723.                                  Originally called IBM ASCII, the
  3724.                                  name was changed to PPDS when the
  3725.                                  Laser Printer was introduced in
  3726.                                  1989.  Lexmark International, Inc.
  3727.                 EscapeP     9    Epson Corp.
  3728.                 Epson       10
  3729.                 DDIF        11   Digital Document Interchange
  3730.                                  Format Digital Equipment Corp.,
  3731.                                  Maynard MA
  3732.                 Interpress  12   Xerox Corp.
  3733.                 ISO6429     13   ISO 6429.  Control functions for
  3734.                                  Coded Character Sets (has ASCII
  3735.                                  control characters, plus
  3736.                                  additional controls for character
  3737.                                  imaging devices.) ISO Standard,
  3738.                                  Geneva, Switzerland
  3739.                 LineData    14   line-data: Lines of data as
  3740.                                  separate ASCII or EBCDIC records
  3741.                                  and containing no control
  3742.                                  functions (no CR, LF, HT, FF,
  3743.                                  etc.).  For use with traditional
  3744.                                  line printers.  May use CR and/or
  3745.                                  LF to delimit lines, instead of
  3746.                                  records.  See ISO 10175 Document
  3747.                                  Printing Application (DPA) ISO
  3748.                                  standard, Geneva, Switzerland
  3749.                 MODCA       15   Mixed Object Document Content
  3750.                                  Architecture Definitions that
  3751.                                  allow the composition,
  3752.                                  interchange, and presentation of
  3753.                                  final form documents as a
  3754.                                  collection of data objects (text,
  3755.                                  image, graphics, bar codes),
  3756.                                  resources (fonts, overlays) and
  3757.                                  page, form and finishing
  3758.                                  instructions.  Pennant Systems,
  3759.                                  IBM
  3760.                 REGIS       16   Remote Graphics Instruction Set,
  3761.                                  Digital Equipment Corp., Maynard
  3762.                                  MA
  3763.                 SCS         17   SNA Character String Bi-
  3764.                                  directional print data stream for
  3765.                                  SNA LU-1 mode of communications
  3766.                                  IBM
  3767.                 SPDL        18   ISO 10180 Standard Page
  3768.                                  Description Language ISO Standard
  3769.                 TEK4014     19   Tektronix Corp.
  3770.  
  3771.  
  3772.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 65]
  3773.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3774.  
  3775.  
  3776.  
  3777.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3778.  
  3779.  
  3780.                 PDS         20
  3781.                 IGP         21   Printronix Corp.
  3782.                 CodeV       22   Magnum Code-V, Image and printer
  3783.                                  control language used to control
  3784.                                  impact/dot- matrix printers.  QMS,
  3785.                                  Inc., Mobile AL
  3786.                 DSCDSE      23   DSC-DSE: Data Stream Compatible
  3787.                                  and Emulation Bi-directional print
  3788.                                  data stream for non-SNA (DSC) and
  3789.                                  SNA LU-3 3270 controller (DSE)
  3790.                                  communications IBM
  3791.                 WPS         24   Windows Printing System, Resource
  3792.                                  based command/data stream used by
  3793.                                  Microsoft At Work Peripherals.
  3794.                                  Developed by the Microsoft
  3795.                                  Corporation.
  3796.                 LN03        25   Early DEC-PPL3, Digital Equipment
  3797.                                  Corp.
  3798.                 CCITT       26
  3799.                 QUIC        27   QUIC (Quality Information Code),
  3800.                                  Page Description Language for
  3801.                                  laser printers.  Included
  3802.                                  graphics, printer control
  3803.                                  capability and emulation of other
  3804.                                  well- known printer .  QMS, Inc.
  3805.                 CPAP        28   Common Printer Access Protocol
  3806.                                  Digital Equipment Corp
  3807.                 DecPPL      29   Digital ANSI-Compliant Printing
  3808.                                  Protocol (DEC-PPL) Digital
  3809.                                  Equipment Corp
  3810.                 SimpleText  30   simple-text: character coded data,
  3811.                                  including NUL, CR , LF, HT, and FF
  3812.                                  control characters.  See ISO 10175
  3813.                                  Document Printing Application
  3814.                                  (DPA) ISO standard, Geneva,
  3815.                                  Switzerlan
  3816.                 NPAP        31   Network Printer Alliance Protocol
  3817.                                  (NPAP).  This protocol has been
  3818.                                  superseded by the IEEE 1284.1
  3819.                                  TIPSI standard.  (ref.
  3820.                                  LangTIPSI(49)).
  3821.                 DOC         32   Document Option Commands, Appears
  3822.                                  in the data stream between data
  3823.                                  intended for a page description .
  3824.                                  QMS, Inc
  3825.                 imPress     33   imPRESS, Page description language
  3826.                                  originally developed for the
  3827.                                  ImageServer line of systems.  A
  3828.  
  3829.  
  3830.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 66]
  3831.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3832.  
  3833.  
  3834.  
  3835.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3836.  
  3837.  
  3838.                                  binary language providing
  3839.                                  representations for text, simple
  3840.                                  graphics (rules, lines, conic
  3841.                                  sections), and some large forms
  3842.                                  (simple bit-map and CCITT group
  3843.                                  3/4 encoded).The language was
  3844.                                  intended to be sent over an 8-bit
  3845.                                  channel and supported early
  3846.                                  document preparation languages
  3847.                                  (e.g.  TeX and TROFF).  QMS, Inc.
  3848.                 Pinwriter   34   24 wire dot matrix printer for
  3849.                                  USA, Europe, and Asia except
  3850.                                  Japan.  More widely used in
  3851.                                  Germany, and some Asian countries
  3852.                                  than in US.  NEC
  3853.                 NPDL        35   Page printer for Japanese market.
  3854.                                  NEC
  3855.                 NEC201PL    36   Serial printer language used in
  3856.                                  the Japanese market.  NEC
  3857.                 Automatic   37   Automatic PDL sensing.  Automatic
  3858.                                  sensing of the interpreter
  3859.                                  language family by the printer
  3860.                                  examining the document content.
  3861.                                  Which actual interpreter language
  3862.                                  families are sensed depends on the
  3863.                                  printer implementation.
  3864.                 Pages       38   Page printer Advanced Graphic
  3865.                                  Escape Set IBM Japan
  3866.                 LIPS        39   LBP Image Processing System
  3867.                 TIFF        40   Tagged Image File Format (Aldus)
  3868.                 Diagnostic  41   A hex dump of the input to the
  3869.                                  interprete
  3870.                 PSPrinter   42   The PostScript Language used for
  3871.                                  control (with any PDLs) Adobe
  3872.                                  Systems Incorporated
  3873.                 CaPSL       43   Canon Print Systems Language
  3874.                 EXCL        44   Extended Command Language Talaris
  3875.                                  Systems Inc
  3876.                 LCDS        45   Line Conditioned Data Stream Xerox
  3877.                                  Corporatio
  3878.                 XES         46   Xerox Escape Sequences Xerox
  3879.                                  Corporation
  3880.                 PCLXL       47   Printer Control Language.
  3881.                                  Extended language features for
  3882.                                  printing, and printer control.
  3883.                                  Technical reference manual # TBD.
  3884.                                  Hewlett-Packard Co.
  3885.                 ART         48   Advanced Rendering Tools (ART).
  3886.  
  3887.  
  3888.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 67]
  3889.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3890.  
  3891.  
  3892.  
  3893.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3894.  
  3895.  
  3896.                                  Page Description language
  3897.                                  originally developed for the Laser
  3898.                                  Press printers.  Tehnical
  3899.                                  reference manual: "ART IV
  3900.                                  Reference Manual", No F33M.  Fuji
  3901.                                  Xerox Co., Ltd.
  3902.                 TIPSI       49   Transport Independent Printer
  3903.                                  System Interface (ref.  IEEE Std.
  3904.                                  1284.1)
  3905.                 Prescribe   50   Page description and printer
  3906.                                  control language.  It can be
  3907.                                  described with ordinary ASCII
  3908.                                  characters.  Technical reference
  3909.                                  manual: "PRESCRIBE II Programming
  3910.                                  Manual"
  3911.                 LinePrinte  51   A simple-text character stream
  3912.                 r                which supports the control codes
  3913.                                  LF, VT, FF and CR plus Centronics
  3914.                                  or Dataproducts Vertical Format
  3915.                                  Unit (VFU).  language is commonly
  3916.                                  used on many older model line and
  3917.                                  matrix printers.
  3918.                 IDP         52   Imaging Device Protocol Apple
  3919.                                  Computer.
  3920.                 XJCL        53   Xerox Corp.
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.           5.2.7 Job Size (job-size) Attributes (Set by Client and
  3927.           Printer)
  3928.  
  3929.             These attributes form the attribute group called "job-
  3930.             size".
  3931.  
  3932.             These attribute values all have adornments of either
  3933.             "total" or "printed" and they indicate the size of a job
  3934.             in various units. A client may set these attributes, but
  3935.             not an end-user. The Printer may set these attributes if
  3936.             the client does not. In both of these cases, the
  3937.             attribute value has the adornment of "total", which
  3938.             indicates the client and Printer's best estimate to the
  3939.             total.
  3940.  
  3941.             If a value has the adornment of "printed", then the value
  3942.             shall indicate the current number of octets, impressions
  3943.             or media-sheets (depending on the attribute) that have
  3944.  
  3945.  
  3946.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 68]
  3947.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  3948.  
  3949.  
  3950.  
  3951.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  3952.  
  3953.  
  3954.             been printed. Only the printer shall be allowed to set a
  3955.             value with the "printed" adornment.
  3956.  
  3957.             If a value has no adornment, then it implicitly has the
  3958.             adornment "total".
  3959.  
  3960.             The corresponding  Printer attributes indicate the range
  3961.             of allowed values, but there is no explicit default. If
  3962.             the Job attribute is not specified and the Printer
  3963.             attribute is specified, the Printer shall either compute
  3964.             a value for the job attribute or leave it unspecified.
  3965.             An attribute is accepted if any one of the following
  3966.             conditions is satisfied: a) the Printer attribute is
  3967.             unspecified, b) the job attribute is unspecified, c) the
  3968.             job attribute is within the range specified by the
  3969.             Printer attribute.
  3970.  
  3971.  
  3972.  
  3973.  
  3974.           5.2.7.1 job-k-octets (integer(0:2**31 - 1))
  3975.  
  3976.             This attribute specifies the total size of the job in K
  3977.             octets, i.e., in units of 1024 octets.  The value shall
  3978.             be rounded up, so that a job between 1 and 1024 octets
  3979.             shall be indicated as being 1K, 1025 to 2048 shall be 2,
  3980.             etc. This attribute is not intended to be a counter as in
  3981.             the Job Monitoring MIB;  it is intended to be useful
  3982.             routing and scheduling information if known.
  3983.  
  3984.  
  3985.           5.2.7.1.1 As a Job Attribute
  3986.  
  3987.             This job attribute is set by client on in the Print
  3988.             Request if it is known.  It is set by the Printer once
  3989.             the Job object is created if the Printer is able to
  3990.             calculate this value.
  3991.  
  3992.  
  3993.           5.2.7.1.2 As a Printer Attribute
  3994.  
  3995.             This Printer attribute specifies a support range for job
  3996.             sizes.  A default value is not applicable for this
  3997.             attribute.
  3998.  
  3999.  
  4000.  
  4001.  
  4002.  
  4003.  
  4004.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 69]
  4005.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4006.  
  4007.  
  4008.  
  4009.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4010.  
  4011.  
  4012.           5.2.7.2 job-impressions (integer(0:2**31 - 1))
  4013.  
  4014.             This job attribute specifies the total size of the job in
  4015.             impressions. This attribute is not intended to be a
  4016.             counter as in the Job Monitoring MIB;  it is intended to
  4017.             be useful routing and scheduling information if known.
  4018.  
  4019.  
  4020.           5.2.7.2.1 As a Job Attribute
  4021.  
  4022.             This job attribute is set by client on in the Print
  4023.             Request if it is known.  It is set by the Printer once
  4024.             the Job object is created if the Printer is able to
  4025.             calculate this value.
  4026.  
  4027.  
  4028.           5.2.7.2.2 As a Printer Attribute
  4029.  
  4030.             This Printer attribute specifies a support range for job
  4031.             sizes.  A default value is not applicable for this
  4032.             attribute.
  4033.  
  4034.  
  4035.  
  4036.  
  4037.           5.2.7.3 job-media-sheets (integer(0:2**31 - 1))
  4038.  
  4039.             This job attribute specifies the total size of the job in
  4040.             media-sheets. This attribute is not intended to be a
  4041.             counter as in the Job Monitoring MIB;  it is intended to
  4042.             be useful routing and scheduling information if known.
  4043.  
  4044.  
  4045.           5.2.7.3.1 As a Job Attribute
  4046.  
  4047.             This job attribute is set by client on in the Print
  4048.             Request if it is known.  It is set by the Printer once
  4049.             the Job object is created if the Printer is able to
  4050.             calculate this value.
  4051.  
  4052.  
  4053.           5.2.7.3.2 As a Printer Attribute
  4054.  
  4055.             This Printer attribute specifies a support range for job
  4056.             sizes.  A default value is not applicable for this
  4057.             attribute.
  4058.  
  4059.  
  4060.  
  4061.  
  4062.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 70]
  4063.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4064.  
  4065.  
  4066.  
  4067.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4068.  
  4069.  
  4070.           5.2.8 Number of Documents (Set by Printer)
  4071.  
  4072.             This group contains a single attribute which specifies
  4073.             the number of documents in the job.
  4074.  
  4075.             This group does not have a name since there is only one
  4076.             attribute in the group.
  4077.  
  4078.             The client need not set this attribute because, the
  4079.             Printer sets the value of this job attribute depending on
  4080.             the number of documents that the client supplies in the
  4081.             Print operation.  The client may specify this attribute
  4082.             in: Get-Attributes and Get-Jobs.
  4083.  
  4084.             The printer attribute is set by an implementation and
  4085.             contains the range of values supported. Normally, it is
  4086.             either exactly 1 document or at least 1 document. The
  4087.             printer shall reject a job if the number of documents is
  4088.             not in the range of this attribute.
  4089.  
  4090.  
  4091.           5.2.8.1 number-of-documents (integer(1:2**31 - 1))
  4092.  
  4093.             This attribute specifies the number of documents in the
  4094.             job. There are document specific attributes (see section
  4095.             5.4).
  4096.  
  4097.  
  4098.           5.3 Job Attributes Set by the Printer
  4099.  
  4100.             These attributes form the attribute group called  "job-
  4101.             set-by-printer".
  4102.  
  4103.             The Printer sets the value for each of these job
  4104.             attributes. A client may not set them.
  4105.  
  4106.  
  4107.           5.3.1 Job Identification (job-identification) Attributes
  4108.           (Set by the Printer)
  4109.  
  4110.             These attributes form the attribute group called "job-
  4111.             identification".
  4112.  
  4113.  
  4114.           5.3.1.1 job-URL (url)
  4115.  
  4116.             This attribute contains the URL for the job.
  4117.  
  4118.  
  4119.  
  4120.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 71]
  4121.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4122.  
  4123.  
  4124.  
  4125.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4126.  
  4127.  
  4128.             The Printer, on receipt of a new job, shall generate a
  4129.             URL which identifies the job on the Printer. The Printer,
  4130.             shall return the value of the URL  job attribute as part
  4131.             of the PrintResult in the Print operation. The precise
  4132.             format of a job URL shall be implementation dependent.
  4133.  
  4134.  
  4135.           5.3.2 Job Owner (job-owner) Attributes (Set by a Printer)
  4136.  
  4137.             The Print shall add all of these attributes to a job to
  4138.             provide information to identify a print-job.
  4139.  
  4140.             These attributes form the attribute group called "job-
  4141.             owner".
  4142.  
  4143.             The client may specify these attributes in the
  4144.             operations: Get-Attributes and Get-Jobs, but not in
  4145.             Print.
  4146.  
  4147.  
  4148.           5.3.2.1 job-originating-user (name)
  4149.  
  4150.             This attribute specifies the user name of the person
  4151.             submitting the print job.  The Printer shall set this
  4152.             attribute to the most authentic name that it can obtain
  4153.             from the protocol over which the operation was received
  4154.             from the client.
  4155.  
  4156.  
  4157.           5.3.2.2 job-originating-host (name)
  4158.  
  4159.             This attribute identifies the originating host of the
  4160.             job. The Printer shall set this attribute to the most
  4161.             authentic host name it can obtain from the protocol over
  4162.             which the operation was received from  the client.
  4163.  
  4164.  
  4165.           5.3.2.3 user-locale (type3 keyword)
  4166.  
  4167.             This attribute identifies the locale of the job, i.e, the
  4168.             country, language, and coded character set. The Printer
  4169.             sets this attribute the most authentic value it can
  4170.             obtain from the protocol over which the operation was
  4171.             received from  the client..
  4172.  
  4173.             The Printer shall use this attribute to determine the
  4174.             locale for notification messages that it sends.
  4175.  
  4176.  
  4177.  
  4178.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 72]
  4179.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4180.  
  4181.  
  4182.  
  4183.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4184.  
  4185.  
  4186.             Issue: Is there a more standard syntax for locale?
  4187.  
  4188.             The standard values are listed under the document-locale
  4189.             attribute.
  4190.  
  4191.             ISSUE: specify the list of valid locales.
  4192.  
  4193.  
  4194.           5.3.2.4 job-name (name)
  4195.  
  4196.             This attribute contains the name of the job.  It is a
  4197.             name that is more user friendly than the job-URL. The
  4198.             Printer, on receipt of the job, shall generate a name
  4199.             which is the name of the first document in the job. This
  4200.             name comes from the document-name or document-URL
  4201.             depending on which attribute is specified.
  4202.  
  4203.  
  4204.  
  4205.  
  4206.           5.3.3 Job Status (job status) Attributes (Set by Printer)
  4207.  
  4208.             These attributes form the attribute group called "job-
  4209.             status".
  4210.  
  4211.             The Printer shall add these attributes to a job when a
  4212.             client submits a job, and the Printer shall assign
  4213.             appropriate values to each such job-status attribute.
  4214.  
  4215.             The Printer uses these attributes to specify the job
  4216.             status before, during and after the processing of the
  4217.             print-job by the Printer.
  4218.  
  4219.             The client may specify job-status attributes in: Get-
  4220.             Attributes and Get-Jobs, but not Print.
  4221.  
  4222.  
  4223.           5.3.3.1 job-state (type1 keyword)
  4224.  
  4225.             This attribute identifies the current state of the job.
  4226.             Standard values are:
  4227.  
  4228.                unknown     The job state is not known, or is
  4229.                            indeterminate.
  4230.                pending     The job is waiting to start processing
  4231.                            on a printer. Various job-reasons may
  4232.                            keep a job from moving to the printing
  4233.                            state.
  4234.  
  4235.  
  4236.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 73]
  4237.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4238.  
  4239.  
  4240.  
  4241.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4242.  
  4243.  
  4244.                processing  The server is processing the job, or
  4245.                            has made the job ready for printing,
  4246.                            but the output device is not yet
  4247.                            printing it, either because the job
  4248.                            hasn't reached the output device or
  4249.                            because the job is queued in the
  4250.                            output device or some other spooler,
  4251.                            awaiting the output device to print
  4252.                            it.
  4253.  
  4254.                            Or
  4255.  
  4256.                            The server has completed processing
  4257.                            the job and the output device is
  4258.                            currently printing the job. That is,
  4259.                            an output device is either printing
  4260.                            pages of the job, or failing in its
  4261.                            attempt to print pages of the job
  4262.                            because of some wait state, such as,
  4263.                            start-wait, end-wait, needs-attention,
  4264.                            etc.  The complete job state includes
  4265.                            the detailed status represented in the
  4266.                            printer's printer-state attribute.
  4267.                            As with the printer state, let's let
  4268.                            the reason make the distinction as to
  4269.                            whether paper is being marked or the
  4270.                            printer is just processing. Most
  4271.                            printers won't bother with this
  4272.                            nuance.
  4273.                terminatin  The job has been canceled by a Cancel-
  4274.                g           Job request or aborted by the server
  4275.                            and is in the process of terminating.
  4276.                            The job's job-state-reasons attribute
  4277.                            contains the reasons that the job is
  4278.                            being terminated.
  4279.  
  4280.  
  4281.  
  4282.  
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 74]
  4295.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4296.  
  4297.  
  4298.  
  4299.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4300.  
  4301.  
  4302.                retained    The job is being retained at the
  4303.                            server. The job has (1) completed
  4304.                            successfully or with warnings or
  4305.                            errors, (2) been aborted while
  4306.                            printing by the server, or (3) been
  4307.                            canceled by the Cancel-Job request
  4308.                            before or during processing.  The
  4309.                            job's job-state-reasons attribute
  4310.                            contains the reasons that the job has
  4311.                            been retained.
  4312.                            While in the retained state, all of
  4313.                            the job's document data (and
  4314.                            resources, if any) shall be retained
  4315.                            by the server; thus a job in the
  4316.                            retained state could be reprinted,
  4317.                            using some means outside the scope of
  4318.                            IPP V1.0.  If a given implementation
  4319.                            does not support this functionality,
  4320.                            there is no need to support this
  4321.                            value.
  4322.  
  4323.  
  4324.  
  4325.  
  4326.  
  4327.  
  4328.  
  4329.  
  4330.  
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 75]
  4353.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4354.  
  4355.  
  4356.  
  4357.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4358.  
  4359.  
  4360.                completed   The job has:
  4361.  
  4362.                                (1) completed successfully or with
  4363.                            warnings or errors,
  4364.                                (2) been aborted by the server
  4365.                            while printing, or
  4366.                                (3) been canceled by the Cancel-
  4367.                            Job request,
  4368.                            For case 1, "completed " only happens
  4369.                            when all job media sheets have been
  4370.                            properly stacked in the appropriate
  4371.                            output tray or bin.
  4372.                            The job's job-state-reasons attribute
  4373.                            contains the reason(s) that the job
  4374.                            has been completed.
  4375.                            While in the completed state, a job's
  4376.                            document data (and resources if any)
  4377.                            need not be retained by the server;
  4378.                            thus a job in the completed state
  4379.                            could not be reprinted. The length of
  4380.                            time that a job may be in this state,
  4381.                            before transitioning to unknown, is
  4382.                            implementation-dependent.  However,
  4383.                            servers that implement the completed
  4384.                            job-state shall retain, as a minimum,
  4385.                            the following attributes for any job
  4386.                            in the completed state: job-
  4387.                            identifier, job-originator, job-name,
  4388.                            current-job-state, output-device-
  4389.                            assigned, and job-state-reasons.
  4390.  
  4391.  
  4392.             The IPP protocol supports all values for job states, but
  4393.             Printers need only support those states which are
  4394.             appropriate for the particular implementation.
  4395.  
  4396.  
  4397.           5.3.3.2 job-state-reasons (setOf  type2 keyword)
  4398.  
  4399.             This attribute identifies the reason or reasons that the
  4400.             job is in the state that it is in (e.g., held,
  4401.             terminating, retained, completed, etc.).  The printer
  4402.             shall indicate the particular reason(s) by setting the
  4403.             value of the job-state-reasons attribute.
  4404.  
  4405.             ISSUE: Should we  change job-incomplete to job-spooling
  4406.             and adde job-queued, job-sent-to-printer and job-held?
  4407.             Job-queued is really the default. Job-held can only be
  4408.  
  4409.  
  4410.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 76]
  4411.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4412.  
  4413.  
  4414.  
  4415.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4416.  
  4417.  
  4418.             changed by an operator in an unspecified manner. Should
  4419.             a job move to the printing state when a spooler sends it
  4420.             to a printer or  move to the printing state when marking
  4421.             starts. Should  it depend on the printer as to whether it
  4422.             announces such nuances. We probably need a state
  4423.             transition diagram.
  4424.  
  4425.             The following standard values are defined:
  4426.  
  4427.                job-incomplete      The job has been accepted by the
  4428.                                    server, but the Printer is
  4429.                                    waiting for the transfer of the
  4430.                                    remainder of the job.
  4431.                job-sending-to-     Optional. The job is in the
  4432.                output-device       pending state but is being
  4433.                                    transmitted to the output device.
  4434.                job-queued-in-      Optional. The job is in the
  4435.                output-device       pending state and is queued on
  4436.                                    the output device.
  4437.                job-printing        The job-state is processing, and
  4438.                                    the printer is marking media.
  4439.                                    This attribute is optional and
  4440.                                    useful for printers which spend a
  4441.                                    great deal of time processing
  4442.                                    when no marking is happening.
  4443.                printer-stopped     The printer is stopped.  This
  4444.                                    reason appears in all  jobs in
  4445.                                    the pending state when the value
  4446.                                    of the Printer's printer-state
  4447.                                    attribute is stopped. This reason
  4448.                                    appears in a job in the
  4449.                                    processing state when the output-
  4450.                                    device is stopped.
  4451.                printer-partly-     Optional.  This reason appears in
  4452.                stopped             all jobs in the pending state
  4453.                                    when the value of the Printer's
  4454.                                    printer-state-reasons contains
  4455.                                    the value partly-stopped.
  4456.                job-hold-until-     The value of the job's job-hold-
  4457.                specified           until attribute has specified a
  4458.                                    time period that has not yet
  4459.                                    arrived, so that the Printer
  4460.                                    shall not consider the job as a
  4461.                                    candidate for processing.
  4462.  
  4463.  
  4464.  
  4465.  
  4466.  
  4467.  
  4468.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 77]
  4469.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4470.  
  4471.  
  4472.  
  4473.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4474.  
  4475.  
  4476.                required-           At least one of the resources
  4477.                resources-not-      needed by the job, such as media,
  4478.                ready               fonts, resource objects, etc., is
  4479.                                    not ready on any of the physical
  4480.                                    printer's for which the job is a
  4481.                                    candidate.
  4482.                successful          The job completed successfully.
  4483.                completion
  4484.                completed-with-     The job completed with warnings.
  4485.                warnings
  4486.                completed-with-     The job completed with errors
  4487.                errors              (and possibly warnings too).
  4488.                cancelled-by-user   The job was cancelled by the user
  4489.                                    using the CancelJob request.
  4490.                cancelled-by-       The job was cancelled by the
  4491.                operator            operator using the CancelJob
  4492.                                    request.
  4493.                aborted-by-system   The job was aborted by the
  4494.                                    system.
  4495.                logfile-pending     The job's logfile is pending file
  4496.                                    transfer.
  4497.                logfile-            The job's logfile is being
  4498.                transferring        transferred.
  4499.  
  4500.           5.3.3.3 job-state-as-text (text)
  4501.  
  4502.             This attributes specifies the job-state and job-state-
  4503.             reasons in human readable text and it shall be set by the
  4504.             Printer.
  4505.  
  4506.  
  4507.           5.3.3.4 output-device-assigned (url)
  4508.  
  4509.             This attribute identifies the Output Device to which the
  4510.             Printer has assigned this job. It is the printer-URL
  4511.             rather than the printer-name so that the Output-Device is
  4512.             not limited to be near the Printer.
  4513.  
  4514.             If an Output Device implements a Printer, the Printer
  4515.             need not set this attribute.
  4516.  
  4517.             If a Print Server implements a Printer, the value shall
  4518.             be empty until the Printer assigns an Output Device to
  4519.             the job.
  4520.  
  4521.             The value of the job's output-device-assigned attribute
  4522.             shall remain after the job has completed, so that end
  4523.  
  4524.  
  4525.  
  4526.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 78]
  4527.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4528.  
  4529.  
  4530.  
  4531.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4532.  
  4533.  
  4534.             users can determine the Output Device on which the job
  4535.             was printed.
  4536.  
  4537.  
  4538.           5.3.3.5 submission-time (dateTime)
  4539.  
  4540.             This attribute indicates the date and time at which this
  4541.             job was accepted by the Printer.  If the Printer does not
  4542.             support the notion of time, the attribute need not be
  4543.             stored as part of the job object.
  4544.  
  4545.  
  4546.           5.3.3.6 number-of-intervening-jobs (integer(0:2**31 - 1))
  4547.  
  4548.             This attribute indicates the number of jobs that are
  4549.             "ahead" of this job in the current scheduled order.  For
  4550.             efficiency, it is only necessary to calculate this value
  4551.             when an operation if performed that requests this
  4552.             attribute.
  4553.  
  4554.             NOTE - This attribute is necessary since an end user may
  4555.             request just their own jobs and they need some relative
  4556.             position indicator if there are other jobs interspersed
  4557.             in the waiting list which are not returned in the
  4558.             response or cannot be because of site security policy
  4559.             restrictions.
  4560.  
  4561.  
  4562.           5.3.3.7 job-message-from-operator (text)
  4563.  
  4564.             This attribute provides a message from an operator,
  4565.             system administrator or "intelligent" process to indicate
  4566.             to the end user the reasons for modification or other
  4567.             management action taken on a job.
  4568.  
  4569.  
  4570.           5.3.3.8 completion-time (dateTime)
  4571.  
  4572.             This attribute indicates the date and time at which this
  4573.             job completed. This time is useful for jobs which are
  4574.             retained after printing.  If the Printer does not support
  4575.             the notion of time, the attribute is not stored as part
  4576.             of the Job object.
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 79]
  4585.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4586.  
  4587.  
  4588.  
  4589.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4590.  
  4591.  
  4592.           5.4 Document Attributes
  4593.  
  4594.  
  4595.           5.4.1 Document Data (document-data) Attributes (Set by a
  4596.           Client/End User)
  4597.  
  4598.             These attributes form the attribute group called
  4599.             "document-data".
  4600.  
  4601.             This group of attributes describes the document data for
  4602.             the job. These attributes also include the document data
  4603.             or reference it.
  4604.  
  4605.             All job attributes in other sections of this document
  4606.             occur only once per job and apply to all documents in a
  4607.             job.
  4608.  
  4609.             The client may specify document-data attributes in Print.
  4610.             The client must specify either the document-URL or
  4611.             document-content in Print.
  4612.  
  4613.             Except for document-content, the client may specify
  4614.             document-data attributes in: Get-Attributes, and Get-
  4615.             Jobs.
  4616.  
  4617.  
  4618.           5.4.1.1 document-name (name)
  4619.  
  4620.             This attribute contains the name of the document used by
  4621.             the client to initially identify the document. If the
  4622.             client uses a URL, this attribute shall be absent.
  4623.  
  4624.             ISSUE: Do we need to add a document-file-name attribute
  4625.             for files that don't have a URL?
  4626.  
  4627.  
  4628.           5.4.1.2 document-URL (url)
  4629.  
  4630.             This attribute contains the URL of the document if the
  4631.             client specified the document with a URL.
  4632.  
  4633.             If this attribute is specified, then document-content
  4634.             shall be unspecified.
  4635.  
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 80]
  4643.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4644.  
  4645.  
  4646.  
  4647.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4648.  
  4649.  
  4650.           5.4.1.3 document-content (octetString)
  4651.  
  4652.             This attribute contains the actual contents of the
  4653.             document.
  4654.  
  4655.             If this attribute is specified, then document-URL shall
  4656.             be unspecified.
  4657.  
  4658.             This attribute shall be used during the transmission of
  4659.             the Print operation over a network. A Printer shall save
  4660.             the document data to a file and reference it with the
  4661.             document-URL. A Get-Attribute or Get-Jobs operation shall
  4662.             always find that this attribute is unspecified.
  4663.  
  4664.  
  4665.           5.5 Printer Description  (printer-description) Attributes
  4666.  
  4667.             These attributes form the attribute group called
  4668.             "printer-description".
  4669.  
  4670.  
  4671.           5.5.1 Printer Identification (printer-identification
  4672.           Attributes (Set by the Administrator)
  4673.  
  4674.             These attributes form the attribute group called
  4675.             "printer-identification".
  4676.  
  4677.  
  4678.           5.5.1.1 printer-URL (url)
  4679.  
  4680.             This attribute contains the URL for the printer.
  4681.  
  4682.             An administrator shall determine a printer's URL and
  4683.             shall set this attribute to that URL. The precise format
  4684.             of a printer URL shall be implementation dependent.
  4685.  
  4686.  
  4687.           5.5.1.2 printer-name (name)
  4688.  
  4689.             This attribute contains the name of the printer. It is a
  4690.             name that is more user friendly than the printer-URL.
  4691.  
  4692.             An administrator shall determine a printer's name and
  4693.             shall set this attribute to that name. This name may be
  4694.             the last part of the printer's URL or it may be
  4695.             unrelated. In non-US-English locales, a name may contain
  4696.             characters that are not allowed in a URL.
  4697.  
  4698.  
  4699.  
  4700.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 81]
  4701.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4702.  
  4703.  
  4704.  
  4705.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4706.  
  4707.  
  4708.           5.5.2 Printer Description Attributes (Set by the
  4709.           Administrator)
  4710.  
  4711.             A printer object may be realized in either a Print Server
  4712.             or Output Device. Note: How these attribute are set by an
  4713.             Administrator is outside the scope of this specification.
  4714.  
  4715.             A Printer Object in an Output Device contains a set of
  4716.             printer object attributes that represent an Output Device
  4717.             capable of rendering a document in visible form.
  4718.             Examples include electronic and electro-mechanical
  4719.             printers such as laser printers, ink-jet printers, and
  4720.             various kinds of impact printers, but may include other
  4721.             types of output devices such as microfiche imagers and
  4722.             plotters as well.
  4723.  
  4724.             A Printer Object in a Print Server may supply queuing,
  4725.             spooling, and scheduling for an Output device that does
  4726.             not queue or spool.
  4727.  
  4728.             A Print Server, in the most common case, controls exactly
  4729.             one downstream Output Device. The Print Server's Printer
  4730.             object has attributes whose values are the same as those
  4731.             of the Printer object in the downstream Output Device.
  4732.  
  4733.             A Printer Object in a Print Server may contain a set of
  4734.             printer object attributes that are the union of the
  4735.             Printer objects in the downstream Output Devices.  This
  4736.             object extends the capabilities of an Output Device.  For
  4737.             example, an administrator might define a single Print
  4738.             Server to represent all of the Output Devices of the same
  4739.             type and capability in a single location, associated with
  4740.             a particular server.  A end user would normally send a
  4741.             print-job to a Print Server, and allow the Print Server
  4742.             to assign the job to a particular Output Device  based on
  4743.             the relative load and availability of the printers under
  4744.             its control, thus providing a load balancing service.
  4745.             However, nothing precludes an administrator from
  4746.             configuring a print system so that an end user can send a
  4747.             print-job directly to an Output Device.
  4748.  
  4749.             The attributes defined in this section provide
  4750.             information about a particular Printer.
  4751.  
  4752.  
  4753.           5.5.2.1 printer-location (text)
  4754.  
  4755.             This attribute identifies the location of this printer.
  4756.  
  4757.  
  4758.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 82]
  4759.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4760.  
  4761.  
  4762.  
  4763.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4764.  
  4765.  
  4766.           5.5.2.2 printer-description (text)
  4767.  
  4768.             This attribute identifies the descriptive information
  4769.             about the this Printer.  This could include things like:
  4770.             "This printer can be used for printing color
  4771.             transparencies for HR presentations", or "Out of courtesy
  4772.             for others, please print only small (1-5 page) jobs at
  4773.             this printer", or even "this printer is going away on
  4774.             July 1, 1997, please find a new printer".
  4775.  
  4776.  
  4777.           5.5.2.3 printer-more-info-site (url)
  4778.  
  4779.             This attribute contains a URL used to obtain more
  4780.             information about   this specific  printer.   The
  4781.             information obtained from this URL is intended for
  4782.             end-user   consumption. Features outside the scope of IPP
  4783.             can be accessed from this URL.  The information is
  4784.             intended to be specific to this printer instance and site
  4785.             services. (e.g. job pricing, services   offered, end user
  4786.             assistance)  The manufacturer may initially populate this
  4787.             attribute
  4788.  
  4789.  
  4790.           5.5.2.4 printer-driver-installer  (url)
  4791.  
  4792.             This attribute contains a URL to use to locate the driver
  4793.             installer for this printer.   This attribute is intended
  4794.             for consumption by automata. The mechanics of print
  4795.             driver installation is outside the scope of IPP.  The
  4796.             manufacturer may initially populate this attribute.
  4797.  
  4798.  
  4799.           5.5.3 Printer Description Attributes (Set by the
  4800.           Manufacturer)
  4801.  
  4802.  
  4803.           5.5.3.1 printer-make-and-model (text)
  4804.  
  4805.             This attribute identifies the make and model of the
  4806.             printer.
  4807.  
  4808.  
  4809.           5.5.3.2 maximum-printer-speed (integerUnits)
  4810.  
  4811.             This attribute indicates the maximum printer speed of the
  4812.             Printer in units of pages per minute, impressions per
  4813.             minute, lines per minute, and characters per second. A
  4814.  
  4815.  
  4816.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 83]
  4817.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4818.  
  4819.  
  4820.  
  4821.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4822.  
  4823.  
  4824.             job cannot control a Printer's speed, but a Printer
  4825.             Browser can use printer speed as a criteria.
  4826.  
  4827.             The standard units are a type2 setOf keyword : ppm, ipm,
  4828.             spm, lpm, and cps.  These  mean pages per minute,
  4829.             impressions per minutes, sides per minutes, lines per
  4830.             minute, and characters-per-second, respectively.
  4831.  
  4832.  
  4833.           5.5.3.3 printer-more-info-manf (url)
  4834.  
  4835.             This attribute contains a URL used to obtain more
  4836.             information about   this type of printer.   The
  4837.             information obtained from this URL is intended for
  4838.             end-user   consumption. Features outside the scope of IPP
  4839.             can be accessed from this URL. (e.g. latest firmware,
  4840.             upgrades, print drivers, optional features available)
  4841.             The information is intended to be germane   to this
  4842.             printer without regard to site specific modifications or
  4843.             services.
  4844.  
  4845.  
  4846.  
  4847.  
  4848.           5.6 Printer Status (printer-status)Attributes
  4849.  
  4850.             These attributes form the attribute group called
  4851.             "printer-status".
  4852.  
  4853.  
  4854.  
  4855.           5.6.1 Printer Status Attributes (Set by the Printer)
  4856.  
  4857.  
  4858.           5.6.1.1 printer-state (type1 keywordEnum)
  4859.  
  4860.             This attribute identifies the current state of the
  4861.             printer. The printer-state reasons attribute augments the
  4862.             printer-state attribute to give more detailed information
  4863.             about the printer state.
  4864.  
  4865.             The protocol shall support all values for printer states.
  4866.             A Printer shall continually keep this attribute set to
  4867.             the value in the table below which most accurately
  4868.             reflects the state of the Printer..
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 84]
  4875.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4876.  
  4877.  
  4878.  
  4879.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4880.  
  4881.  
  4882.             The following standard values are defined:
  4883.  
  4884.                unknown     The Printer state is not known, or is
  4885.                            indeterminate. A Printer shall use
  4886.                            this state only if it cannot
  4887.                            determine its actual state.
  4888.  
  4889.                idle        If a Printer receives a job (whose
  4890.                            required resources are ready) while
  4891.                            in this state, such a job shall
  4892.                            transit into the processing state
  4893.                            immediately.
  4894.  
  4895.                            If the printer-state-reasons
  4896.                            attribute contains any reasons, they
  4897.                            shall be reasons that would not
  4898.                            prevent a job from transiting into
  4899.                            the processing state immediately,
  4900.                            e.g. is toner-low.
  4901.  
  4902.                            NOTE: if a Printer controls more than
  4903.                            one output device, the above
  4904.                            definition implies that a Printer is
  4905.                            idle if at least one output device is
  4906.                            idle.
  4907.  
  4908.                processing  If a Printer receives a job (whose
  4909.                            required resources are ready) while
  4910.                            in this state, such a job shall
  4911.                            transit into the pending state
  4912.                            immediately. Such a job shall transit
  4913.                            into the processing state only after
  4914.                            jobs ahead of it complete printing.
  4915.  
  4916.                            If the printer-state-reasons
  4917.                            attribute contains any reasons, they
  4918.                            shall be reasons that do not prevent
  4919.                            the current job from printing, e.g.
  4920.                            toner-low.
  4921.  
  4922.                            NOTE: if a Printer controls more than
  4923.                            one output device, the above
  4924.                            definition implies that a Printer is
  4925.                            processing if at least one output
  4926.                            device is processing, and none is
  4927.                            idle.
  4928.  
  4929.  
  4930.  
  4931.  
  4932.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 85]
  4933.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4934.  
  4935.  
  4936.  
  4937.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4938.  
  4939.  
  4940.                stopped     If a Printer receives a job (whose
  4941.                            required resources are ready) while
  4942.                            in this state, such a job shall
  4943.                            transit into the pending state
  4944.                            immediately. Such a job shall transit
  4945.                            into the processing state only after
  4946.                            some human fixes the problem that
  4947.                            stopped the printer and after jobs
  4948.                            ahead of it complete printing.
  4949.  
  4950.                            The printer-state-reasons attribute
  4951.                            shall contain at least one reason,
  4952.                            e.g. paper-jam, which prevents it
  4953.                            from either processing the current
  4954.                            job or transiting a pending job to
  4955.                            the processing state.
  4956.  
  4957.                            NOTE: if a Printer controls more than
  4958.                            one output device, the above
  4959.                            definition implies that a Printer is
  4960.                            stopped only if all output devices
  4961.                            are stopped.
  4962.  
  4963.  
  4964.             NOTE: in the case where a Printer controls more than one
  4965.             output device, it is tempting to define stopped as when a
  4966.             sufficient number of output devices are stopped and leave
  4967.             it to an implementation to define the sufficient number.
  4968.             But such a rule complicates  the definition of stopped
  4969.             and processing. For example, with this alternate
  4970.             definition of stopped, a job can move from idle to
  4971.             processing without human intervention, even though the
  4972.             Printer is stopped.
  4973.  
  4974.  
  4975.           5.6.1.2 printer-state-reasons (setOf type2 keyword)
  4976.  
  4977.             This attribute supplies additional detail about the
  4978.             printer state.
  4979.  
  4980.             Each value shall have an adornment to indicate its level
  4981.             of severity.  The three levels are: report (least
  4982.             severe), warning and error (most severe).
  4983.  
  4984.             - "report":  it has the adornment of "report". An
  4985.                  implementation may choose to omit some or all
  4986.                  reports. Some reports specify finer granularity
  4987.                  about the printer state; others serve as a precursor
  4988.  
  4989.  
  4990.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 86]
  4991.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  4992.  
  4993.  
  4994.  
  4995.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  4996.  
  4997.  
  4998.                  to a warning. A report shall contain nothing that
  4999.                  could affect the printed output.
  5000.  
  5001.             - "warning": it has the adornment of "warning". An
  5002.                  implementation may choose to omit some or all
  5003.                  warnings. Warnings serve as a precursor to an error.
  5004.                  A warning shall contain nothing that prevents a job
  5005.                  from completing, though in some cases the output may
  5006.                  be of lower quality.
  5007.  
  5008.             - "error": it has no adornment. An implementation shall
  5009.                  include all errors. If this attribute contains one
  5010.                  or more errors, printer shall be in the stopped
  5011.                  state.
  5012.  
  5013.             ISSUE: Toner-low should be a warning because it allows
  5014.             printing to proceed, but in some printers, toner-low may
  5015.             also produce degraded output. Do we want a fourth
  5016.             category, perhaps severe-warning which allows a job to
  5017.             continue printing but with reduced quality?
  5018.  
  5019.             If a Printer controls more than one output device, each
  5020.             value of this attribute shall apply to one more of the
  5021.             output devices. An error on one output device that does
  5022.             not stop the Printer as a whole appears as a warning in
  5023.             the Printer's printer-state-reasons attribute. Such a
  5024.             Printer's printer-state value may be stopped even with no
  5025.             printer-state-reasons that are errors.
  5026.  
  5027.             The following standard values are defined:
  5028.  
  5029.                partly-stopped      When a Printer controls more than
  5030.                                    one output device, this reason
  5031.                                    indicates that one or more output
  5032.                                    devices are stopped. If the
  5033.                                    reason is a report, fewer than
  5034.                                    half of the output devices are
  5035.                                    stopped. If the reason is a
  5036.                                    warning, fewer than all of the
  5037.                                    output devices are stopped.
  5038.                media-needed        A tray has run out of media
  5039.                paper-jam           The printer has a paper jam.
  5040.  
  5041.  
  5042.  
  5043.  
  5044.  
  5045.  
  5046.  
  5047.  
  5048.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 87]
  5049.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5050.  
  5051.  
  5052.  
  5053.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  5054.  
  5055.  
  5056.                paused              Someone has paused the Printer.
  5057.                                    In this state, a Printer shall
  5058.                                    not produce printed output, but
  5059.                                    it shall perform other operations
  5060.                                    requested by a client. If a
  5061.                                    Printer had been printing a job
  5062.                                    when the Printer was paused, the
  5063.                                    Printer shall resume printing
  5064.                                    that job when the Printer is no
  5065.                                    longer paused and leave no
  5066.                                    evidence in the printed output of
  5067.                                    such a pause .
  5068.                shutdown            Someone has removed a Printer
  5069.                                    from service, and it may be
  5070.                                    powered down or physical removed.
  5071.                                    In this state, a Printer shall
  5072.                                    not produce printed output, and
  5073.                                    unless the Printer is realized by
  5074.                                    a print server that is still
  5075.                                    active, the Printer shall perform
  5076.                                    no other operations requested by
  5077.                                    a client, including returning
  5078.                                    this value. If a Printer had been
  5079.                                    printing a job when it was
  5080.                                    shutdown, the Printer need not
  5081.                                    resume printing that job when the
  5082.                                    Printer is no longer shutdown. If
  5083.                                    the Printer resumes printing such
  5084.                                    a job, it may leave evidence in
  5085.                                    the printed output of such a
  5086.                                    shutdown, e.g. the part printed
  5087.                                    before the shutdown may be
  5088.                                    printed a second time after the
  5089.                                    shutdown..
  5090.                connecting-to-      The server has scheduled a job on
  5091.                printer             the Printer and is in the process
  5092.                                    of connecting to a shared network
  5093.                                    output device (and may not be
  5094.                                    able to actually start printing
  5095.                                    the job for an arbitrarily long
  5096.                                    time depending on the usage of
  5097.                                    the output device by other
  5098.                                    servers on the network).
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 88]
  5107.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5108.  
  5109.  
  5110.  
  5111.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  5112.  
  5113.  
  5114.                timed-out           The server was able to connect to
  5115.                                    the output device (or is always
  5116.                                    connected), but was unable to get
  5117.                                    a response from the output device
  5118.                                    in the time specified by the
  5119.                                    printer's printer-timeout-period
  5120.                                    attribute.
  5121.                stopping            The printer will be stopping in a
  5122.                                    while and will change its reason
  5123.                                    to printer-stopped. This reason
  5124.                                    is a non-critical, even for a
  5125.                                    Printer with a single output
  5126.                                    device. When an output-device
  5127.                                    ceases accepting jobs, the
  5128.                                    Printer will have this state
  5129.                                    while the output device completes
  5130.                                    printing.
  5131.  
  5132.  
  5133.  
  5134.  
  5135.           5.6.1.3 printer-is-accepting-jobs (boolean)
  5136.  
  5137.             This attribute determines whether the printer is
  5138.             currently accepting job.  If the value is true, the
  5139.             printer is accepting jobs. If the value is false, the
  5140.             printer is currently rejecting any jobs submitted to it.
  5141.  
  5142.             Note: this value is independent of the printer state and
  5143.             printer-state-reasons because its value does not affect
  5144.             the current job; rather it affects future jobs. This
  5145.             attribute may cause the Printer to reject jobs when the
  5146.             printer-state is idle or it may cause the Printer to
  5147.             accepts jobs when the printer-state is stopped.
  5148.  
  5149.  
  5150.           5.6.1.4 printer-state-as-text (text)
  5151.  
  5152.             This attributes specifies the printer-state, printer-
  5153.             state-reasons, printer-is-accepting-jobs in human
  5154.             readable text and it shall be set by the Printer.
  5155.  
  5156.             When a Printer returns the value of this attribute to a
  5157.             client, the Printer shall localize the value of this
  5158.             attribute to be in the locale of the user, as specified
  5159.             by the Get Attributes or Get Jobs operation.
  5160.  
  5161.             ISSUE: Give the syntax of this message in English.
  5162.  
  5163.  
  5164.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 89]
  5165.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5166.  
  5167.  
  5168.  
  5169.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  5170.  
  5171.  
  5172.           5.6.1.5 queued-job-count (integer(0:2**31 - 1))
  5173.  
  5174.             This attribute contains a count of the number of jobs
  5175.             that are either pending and/or processing and shall be
  5176.             set by the Printer.
  5177.  
  5178.  
  5179.           5.6.2 Printer Status Attributes (Set by the Administrator)
  5180.  
  5181.  
  5182.           5.6.2.1 printer-message-from-the-operator (text)
  5183.  
  5184.             This attribute provides a message from an operator,
  5185.             system administrator or "intelligent" process to indicate
  5186.             to the end user information or status of the printer,
  5187.             such as why it is unavailable or when it is expected to
  5188.             be available.
  5189.  
  5190.  
  5191.           5.7 Printer Behavior (printer-behavior) Attributes
  5192.  
  5193.             These attribute specify the behavior of a printer.
  5194.  
  5195.             These attributes form the attribute group called
  5196.             "printer-behavior".
  5197.  
  5198.  
  5199.           5.7.1 Printer Behavior Attributes (set by the Administrator)
  5200.  
  5201.  
  5202.           5.7.1.1 printer-locale (locale)
  5203.  
  5204.             This attribute specifies the locale that the Printer
  5205.             operates in.
  5206.  
  5207.             The standard values are defined in the section on the
  5208.             document-locale attribute.
  5209.  
  5210.             ISSUE: reference the locales.
  5211.  
  5212.  
  5213.           5.7.1.2 fonts-substitutions (setOf setOf font)
  5214.  
  5215.             This attribute specifies an appropriate substitute for a
  5216.             font that is advertised as supported in the fonts-
  5217.             supported attribute, even though the Printer doesn't
  5218.             actually have the font available.
  5219.  
  5220.  
  5221.  
  5222.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 90]
  5223.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5224.  
  5225.  
  5226.  
  5227.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  5228.  
  5229.  
  5230.             This attribute consists of a set of font pairs: a font
  5231.             name and the font to use instead.
  5232.  
  5233.             If this attribute is unspecified, the Printer does not
  5234.             perform any font substitutions.
  5235.  
  5236.  
  5237.           5.7.1.3 scheduling-algorithm (type3 keyword)
  5238.  
  5239.             This attribute indicates the current scheduling algorithm
  5240.             for this Printer.
  5241.  
  5242.             Standard values are: "none", "smallest-job-first", "time-
  5243.             received".
  5244.  
  5245.  
  5246.           5.7.1.4 printer-fonts (setOf font)
  5247.  
  5248.             This attribute specifies what fonts are available at the
  5249.             Printer or accessible to the Printer.  Documents may use
  5250.             these fonts without requiring that the fonts be
  5251.             downloaded with the document data.
  5252.  
  5253.             The standard values are font names.
  5254.  
  5255.             ISSUE: Should the IPP model include all information that
  5256.             is currently contained in printer definition files such
  5257.             as PostScripts printer definition (ppd) files?
  5258.  
  5259.  
  5260.           6. IANA Considerations
  5261.  
  5262.             IPP is explicitly designed to be extensible.  Additional
  5263.             attributes can be proposed to be registered by going
  5264.             through the type 2 or type 3 keyword  process which will
  5265.             register their specification after approval with IANA.
  5266.             In addition specific implementation instances may support
  5267.             not only the basic protocol as defined in this
  5268.             specification, but may add vendor-specific private
  5269.             extensions by prefixing attribute-names with their
  5270.             company name registered with IANA for use in domains.
  5271.             See attribute syntax section.  However, such private
  5272.             extensions shall not duplicate attribute semantics
  5273.             already in this specification.
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 91]
  5281.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5282.  
  5283.  
  5284.  
  5285.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  5286.  
  5287.  
  5288.           7. Security Considerations
  5289.  
  5290.             NOTE: There is another Internet-Draft called "Internet
  5291.             Printing Protocol/1.0: Security."  That document is being
  5292.             drafted and reviewed in parallel with this document.
  5293.             Before this document can become a formal RFC, any
  5294.             relevant issues from that document will be rolled into
  5295.             this one.
  5296.  
  5297.             A Printer may choose, for security reasons, not to return
  5298.             all attributes that a client requests. It may even return
  5299.             none of the requested attributes. In such cases, the
  5300.             status returned is the same as if the Printer had
  5301.             returned all requested attributes. The client cannot tell
  5302.             by such a response whether the requested attribute was
  5303.             present or absent on the Printer.
  5304.  
  5305.  
  5306.           8. References
  5307.  
  5308.             [1]  Smith, R., Wright, F., Hastings, T., Zilles, S., and
  5309.                  Gyllenskog, J., "Printer MIB", RFC 1759, March 1995.
  5310.  
  5311.             [2]  Berners-Lee, T, Fielding, R., and Nielsen, H.,
  5312.                  "Hypertext Transfer Protocol - HTTP/1.0", RFC 1945,
  5313.                  August 1995.
  5314.  
  5315.             [3]  Crocker, D., "Standard for the Format of ARPA
  5316.                  Internet Text Messages", RFC 822, August 1982.
  5317.  
  5318.             [4]  Postel, J., "Instructions to RFC Authors", RFC 1543,
  5319.                  October 1993.
  5320.  
  5321.             [5]  ISO/IEC 10175 Document Printing Application (DPA),
  5322.                  Final, June 1996.
  5323.  
  5324.             [6]  Herriot, R. (editor), X/Open A Printing System
  5325.                  Interoperability Specification (PSIS), August 1995.
  5326.  
  5327.             [7]  Kirk, M. (editor), POSIX System Administration -
  5328.                  Part 4: Printing Interfaces, POSIX 1387.4 D8, 1994.
  5329.  
  5330.             [8]  Borenstein, N., and Freed, N., "MIME (Multi-purpose
  5331.                  Internet Mail Extensions) Part One: Mechanism for
  5332.                  Specifying and Describing the Format of Internet
  5333.                  Message Bodies", RFC 1521, September, 1993.
  5334.  
  5335.  
  5336.  
  5337.  
  5338.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 92]
  5339.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5340.  
  5341.  
  5342.  
  5343.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  5344.  
  5345.  
  5346.             [9]  Braden, S., "Requirements for Internet Hosts -
  5347.                  Application and Support", RFC 1123, October, 1989,
  5348.  
  5349.             [10] McLaughlin, L. III, (editor), "Line Printer Daemon
  5350.                  Protocol" RFC 1179, August 1990.
  5351.  
  5352.             [11] Berners-Lee, T., Masinter, L., McCahill, M. ,
  5353.                  "Uniform Resource Locators (URL)", RFC 1738,
  5354.                  December, 1994.
  5355.  
  5356.           9. Author's Address
  5357.  
  5358.             Scott A. Isaacson
  5359.             Novell, Inc.
  5360.             122 E 1700 S
  5361.             Provo, UT   84606
  5362.  
  5363.             Phone: 801-861-7366
  5364.             Fax:   801-861-4025
  5365.             EMail: scott_isaacson@novell.com
  5366.  
  5367.             Tom Hastings
  5368.             Xerox Corporation
  5369.             701 S. Aviation Blvd.
  5370.             El Segundo, CA   90245
  5371.  
  5372.             Phone: 310-333-6413
  5373.             Fax:   310-333-5514
  5374.             EMail: hastings@cp10.es.xerox.com
  5375.  
  5376.             Robert Herriot
  5377.             Sun Microsystems Inc.
  5378.             2550 Garcia Ave., MPK-17
  5379.             Mountain View, CA 94043
  5380.  
  5381.             Phone: 415-786-8995
  5382.             Fax:  415-786-7077
  5383.             Email: robert.herriot@eng.sun.com
  5384.  
  5385.             Roger deBry
  5386.             HUC/003G
  5387.             IBM Corporation
  5388.             P.O. Box 1900
  5389.             Boulder, CO 80301-9191
  5390.  
  5391.             Phone: (303) 924-4080
  5392.             Fax: (303) 924-9889
  5393.             Email: debry@vnet.ibm.com
  5394.  
  5395.  
  5396.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 93]
  5397.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5398.  
  5399.  
  5400.  
  5401.           INTERNET-DRAFT  IPP/1.0: Model and Semantics  March 26, 1997
  5402.  
  5403.  
  5404.  
  5405.             IPP Mailing List:  ipp@pwg.org
  5406.             IPP Mailing List Subscription:  ipp-request@pwg.org
  5407.             IPP Web Page:  http://www.pwg.org/ipp/
  5408.  
  5409.  
  5410.             Other Participants:
  5411.  
  5412.             Devon Taylor, Novell, Inc.
  5413.             Mike MacKay, Novell, Inc.
  5414.             Peter Zehler, Xerox, Corp.
  5415.             Keith Carter, IBM Corporation
  5416.             Carl-Uno Manros, Xerox, Corp.
  5417.             Don Wright - Lexmark
  5418.             Steve Gebert - IBM
  5419.             Ray Lutz - Cognisys
  5420.             Mabry Dozier - QMS
  5421.             Lee Farrell - Canon Information Systems
  5422.             Hiroyuki Sato - Canon
  5423.             Pat Nogay - IBM
  5424.             Jim Walker - Dazel
  5425.             Jay Martin - Underscore
  5426.             Bill Wagner - DPI
  5427.             Stan McConnell - Xerox
  5428.             Bob Setterbo - Adobe
  5429.             Randy Turner - Sharp
  5430.             Rob Whittle - Novell
  5431.             Ron Bergman - Data Products
  5432.             Lloyd Young - Lexmark
  5433.             Andy Davidson - Tektronix
  5434.             Rick Landau - Digital
  5435.             David Kellerman - Northlake Software
  5436.             David Roach - Unisys
  5437.             Mike Timperman - Lexmark
  5438.             Chris Wellens - Interworking Labs
  5439.             Pete Loya - HP
  5440.             Bob Pentecost - HP
  5441.             Harry Lewis - IBM
  5442.             William Wagner - Digital Products
  5443.             Atsushi Yuki - Kyocera
  5444.             Rob Rhoads - Intel
  5445.             Jeff Barnett - IBM
  5446.             Jim Walker - Dazel
  5447.             Jeff Copeland - QMS
  5448.             Chuck Adams - Tektronix
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.           deBry, Hastings, Herriot, Isaacson, Powell         [Page 94]
  5455.             draft-ietf-ipp-model-00.txt, expires September 26, 1997
  5456.  
  5457.