idnits 2.17.1 draft-ietf-ipp-not-change-history-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Found some kind of copyright notice around line 21 but it does not match any copyright boilerplate known by this tool. Expected boilerplate is as follows today (2024-04-16) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document is more than 15 pages and seems to lack a Table of Contents. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 17 longer pages, the longest (page 15) being 67 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack an Authors' Addresses Section. ** The abstract seems to contain references ([IPP-PRO], [IPP-RAT], [IPP-IIG], [IPP-MOD], [IPP-REQ], [IPPLPD]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 70: '...sion 1.0. A few OPTIONAL operator ope...' RFC 2119 keyword, line 170: '... REQUIRED if notification is sup...' RFC 2119 keyword, line 171: '...ubscriptions are REQUIRED. There is n...' RFC 2119 keyword, line 172: '... CONDITIONALLY REQUIRED indication i...' RFC 2119 keyword, line 255: '...iption. Keep it OPTIONAL to support. ...' (37 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 22, 1999) is 9004 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Missing reference section? 'RFC2026' on line 30 looks like a reference -- Missing reference section? 'IPP-REQ' on line 55 looks like a reference -- Missing reference section? 'IPP-RAT' on line 57 looks like a reference -- Missing reference section? 'IPP-MOD' on line 58 looks like a reference -- Missing reference section? 'IPP-PRO' on line 59 looks like a reference -- Missing reference section? 'IPP-IIG' on line 60 looks like a reference -- Missing reference section? 'IPP LPD' on line 61 looks like a reference Summary: 10 errors (**), 0 flaws (~~), 3 warnings (==), 9 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 INTERNET-DRAFT 2 4 S. Isaacson 5 Novell, Inc. 6 J. Martin 7 Underscore 8 R. deBry 9 Utah Valley State College 10 T. Hastings 11 Xerox Corporation 12 M. Shepherd 13 Xerox Corporation 14 R. Bergman 15 Dataproducts Corp. 16 August 22, 1999 18 Internet Printing Protocol/1.1: IPP Event Notification Change 19 History 21 Copyright (C) The Internet Society (1999). All Rights Reserved. 23 Status of this Memo 25 This document is an Internet-Draft and is in full conformance with all 26 provisions of Section 10 of [RFC2026]. Internet-Drafts are working 27 documents of the Internet Engineering Task Force (IETF), its areas, and 28 its working groups. Note that other groups may also distribute working 29 documents as Internet-Drafts. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference material 34 or to cite them other than as "work in progress". 36 The list of current Internet-Drafts can be accessed at 37 http://www.ietf.org/ietf/1id-abstracts.txt 39 The list of Internet-Draft Shadow Directories can be accessed as 40 http://www.ietf.org/shadow.html. 42 Abstract 44 This document contains the change history for the development of the IPP 45 Notification specification. The IPP Notification specification is an 46 extension to the IPP/1.0 & IPP/1.1 model that allows clients to 47 subscribe to printing related events. Subscriptions include "Per-Job 48 Submission subscriptions" and "Per-Printer subscriptions". Either 49 subscription may specify job and/or printer events. This specification 50 has been developed starting in the Fall of 1997. 52 Expires February 25, 2000 53 The full set of IPP documents includes: 55 Design Goals for an Internet Printing Protocol [IPP-REQ] 56 Rationale for the Structure and Model and Protocol for the Internet 57 Printing Protocol [IPP-RAT] 58 Internet Printing Protocol/1.1: Model and Semantics [IPP-MOD] 59 Internet Printing Protocol/1.1: Encoding and Transport [IPP-PRO] 60 Internet Printing Protocol/1.0: Implementer's Guide [IPP-IIG] 61 Mapping between LPD and IPP Protocols [IPP LPD] 63 The "Design Goals for an Internet Printing Protocol" document takes a 64 broad look at distributed printing functionality, and it enumerates 65 real-life scenarios that help to clarify the features that need to be 66 included in a printing protocol for the Internet. It identifies 67 requirements for three types of users: end users, operators, and 68 administrators. It calls out a subset of end user requirements that are 69 satisfied in IPP/1.0. Operator and administrator requirements are out 70 of scope for version 1.0. A few OPTIONAL operator operations have been 71 added to IPP/1.1. 73 The "Rationale for the Structure and Model and Protocol for the Internet 74 Printing Protocol" document describes IPP from a high level view, 75 defines a roadmap for the various documents that form the suite of IPP 76 specifications, and gives background and rationale for the IETF working 77 group's major decisions. 79 The "Internet Printing Protocol/1.1: Model and Semantics", describes a 80 simplified model with abstract objects, their attributes, and their 81 operations that are independent of encoding and transport. It introduces 82 a Printer and a Job object. The Job object optionally supports multiple 83 documents per Job. It also addresses security, internationalization, and 84 directory issues. 86 The "Internet Printing Protocol/1.1: Encoding and Transport" document is 87 a formal mapping of the abstract operations and attributes defined in 88 the model document onto HTTP/1.1. It defines the encoding rules for a 89 new Internet MIME media type called "application/ipp". This document 90 also defines the rules for transporting over HTTP a message body whose 91 Content-Type is "application/ipp". This document defines a new scheme 92 named 'ipp' for identifying IPP printers and jobs. Finally, this 93 document defines interoperability rules for supporting IPP/1.0 clients. 95 The "Internet Printing Protocol/1.0: Implementer's Guide" document gives 96 insight and advice to implementers of IPP clients and IPP objects. It 97 is intended to help them understand IPP/1.0 and some of the 98 considerations that may assist them in the design of their client and/or 99 IPP object implementations. For example, a typical order of processing 100 requests is given, including error checking. Motivation for some of the 101 specification decisions is also included. 103 The "Mapping between LPD and IPP Protocols" document gives some advice 104 to implementers of gateways between IPP and LPD (Line Printer Daemon) 105 implementations. 107 Expires February 25, 2000 108 Table of contents 110 1 Changed made to the August 17, 1999 version to make the August 22, 111 1999 version........................................................4 113 2 Changes made to the August 11, 1999 version to make the August 17, 114 1999 version:.......................................................5 116 3 Changes made from August 8, 1999 version to make the August 11, 1999 117 version.............................................................7 119 4 Changes to the August 2, 1999 version to make the August 7, version 120 10 122 5 Changes to the July 22, 1999 version to make the August 2, 1999 123 version............................................................10 125 6 Changes to the July 21, 1999 to make the July 22, 1999 (T Hastings) 126 10 128 7 Changes to the July 20, 1999 to make the July 21, 1999 (T Hastings) 129 10 131 8 Changes to the May 18, 1999 to make the July 20, 1999 (M Shepherd)11 133 9 Changes to the May 17, 1999 to make the May 18, 1999 (T Hastings, R 134 Bergman)...........................................................12 136 10 Changes to the January 20, 1999 to make the May 17, 1999 version (M 137 Shepherd)..........................................................13 139 11 Changes to the January 18, 1999 to make the January 20, 1999 version 140 14 142 12 Changes to the December 10, 1998 to make the January 18, 1999 version 143 15 145 13 Changes to the July 1, 1998 to make the December 10, 1998 version16 147 Expires February 25, 2000 148 IPP Notification Specification Change History 150 The change history is maintained in reverse chronological order. Brief 151 explanations for each change is often included. 153 1 Changed made to the August 17, 1999 version to make the August 22, 154 1999 version 156 1.Integrated the Attribute Summary and New Model documents into 157 the Specification. Separated the Change History into this 158 document. Put the attribute summary as an Appendix. Put each 159 Notification Method description into a separate (short) 160 document. 162 2.Added "notify-content-type" (mimeMediaType) so that the client 163 can specify whether human consumable versus machine consumable. 165 3.Added "notify-content-type-supported" (1setOf collection) 166 Printer Description attribute to represent which notification 167 format types are supported for each supported delivery scheme. 169 4.Made Per-Printer Subscriptions and the Subscription object 170 REQUIRED if notification is supported. So both Per-Job and Per- 171 Printer subscriptions are REQUIRED. There is no longer any 172 CONDITIONALLY REQUIRED indication in our spec. 174 5.Added "notify-attributes-charset" to represent "attributes- 175 charset" in subscription requests and objects to distinguish it 176 from the request's "attributes-charset" attribute. 178 6.Added "notify-attributes-natural-language" to represent 179 "attributes-natural-language" in subscription requests and 180 objects to distinguish it from the request's "attributes- 181 natural-language" attribute. 183 7.Removed the concept of recording events, since there are no 184 longer any Job or Printer attributes that record the last event, 185 time, or date-time of the event. Only the Printer's "printer- 186 state-change-time" and "printer-state-change-date-time" remain 187 for recording events as the last Printer state change, so that 188 an application starting up can determine how long the device has 189 been in its current state. 191 8.Deleted notify-content-types-supported (1setOf collection). 192 Require all (1 or 2) content types that are defined for a method 193 to be supported, if the method is supported. 195 9.Added the 'server-error-too-many-events' status code. 197 Expires February 25, 2000 199 2 Changes made to the August 11, 1999 version to make the August 17, 200 1999 version: 202 1.Instead of the "notify-exclude-event-mask" (1setOf 203 octetString(8)) attribute, we agreed to use introduce the new 204 'collection' attribute syntax that we have been talking about 205 for over a year for use in the Job object to specify multiple 206 subscriptions in a Job creation operation. So the "notify" 207 operation attribute for Job creation operations will have the 208 attribute syntax: '1setOf collection'. The member attributes 209 of each collection value for Per-Job subscriptions are the same 210 as the attributes of a Subscription object instance for Per- 211 Printer subscriptions. For terminology a "subscription" is 212 either a collection value of the "notify" operation attribute in 213 a Job Creation operation or is a Subscription object. 215 2.Each subscription will contain only one multi-valued attribute: 216 "notify-events" (1setOf type2 keyword). The remaining 217 attributes will be single valued: 218 "notify-recipients" (uri) 219 "notify-user-info" (octetString(63)) 220 "attributes-charset" (charset) 221 "attributes-natural-language" (naturalLanguage) 222 "request-id" (integer(0:MAX)) 224 3.The client supplies an "attributes-natural-language" in a 225 subscription in order to get a different natural language than 226 for the request that creates the subscription. However, the 227 only time that the natural language has any bearing on the 228 Notification content, is when that content is the Human 229 Consumable form. The Machine Consumable form of the 230 Notification content will have no localization in it. 232 4.The minimum number of notification recipients that are required 233 to support is 1. Hence the minimum number of collection values 234 is 1 and the minimum number of Subscription objects is 1, if 235 Per-Printer subscriptions are supported at all. 237 5.Instead of inventing a special operation that sets the Job 238 attributes related to notification, we will define a single Set- 239 Job-Attributes operation for changing the values of any Job 240 attribute that is not defined to be READ-ONLY. We will not 241 define the corresponding Set-Printer-Attributes operation at 242 this time, but will lump that operation with the other System 243 Administration operations, since changing Printer attributes is 244 an administrative function. Changing Job attributes is an end- 245 user function for your own jobs, and an operator operation for 246 other's Jobs. 248 6.A Printer can grant a larger or smaller least to that requested, 249 including granting an infinite lease. 251 Expires February 25, 2000 253 7.Change "persistence (boolean)" operation attribute to 254 "persistence-requested (boolean)" in the Create-Printer- 255 Subscription. Keep it OPTIONAL to support. However, add a 256 REQUIRED "persistence-granted (boolean)" operation attribute 257 that MUST be returned in the response. While implementations 258 are RECOMMENDED to make all Subscriptions persistence, same as 259 for jobs, they MAY have a more limited number that are 260 persistent, including none. 262 8.Add two Printer Descriptions attributes: "persistent-job- 263 supported" (boolean) and "persistent-subscriptions-supported" 264 (boolean). 266 9.The Get-Printer-Subscriptions and Get-Printer-Subscription- 267 Attributes will return attributes Subscription attributes group, 268 so there will be a new Subscription attribute tag assigned in 269 the Encoding and Transport. 271 10. Changed the name of the "notify-lease-time" (integer(0:MAX)) 272 in the Subscription object to "notify-least-expiration-time" 273 (integer(0:MAX)) since it is the time at which the lease 274 expires. 276 11. Eliminated storing the trigger-event, trigger-time, and 277 trigger-date-time in the subscription and passed them only in 278 the Notification content. 280 12. Add "printer-state-change-time" (integer(MIN:MAX)) and 281 "printer-state-change-date-time" (dateTime) Printer Description 282 attributes to record the time that the Printer last changed 283 state. Then an application that come up after that can tell 284 when the printer got into its current state by querying the 285 Printer when the application starts up. Lesson from the Printer 286 MIB alert table. 288 13. Defined the "subscription-id" attribute for use with Per-Job 289 subscriptions as being the index of the 1setOf collection, 290 starting at '1'. Then a Notification Recipient can have a 291 unique identification for each subscription whether it be Per- 292 Job or Per-Printer, for use in catching duplicate or skipped 293 notifications using the "request-id". 295 14. Deleted the "delivery-failure-count" (integer(0:MAX)) from the 296 Subscription object as not necessary. 298 15. Transports that have limited space, like SNMP, can truncate 299 the "job-name" to less than 255 octets, in order to fit. 301 16. Added the "subscription-printer-uri" (uri) to the Subscription 302 object to go along with the Job's "job-printer-uri" (uri) 303 attribute. 305 Expires February 25, 2000 307 17. Added "job-k-octets-processed" (integer(0:MAX)) to the Job 308 Notification content for 'job-progress' and 'job-completed' 309 events. 311 18. Added the 'job-progress' attributes to also be in the 'job- 312 completed' Job Notification content. 314 3 Changes made from August 8, 1999 version to make the August 11, 1999 315 version 317 The following changes were made from the 99/08/07 version to make the 318 99/08/11 version as result of the IPP telecon, 9908/11: 320 1. Changed the name of the Replace-Job-Subscription operation to Set- 321 Job-Subscription, since it can add, remove or change Job 322 notification attributes, not just replace them. 324 2. Added the configuration pictures. 326 3. Reduced the size of "notify-user-data" from 255 octets to 63 327 octets, since it is also send in the Notification content which has 328 a limit of 480 or so octets on some transports. 330 4. Changed the conformance requirements for the "notify-exclude-event- 331 masks (1setOf octetString(8))" operation attributes in Job creation 332 and Create-Printer-Subscription operations from OPTIONAL to 333 REQUIRED, since their implementation means that clients can count 334 on it. Also the minimum number of Per-Printer Subscriptions can be 335 less, since a client won't be forced to use multiple subscriptions 336 when recipients have different events. Finally, SNMPv3 has the 337 exclude mask mechanism. 339 5. Added the OPTIONAL "notify-natural-languages" (1setOf 340 naturalLanguage) Job Description attribute so that each 341 Notification Recipient could get a requested natural language, 342 instead of the one in the Job creation request. 344 6. Deleted the "job-trigger-message" Job Description attribute from 345 Job object attribute. The client can localize the remaining Job 346 attributes on its slow scan in case Notifications are dropped. 348 7. Added the "notify-request-ids (1setOf integer(0:MAX))" Job 349 Description attribute to the Job object to indicate (and remember) 350 the most recent request-id delivered for each Notification 351 Recipient. 353 8. Deleted "previous-job-state (type1 enum)" and "job-state-reasons- 354 added (1setOf type2 keyword)" and "job-state-reasons-deleted 355 (1setOf type2 keyword)" from the Job object. The "job-state- 356 reasons" value has enough information about why the Job is in the 357 current state, so that we don't need the previous state and state 359 Expires February 25, 2000 360 reasons for the slow scan polling Notification Recipient that is 361 attempting to overcome possible dropped Notifications. 363 9. Added REQUIRED "max-recipients-supported (integer(0:MAX))" Printer 364 Description attribute to the Printer object to indicate the max 365 number of Per-Job and Per-Printer Notification Recipients supported 366 in each subscription. REQUIRE a minimum of 3 recipients. 368 10. Added the requirement that at least 8 Per-Printer Subscription 369 object instances MUST be supported, if Per-Printer subscriptions 370 are supported. With the exclude mask, such a low number as 8 isn't 371 too restrictive on clients and isn't too expensive for low end 372 devices. 374 11. Added the OPTIONAL "persistent-subscriptions-supported" 375 (boolean) Printer Description attribute to the Printer object to 376 indicate whether or not the Printer supports persistent Per-Printer 377 Subscriptions. 379 12. Changed the Printer support requirements for the "notify- 380 exclude-event-mask" (1setOf octetString(8)) from OPTIONAL to 381 REQUIRED, so that clients can count on it and to reduce the number 382 of Subscription objects that a Printer MUST support. 384 13. Added the OPTIONAL "notify-natural-languages" (1setOf 385 naturalLanguage) Subscription object attribute so that each 386 Notification Recipient could get a requested natural language, 387 instead of the one in the Create-Printer-Subscription request. 389 14. Added the "subscription-id" attribute to the Subscription 390 object so that each object instance is identified in a manner 391 analogous to Job objects. 393 15. Changed the name of "most-recent-request-id" to "notify- 394 request-ids" for consistency in naming and to be the same as the 395 corresponding Job Description attribute ("notify-request-ids"). 397 16. Changed the name of the "notify-lease-time-remaining" 398 Subscription object attribute to "notify-lease-time". Changed the 399 semantics from the lease time interval requested to the "printer- 400 up-time" (time ticks) that the lease expires. The client can 401 subtract the "printer-up-time" from the "notify-lease-time" to find 402 out how much time is left on the lease. This change makes the 403 attribute value be a constant, instead of having to be recomputed 404 on each Get-Printer-Subscription-Attribute request. 406 17. Changed the name of the "notify-lease-time (integer(0:MAX))" 407 Subscription object attribute to "notify-lease-time-granted 408 (integer(0:MAX))" and indicated that it is set by the Printer not 409 the client. 411 Expires February 25, 2000 413 18. Added 'printer-announce' event, so that the Subscriber can 414 have the Notification Recipient be warned that other Printer events 415 are forth coming. 417 19. Added 'printer-queue-changed' - so that an application that is 418 monitoring the queue can re-fetch the queue with Get-Jobs. 420 20. Added "attributes-charset" and "attributes-natural-language" 421 to the Job and Printer Notification content, since the content is 422 an 'application/ipp' MIME type for an IPP response. 424 21. Added "printer-name (name(127))" and "job-name (name(MAX))" to 425 Job and Printer Notification Content. These are helpful to end 426 users to identify from whence came a notification. 428 22. Deleted the "job-trigger-message (text(255))" from the Job 429 Notification content since the data is already available in other 430 attributes that the recipient should localize to present to a 431 human. Also the Human Consumable form will have many of the 432 attributes when it is used. 434 23. Deleted "previous-job-state (type1 enum)" and "job-state- 435 reasons-added (1setOf type2 keyword)" and "job-state-reasons- 436 deleted (1setOf type2 keyword)" from the Job Notification content. 437 The current "job-state-reasons" value has enough information about 438 why the Job is in the current state, so that we don't need the 439 previous state and state reasons. 441 24. Deleted the "printer-trigger-message (text(255))" from the 442 Printer Notification content, since the data is already available 443 in other attributes that the recipient should localize to present 444 to a human. Also the Human Consumable form will have many of the 445 attributes when it is used. 447 25. Added [job-id (integer(1:MAX))] and [job-name (name(MAX))] to 448 the Printer Notification content for when the event is from a Per- 449 Job subscription. 451 26. Deleted "previous-printer-state (type1 enum)" and "printer- 452 state-reasons-added (1setOf type2 keyword)" and "printer-state- 453 reasons-deleted (1setOf type2 keyword)" from the Printer 454 Notification content. The current "printer-state-reasons" value 455 has enough information about why the Printer is in the current 456 state, so that we don't need the previous state and state reasons. 458 27. Added "printer-is-accepting-jobs (boolean)" attribute to the 459 Printer Notification content, since it is a state variable and its 460 change causes the 'printer-state-change' event. 462 28. Added the definition of the Set-Job-Subscription operation. 464 29. Changed the name of "notify-lease-time" operation attribute in 465 the Create-Printer-Subscription operation to "notify-lease-time- 467 Expires February 25, 2000 468 requested" to distinguish it from the "notify-lease-time" (uptime 469 ticks) and "notify-lease-time-granted" returned in the response. 471 30. Added the "notify-persistence (boolean)" operation attribute 472 to the Create-Printer-Subscriptions to indicate whether the 473 notification content delivery is to make the Per-Printer 474 Subscription be permanent. 476 4 Changes to the August 2, 1999 version to make the August 7, version 478 1.Changed the Subscription object to be used only with the Per- 479 Printer subscriptions. Per-Job subscriptions are done with Job 480 Creation operation attributes that are copied to the Job object 481 as Job Description attributes. 483 5 Changes to the July 22, 1999 version to make the August 2, 1999 484 version 486 1. Introduced the Subscription object for use with both Job 487 Subscriptions and Printer Subscriptions. A Subscription object is 488 associated with a Printer object, a Job object, or is an 489 unassociated Job Subscription waiting for the Job object to be 490 created and a back association made to it. 492 2. Add the following operations on the Subscription object: 494 Create-Subscription recipients, [events,] [user-data,] 495 [lease-time,] [job-id or printer-uri] 496 Get-Subscription-Attributes subscription-id, [requested- 497 attributes] 498 Renew-Subscription subscription-id, [lease time] 499 Cancel-Subscription subscription-id 501 6 Changes to the July 21, 1999 to make the July 22, 1999 (T Hastings) 503 1. Added the REQUIRED "initial-sequence-numbers" (1setOf 504 integer(1:MAX)) to the Subscribe-Printer response to indicate the 505 sequence number to be used in the first notification for each event 506 subscribed. 508 2. Added a number of issues and renumbered. 510 7 Changes to the July 20, 1999 to make the July 21, 1999 (T Hastings) 512 The following changes were made to the July 20, 1999 to make the July 513 21, 1999 version: 515 1.Changed the "job-trigger-events (1setOf type2 keyword)" Job 516 Description attribute "job-trigger-event (type2 keyword), since 517 events cannot be batched in a notification. 519 Expires February 25, 2000 521 2.Changed the "printer-trigger-events (1setOf type2 keyword)" 522 Printer Description attribute "printer-trigger-event (type2 523 keyword), since events cannot be batched in a notification. 525 3.Changed Subscribe-Job from REQUIRED to OPTIONAL if implementing 526 "Explicit Subscription". 528 4.Clarified that events are defined to be disjoint, since the job- 529 trigger-event is now single-valued. Thus only the 'job-created' 530 event is generated even if job state reasons are added. 531 Similarly, only the 'job-completed' event is generated even if 532 job state reasons are added or removed. 534 5.Indicated which Job Description and Printer Description 535 attributes are READ-ONLY, i.e., MUST NOT be settable with Set- 536 Job-Attributes or Set-Printer-Attributes operations. 538 6.Clarified which Job attributes cause 'job-config-changed' event: 539 "job-message-from-operator" and any non-READ-ONLY Job 540 attributes. 542 7.Clarified which Printer attributes cause 'printer-config- 543 changed' event: "printer-message-from-operator" and any non- 544 READ-ONLY Printer attributes, except "media-ready" which has its 545 own event. 547 8.Renamed 'ready-for-job' event to 'printer-is-no-longer-full' and 548 clarified that it is generated only when a previous Print-Job, 549 Print-URI, Create-Job, Send-Document, or Send-URI operation had 550 been rejected due to no more room. 552 9.Renamed 'ready-for-just-in-time-job' to 'printer-almost-idle', 553 to make it clearer how this event differs from 'printer-is-no- 554 longer-full'. 556 10. Kept 'printer-shutdown' and 'printer-restarted' as separate 557 and disjoint from 'printer-state-changed' event, so that they 558 can be subscribed without having to get all state change events. 559 Also parallel with 'job-created', 'job-state-change', and 'job- 560 completed'. Also clarified that shutdown means either using the 561 Shutdown-Printer operation with 'standby' or 'power-down' 562 options or power-down by other means. Same for 'printer- 563 restarted' being with the Restart-Printer operation or a power- 564 up sequence. 566 8 Changes to the May 18, 1999 to make the July 20, 1999 (M Shepherd) 568 The following changes were made to the May 18, 1999 to make the July 20, 569 1999 version: 571 1.Added new section Conformance Requirements 573 2.Changed 'event report' to 'notification' 575 3.Changed 'request-id' to be used as a sequence number inside each 576 notification. 578 Expires February 25, 2000 580 4.Combined job-state-changed and job-state-reason-change into one 581 notification trigger-event. 583 5.Combined printer-state-changed and printer-state-reason-change 584 into one notification trigger event. 586 6.Added "job-config-changed" event 588 7.Moved "device-powering-down" event to be encompassed by 589 "printer-state-change" 591 8.Combined this spec with the Job Independent Subscriptions spec 592 (which was renamed to Explicit Subscriptions). 594 9.Added operation Subscribe-Job. 596 10. Added server-error-too-many-subscriptions to Status Codes. 598 9 Changes to the May 17, 1999 to make the May 18, 1999 (T Hastings, R 599 Bergman) 601 1.Removed concept of event groups. Subscribe to individual 602 events. Much simpler. The event determines what data is sent 603 in the event report. Also allows the client to query the 604 printer to see what events are supported, rather than which 605 groups. 607 2.Replaced all of the job state transition events with a single 608 'job-state-changed' event. The report contains the old job state 609 and the new job state. 611 3.Removed the notification-format attribute to keep the proposal 612 simple. 614 4.Added the 'client-error-notify-uri-scheme-not-supported' status 615 code. 617 5.Added REQUIRED "previous-job-state", "previous-job-state- 618 reasons", previous-printer-state", and "previous-printer-state- 619 reasons" Job Description attributes. 621 6.Removed the "job-impressions-completed" from the Basic Job Event 622 Report Content. Bring it back with the "job-progress" events. 624 7.Removed the "printer-is-accepting-jobs" from the Basic Printer 625 Event Report Content. Its changing is part of the "config- 626 change" event. 628 8.Changed the 'job-state-changed' event, so that it doesn't 629 include 'job-created', 'job-completed', or 'job-purged' events. 631 Expires February 25, 2000 633 9.Made the event names mostly consistent by being in the past 634 tense to reflect the fact that events reports happen after the 635 internal event has completed. 637 10. Combined the 'job-state-reasons-added' and 'job-state-reasons- 638 removed' into a single event: 'job-state-reasons-changed'. Same 639 for 'printer-state-reasons-changed'. 641 11. Changed 'mailto' notification method to REQUIRE 642 'multipart/report' which all mail agents understand, at least 643 the text part. 645 12. Deleted the 'job-warning' and 'job-error' events, since they 646 are covered by the 'job-state-reasons-changed, 'job-state- 647 changed' and/or 'job-completed' events. 649 10 Changes to the January 20, 1999 to make the May 17, 1999 version (M 650 Shepherd) 652 1. Changed references to IPP 1.0 to IPP 1.1 654 2. Implementing the notification specification is optional. 656 3. Refined the definition of Event 658 4. Changed 'notification report' to 'event report' for consistent 659 terminology 661 5. Changed the terminology of an 'active' job to 'not-complete'. 662 Included the 'pending-held' state in the 'not-complete' super- 663 state. 665 6. Introduced notify-event-groups-default. 667 7. Changed job-trigger-message and job-impressions-completed to be 668 CONDITIONAL in the event report, job-trigger-date-time to be 669 RECOMMENDED, and job-state-reasons to be REQUIRED. 671 8. Changed printer-trigger-message to be CONDITIONAL in the event 672 report, and printer-state-reasons to be REQUIRED. 674 9. Created a table to map job-trigger-events keywords to event-groups 675 and required status. 677 10. Modified job-continued to be job-resumed-processing, and job- 678 received to be job-created. Added job-purged, job-state-reason- 679 removed, and job-state-reason-added keywords. 681 11. Modified job-trigger-time and printer-trigger-time to use 682 values less than zero. 684 Expires February 25, 2000 686 12. Created a table to map printer-trigger-events keywords to 687 event-groups and their required status. 689 13. Added ready-for-job and printer-state-reason-added to printer- 690 trigger-events keywords. 692 14. Updated References section 694 15. Added notify-format and notify-format-supported attributes. 696 16. Added subscription-id to the event report attributes of job 697 and printer. 699 17. Made job-errors-basic and printer-errors-basic REQUIRED to be 700 supported. 702 18. Added printer-media-changed, printer-config-changed, and 703 ready-for-just-in-time-job to printer events. 705 19. Added Author's Addresses. 707 11 Changes to the January 18, 1999 to make the January 20, 1999 version 709 The following changes were made to the January 18, 1999 to make the 710 January 20, 1999 version: 712 1. Made this an INTERNET-DRAFT. 714 2. Indicated that a new default port is needed for the delivery 715 methods. 717 3. Added Appendices in which to put the registration information for 718 the URL schemes for each delivery method. 720 4. Clarified which parameters, Operation attributes, and Job/Printer 721 attributes are supplied in an event content: the request-id is 0, 722 the status-code is new 'job-event' 0x600 or 'printer-event' 0x601. 724 5. Changed "job-trigger-event" and "printer-trigger-event" to be 725 1setOf so that multiple events that occur at the same time MAY be 726 send as one event content. 728 6. Added "job-trigger-time" as a REQUIRED Job Description and event 729 content attribute which is in seconds since power up. 731 7. Changed "job-trigger-date-time" and "job-state-reasons" to 732 OPTIONAL. 734 8. Changed "status-message" to be an OPTIONAL "job-trigger-message" 735 event content attribute and also made it a Job Description 736 attribute. 738 Expires February 25, 2000 740 9. Added "printer-trigger-time" as a REQUIRED Printer Description and 741 event content attribute which is in seconds since power up. 743 10. Changed "printer-trigger-date-time" and "printer-state- 744 reasons" to OPTIONAL. 746 11. Changed "status-message" to be an OPTIONAL "printer-trigger- 747 message" event content attribute and also made it a Printer 748 Description attribute. 750 12. Removed the "job-id" attribute from the printer event content. 752 12 Changes to the December 10, 1998 to make the January 18, 1999 version 754 The following changes were made to the December 10, 1998 to make the 755 January 18, 1999 version: 757 1. Changed the names of the REQUIRED notify-recipient keywords from: 758 'ipp-tcp-socket' and 'ipp-udp-socket' to 'ipp-tcp-notify' and 'ipp- 759 udp-notify'. 761 2. Added '-notify' to the OPTIONAL 'snmpv1', 'snmpv2', and 'snmpv3' 762 delivery method names. 764 3. Changed the OPTIONAL 'sense-datagram' to 'sense-notify' to be 765 consistent. 767 4. Added 'ndps-notify' as an OPTIONAL keyword. 769 5. Deleted the 'all-basic', 'all-job-events-basic', and 'all-printer- 770 events-basic'. Clients should be explicit about which groups they 771 want. If new groups are added, the clients won't know what to do 772 with them, if they had subscribed to 'all-xxx' groups. 774 6. Changed the names of "job-last-event" and "job-last-date-time-of- 775 event" to "job-trigger-event" and "job-trigger-date-time" events, 776 since the events trigger the notification delivery, but the 777 attribute values remain after the event has been delivered. 779 7. Added "status-message" as an OPTIONAL event report content 780 attribute. 782 8. Changed "job-impressions-completed" to OPTIONAL. 784 9. Indicated that OPTIONAL attributes are not sent in the event report 785 content if they are not supported. 787 10. Required that "status-message" and/or "job-impressions- 788 completed" be sent in an event report content if they are supported 789 as an Operation attribute and a Job Description attribute, 790 respectively. 792 11. Added REQUIRED "printer-trigger-event", REQUIRED "job-id", and 793 OPTIONAL "status-message" to the printer event report content. 795 12. Specified the "printer-trigger-event" Printer Description 796 attribute, naming each event. 798 Expires February 25, 2000 800 13. Deleted the 'sheet-completed' and 'collated-copy-completed', 801 since these events are not part of any 'xxx-basic' event group. 802 They can be added back when we have an event group that uses them. 804 13 Changes to the July 1, 1998 to make the December 10, 1998 version 806 The following changes made from the July 1, 1998 to make the December 807 10, 1998 version: 809 1. Clarified the terminology so that an "event" doesn't necessarily 810 mean that a notification report is delivered. 812 2. Removed many of the job and printer attributes for being sent in a 813 notification event report, so that we can get agreement on a basic 814 set of event report content. Only attributes really needs are 815 included, including what may be needed for FAX. Changed the names 816 of the event groups by adding the suffix '-basic' to indicate that 817 these event groups return only basic information. Additional event 818 groups can be registered in order to get more attributes as needed 819 for accounting and more detailed job monitoring purposes. 821 3. Deleted the "job-progress" event group. We can bring it back when 822 we agree to all of the extra attributes. Its not very useful with 823 only the basic attributes. 825 4. The printer events are indicted using the "printer-state-reasons" 826 values, instead of the Printer MIB alert codes. Since most of the 827 Printer MIB alert codes, except for the generic ones, have 828 equivalent IPP keyword reason values, this should be a problem and 829 makes IPP more readably implemented in a server that doesn't have 830 the Printer MIB. 832 5. Added the "job-last-event" job description attribute to give the 833 job event some persistence. 835 6. Changed the job's "time-at-event (integer)" to "job-last-date-time- 836 of-event (dateTime)" to give an absolute date and time, in case 837 events are being relayed back through multiple servers, such as in 838 FAX. Also made it a Job Description attribute to give it 839 persistence. 841 7. Changed the printer's "time-at-event(integer)" to "printer-last- 842 date-time-of-event(dateTime)" to give an absolute date and time, in 843 case events are being relayed back through multiple servers, such 844 as in FAX. Also made it a Printer Description attribute to give it 845 persistence. 847 8. Added the IPP/1.0 "printer-is-accepting-jobs" to the event report, 848 since changes in its value are really printer state changes. 850 9. Added the complete semantics for each job event under the "last- 851 job-event" Job Description attribute. 853 Expires February 25, 2000 855 14 Prior work on Notification 857 A general notification service and a reference implementation was 858 developed during the 1995 and Spring of 1996. It is entitled: "System 859 Event Notification System Environment (SENSE)". It used the publish and 860 subscribe model with subscribers subscribing to the Notification Service 861 directly, not the Print Service. 863 [sense] 865 Martin, J. et all., "System Event Notification System Environment 866 (SENSE)", ftp://ftp.pwg.org/pub/pwg/sense/, work in progress, Spring 867 1996. 869 Expires February 25, 2000