IPP Mail Archive: IPP> MOD - Mandatory attributes

IPP> MOD - Mandatory attributes

Scott Isaacson (Scott_Isaacson@novell.com)
Tue, 22 Apr 1997 12:29:46 -0600

I tried to take a stab at which attributes are Mandatory and which are
not. I started this just as the "conformance" discussion started and so
where I have:

If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:

lines which are not filled in, I think they can all be subsumed by the
generic statements about what happens as described in the
conformance section. Maybe, this should just be a discription of what is
Mandatory and what is not. Just thought I would kick start the
discussion. Also, the whole notion of defaults are not brought into this. I
like Bob's proposal to go back to Printer "default" attributes for all of the
Job/Printer Job Template attributes.

The text below I also posted as

ftp://ftp.pwg.org/pub/pwg/ipp/new_MOD/att-rev-3.txt

Scott

----------------------------------------------------------

Job Template Attributes

Job Naming Attributes (set by client/end user)

-> job-name
Job Syntax: name
Printer Syntax: ?
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:

Job Sheet Attributes (set by client/end user)

-> job-sheets
Job Syntax: type4 keyword
Printer Syntax: setOf type4 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: none, default-sheet

Job Notification Attributes (set by client/end user)

-> notification-events
Job Syntax: setOf type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: job-completion, job-canceled,
job-problems,
printer-problems
none

-> notification-addresses
Job Syntax: setOf URL
Printer Syntax: setOf URLScheme
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: none, mailto, http, ftp

Job Scheduling Attributes (set by client/end user)

-> job-priority
Job Syntax: integer(1:00)
Printer Syntax: range with default
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:

-> job-hold-until
Job Syntax: type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: no-hold, evening, night,
weekend, second-shift,
third-shift, none

Job Production Attributes (set by client/end user)

-> multiple-documents-are
Job Syntax: type1 keyword
Printer Syntax: setOf type1 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: single-document,
separate-documents-
uncollated-copies,
separate-documents-
collated-copies

-> copies
Job Syntax: integer(1:2**31-1)
Printer Syntax: range with default
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:

-> finishing
Job Syntax: setOf type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: none, staple, staple-...,
saddle-stitch, edge-stitch,
punch, cover, bind

Document Production Attributes (set by client/end user)

-> media
Job Syntax: setOf type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: default, iso-a4, na-letter,
top, ...

-> number-up
Job Syntax: type3 keyword
Printer Syntax: setOf type3 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: none, 1, 2, 4

sides
Job Syntax: type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: 1-sided, 2-sided-long-edge,
2-sided-short-edge

-> printer-resolution
Job Syntax: type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: res-100, res-200, ...

-> print-quality
Job Syntax: type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: draft, normal, high, default

Document Format Attributes (set by client/end user)

-> document-format
Job Syntax: type2 keyword
Printer Syntax: setOf type2 keyword
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:
standard values: other, PCL, PS, ...

Job Size Attributes (set by client/end user)

-> job-k-octets
Job Syntax: integer(0:2**31 - 1)
Printer Syntax: range (no default)
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:

-> job-impressions
Job Syntax: integer(0:2**31 - 1)
Printer Syntax: range (no default)
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:

-> job-media-sheets
Job Syntax: integer(0:2**31 - 1)
Printer Syntax: range (no default)
Mandatory Job: No
Mandatory Printer: No
If Request and Printer:
If not Request and Printer:
If Request and not Printer:
If not Request and not Printer:
best-effort = substitute-as-needed:
best-effort = do-not-substitute:

Job Attributes (set by the Printer)

Job Identification Attributes (set by Printer)

-> job-url
Job Syntax: URL
Mandatory Job: YES

Job Owner Attributes (set by Printer)

-> job-originating-user
Job Syntax: Name
Mandatory Job: YES

-> job-originating-host
Job Syntax: Name
Mandatory Job: No

-> user-locale
Job Syntax: setOf type2 keyword
Mandatory Job: No
standard values: see document locale

Job Status Attributes (set by Printer)

-> job-state (type1Enum)
Job Syntax: type1 keyword
Mandatory Job: YES
standard values: unknown, pending,
processing,
terminating, retained,
completed

-> job-state-reasons
Job Syntax: setOf type2 keyword
Mandatory Job: YES
standard values: incomplete, ...

-> job-state-as-text
Job Syntax: text
Mandatory Job: YES

-> output-device-assigned
Job Syntax: URL
Mandatory Job: No

-> submission-time
Job Syntax: dateTime
Mandatory Job: YES

-> number-of-intervening-jobs
Job Syntax: integer(0:2**31 - 1)
Mandatory Job: YES

-> job-message-from-operator
Job Syntax: text
Mandatory Job: No

-> completion-time
Job Syntax: dateTime
Mandatory Job: YES

Document Data Attributes (set by client/end user)

-> document-name
Document Syntax: name
Mandatory Document: YES

-> document-URL
Document Syntax: URL
Mandatory Document: Either this or content

-> document-content
Document Syntax: octetString
Mandatory Document: Either this or URL

Printer Description Attributes

Printer Identification Attributes (set by administrator)

-> printer-name
Printer Syntax: name
Mandatory Printer: YES

-> printer-URL
Printer Syntax: URL
Mandatory Printer: YES

Printer Description Attributes (set by administrator)

-> printer-location
Printer Syntax: text
Mandatory Printer: No

Printer Description Attributes (set by manufacturer)

-> printer-make-and-model
Printer Syntax: text
Mandatory Printer: No

-> maximum-printer-speed
Printer Syntax: integerUnits
Mandatory Printer: No
units: ppm, ipm, spm, lpm, cps, ...

Printer Status Attributes

Printer StatusAttributes (set by printer)

-> printer-state
Printer Syntax: type1 keyword
Mandatory Printer: YES
units: unknown, idle, processing,
stopped, ...

-> printer-state-reasons
Printer Syntax: setOf type2 keyword
Mandatory Printer: YES
standard values: partly-stopped, paper-jam,
paused, ...

-> printer-is-accepting-jobs
Printer Syntax: boolean(true, false)
Mandatory Printer: YES

-> printer-state-as-text
Printer Syntax: text
Mandatory Printer: YES

-> queued-job-count
Printer Syntax: integer(0:2**31 - 1)
Mandatory Printer: YES

Printer StatusAttributes (set by administrator)

-> printer-message-from-operator (text)
Printer Syntax: text
Mandatory Printer: No

Printer Behavior Attributes

Printer BehaviorAttributes (set by administrator)

-> printer-locale
Printer Syntax: setOf type2 keyword
Mandatory Printer: Yes

-> font-substitutions
Printer Syntax: setOf setOf font
Mandatory Printer: No

-> scheduling-algorithm
Printer Syntax: type3 keyword
Mandatory Printer: Yes
standard values: none, smallest-job-first,
time-received

IPP Model Attributes Review v3.0
4/18/97 1