ZOOM: only supply clientIP for InitRequest
[yaz-moved-to-github.git] / src / ill9702.asn
1 -- use of parameters and types is to be consistent with their definitions in clause 3
2
3 ISO-10161-ILL-1 DEFINITIONS EXPLICIT TAGS ::=
4
5 BEGIN
6 -- ISO-10161-ILL-1 refers to the ILL ISO standard 10161 version 1
7 -- and version 2 as specified in ISO standard 10161 Amendment 1
8
9 ILL-APDU ::= CHOICE {
10         ILL-Request,
11         Forward-Notification,
12         Shipped,
13         ILL-Answer,
14         Conditional-Reply,
15         Cancel,
16         Cancel-Reply,
17         Received,
18         Recall,
19         Returned,
20         Checked-In,
21         Overdue,
22         Renew,
23         Renew-Answer,
24         Lost,
25         Damaged,
26         Message,
27         Status-Query,
28         Status-Or-Error-Report,
29         Expired
30         }
31
32 -- The tagging scheme used in the APDU definitions is as follows:
33 -- each named type that is a component type of an APDU definition is assigned a different tag
34 -- that is unique within the set of APDU definitions.  Where these component types themselves
35 -- have structure, the tagging within such type definitions has only local scope. 
36
37 ILL-Request ::= [APPLICATION 1] SEQUENCE {
38         protocol-version-num    [0]     IMPLICIT INTEGER {
39                                 version-1 (1),
40                                 version-2 (2)
41                                 },
42         transaction-id  [1]     IMPLICIT Transaction-Id,
43         service-date-time       [2]     IMPLICIT Service-Date-Time,
44         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
45                 -- mandatory when using store-and-forward communications
46                 -- optional when using connection-oriented communications
47         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
48                 -- mandatory when using store-and-forward communications
49                 -- optional when using connection-oriented communications
50         transaction-type        [5]     IMPLICIT Transaction-Type DEFAULT 1,
51         delivery-address        [6]     IMPLICIT Delivery-Address OPTIONAL, 
52         delivery-service                Delivery-Service OPTIONAL,
53         billing-address [8]     IMPLICIT Delivery-Address OPTIONAL,
54         iLL-service-type        [9]     IMPLICIT SEQUENCE SIZE (1..5) OF 
55                                 ILL-Service-Type,
56                 -- this sequence is a list, in order of preference
57         responder-specific-service      [10]    EXTERNAL OPTIONAL,
58                 -- use direct reference style
59         requester-optional-messages     [11]    IMPLICIT Requester-Optional-Messages-Type,
60         search-type     [12]    IMPLICIT Search-Type OPTIONAL,
61         supply-medium-info-type         [13]    IMPLICIT SEQUENCE SIZE (1..7) OF
62                                 Supply-Medium-Info-Type OPTIONAL,
63                 -- this sequence is a list, in order of preference,
64                 -- with a maximum number of 7 entries
65         place-on-hold   [14]    IMPLICIT Place-On-Hold-Type DEFAULT 3,
66         client-id       [15]    IMPLICIT Client-Id OPTIONAL,     
67         item-id [16]    IMPLICIT Item-Id,
68         supplemental-item-description   [17]    IMPLICIT Supplemental-Item-Description OPTIONAL,
69         cost-info-type  [18]    IMPLICIT Cost-Info-Type OPTIONAL,
70         copyright-compliance    [19]    ILL-String OPTIONAL,
71         third-party-info-type   [20]    IMPLICIT Third-Party-Info-Type OPTIONAL,
72                 -- mandatory when initiating a FORWARD service or an
73                 -- ILL-REQUEST service for a partitioned ILL sub-
74                 -- transaction or when initiating an ILL-REQUEST service for
75                 -- an ILL sub-transaction if the received ILL-REQUEST
76                 -- included an "already-tried-list";optional otherwise
77         retry-flag      [21]    IMPLICIT BOOLEAN DEFAULT FALSE,
78         forward-flag    [22]    IMPLICIT BOOLEAN DEFAULT FALSE,
79         requester-note  [46]    ILL-String OPTIONAL,
80         forward-note    [47]    ILL-String OPTIONAL,
81         iLL-request-extensions  [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
82         }
83
84 Forward-Notification ::= [APPLICATION 2] SEQUENCE {
85         protocol-version-num    [0]     IMPLICIT INTEGER {
86                                 version-1 (1),
87                                 version-2 (2)
88                                 },
89         transaction-id  [1]     IMPLICIT Transaction-Id,   
90         service-date-time       [2]     IMPLICIT Service-Date-Time,
91         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
92                 -- mandatory when using store-and-forward communications
93                 -- optional when using connection-oriented communications
94         responder-id    [4]     IMPLICIT System-Id,
95                 -- mandatory in this APDU
96         responder-address       [24]    IMPLICIT System-Address OPTIONAL,
97         intermediary-id [25]    IMPLICIT System-Id,
98         notification-note       [48]    ILL-String OPTIONAL,
99         forward-notification-extensions [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
100         }
101
102 Shipped ::= [APPLICATION 3] SEQUENCE {
103         protocol-version-num    [0]     IMPLICIT INTEGER {
104                                 version-1 (1),
105                                 version-2 (2)
106                                 },
107         transaction-id  [1]     IMPLICIT Transaction-Id,   
108         service-date-time       [2]     IMPLICIT Service-Date-Time,
109         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
110                 -- mandatory when using store-and-forward communications
111                 -- optional when using connection-oriented communications
112         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
113                 -- mandatory when using store-and-forward communications
114                 -- optional when using connection-oriented communications
115         responder-address       [24]    IMPLICIT System-Address OPTIONAL,
116         intermediary-id [25]    IMPLICIT System-Id OPTIONAL,
117         supplier-id     [26]    IMPLICIT System-Id OPTIONAL,
118         client-id       [15]    IMPLICIT Client-Id OPTIONAL,
119         transaction-type        [5]     IMPLICIT Transaction-Type DEFAULT 1,
120         supplemental-item-description   [17]    IMPLICIT Supplemental-Item-Description OPTIONAL,
121         shipped-service-type    [27]    IMPLICIT Shipped-Service-Type,
122         responder-optional-messages     [28]    IMPLICIT Responder-Optional-Messages-Type
123                                 OPTIONAL,
124         supply-details  [29]    IMPLICIT Supply-Details,
125         return-to-address       [30]    IMPLICIT Postal-Address OPTIONAL,
126         responder-note  [46]    ILL-String OPTIONAL,
127         shipped-extensions      [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
128         }
129
130 ILL-Answer ::= [APPLICATION 4] SEQUENCE {
131         protocol-version-num    [0]     IMPLICIT INTEGER {
132                                 version-1 (1),
133                                 version-2 (2)
134                                 },
135         transaction-id  [1]     IMPLICIT Transaction-Id,
136         service-date-time       [2]     IMPLICIT Service-Date-Time,
137         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
138                 -- mandatory when using store-and-forward communications
139                 -- optional when using connection-oriented communications
140         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
141                 -- mandatory when using store-and-forward communications
142                 -- optional when using connection-oriented communications
143         transaction-results     [31]    IMPLICIT Transaction-Results,
144         results-explanation     [32]    CHOICE {
145                                 conditional-results     [1] Conditional-Results,
146                                 -- chosen if transaction-results=CONDITIONAL
147                                 retry-results           [2] Retry-Results,
148                                 -- chosen if transaction-results=RETRY
149                                 unfilled-results        [3] Unfilled-Results,
150                                 --chosen if transaction-results=UNFILLED
151                                 locations-results       [4] Locations-Results,
152                                 -- chosen if transaction-results=LOCATIONS-PROVIDED
153                                 will-supply-results     [5] Will-Supply-Results,
154                                 -- chosen if transaction-results=WILL-SUPPLY
155                                 hold-placed-results     [6] Hold-Placed-Results,
156                                 -- chosen if transaction-results=HOLD-PLACED
157                                 estimate-results        [7] Estimate-Results
158                                 -- chosen if transaction-results=ESTIMATE
159                                 } OPTIONAL,
160                 -- optional if transaction-results equals RETRY, UNFILLED,
161                 -- WILL-SUPPLY or HOLD-PLACED;
162                 -- required if transaction-results equals CONDITIONAL,
163                 -- LOCATIONS-PROVIDED or ESTIMATE
164         responder-specific-results      [33]    EXTERNAL OPTIONAL,
165                 -- this type is mandatory if results-explanation
166                 -- chosen for any result 
167                 -- has the value "responder-specific".
168         supplemental-item-description   [17]    IMPLICIT Supplemental-Item-Description OPTIONAL,
169         send-to-list    [23]    IMPLICIT Send-To-List-Type OPTIONAL,
170         already-tried-list      [34]    IMPLICIT Already-Tried-List-Type OPTIONAL,
171         responder-optional-messages     [28]    IMPLICIT Responder-Optional-Messages-Type
172                                 OPTIONAL,
173         responder-note  [46]    ILL-String OPTIONAL,
174         ill-answer-extensions   [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
175         }
176
177 Conditional-Reply ::= [APPLICATION 5] SEQUENCE {
178         protocol-version-num    [0]     IMPLICIT INTEGER {
179                                 version-1 (1),
180                                 version-2 (2)
181                                 },
182         transaction-id  [1]     IMPLICIT Transaction-Id,
183         service-date-time       [2]     IMPLICIT Service-Date-Time,
184         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
185                 -- mandatory when using store-and-forward communications
186                 -- optional when using connection-oriented communications
187         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
188                 -- mandatory when using store-and-forward communications
189                 -- optional when using connection-oriented communications
190         answer  [35]    IMPLICIT BOOLEAN,
191         requester-note  [46]    ILL-String OPTIONAL,
192         conditional-reply-extensions    [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
193         }
194
195 Cancel ::= [APPLICATION 6] SEQUENCE {
196         protocol-version-num    [0]     IMPLICIT INTEGER {
197                                 version-1 (1),
198                                 version-2 (2)
199                                 },
200         transaction-id  [1]     IMPLICIT Transaction-Id,
201         service-date-time       [2]     IMPLICIT Service-Date-Time,
202         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
203                 -- mandatory when using store-and-forward communications
204                 -- optional when using connection-oriented communications
205         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
206                 -- mandatory when using store-and-forward communications
207                 -- optional when using connection-oriented communications
208         requester-note  [46]    ILL-String OPTIONAL,
209         cancel-extensions       [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
210         }
211
212 Cancel-Reply ::= [APPLICATION 7] SEQUENCE {
213         protocol-version-num    [0]     IMPLICIT INTEGER {
214                                  version-1 (1),
215                                  version-2 (2)
216                                  },
217         transaction-id  [1]     IMPLICIT Transaction-Id,
218         service-date-time       [2]     IMPLICIT Service-Date-Time,
219         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
220                 -- mandatory when using store-and-forward communications
221                 -- optional when using connection-oriented communications
222         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
223                 -- mandatory when using store-and-forward communications
224                 -- optional when using connection-oriented communications
225         answer  [35]    IMPLICIT BOOLEAN,
226         responder-note  [46]    ILL-String OPTIONAL,
227         cancel-reply-extensions [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
228         }
229
230 Received ::= [APPLICATION 8] SEQUENCE { 
231         protocol-version-num    [0]     IMPLICIT INTEGER {
232                          version-1 (1),
233                          version-2 (2)
234                          },
235         transaction-id  [1]     IMPLICIT Transaction-Id,
236         service-date-time       [2]     IMPLICIT Service-Date-Time,
237         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
238                 -- mandatory when using store-and-forward communications
239                 -- optional when using connection-oriented communications
240         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
241                 -- mandatory when using store-and-forward communications
242                 -- optional when using connection-oriented communications
243         supplier-id     [26]    IMPLICIT System-Id OPTIONAL,
244         supplemental-item-description   [17]    IMPLICIT Supplemental-Item-Description OPTIONAL,
245         date-received   [36]    IMPLICIT ISO-Date,
246         shipped-service-type    [27]    IMPLICIT Shipped-Service-Type,
247         requester-note  [46]    ILL-String OPTIONAL,
248         received-extensions     [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
249         }
250
251 Recall ::= [APPLICATION 9] SEQUENCE {  
252         protocol-version-num    [0]     IMPLICIT INTEGER {
253                                 version-1 (1),
254                                 version-2 (2)
255                                 },
256         transaction-id  [1]     IMPLICIT Transaction-Id,   
257         service-date-time       [2]     IMPLICIT Service-Date-Time,
258         requester-id    [3]     IMPLICIT System-Id OPTIONAL, 
259                 -- mandatory when using store-and-forward communications
260                 -- optional when using connection-oriented communications
261         responder-id    [4]     IMPLICIT System-Id OPTIONAL, 
262                 -- mandatory when using store-and-forward communications
263                 -- optional when using connection-oriented communications
264         responder-note  [46]    ILL-String OPTIONAL,
265         recall-extensions       [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
266         }
267
268 Returned ::= [APPLICATION 10] SEQUENCE { 
269         protocol-version-num    [0]     IMPLICIT INTEGER {
270                                 version-1 (1),
271                                 version-2 (2)
272                                 },
273         transaction-id  [1]     IMPLICIT Transaction-Id,
274         service-date-time       [2]     IMPLICIT Service-Date-Time,
275         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
276                 -- mandatory when using store-and-forward communications
277                 -- optional when using connection-oriented communications
278         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
279                 -- mandatory when using store-and-forward communications
280                 -- optional when using connection-oriented communications
281         supplemental-item-description   [17]    IMPLICIT Supplemental-Item-Description OPTIONAL,
282         date-returned   [37]    IMPLICIT ISO-Date,
283         returned-via    [38]    Transportation-Mode OPTIONAL,
284         insured-for     [39]    IMPLICIT Amount OPTIONAL,
285         requester-note  [46]    ILL-String OPTIONAL,
286         returned-extensions     [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
287         }
288
289 Checked-In ::= [APPLICATION 11] SEQUENCE {
290         protocol-version-num    [0]     IMPLICIT INTEGER {
291                                 version-1 (1),
292                                 version-2 (2)
293                                 },
294         transaction-id  [1]     IMPLICIT Transaction-Id,   
295         service-date-time       [2]     IMPLICIT Service-Date-Time,
296         requester-id    [3]     IMPLICIT System-Id OPTIONAL, 
297                 -- mandatory when using store-and-forward communications
298                 -- optional when using connection-oriented communications
299         responder-id    [4]     IMPLICIT System-Id OPTIONAL, 
300                 -- mandatory when using store-and-forward communications
301                 -- optional when using connection-oriented communications
302         date-checked-in [40]    IMPLICIT ISO-Date,
303         responder-note  [46]    ILL-String OPTIONAL,
304         checked-in-extensions   [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
305         }
306
307 Overdue ::= [APPLICATION 12] SEQUENCE { 
308         protocol-version-num    [0]     IMPLICIT INTEGER {
309                                 version-1 (1),
310                                 version-2 (2)
311                                 },
312         transaction-id  [1]     IMPLICIT Transaction-Id,
313         service-date-time       [2]     IMPLICIT Service-Date-Time,
314         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
315                 -- mandatory when using store-and-forward communications
316                 -- optional when using connection-oriented communications
317         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
318                 -- mandatory when using store-and-forward communications
319                 -- optional when using connection-oriented communications
320         date-due        [41]    IMPLICIT Date-Due,
321         responder-note  [46]    ILL-String OPTIONAL,
322         overdue-extensions      [49]    SEQUENCE OF Extension OPTIONAL
323         }
324
325 Renew ::= [APPLICATION 13] SEQUENCE {
326         protocol-version-num    [0]     IMPLICIT INTEGER {
327                                 version-1 (1),
328                                 version-2 (2)
329                                 },
330         transaction-id  [1]     IMPLICIT Transaction-Id,   
331         service-date-time       [2]     IMPLICIT Service-Date-Time,
332         requester-id    [3]     IMPLICIT System-Id OPTIONAL,   
333                 -- mandatory when using store-and-forward communications
334                 -- optional when using connection-oriented communications
335         responder-id    [4]     IMPLICIT System-Id OPTIONAL,   
336                 -- mandatory when using store-and-forward communications
337                 -- optional when using connection-oriented communications
338         desired-due-date        [42]    IMPLICIT ISO-Date OPTIONAL,
339         requester-note  [46]    ILL-String OPTIONAL,
340         renew-extensions        [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
341         }
342
343 Renew-Answer ::= [APPLICATION 14] SEQUENCE {
344         protocol-version-num    [0]     IMPLICIT INTEGER {
345                                 version-1 (1),
346                                 version-2 (2)
347                                 },
348         transaction-id  [1]     IMPLICIT Transaction-Id,   
349         service-date-time       [2]     IMPLICIT Service-Date-Time,
350         requester-id    [3]     IMPLICIT System-Id OPTIONAL,   
351                 -- mandatory when using store-and-forward communications
352                 -- optional when using connection-oriented communications
353         responder-id    [4]     IMPLICIT System-Id OPTIONAL,   
354                 -- mandatory when using store-and-forward communications
355                 -- optional when using connection-oriented communications
356         answer  [35]    IMPLICIT BOOLEAN,
357         date-due        [41]    IMPLICIT Date-Due OPTIONAL,
358         responder-note  [46]    ILL-String OPTIONAL,
359         renew-answer-extensions [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
360         }
361
362 Lost ::= [APPLICATION 15] SEQUENCE {
363         protocol-version-num    [0]     IMPLICIT INTEGER {
364                                 version-1 (1),
365                                 version-2 (2)
366                                 },
367         transaction-id  [1]     IMPLICIT Transaction-Id,   
368         service-date-time       [2]     IMPLICIT Service-Date-Time,
369         requester-id    [3]     IMPLICIT System-Id OPTIONAL,   
370                 -- mandatory when using store-and-forward communications
371                 -- optional when using connection-oriented communications
372         responder-id    [4]     IMPLICIT System-Id OPTIONAL,   
373                 -- mandatory when using store-and-forward communications
374                 -- optional when using connection-oriented communications
375         note    [46]    ILL-String OPTIONAL,
376         lost-extensions [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
377         }
378
379 Damaged ::= [APPLICATION 16] SEQUENCE { 
380         protocol-version-num    [0]     IMPLICIT INTEGER {
381                                 version-1 (1),
382                                 version-2 (2)
383                                 },
384         transaction-id  [1]     IMPLICIT Transaction-Id,
385         service-date-time       [2]     IMPLICIT Service-Date-Time,
386         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
387                 -- mandatory when using store-and-forward communications
388                 -- optional when using connection-oriented communications
389         responder-id    [4]     IMPLICIT System-Id OPTIONAL, 
390                 -- mandatory when using store-and-forward communications
391                 -- optional when using connection-oriented communications
392         damaged-details [5]     IMPLICIT Damaged-Details OPTIONAL,
393                 -- this parameter may only be present in APDU's with a
394                 -- protocol-version-num value of 2 or greater
395         note    [46]    ILL-String OPTIONAL,
396         damaged-extensions      [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
397         }
398
399 Message ::= [APPLICATION 17] SEQUENCE { 
400         protocol-version-num    [0]     IMPLICIT INTEGER {
401                                 version-1 (1),
402                                 version-2 (2)
403                                 },
404         transaction-id  [1]     IMPLICIT Transaction-Id,   
405         service-date-time       [2]     IMPLICIT Service-Date-Time,
406         requester-id    [3]     IMPLICIT System-Id OPTIONAL,   
407                 -- mandatory when using store-and-forward communications
408                 -- optional when using connection-oriented communications
409         responder-id    [4]     IMPLICIT System-Id OPTIONAL,   
410                 -- mandatory when using store-and-forward communications
411                 -- optional when using connection-oriented communications
412         note    [46]    ILL-String,
413         message-extensions      [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
414         }
415
416 Status-Query ::= [APPLICATION 18] SEQUENCE {
417         protocol-version-num    [0]     IMPLICIT INTEGER {
418                                 version-1 (1),
419                                 version-2 (2)
420                                 },
421         transaction-id  [1]     IMPLICIT Transaction-Id,
422         service-date-time       [2]     IMPLICIT Service-Date-Time,
423         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
424                 -- mandatory when using store-and-forward communications
425                 -- optional when using connection-oriented communications
426         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
427                 -- mandatory when using store-and-forward communications
428                 -- optional when using connection-oriented communications
429         note    [46]    ILL-String OPTIONAL,
430         status-query-extensions [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
431         }
432
433 Status-Or-Error-Report ::= [APPLICATION 19] SEQUENCE {
434         protocol-version-num    [0]     IMPLICIT INTEGER {
435                                 version-1 (1),
436                                 version-2 (2)
437                                 },
438         transaction-id  [1]     IMPLICIT Transaction-Id,   
439         service-date-time       [2]     IMPLICIT Service-Date-Time,
440         requester-id    [3]     IMPLICIT System-Id OPTIONAL,   
441                 -- mandatory when using store-and-forward communications
442                 -- optional when using connection-oriented communications
443         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
444                 -- mandatory when using store-and-forward communications
445                 -- optional when using connection-oriented communications
446         reason-no-report        [43]    IMPLICIT Reason-No-Report OPTIONAL,
447                 -- mandatory if no report is present;
448                 -- not present otherwise
449         status-report   [44]    IMPLICIT Status-Report OPTIONAL,
450         error-report    [45]    IMPLICIT Error-Report OPTIONAL,
451         note    [46]    ILL-String OPTIONAL,
452         status-or-error-report-extensions       [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
453         }
454
455 Expired ::= [APPLICATION 20] SEQUENCE {
456         protocol-version-num    [0]     IMPLICIT INTEGER {
457                                 version-1 (1),
458                                 version-2 (2)
459                                 },
460         transaction-id  [1]     IMPLICIT Transaction-Id,
461         service-date-time       [2]     IMPLICIT Service-Date-Time,
462         requester-id    [3]     IMPLICIT System-Id OPTIONAL,
463                 -- mandatory when using store-and-forward communications
464                 -- optional when using connection-oriented communications
465         responder-id    [4]     IMPLICIT System-Id OPTIONAL,
466                 -- mandatory when using store-and-forward communications
467                 -- optional when using connection-oriented communications
468         expired-extensions      [49]    IMPLICIT SEQUENCE OF Extension OPTIONAL
469         }
470
471 Account-Number ::= ILL-String
472
473 Already-Forwarded ::= SEQUENCE {
474         responder-id    [0]     IMPLICIT System-Id,
475         responder-address       [1]     IMPLICIT System-Address OPTIONAL
476         }       
477
478 Already-Tried-List-Type ::= SEQUENCE OF System-Id
479
480 Amount ::= SEQUENCE {
481         currency-code   [0]     IMPLICIT PrintableString (SIZE (3)) OPTIONAL,
482                 -- values defined in ISO 4217-1981
483         monetary-value  [1]     IMPLICIT AmountString (SIZE (1..10))
484         }
485
486 AmountString ::= PrintableString (FROM ("1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"0"|" "|"."|","))
487
488 Client-Id ::= SEQUENCE {
489         client-name     [0]     ILL-String OPTIONAL,
490         client-status   [1]     ILL-String OPTIONAL,
491         client-identifier       [2]     ILL-String OPTIONAL
492         }
493
494 Conditional-Results ::= SEQUENCE {
495         conditions      [0]     IMPLICIT ENUMERATED {
496                                 cost-exceeds-limit                              (13),
497                                 charges                                         (14),
498                                 prepayment-required                     (15),
499                                 lacks-copyright-compliance                      (16),
500                                 library-use-only                                (22),
501                                 no-reproduction                                 (23),
502                                 client-signature-required                       (24),
503                                 special-collections-supervision-required        (25),
504                                 other                                   (27),
505                                 responder-specific                              (28),
506                                 proposed-delivery-service                       (30) 
507                                 },
508         date-for-reply  [1]     IMPLICIT ISO-Date OPTIONAL,
509         locations       [2]     IMPLICIT SEQUENCE OF Location-Info OPTIONAL,
510         proposed-delivery-service               Delivery-Service OPTIONAL
511                 -- this parameter specifies a proposed delivery service the
512                 -- acceptance of which is a condition of supply.  It may be a
513                 -- physical service or an electronic service.  This parameter
514                 -- may only be present in APDUs with a 
515                 -- protocol-version-num value of 2 or greater
516         }
517
518 Cost-Info-Type ::= SEQUENCE {
519         account-number  [0]     Account-Number OPTIONAL,
520         maximum-cost    [1]     IMPLICIT Amount OPTIONAL,
521         reciprocal-agreement    [2]     IMPLICIT BOOLEAN DEFAULT FALSE,
522         will-pay-fee    [3]     IMPLICIT BOOLEAN DEFAULT FALSE,
523         payment-provided        [4]     IMPLICIT BOOLEAN DEFAULT FALSE
524         }
525
526 Current-State ::= ENUMERATED {
527         nOT-SUPPLIED    (1),
528         pENDING (2),
529         iN-PROCESS      (3),
530         fORWARD (4),
531         cONDITIONAL     (5),
532         cANCEL-PENDING  (6),
533         cANCELLED       (7),
534         sHIPPED         (8),
535         rECEIVED        (9),
536         rENEW-PENDING   (10),
537         nOT-RECEIVED-OVERDUE    (11),
538         rENEW-OVERDUE   (12),
539         oVERDUE         (13),
540         rETURNED        (14),
541         cHECKED-IN      (15),
542         rECALL  (16),
543         lOST    (17),
544         uNKNOWN         (18)
545         }
546
547 Damaged-Details ::= SEQUENCE {
548         document-type-id        [0]     IMPLICIT OBJECT IDENTIFIER OPTIONAL,
549                 -- identifies an OSI document type registered in accordance
550                 -- with ISO 9834-2, for use in an automated environment
551         damaged-portion         CHOICE {
552                                 complete-document       [1]     IMPLICIT NULL,
553                                 specific-units  [2]     IMPLICIT SEQUENCE 
554                                                                         OF INTEGER
555                                 -- the nature and extent of a "unit" is implicit in the
556                                 -- value of document-type-id if one is supplied
557                                 }
558         }
559
560 Date-Due ::= SEQUENCE {
561         date-due-field  [0]     IMPLICIT ISO-Date,
562         renewable       [1]     IMPLICIT BOOLEAN DEFAULT TRUE
563         }
564
565 Delivery-Address ::= SEQUENCE {
566         postal-address  [0]     IMPLICIT Postal-Address OPTIONAL,
567         electronic-address      [1]     IMPLICIT System-Address OPTIONAL
568         }
569
570 Delivery-Service ::= CHOICE {
571         physical-delivery       [7]     Transportation-Mode,
572         electronic-delivery     [50]    IMPLICIT SEQUENCE OF Electronic-Delivery-Service
573                 -- electronic-delivery may only be present in APDUs
574                 -- with a protocol-version-num value of 2 or greater
575         }
576
577 Electronic-Delivery-Service ::= SEQUENCE {
578         -- the first four parameters are intended to be used in an automated
579         -- environment
580                 e-delivery-service      [0] IMPLICIT SEQUENCE {
581                 -- identifies the kind of electronic delivery service, e.g.
582                 -- MOTIS IPM,FTAM, etc., using the assigned object
583                 -- identifier for the standard e.g. {joint-iso-ccitt mhs-motis 
584                 -- ipms}
585                         e-delivery-mode [0] IMPLICIT OBJECT IDENTIFIER,
586                         e-delivery-parameters   [1] ANY DEFINED BY e-delivery-mode
587                         } OPTIONAL,
588                 document-type           [1] IMPLICIT SEQUENCE {
589                         document-type-id                [2] IMPLICIT OBJECT IDENTIFIER,
590                         -- identifies an OSI document type registered in accordance
591                         -- with ISO 9834-2
592                         document-type-parameters        [3] ANY DEFINED BY document-type-id
593                         -- any parameters relating to the registered document type
594                         } OPTIONAL,
595                 e-delivery-description          [4] ILL-String OPTIONAL,
596                 -- holds a human readable name or description of the
597                 -- required electronic delivery service and document type;
598                 -- this may also be used to identify an electronic delivery
599                 -- service for which there is no object identifier.
600                 -- This parameter may be present instead of, or in addition
601                 -- to, the previous 4 parameters
602                 e-delivery-details              [5] CHOICE {
603                         e-delivery-address      [0] IMPLICIT System-Address,
604                         e-delivery-id           [1] IMPLICIT System-Id
605                         },
606                 name-or-code            [6] ILL-String OPTIONAL,
607                 -- holds a human-readable identifier or correlation
608                 -- information for the document as shipped, e.g. a directory 
609                 -- and/or file name or message-id
610                 delivery-time           [7] IMPLICIT ISO-Time OPTIONAL
611                 -- holds the requester's preferred delivery time or
612                 -- the responder's proposed or actual delivery time
613                 }
614
615 Error-Report ::= SEQUENCE {
616         correlation-information [0]     ILL-String,
617         report-source   [1]     IMPLICIT Report-Source,
618         user-error-report       [2]     User-Error-Report OPTIONAL,
619                 -- mandatory if report-source is "user"; not present otherwise
620         provider-error-report   [3]     Provider-Error-Report OPTIONAL
621                 -- mandatory if report-source is "provider"; not
622                 -- present otherwise
623         }
624
625 Estimate-Results ::= SEQUENCE {
626         cost-estimate   [0]     ILL-String,
627         locations       [1]     IMPLICIT SEQUENCE OF Location-Info OPTIONAL
628         }
629
630 Extension ::= SEQUENCE {
631         identifier      [0]     IMPLICIT INTEGER,
632         critical        [1]     IMPLICIT BOOLEAN DEFAULT FALSE,
633         item    [2]     ANY DEFINED BY identifier
634         }
635
636 General-Problem ::= ENUMERATED {
637         unrecognized-APDU       (1),
638         mistyped-APDU   (2),
639         badly-structured-APDU   (3),
640         protocol-version-not-supported  (4),
641         other   (5)
642         }
643
644 History-Report ::= SEQUENCE {
645         date-requested  [0]     IMPLICIT ISO-Date OPTIONAL,
646         author  [1]     ILL-String OPTIONAL,
647         title   [2]     ILL-String OPTIONAL,
648         author-of-article       [3]     ILL-String OPTIONAL,
649         title-of-article        [4]     ILL-String OPTIONAL,
650         date-of-last-transition         [5]     IMPLICIT ISO-Date,
651         most-recent-service     [6]     IMPLICIT ENUMERATED {
652                                 iLL-REQUEST                     (1),
653                                 fORWARD                                 (21),
654                                 fORWARD-NOTIFICATION            (2),
655                                 sHIPPED                                 (3),
656                                 iLL-ANSWER                      (4),
657                                 cONDITIONAL-REPLY               (5),
658                                 cANCEL                          (6),
659                                 cANCEL-REPLY                    (7),
660                                 rECEIVED                                (8),
661                                 rECALL                          (9),
662                                 rETURNED                                (10),
663                                 cHECKED-IN                      (11),
664                                 rENEW-ANSWER                    (14),
665                                 lOST                            (15),
666                                 dAMAGED                                 (16),
667                                 mESSAGE                                 (17),
668                                 sTATUS-QUERY                    (18),
669                                 sTATUS-OR-ERROR-REPORT  (19),
670                                 eXPIRED                                 (20)
671                                 },
672         date-of-most-recent-service     [7]     IMPLICIT ISO-Date,
673         initiator-of-most-recent-service        [8]     IMPLICIT System-Id,
674         shipped-service-type    [9]     IMPLICIT Shipped-Service-Type OPTIONAL,
675                 -- If the information is available, i.e. if a SHIPPED or
676                 -- RECEIVED APDU has been sent or received, then the
677                 -- value in this parameter shall be supplied.
678                 -- Value must contain the most current information, e.g. if a
679                 -- requester has received a SHIPPED APDU and then
680                 -- invokes a RECEIVED.request, then the value from the
681                 -- RECEIVED.request is used
682         transaction-results     [10]    IMPLICIT Transaction-Results OPTIONAL,
683                 -- If the information is available, i.e. if an ILL-ANWSER
684                 -- APDU has been sent or received, then the value in this
685                 -- parameter shall be supplied.
686         most-recent-service-note        [11]    ILL-String OPTIONAL
687                 -- If the information is available, i.e. if a note has been
688                 -- supplied in the most recent service primitive, then the
689                 -- value in this parameter shall be supplied.
690         }
691
692 Hold-Placed-Results ::= SEQUENCE {
693         estimated-date-available        [0]     IMPLICIT ISO-Date,
694         hold-placed-medium-type [1]     IMPLICIT Medium-Type OPTIONAL,
695         locations       [2]     IMPLICIT SEQUENCE OF Location-Info OPTIONAL
696         }
697
698 ILL-APDU-Type ::= ENUMERATED {
699         iLL-REQUEST     (1),
700         fORWARD-NOTIFICATION    (2),
701         sHIPPED         (3),
702         iLL-ANSWER      (4),
703         cONDITIONAL-REPLY       (5),
704         cANCEL  (6),
705         cANCEL-REPLY    (7),
706         rECEIVED        (8),
707         rECALL  (9),
708         rETURNED        (10),
709         cHECKED-IN      (11),
710         oVERDUE         (12),
711         rENEW   (13),
712         rENEW-ANSWER    (14),
713         lOST    (15),
714         dAMAGED         (16),
715         mESSAGE         (17),
716         sTATUS-QUERY    (18),
717         sTATUS-OR-ERROR-REPORT  (19),
718         eXPIRED         (20)
719         }
720
721 ILL-Service-Type ::= ENUMERATED  {
722         loan    (1),
723         copy-non-returnable     (2),
724         locations       (3),
725         estimate        (4),
726         responder-specific      (5)
727         }
728
729 ILL-String ::= CHOICE {
730         GeneralString,
731         -- may contain any ISO registered G (graphic) and C
732         -- (control) character set
733         EDIFACTString
734         }
735         -- may not include leading or trailing spaces
736         -- may not consist only of space (" ") or non-printing 
737         -- characters
738
739 Intermediary-Problem ::= ENUMERATED {
740         cannot-send-onward      (1)
741         }
742
743 ISO-Date ::= VisibleString
744         -- conforms to ISO 8601
745         -- length = 8
746         -- fixed
747         -- YYYYMMDD
748
749 ISO-Time ::= VisibleString
750         -- conforms to ISO 8601
751         -- length = 6, 
752         -- fixed
753         -- HHMMSS
754         -- local time of person or institution invoking service
755
756 Item-Id ::= SEQUENCE {
757         item-type       [0]     IMPLICIT ENUMERATED {
758                                 monograph       (1),
759                                 serial  (2),
760                                 other   (3)
761                                 } OPTIONAL,
762         held-medium-type        [1]     IMPLICIT Medium-Type OPTIONAL,
763         call-number     [2]     ILL-String OPTIONAL,
764         author  [3]     ILL-String OPTIONAL,
765         title   [4]     ILL-String OPTIONAL,
766         sub-title       [5]     ILL-String OPTIONAL,
767         sponsoring-body [6]     ILL-String OPTIONAL,
768         place-of-publication    [7]     ILL-String OPTIONAL,
769         publisher       [8]     ILL-String OPTIONAL,
770         series-title-number     [9]     ILL-String OPTIONAL,
771         volume-issue    [10]    ILL-String OPTIONAL,
772         edition [11]    ILL-String OPTIONAL,
773         publication-date        [12]    ILL-String OPTIONAL,
774         publication-date-of-component   [13] ILL-String OPTIONAL,
775         author-of-article       [14]    ILL-String OPTIONAL,
776         title-of-article        [15]    ILL-String OPTIONAL,
777         pagination      [16]    ILL-String OPTIONAL,
778         national-bibliography-no        [17]    EXTERNAL OPTIONAL,
779         iSBN    [18]    ILL-String (SIZE (10)) OPTIONAL,
780                 -- must conform to ISO 2108-1978
781         iSSN    [19]    ILL-String (SIZE (8)) OPTIONAL,
782                 -- must conform to ISO 3297-1986
783         system-no       [20]    EXTERNAL OPTIONAL,
784         additional-no-letters   [21] ILL-String OPTIONAL,
785         verification-reference-source   [22] ILL-String OPTIONAL
786         }
787
788 Location-Info ::= SEQUENCE {
789         location-id     [0]     IMPLICIT System-Id,
790         location-address        [1]     IMPLICIT System-Address OPTIONAL,
791         location-note   [2]     ILL-String OPTIONAL
792         }
793
794 Locations-Results ::= SEQUENCE {
795         reason-locs-provided    [0]     IMPLICIT Reason-Locs-Provided OPTIONAL,
796         locations       [1]     IMPLICIT SEQUENCE OF Location-Info
797         }
798
799 Medium-Type ::= ENUMERATED {
800         printed         (1),
801         microform       (3),
802         film-or-video-recording (4),
803         audio-recording         (5),
804         machine-readable        (6),
805         other   (7)
806         }
807
808 Name-Of-Person-Or-Institution ::= CHOICE {
809         name-of-person  [0]     ILL-String,
810         name-of-institution     [1]     ILL-String
811         }
812
813 Person-Or-Institution-Symbol ::= CHOICE {
814         person-symbol   [0]     ILL-String,
815         institution-symbol      [1]     ILL-String
816         }
817
818 Place-On-Hold-Type ::= ENUMERATED {
819         yes     (1),
820         no      (2),
821         according-to-responder-policy   (3)
822         }
823
824 Postal-Address ::= SEQUENCE {
825         name-of-person-or-institution   [0]     Name-Of-Person-Or-Institution OPTIONAL,
826         extended-postal-delivery-address [1]    ILL-String OPTIONAL,
827         street-and-number       [2]     ILL-String OPTIONAL,
828         post-office-box [3]     ILL-String OPTIONAL,
829         city    [4]     ILL-String OPTIONAL,
830         region  [5]     ILL-String OPTIONAL,
831         country [6]     ILL-String OPTIONAL,
832         postal-code     [7]     ILL-String OPTIONAL
833         }
834
835 Provider-Error-Report ::= CHOICE {
836         general-problem [0]     IMPLICIT General-Problem,
837         transaction-id-problem  [1]     IMPLICIT Transaction-Id-Problem,
838         state-transition-prohibited     [2]     IMPLICIT State-Transition-Prohibited
839         }
840
841 Reason-Locs-Provided ::= ENUMERATED {
842         in-use-on-loan  (1),
843         in-process      (2),
844         lost    (3),
845         non-circulating         (4),
846         not-owned       (5),
847         on-order        (6),
848         volume-issue-not-yet-available  (7),
849         at-bindery      (8),
850         lacking         (9),
851         not-on-shelf    (10),
852         on-reserve      (11),
853         poor-condition  (12),
854         cost-exceeds-limit      (13),
855         on-hold         (19),
856         other   (27),
857         responder-specific      (28) 
858         }
859
860 Reason-No-Report ::= ENUMERATED {
861         temporary       (1),
862         permanent       (2)
863         }
864
865 Reason-Unfilled ::= ENUMERATED {
866         in-use-on-loan  (1),
867         in-process      (2),
868         lost    (3),
869         non-circulating (4),
870         not-owned       (5),
871         on-order        (6),
872         volume-issue-not-yet-available  (7),
873         at-bindery      (8),
874         lacking (9),
875         not-on-shelf    (10),
876         on-reserve      (11),
877         poor-condition  (12),
878         cost-exceeds-limit      (13),
879         charges (14),
880         prepayment-required     (15),
881         lacks-copyright-compliance      (16),
882         not-found-as-cited      (17),
883         locations-not-found     (18),
884         on-hold (19),
885         policy-problem  (20),
886         mandatory-messaging-not-supported       (21),
887         expiry-not-supported    (22) ,
888         requested-delivery-services-not-supported       (23),
889         preferred-delivery-time-not-possible    (24),
890         other   (27),
891         responder-specific      (28)
892         }
893
894 Report-Source ::= ENUMERATED {
895         user    (1),
896         provider        (2)
897         }
898
899 Requester-Optional-Messages-Type ::= SEQUENCE {
900         can-send-RECEIVED       [0]     IMPLICIT BOOLEAN,
901         can-send-RETURNED       [1]     IMPLICIT BOOLEAN,
902         requester-SHIPPED       [2]     IMPLICIT ENUMERATED {
903                                 requires        (1),
904                                 desires         (2),
905                                 neither (3)
906                                 },
907         requester-CHECKED-IN    [3]     IMPLICIT ENUMERATED {
908                                 requires        (1),
909                                 desires         (2),
910                                 neither         (3)
911                                 }
912         }
913
914 Responder-Optional-Messages-Type ::= SEQUENCE {
915         can-send-SHIPPED        [0]     IMPLICIT BOOLEAN,
916         can-send-CHECKED-IN     [1]     IMPLICIT BOOLEAN,
917         responder-RECEIVED      [2]     IMPLICIT ENUMERATED {
918                                 requires        (1),
919                                 desires         (2),
920                                 neither         (3)
921                                 },
922         responder-RETURNED      [3]     IMPLICIT ENUMERATED {
923                                 requires        (1),
924                                 desires         (2),
925                                 neither         (3)
926                                 }
927         }
928
929 Retry-Results ::= SEQUENCE {
930         reason-not-available    [0]     IMPLICIT ENUMERATED {
931                                 in-use-on-loan                  (1),
932                                 in-process                              (2),
933                                 on-order                                (6),
934                                 volume-issue-not-yet-available  (7),
935                                 at-bindery                              (8),
936                                 cost-exceeds-limit                      (13),
937                                 charges                                 (14),
938                                 prepayment-required             (15),
939                                 lacks-copyright-compliance              (16),
940                                 not-found-as-cited                      (17),
941                                 on-hold                                 (19),
942                                 other                           (27),
943                                 responder-specific                      (28)
944                                 } OPTIONAL,
945         retry-date      [1]     IMPLICIT ISO-Date OPTIONAL,
946         locations       [2]     IMPLICIT SEQUENCE OF Location-Info OPTIONAL
947         }
948
949 Search-Type ::= SEQUENCE {
950         level-of-service        [0]     ILL-String (SIZE (1)) OPTIONAL,
951         need-before-date        [1]     IMPLICIT ISO-Date OPTIONAL,
952         expiry-flag     [2]     IMPLICIT ENUMERATED {
953                                 need-Before-Date        (1),
954                                 other-Date              (2),
955                                 no-Expiry               (3)
956                                 } DEFAULT 3,
957                                 -- value of "need-Before-Date" indicates that
958                                 -- need-before-date also specifies transaction expiry
959                                 -- date
960         expiry-date     [3]     IMPLICIT ISO-Date OPTIONAL
961                 -- alternative expiry date can be used only when expiry-flag
962                 -- is set to "Other-Date"
963         }
964
965 Security-Problem ::= ILL-String
966
967 Send-To-List-Type ::= SEQUENCE OF SEQUENCE {
968         system-id       [0]     IMPLICIT System-Id,
969         account-number  [1]     Account-Number OPTIONAL,
970         system-address  [2]     IMPLICIT System-Address OPTIONAL
971         }
972
973 Service-Date-Time ::= SEQUENCE {
974         date-time-of-this-service       [0]     IMPLICIT SEQUENCE {
975                                 date    [0]     IMPLICIT ISO-Date,
976                                 time    [1]     IMPLICIT ISO-Time OPTIONAL
977                                 -- mandatory for 2nd and subsequent services
978                                 -- invoked for a given 
979                                 -- ILL-transaction on the same day
980                                 },
981         date-time-of-original-service   [1]     IMPLICIT SEQUENCE {
982                                 date    [0]     IMPLICIT ISO-Date,
983                                 time    [1]     IMPLICIT ISO-Time OPTIONAL
984                                 } OPTIONAL
985         }
986
987 Shipped-Service-Type ::= ILL-Service-Type (loan | copy-non-returnable)
988         -- subtype of ILL-Service-Type
989
990 State-Transition-Prohibited ::= SEQUENCE {
991         aPDU-type       [0]     IMPLICIT ILL-APDU-Type,
992         current-state   [1]     IMPLICIT Current-State
993         }
994
995 Status-Report ::= SEQUENCE {
996         user-status-report      [0]     IMPLICIT History-Report,
997         provider-status-report  [1]     IMPLICIT Current-State
998         }
999
1000 Supplemental-Item-Description ::= SEQUENCE OF EXTERNAL
1001         -- the syntax of supplementary item description information is defined outside this standard
1002
1003 Supply-Details ::= SEQUENCE {
1004         date-shipped    [0]     IMPLICIT ISO-Date OPTIONAL,
1005         date-due        [1]     IMPLICIT Date-Due OPTIONAL,
1006         chargeable-units        [2]     IMPLICIT INTEGER (1..9999) OPTIONAL,
1007         cost    [3]     IMPLICIT Amount OPTIONAL,
1008         shipped-conditions      [4]     IMPLICIT ENUMERATED {
1009                                 library-use-only                                (22),
1010                                 no-reproduction                         (23),
1011                                 client-signature-required                       (24),
1012                                 special-collections-supervision-required        (25),
1013                                 other                                   (27)
1014                                 } OPTIONAL,
1015         shipped-via             CHOICE {
1016                                 physical-delivery       [5]     Transportation-Mode,
1017                                 electronic-delivery     [50]    IMPLICIT
1018                                                                  Electronic-Delivery-Service
1019                                 } OPTIONAL,
1020                 -- electronic-delivery may only be present in APDUs with a
1021                 -- protocol-version-num value of 2 or greater
1022         insured-for     [6]     IMPLICIT Amount OPTIONAL,
1023         return-insurance-require        [7]     IMPLICIT Amount OPTIONAL,
1024         no-of-units-per-medium  [8]     IMPLICIT SEQUENCE OF Units-Per-Medium-Type      
1025                                 OPTIONAL
1026         }
1027
1028 Supply-Medium-Info-Type ::= SEQUENCE {
1029         supply-medium-type      [0]     IMPLICIT Supply-Medium-Type,
1030         medium-characteristics  [1]     ILL-String OPTIONAL
1031         }
1032
1033 Supply-Medium-Type ::= ENUMERATED {
1034         printed (1),
1035         photocopy       (2),
1036         microform       (3),
1037         film-or-video-recording (4),
1038         audio-recording (5),
1039         machine-readable        (6),
1040         other   (7)
1041         }
1042
1043 System-Address ::= SEQUENCE {
1044         telecom-service-identifier      [0]     ILL-String OPTIONAL,
1045         telecom-service-address [1]     ILL-String OPTIONAL
1046         }
1047
1048 System-Id ::= SEQUENCE {
1049         --at least one of the following must be present
1050         person-or-institution-symbol    [0]     Person-Or-Institution-Symbol OPTIONAL,
1051         name-of-person-or-institution   [1]     Name-Of-Person-Or-Institution OPTIONAL
1052         }
1053
1054 Third-Party-Info-Type ::= SEQUENCE {
1055         permission-to-forward   [0]     IMPLICIT BOOLEAN DEFAULT FALSE,
1056         permission-to-chain     [1]     IMPLICIT BOOLEAN DEFAULT FALSE,
1057         permission-to-partition         [2]     IMPLICIT BOOLEAN DEFAULT FALSE,
1058         permission-to-change-send-to-list [3]   IMPLICIT BOOLEAN DEFAULT FALSE,
1059         initial-requester-address       [4]     IMPLICIT System-Address OPTIONAL,
1060                 -- mandatory when initiating a FORWARD service or an
1061                 -- ILL-REQUEST service for a partitioned ILL
1062                 -- sub-transaction; optional otherwise
1063         preference      [5]     IMPLICIT ENUMERATED {
1064                                 ordered (1),
1065                                 unordered       (2)
1066                                 } DEFAULT 2,
1067         send-to-list    [6]     IMPLICIT Send-To-List-Type OPTIONAL,
1068         already-tried-list      [7]     IMPLICIT Already-Tried-List-Type OPTIONAL
1069                 -- mandatory when initiating a FORWARD service, or when
1070                 -- initiating an ILL-REQUEST service for an ILL
1071                 -- sub-transaction if the received ILL-REQUEST included an
1072                 -- "already-tried-list"; optional otherwise
1073         }
1074
1075 Transaction-Id ::= SEQUENCE {
1076         initial-requester-id    [0]     IMPLICIT System-Id OPTIONAL,
1077                 -- mandatory for sub-transactions; not called
1078                 -- "requester-id" to distinguish id of initial-requester
1079                 --from id of requester of sub-transaction if there is one
1080         transaction-group-qualifier     [1]     ILL-String,
1081         transaction-qualifier   [2]     ILL-String,
1082         sub-transaction-qualifier       [3]     ILL-String OPTIONAL
1083                 -- mandatory for sub-transactions
1084         }
1085
1086 Transaction-Id-Problem ::= ENUMERATED {
1087         duplicate-transaction-id        (1),
1088         invalid-transaction-id  (2),
1089         unknown-transaction-id  (3)
1090         }
1091
1092 Transaction-Results ::= ENUMERATED {
1093         conditional     (1),
1094         retry   (2),
1095         unfilled        (3),
1096         locations-provided      (4),
1097         will-supply     (5),
1098         hold-placed     (6),
1099         estimate        (7)
1100         }
1101
1102 Transaction-Type ::= ENUMERATED  {
1103         simple  (1),
1104         chained (2),
1105         partitioned     (3)
1106         }
1107
1108 Transportation-Mode ::= ILL-String
1109
1110 Unable-To-Perform ::= ENUMERATED {
1111         not-available   (1),
1112         resource-limitation     (2),
1113         other   (3)
1114         }
1115
1116 Unfilled-Results ::= SEQUENCE {
1117         reason-unfilled [0]     IMPLICIT Reason-Unfilled,
1118         locations       [1]     IMPLICIT SEQUENCE OF Location-Info OPTIONAL
1119         }
1120
1121 Units-Per-Medium-Type ::= SEQUENCE {
1122         medium  [0]     Supply-Medium-Type,
1123         no-of-units     [1]     INTEGER (1..9999)
1124         }
1125
1126 User-Error-Report ::= CHOICE {
1127         already-forwarded       [0]     IMPLICIT Already-Forwarded,
1128         intermediary-problem    [1]     IMPLICIT Intermediary-Problem,
1129         security-problem        [2]     Security-Problem,
1130         unable-to-perform       [3]     IMPLICIT Unable-To-Perform
1131         }
1132
1133
1134 Will-Supply-Results ::= SEQUENCE {
1135         reason-will-supply      [0]     ENUMERATED {
1136                                 in-use-on-loan          (1),
1137                                 in-process                      (2),
1138                                 on-order                        (6),
1139                                 at-bindery                      (8),
1140                                 on-hold                         (19),
1141                                 being-processed-for-supply      (26),
1142                                 other                   (27),
1143                                 responder-specific              (28),
1144                                 electronic-delivery             (30)
1145                                 },
1146         supply-date     [1]     ISO-Date OPTIONAL,
1147         return-to-address       [2]     Postal-Address OPTIONAL,
1148         locations       [3]     IMPLICIT SEQUENCE OF Location-Info OPTIONAL,
1149         electronic-delivery-service     [4] Electronic-Delivery-Service OPTIONAL
1150                 -- if present, this must be one of the services proposed by 
1151                 -- the requester
1152         }
1153
1154 EDIFACTString ::= VisibleString 
1155         (FROM ("A"|"B"|"C"|"D"|"E"|"F"|"G"|"H"|
1156         "I"|"J"|"K"|"L"|"M"|"N"|"O"|"P"|"Q"|"R"|"S"|"T"|"U"|
1157         "V"|"W"|"X"|"Y"|"Z"|"a"|"b"|"c"|"d"|"e"|"f"|"g"|"h"|
1158         "i"|"j"|"k"|"l"|"m"|"n"|"o"|"p"|"q"|"r"|"s"|"t"|"u"|
1159         "v"|"w"|"x"|"y"|"z"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|
1160         "9"|"0"|" "|"."|","|"-"|"("|")"|"/"|"="|"!"|"""|"%"|"&"|
1161         "*"|";"|"<"|">"|"'"|"+"|":"|"?"))
1162
1163 END
1164
1165