74315321e0b87aac6fdf8e81e5e7f72a3818ee90
[yaz-moved-to-github.git] / include / yaz / ill-core.h
1 /* YC 0.2: Wed Mar 01 14:46:59 CET 2000 */
2 /* Module-H ISO-10161-ILL-1 */
3
4 #ifndef ill_core_H
5 #define ill_core_H
6
7 #include <yaz/odr.h>
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12
13
14 typedef struct ILL_APDU ILL_APDU;
15 YAZ_EXPORT int ill_APDU (ODR o, ILL_APDU **p, int opt, const char *name);
16
17 typedef struct ILL_Request ILL_Request;
18 YAZ_EXPORT int ill_Request (ODR o, ILL_Request **p, int opt, const char *name);
19
20 typedef struct ILL_Forward_Notification ILL_Forward_Notification;
21 YAZ_EXPORT int ill_Forward_Notification (ODR o, ILL_Forward_Notification **p, int opt, const char *name);
22
23 typedef struct ILL_Shipped ILL_Shipped;
24 YAZ_EXPORT int ill_Shipped (ODR o, ILL_Shipped **p, int opt, const char *name);
25
26 typedef struct ILL_Answer ILL_Answer;
27 YAZ_EXPORT int ill_Answer (ODR o, ILL_Answer **p, int opt, const char *name);
28
29 typedef struct ILL_Conditional_Reply ILL_Conditional_Reply;
30 YAZ_EXPORT int ill_Conditional_Reply (ODR o, ILL_Conditional_Reply **p, int opt, const char *name);
31
32 typedef struct ILL_Cancel ILL_Cancel;
33 YAZ_EXPORT int ill_Cancel (ODR o, ILL_Cancel **p, int opt, const char *name);
34
35 typedef struct ILL_Cancel_Reply ILL_Cancel_Reply;
36 YAZ_EXPORT int ill_Cancel_Reply (ODR o, ILL_Cancel_Reply **p, int opt, const char *name);
37
38 typedef struct ILL_Received ILL_Received;
39 YAZ_EXPORT int ill_Received (ODR o, ILL_Received **p, int opt, const char *name);
40
41 typedef struct ILL_Recall ILL_Recall;
42 YAZ_EXPORT int ill_Recall (ODR o, ILL_Recall **p, int opt, const char *name);
43
44 typedef struct ILL_Returned ILL_Returned;
45 YAZ_EXPORT int ill_Returned (ODR o, ILL_Returned **p, int opt, const char *name);
46
47 typedef struct ILL_Checked_In ILL_Checked_In;
48 YAZ_EXPORT int ill_Checked_In (ODR o, ILL_Checked_In **p, int opt, const char *name);
49
50 typedef struct ILL_Overdue_Extension ILL_Overdue_Extension;
51 YAZ_EXPORT int ill_Overdue_Extension (ODR o, ILL_Overdue_Extension **p, int opt, const char *name);
52
53 typedef struct ILL_Overdue ILL_Overdue;
54 YAZ_EXPORT int ill_Overdue (ODR o, ILL_Overdue **p, int opt, const char *name);
55
56 typedef struct ILL_Renew ILL_Renew;
57 YAZ_EXPORT int ill_Renew (ODR o, ILL_Renew **p, int opt, const char *name);
58
59 typedef struct ILL_Renew_Answer ILL_Renew_Answer;
60 YAZ_EXPORT int ill_Renew_Answer (ODR o, ILL_Renew_Answer **p, int opt, const char *name);
61
62 typedef struct ILL_Lost ILL_Lost;
63 YAZ_EXPORT int ill_Lost (ODR o, ILL_Lost **p, int opt, const char *name);
64
65 typedef struct ILL_Damaged ILL_Damaged;
66 YAZ_EXPORT int ill_Damaged (ODR o, ILL_Damaged **p, int opt, const char *name);
67
68 typedef struct ILL_Message ILL_Message;
69 YAZ_EXPORT int ill_Message (ODR o, ILL_Message **p, int opt, const char *name);
70
71 typedef struct ILL_Status_Query ILL_Status_Query;
72 YAZ_EXPORT int ill_Status_Query (ODR o, ILL_Status_Query **p, int opt, const char *name);
73
74 typedef struct ILL_Status_Or_Error_Report ILL_Status_Or_Error_Report;
75 YAZ_EXPORT int ill_Status_Or_Error_Report (ODR o, ILL_Status_Or_Error_Report **p, int opt, const char *name);
76
77 typedef struct ILL_Expired ILL_Expired;
78 YAZ_EXPORT int ill_Expired (ODR o, ILL_Expired **p, int opt, const char *name);
79
80 typedef struct ILL_Already_Forwarded ILL_Already_Forwarded;
81 YAZ_EXPORT int ill_Already_Forwarded (ODR o, ILL_Already_Forwarded **p, int opt, const char *name);
82
83 typedef struct ILL_Already_Tried_List_Type ILL_Already_Tried_List_Type;
84 YAZ_EXPORT int ill_Already_Tried_List_Type (ODR o, ILL_Already_Tried_List_Type **p, int opt, const char *name);
85
86 typedef struct ILL_Amount ILL_Amount;
87 YAZ_EXPORT int ill_Amount (ODR o, ILL_Amount **p, int opt, const char *name);
88
89 typedef char  ILL_AmountString;
90 YAZ_EXPORT int ill_AmountString (ODR o, ILL_AmountString **p, int opt, const char *name);
91
92 typedef struct ILL_Client_Id ILL_Client_Id;
93 YAZ_EXPORT int ill_Client_Id (ODR o, ILL_Client_Id **p, int opt, const char *name);
94
95 typedef struct ILL_Conditional_Results ILL_Conditional_Results;
96 YAZ_EXPORT int ill_Conditional_Results (ODR o, ILL_Conditional_Results **p, int opt, const char *name);
97
98 typedef struct ILL_Cost_Info_Type ILL_Cost_Info_Type;
99 YAZ_EXPORT int ill_Cost_Info_Type (ODR o, ILL_Cost_Info_Type **p, int opt, const char *name);
100
101 typedef int  ILL_Current_State;
102 YAZ_EXPORT int ill_Current_State (ODR o, ILL_Current_State **p, int opt, const char *name);
103
104 typedef struct ILL_Damaged_DetailsSpecific_units ILL_Damaged_DetailsSpecific_units;
105 YAZ_EXPORT int ill_Damaged_DetailsSpecific_units (ODR o, ILL_Damaged_DetailsSpecific_units **p, int opt, const char *name);
106
107 typedef struct ILL_Damaged_Details ILL_Damaged_Details;
108 YAZ_EXPORT int ill_Damaged_Details (ODR o, ILL_Damaged_Details **p, int opt, const char *name);
109
110 typedef struct ILL_Date_Due ILL_Date_Due;
111 YAZ_EXPORT int ill_Date_Due (ODR o, ILL_Date_Due **p, int opt, const char *name);
112
113 typedef struct ILL_Delivery_Address ILL_Delivery_Address;
114 YAZ_EXPORT int ill_Delivery_Address (ODR o, ILL_Delivery_Address **p, int opt, const char *name);
115
116 typedef struct ILL_Delivery_ServiceElectronic_delivery ILL_Delivery_ServiceElectronic_delivery;
117 YAZ_EXPORT int ill_Delivery_ServiceElectronic_delivery (ODR o, ILL_Delivery_ServiceElectronic_delivery **p, int opt, const char *name);
118
119 typedef struct ILL_Delivery_Service ILL_Delivery_Service;
120 YAZ_EXPORT int ill_Delivery_Service (ODR o, ILL_Delivery_Service **p, int opt, const char *name);
121
122 typedef struct ILL_Electronic_Delivery_Service_0 ILL_Electronic_Delivery_Service_0;
123 YAZ_EXPORT int ill_Electronic_Delivery_Service_0 (ODR o, ILL_Electronic_Delivery_Service_0 **p, int opt, const char *name);
124
125 typedef struct ILL_Electronic_Delivery_Service_1 ILL_Electronic_Delivery_Service_1;
126 YAZ_EXPORT int ill_Electronic_Delivery_Service_1 (ODR o, ILL_Electronic_Delivery_Service_1 **p, int opt, const char *name);
127
128 typedef struct ILL_Electronic_Delivery_Service ILL_Electronic_Delivery_Service;
129 YAZ_EXPORT int ill_Electronic_Delivery_Service (ODR o, ILL_Electronic_Delivery_Service **p, int opt, const char *name);
130
131 typedef struct ILL_Error_Report ILL_Error_Report;
132 YAZ_EXPORT int ill_Error_Report (ODR o, ILL_Error_Report **p, int opt, const char *name);
133
134 typedef struct ILL_Estimate_Results ILL_Estimate_Results;
135 YAZ_EXPORT int ill_Estimate_Results (ODR o, ILL_Estimate_Results **p, int opt, const char *name);
136
137 typedef struct ILL_Extension ILL_Extension;
138 YAZ_EXPORT int ill_Extension (ODR o, ILL_Extension **p, int opt, const char *name);
139
140 typedef int  ILL_General_Problem;
141 YAZ_EXPORT int ill_General_Problem (ODR o, ILL_General_Problem **p, int opt, const char *name);
142
143 typedef struct ILL_History_Report ILL_History_Report;
144 YAZ_EXPORT int ill_History_Report (ODR o, ILL_History_Report **p, int opt, const char *name);
145
146 typedef struct ILL_Hold_Placed_Results ILL_Hold_Placed_Results;
147 YAZ_EXPORT int ill_Hold_Placed_Results (ODR o, ILL_Hold_Placed_Results **p, int opt, const char *name);
148
149 typedef int  ILL_APDU_Type;
150 YAZ_EXPORT int ill_APDU_Type (ODR o, ILL_APDU_Type **p, int opt, const char *name);
151
152 typedef int  ILL_Service_Type;
153 YAZ_EXPORT int ill_Service_Type (ODR o, ILL_Service_Type **p, int opt, const char *name);
154
155 typedef struct ILL_String ILL_String;
156 YAZ_EXPORT int ill_String (ODR o, ILL_String **p, int opt, const char *name);
157
158 typedef ILL_String  ILL_Account_Number;
159 YAZ_EXPORT int ill_Account_Number (ODR o, ILL_Account_Number **p, int opt, const char *name);
160
161 typedef int  ILL_Intermediary_Problem;
162 YAZ_EXPORT int ill_Intermediary_Problem (ODR o, ILL_Intermediary_Problem **p, int opt, const char *name);
163
164 typedef char  ILL_ISO_Date;
165 YAZ_EXPORT int ill_ISO_Date (ODR o, ILL_ISO_Date **p, int opt, const char *name);
166
167 typedef char  ILL_ISO_Time;
168 YAZ_EXPORT int ill_ISO_Time (ODR o, ILL_ISO_Time **p, int opt, const char *name);
169
170 typedef struct ILL_Item_Id ILL_Item_Id;
171 YAZ_EXPORT int ill_Item_Id (ODR o, ILL_Item_Id **p, int opt, const char *name);
172
173 typedef struct ILL_Location_Info ILL_Location_Info;
174 YAZ_EXPORT int ill_Location_Info (ODR o, ILL_Location_Info **p, int opt, const char *name);
175
176 typedef struct ILL_Locations_Results ILL_Locations_Results;
177 YAZ_EXPORT int ill_Locations_Results (ODR o, ILL_Locations_Results **p, int opt, const char *name);
178
179 typedef int  ILL_Medium_Type;
180 YAZ_EXPORT int ill_Medium_Type (ODR o, ILL_Medium_Type **p, int opt, const char *name);
181
182 typedef struct ILL_Name_Of_Person_Or_Institution ILL_Name_Of_Person_Or_Institution;
183 YAZ_EXPORT int ill_Name_Of_Person_Or_Institution (ODR o, ILL_Name_Of_Person_Or_Institution **p, int opt, const char *name);
184
185 typedef struct ILL_Person_Or_Institution_Symbol ILL_Person_Or_Institution_Symbol;
186 YAZ_EXPORT int ill_Person_Or_Institution_Symbol (ODR o, ILL_Person_Or_Institution_Symbol **p, int opt, const char *name);
187
188 typedef int  ILL_Place_On_Hold_Type;
189 YAZ_EXPORT int ill_Place_On_Hold_Type (ODR o, ILL_Place_On_Hold_Type **p, int opt, const char *name);
190
191 typedef struct ILL_Postal_Address ILL_Postal_Address;
192 YAZ_EXPORT int ill_Postal_Address (ODR o, ILL_Postal_Address **p, int opt, const char *name);
193
194 typedef struct ILL_Provider_Error_Report ILL_Provider_Error_Report;
195 YAZ_EXPORT int ill_Provider_Error_Report (ODR o, ILL_Provider_Error_Report **p, int opt, const char *name);
196
197 typedef int  ILL_Reason_Locs_Provided;
198 YAZ_EXPORT int ill_Reason_Locs_Provided (ODR o, ILL_Reason_Locs_Provided **p, int opt, const char *name);
199
200 typedef int  ILL_Reason_No_Report;
201 YAZ_EXPORT int ill_Reason_No_Report (ODR o, ILL_Reason_No_Report **p, int opt, const char *name);
202
203 typedef int  ILL_Reason_Unfilled;
204 YAZ_EXPORT int ill_Reason_Unfilled (ODR o, ILL_Reason_Unfilled **p, int opt, const char *name);
205
206 typedef int  ILL_Report_Source;
207 YAZ_EXPORT int ill_Report_Source (ODR o, ILL_Report_Source **p, int opt, const char *name);
208
209 typedef struct ILL_Requester_Optional_Messages_Type ILL_Requester_Optional_Messages_Type;
210 YAZ_EXPORT int ill_Requester_Optional_Messages_Type (ODR o, ILL_Requester_Optional_Messages_Type **p, int opt, const char *name);
211
212 typedef struct ILL_Responder_Optional_Messages_Type ILL_Responder_Optional_Messages_Type;
213 YAZ_EXPORT int ill_Responder_Optional_Messages_Type (ODR o, ILL_Responder_Optional_Messages_Type **p, int opt, const char *name);
214
215 typedef struct ILL_Retry_Results ILL_Retry_Results;
216 YAZ_EXPORT int ill_Retry_Results (ODR o, ILL_Retry_Results **p, int opt, const char *name);
217
218 typedef struct ILL_Search_Type ILL_Search_Type;
219 YAZ_EXPORT int ill_Search_Type (ODR o, ILL_Search_Type **p, int opt, const char *name);
220
221 typedef ILL_String  ILL_Security_Problem;
222 YAZ_EXPORT int ill_Security_Problem (ODR o, ILL_Security_Problem **p, int opt, const char *name);
223
224 typedef struct ILL_Send_To_List_Type_s ILL_Send_To_List_Type_s;
225 YAZ_EXPORT int ill_Send_To_List_Type_s (ODR o, ILL_Send_To_List_Type_s **p, int opt, const char *name);
226
227 typedef struct ILL_Send_To_List_Type ILL_Send_To_List_Type;
228 YAZ_EXPORT int ill_Send_To_List_Type (ODR o, ILL_Send_To_List_Type **p, int opt, const char *name);
229
230 typedef struct ILL_Service_Date_this ILL_Service_Date_this;
231 YAZ_EXPORT int ill_Service_Date_this (ODR o, ILL_Service_Date_this **p, int opt, const char *name);
232
233 typedef struct ILL_Service_Date_original ILL_Service_Date_original;
234 YAZ_EXPORT int ill_Service_Date_original (ODR o, ILL_Service_Date_original **p, int opt, const char *name);
235
236 typedef struct ILL_Service_Date_Time ILL_Service_Date_Time;
237 YAZ_EXPORT int ill_Service_Date_Time (ODR o, ILL_Service_Date_Time **p, int opt, const char *name);
238
239 typedef ILL_Service_Type  ILL_Shipped_Service_Type;
240 YAZ_EXPORT int ill_Shipped_Service_Type (ODR o, ILL_Shipped_Service_Type **p, int opt, const char *name);
241
242 typedef struct ILL_State_Transition_Prohibited ILL_State_Transition_Prohibited;
243 YAZ_EXPORT int ill_State_Transition_Prohibited (ODR o, ILL_State_Transition_Prohibited **p, int opt, const char *name);
244
245 typedef struct ILL_Status_Report ILL_Status_Report;
246 YAZ_EXPORT int ill_Status_Report (ODR o, ILL_Status_Report **p, int opt, const char *name);
247
248 typedef struct ILL_Supplemental_Item_Description ILL_Supplemental_Item_Description;
249 YAZ_EXPORT int ill_Supplemental_Item_Description (ODR o, ILL_Supplemental_Item_Description **p, int opt, const char *name);
250
251 typedef struct ILL_Supply_Details ILL_Supply_Details;
252 YAZ_EXPORT int ill_Supply_Details (ODR o, ILL_Supply_Details **p, int opt, const char *name);
253
254 typedef struct ILL_Supply_Medium_Info_Type ILL_Supply_Medium_Info_Type;
255 YAZ_EXPORT int ill_Supply_Medium_Info_Type (ODR o, ILL_Supply_Medium_Info_Type **p, int opt, const char *name);
256
257 typedef int  ILL_Supply_Medium_Type;
258 YAZ_EXPORT int ill_Supply_Medium_Type (ODR o, ILL_Supply_Medium_Type **p, int opt, const char *name);
259
260 typedef struct ILL_System_Address ILL_System_Address;
261 YAZ_EXPORT int ill_System_Address (ODR o, ILL_System_Address **p, int opt, const char *name);
262
263 typedef struct ILL_System_Id ILL_System_Id;
264 YAZ_EXPORT int ill_System_Id (ODR o, ILL_System_Id **p, int opt, const char *name);
265
266 typedef struct ILL_Third_Party_Info_Type ILL_Third_Party_Info_Type;
267 YAZ_EXPORT int ill_Third_Party_Info_Type (ODR o, ILL_Third_Party_Info_Type **p, int opt, const char *name);
268
269 typedef struct ILL_Transaction_Id ILL_Transaction_Id;
270 YAZ_EXPORT int ill_Transaction_Id (ODR o, ILL_Transaction_Id **p, int opt, const char *name);
271
272 typedef int  ILL_Transaction_Id_Problem;
273 YAZ_EXPORT int ill_Transaction_Id_Problem (ODR o, ILL_Transaction_Id_Problem **p, int opt, const char *name);
274
275 typedef int  ILL_Transaction_Results;
276 YAZ_EXPORT int ill_Transaction_Results (ODR o, ILL_Transaction_Results **p, int opt, const char *name);
277
278 typedef int  ILL_Transaction_Type;
279 YAZ_EXPORT int ill_Transaction_Type (ODR o, ILL_Transaction_Type **p, int opt, const char *name);
280
281 typedef ILL_String  ILL_Transportation_Mode;
282 YAZ_EXPORT int ill_Transportation_Mode (ODR o, ILL_Transportation_Mode **p, int opt, const char *name);
283
284 typedef int  ILL_Unable_To_Perform;
285 YAZ_EXPORT int ill_Unable_To_Perform (ODR o, ILL_Unable_To_Perform **p, int opt, const char *name);
286
287 typedef struct ILL_Unfilled_Results ILL_Unfilled_Results;
288 YAZ_EXPORT int ill_Unfilled_Results (ODR o, ILL_Unfilled_Results **p, int opt, const char *name);
289
290 typedef struct ILL_Units_Per_Medium_Type ILL_Units_Per_Medium_Type;
291 YAZ_EXPORT int ill_Units_Per_Medium_Type (ODR o, ILL_Units_Per_Medium_Type **p, int opt, const char *name);
292
293 typedef struct ILL_User_Error_Report ILL_User_Error_Report;
294 YAZ_EXPORT int ill_User_Error_Report (ODR o, ILL_User_Error_Report **p, int opt, const char *name);
295
296 typedef struct ILL_Will_Supply_Results ILL_Will_Supply_Results;
297 YAZ_EXPORT int ill_Will_Supply_Results (ODR o, ILL_Will_Supply_Results **p, int opt, const char *name);
298
299 typedef char  ILL_EDIFACTString;
300 YAZ_EXPORT int ill_EDIFACTString (ODR o, ILL_EDIFACTString **p, int opt, const char *name);
301 #ifdef __cplusplus
302 }
303 #endif
304 #ifdef __cplusplus
305 extern "C" {
306 #endif
307 struct ILL_APDU {
308         int which;
309         union {
310                 ILL_Request *ILL_Request;
311                 ILL_Forward_Notification *Forward_Notification;
312                 ILL_Shipped *Shipped;
313                 ILL_Answer *ILL_Answer;
314                 ILL_Conditional_Reply *Conditional_Reply;
315                 ILL_Cancel *Cancel;
316                 ILL_Cancel_Reply *Cancel_Reply;
317                 ILL_Received *Received;
318                 ILL_Recall *Recall;
319                 ILL_Returned *Returned;
320                 ILL_Checked_In *Checked_In;
321                 ILL_Overdue *Overdue;
322                 ILL_Renew *Renew;
323                 ILL_Renew_Answer *Renew_Answer;
324                 ILL_Lost *Lost;
325                 ILL_Damaged *Damaged;
326                 ILL_Message *Message;
327                 ILL_Status_Query *Status_Query;
328                 ILL_Status_Or_Error_Report *Status_Or_Error_Report;
329                 ILL_Expired *Expired;
330 #define ILL_APDU_ILL_Request 1
331 #define ILL_APDU_Forward_Notification 2
332 #define ILL_APDU_Shipped 3
333 #define ILL_APDU_ILL_Answer 4
334 #define ILL_APDU_Conditional_Reply 5
335 #define ILL_APDU_Cancel 6
336 #define ILL_APDU_Cancel_Reply 7
337 #define ILL_APDU_Received 8
338 #define ILL_APDU_Recall 9
339 #define ILL_APDU_Returned 10
340 #define ILL_APDU_Checked_In 11
341 #define ILL_APDU_Overdue 12
342 #define ILL_APDU_Renew 13
343 #define ILL_APDU_Renew_Answer 14
344 #define ILL_APDU_Lost 15
345 #define ILL_APDU_Damaged 16
346 #define ILL_APDU_Message 17
347 #define ILL_APDU_Status_Query 18
348 #define ILL_APDU_Status_Or_Error_Report 19
349 #define ILL_APDU_Expired 20
350         } u;
351 };
352
353 struct ILL_Request {
354 #define ILL_Request_version_1 1
355 #define ILL_Request_version_2 2
356         int *protocol_version_num;
357         ILL_Transaction_Id *transaction_id;
358         ILL_Service_Date_Time *service_date_time;
359         ILL_System_Id *requester_id; /* OPT */
360         ILL_System_Id *responder_id; /* OPT */
361         ILL_Transaction_Type *transaction_type;
362         ILL_Delivery_Address *delivery_address; /* OPT */
363         ILL_Delivery_Service *delivery_service; /* OPT */
364         ILL_Delivery_Address *billing_address; /* OPT */
365         int num_iLL_service_type;
366         ILL_Service_Type **iLL_service_type;
367         Odr_external *responder_specific_service; /* OPT */
368         ILL_Requester_Optional_Messages_Type *requester_optional_messages;
369         ILL_Search_Type *search_type; /* OPT */
370         int num_supply_medium_info_type;
371         ILL_Supply_Medium_Info_Type **supply_medium_info_type; /* OPT */
372         ILL_Place_On_Hold_Type *place_on_hold;
373         ILL_Client_Id *client_id; /* OPT */
374         ILL_Item_Id *item_id;
375         ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */
376         ILL_Cost_Info_Type *cost_info_type; /* OPT */
377         ILL_String *copyright_compliance; /* OPT */
378         ILL_Third_Party_Info_Type *third_party_info_type; /* OPT */
379         bool_t *retry_flag;
380         bool_t *forward_flag;
381         ILL_String *requester_note; /* OPT */
382         ILL_String *forward_note; /* OPT */
383         int num_iLL_request_extensions;
384         ILL_Extension **iLL_request_extensions; /* OPT */
385 };
386
387 struct ILL_Forward_Notification {
388 #define ILL_Forward_Notification_version_1 1
389 #define ILL_Forward_Notification_version_2 2
390         int *protocol_version_num;
391         ILL_Transaction_Id *transaction_id;
392         ILL_Service_Date_Time *service_date_time;
393         ILL_System_Id *requester_id; /* OPT */
394         ILL_System_Id *responder_id;
395         ILL_System_Address *responder_address; /* OPT */
396         ILL_System_Id *intermediary_id;
397         ILL_String *notification_note; /* OPT */
398         int num_forward_notification_extensions;
399         ILL_Extension **forward_notification_extensions; /* OPT */
400 };
401
402 struct ILL_Shipped {
403 #define ILL_Shipped_version_1 1
404 #define ILL_Shipped_version_2 2
405         int *protocol_version_num;
406         ILL_Transaction_Id *transaction_id;
407         ILL_Service_Date_Time *service_date_time;
408         ILL_System_Id *requester_id; /* OPT */
409         ILL_System_Id *responder_id; /* OPT */
410         ILL_System_Address *responder_address; /* OPT */
411         ILL_System_Id *intermediary_id; /* OPT */
412         ILL_System_Id *supplier_id; /* OPT */
413         ILL_Client_Id *client_id; /* OPT */
414         ILL_Transaction_Type *transaction_type;
415         ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */
416         ILL_Shipped_Service_Type *shipped_service_type;
417         ILL_Responder_Optional_Messages_Type *responder_optional_messages; /* OPT */
418         ILL_Supply_Details *supply_details;
419         ILL_Postal_Address *return_to_address; /* OPT */
420         ILL_String *responder_note; /* OPT */
421         int num_shipped_extensions;
422         ILL_Extension **shipped_extensions; /* OPT */
423 };
424
425 struct ILL_Answer {
426 #define ILL_Answer_version_1 1
427 #define ILL_Answer_version_2 2
428         int *protocol_version_num;
429         ILL_Transaction_Id *transaction_id;
430         ILL_Service_Date_Time *service_date_time;
431         ILL_System_Id *requester_id; /* OPT */
432         ILL_System_Id *responder_id; /* OPT */
433         ILL_Transaction_Results *transaction_results;
434         int which;
435         union {
436                 ILL_Conditional_Results *conditional_results;
437                 ILL_Retry_Results *retry_results;
438                 ILL_Unfilled_Results *unfilled_results;
439                 ILL_Locations_Results *locations_results;
440                 ILL_Will_Supply_Results *will_supply_results;
441                 ILL_Hold_Placed_Results *hold_placed_results;
442                 ILL_Estimate_Results *estimate_results;
443 #define ILL_Answer_conditional_results 1
444 #define ILL_Answer_retry_results 2
445 #define ILL_Answer_unfilled_results 3
446 #define ILL_Answer_locations_results 4
447 #define ILL_Answer_will_supply_results 5
448 #define ILL_Answer_hold_placed_results 6
449 #define ILL_Answer_estimate_results 7
450         } u; /* OPT */
451         Odr_external *responder_specific_results; /* OPT */
452         ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */
453         ILL_Send_To_List_Type *send_to_list; /* OPT */
454         ILL_Already_Tried_List_Type *already_tried_list; /* OPT */
455         ILL_Responder_Optional_Messages_Type *responder_optional_messages; /* OPT */
456         ILL_String *responder_note; /* OPT */
457         int num_ill_answer_extensions;
458         ILL_Extension **ill_answer_extensions; /* OPT */
459 };
460
461 struct ILL_Conditional_Reply {
462 #define ILL_Conditional_Reply_version_1 1
463 #define ILL_Conditional_Reply_version_2 2
464         int *protocol_version_num;
465         ILL_Transaction_Id *transaction_id;
466         ILL_Service_Date_Time *service_date_time;
467         ILL_System_Id *requester_id; /* OPT */
468         ILL_System_Id *responder_id; /* OPT */
469         bool_t *answer;
470         ILL_String *requester_note; /* OPT */
471         int num_conditional_reply_extensions;
472         ILL_Extension **conditional_reply_extensions; /* OPT */
473 };
474
475 struct ILL_Cancel {
476 #define ILL_Cancel_version_1 1
477 #define ILL_Cancel_version_2 2
478         int *protocol_version_num;
479         ILL_Transaction_Id *transaction_id;
480         ILL_Service_Date_Time *service_date_time;
481         ILL_System_Id *requester_id; /* OPT */
482         ILL_System_Id *responder_id; /* OPT */
483         ILL_String *requester_note; /* OPT */
484         int num_cancel_extensions;
485         ILL_Extension **cancel_extensions; /* OPT */
486 };
487
488 struct ILL_Cancel_Reply {
489 #define ILL_Cancel_Reply_version_1 1
490 #define ILL_Cancel_Reply_version_2 2
491         int *protocol_version_num;
492         ILL_Transaction_Id *transaction_id;
493         ILL_Service_Date_Time *service_date_time;
494         ILL_System_Id *requester_id; /* OPT */
495         ILL_System_Id *responder_id; /* OPT */
496         bool_t *answer;
497         ILL_String *responder_note; /* OPT */
498         int num_cancel_reply_extensions;
499         ILL_Extension **cancel_reply_extensions; /* OPT */
500 };
501
502 struct ILL_Received {
503 #define ILL_Received_version_1 1
504 #define ILL_Received_version_2 2
505         int *protocol_version_num;
506         ILL_Transaction_Id *transaction_id;
507         ILL_Service_Date_Time *service_date_time;
508         ILL_System_Id *requester_id; /* OPT */
509         ILL_System_Id *responder_id; /* OPT */
510         ILL_System_Id *supplier_id; /* OPT */
511         ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */
512         ILL_ISO_Date *date_received;
513         ILL_Shipped_Service_Type *shipped_service_type;
514         ILL_String *requester_note; /* OPT */
515         int num_received_extensions;
516         ILL_Extension **received_extensions; /* OPT */
517 };
518
519 struct ILL_Recall {
520 #define ILL_Recall_version_1 1
521 #define ILL_Recall_version_2 2
522         int *protocol_version_num;
523         ILL_Transaction_Id *transaction_id;
524         ILL_Service_Date_Time *service_date_time;
525         ILL_System_Id *requester_id; /* OPT */
526         ILL_System_Id *responder_id; /* OPT */
527         ILL_String *responder_note; /* OPT */
528         int num_recall_extensions;
529         ILL_Extension **recall_extensions; /* OPT */
530 };
531
532 struct ILL_Returned {
533 #define ILL_Returned_version_1 1
534 #define ILL_Returned_version_2 2
535         int *protocol_version_num;
536         ILL_Transaction_Id *transaction_id;
537         ILL_Service_Date_Time *service_date_time;
538         ILL_System_Id *requester_id; /* OPT */
539         ILL_System_Id *responder_id; /* OPT */
540         ILL_Supplemental_Item_Description *supplemental_item_description; /* OPT */
541         ILL_ISO_Date *date_returned;
542         ILL_Transportation_Mode *returned_via; /* OPT */
543         ILL_Amount *insured_for; /* OPT */
544         ILL_String *requester_note; /* OPT */
545         int num_returned_extensions;
546         ILL_Extension **returned_extensions; /* OPT */
547 };
548
549 struct ILL_Checked_In {
550 #define ILL_Checked_In_version_1 1
551 #define ILL_Checked_In_version_2 2
552         int *protocol_version_num;
553         ILL_Transaction_Id *transaction_id;
554         ILL_Service_Date_Time *service_date_time;
555         ILL_System_Id *requester_id; /* OPT */
556         ILL_System_Id *responder_id; /* OPT */
557         ILL_ISO_Date *date_checked_in;
558         ILL_String *responder_note; /* OPT */
559         int num_checked_in_extensions;
560         ILL_Extension **checked_in_extensions; /* OPT */
561 };
562
563 struct ILL_Overdue_Extension {
564         int num;
565         ILL_Extension **elements;
566 };
567
568 struct ILL_Overdue {
569 #define ILL_Overdue_version_1 1
570 #define ILL_Overdue_version_2 2
571         int *protocol_version_num;
572         ILL_Transaction_Id *transaction_id;
573         ILL_Service_Date_Time *service_date_time;
574         ILL_System_Id *requester_id; /* OPT */
575         ILL_System_Id *responder_id; /* OPT */
576         ILL_Date_Due *date_due;
577         ILL_String *responder_note; /* OPT */
578         ILL_Overdue_Extension *overdue_extensions; /* OPT */
579 };
580
581 struct ILL_Renew {
582 #define ILL_Renew_version_1 1
583 #define ILL_Renew_version_2 2
584         int *protocol_version_num;
585         ILL_Transaction_Id *transaction_id;
586         ILL_Service_Date_Time *service_date_time;
587         ILL_System_Id *requester_id; /* OPT */
588         ILL_System_Id *responder_id; /* OPT */
589         ILL_ISO_Date *desired_due_date; /* OPT */
590         ILL_String *requester_note; /* OPT */
591         int num_renew_extensions;
592         ILL_Extension **renew_extensions; /* OPT */
593 };
594
595 struct ILL_Renew_Answer {
596 #define ILL_Renew_Answer_version_1 1
597 #define ILL_Renew_Answer_version_2 2
598         int *protocol_version_num;
599         ILL_Transaction_Id *transaction_id;
600         ILL_Service_Date_Time *service_date_time;
601         ILL_System_Id *requester_id; /* OPT */
602         ILL_System_Id *responder_id; /* OPT */
603         bool_t *answer;
604         ILL_Date_Due *date_due; /* OPT */
605         ILL_String *responder_note; /* OPT */
606         int num_renew_answer_extensions;
607         ILL_Extension **renew_answer_extensions; /* OPT */
608 };
609
610 struct ILL_Lost {
611 #define ILL_Lost_version_1 1
612 #define ILL_Lost_version_2 2
613         int *protocol_version_num;
614         ILL_Transaction_Id *transaction_id;
615         ILL_Service_Date_Time *service_date_time;
616         ILL_System_Id *requester_id; /* OPT */
617         ILL_System_Id *responder_id; /* OPT */
618         ILL_String *note; /* OPT */
619         int num_lost_extensions;
620         ILL_Extension **lost_extensions; /* OPT */
621 };
622
623 struct ILL_Damaged {
624 #define ILL_Damaged_version_1 1
625 #define ILL_Damaged_version_2 2
626         int *protocol_version_num;
627         ILL_Transaction_Id *transaction_id;
628         ILL_Service_Date_Time *service_date_time;
629         ILL_System_Id *requester_id; /* OPT */
630         ILL_System_Id *responder_id; /* OPT */
631         ILL_Damaged_Details *damaged_details; /* OPT */
632         ILL_String *note; /* OPT */
633         int num_damaged_extensions;
634         ILL_Extension **damaged_extensions; /* OPT */
635 };
636
637 struct ILL_Message {
638 #define ILL_Message_version_1 1
639 #define ILL_Message_version_2 2
640         int *protocol_version_num;
641         ILL_Transaction_Id *transaction_id;
642         ILL_Service_Date_Time *service_date_time;
643         ILL_System_Id *requester_id; /* OPT */
644         ILL_System_Id *responder_id; /* OPT */
645         ILL_String *note;
646         int num_message_extensions;
647         ILL_Extension **message_extensions; /* OPT */
648 };
649
650 struct ILL_Status_Query {
651 #define ILL_Status_Query_version_1 1
652 #define ILL_Status_Query_version_2 2
653         int *protocol_version_num;
654         ILL_Transaction_Id *transaction_id;
655         ILL_Service_Date_Time *service_date_time;
656         ILL_System_Id *requester_id; /* OPT */
657         ILL_System_Id *responder_id; /* OPT */
658         ILL_String *note; /* OPT */
659         int num_status_query_extensions;
660         ILL_Extension **status_query_extensions; /* OPT */
661 };
662
663 struct ILL_Status_Or_Error_Report {
664 #define ILL_Status_Or_Error_Report_version_1 1
665 #define ILL_Status_Or_Error_Report_version_2 2
666         int *protocol_version_num;
667         ILL_Transaction_Id *transaction_id;
668         ILL_Service_Date_Time *service_date_time;
669         ILL_System_Id *requester_id; /* OPT */
670         ILL_System_Id *responder_id; /* OPT */
671         ILL_Reason_No_Report *reason_no_report; /* OPT */
672         ILL_Status_Report *status_report; /* OPT */
673         ILL_Error_Report *error_report; /* OPT */
674         ILL_String *note; /* OPT */
675         int num_status_or_error_report_extensions;
676         ILL_Extension **status_or_error_report_extensions; /* OPT */
677 };
678
679 struct ILL_Expired {
680 #define ILL_Expired_version_1 1
681 #define ILL_Expired_version_2 2
682         int *protocol_version_num;
683         ILL_Transaction_Id *transaction_id;
684         ILL_Service_Date_Time *service_date_time;
685         ILL_System_Id *requester_id; /* OPT */
686         ILL_System_Id *responder_id; /* OPT */
687         int num_expired_extensions;
688         ILL_Extension **expired_extensions; /* OPT */
689 };
690
691
692
693 struct ILL_Already_Forwarded {
694         ILL_System_Id *responder_id;
695         ILL_System_Address *responder_address; /* OPT */
696 };
697
698 struct ILL_Already_Tried_List_Type {
699         int num;
700         ILL_System_Id **elements;
701 };
702
703 struct ILL_Amount {
704         char *currency_code; /* OPT */
705         ILL_AmountString *monetary_value;
706 };
707
708
709
710 struct ILL_Client_Id {
711         ILL_String *client_name; /* OPT */
712         ILL_String *client_status; /* OPT */
713         ILL_String *client_identifier; /* OPT */
714 };
715
716 struct ILL_Conditional_Results {
717 #define ILL_Conditional_Results_cost_exceeds_limit 13
718 #define ILL_Conditional_Results_charges 14
719 #define ILL_Conditional_Results_prepayment_required 15
720 #define ILL_Conditional_Results_lacks_copyright_compliance 16
721 #define ILL_Conditional_Results_library_use_only 22
722 #define ILL_Conditional_Results_no_reproduction 23
723 #define ILL_Conditional_Results_client_signature_required 24
724 #define ILL_Conditional_Results_special_collections_supervision_required 25
725 #define ILL_Conditional_Results_other 27
726 #define ILL_Conditional_Results_responder_specific 28
727 #define ILL_Conditional_Results_proposed_delivery_service 30
728         int *conditions;
729         ILL_ISO_Date *date_for_reply; /* OPT */
730         int num_locations;
731         ILL_Location_Info **locations; /* OPT */
732         ILL_Delivery_Service *proposed_delivery_service; /* OPT */
733 };
734
735 struct ILL_Cost_Info_Type {
736         ILL_Account_Number *account_number; /* OPT */
737         ILL_Amount *maximum_cost; /* OPT */
738         bool_t *reciprocal_agreement;
739         bool_t *will_pay_fee;
740         bool_t *payment_provided;
741 };
742
743 #define ILL_Current_State_nOT_SUPPLIED 1
744 #define ILL_Current_State_pENDING 2
745 #define ILL_Current_State_iN_PROCESS 3
746 #define ILL_Current_State_fORWARD 4
747 #define ILL_Current_State_cONDITIONAL 5
748 #define ILL_Current_State_cANCEL_PENDING 6
749 #define ILL_Current_State_cANCELLED 7
750 #define ILL_Current_State_sHIPPED 8
751 #define ILL_Current_State_rECEIVED 9
752 #define ILL_Current_State_rENEW_PENDING 10
753 #define ILL_Current_State_nOT_RECEIVED_OVERDUE 11
754 #define ILL_Current_State_rENEW_OVERDUE 12
755 #define ILL_Current_State_oVERDUE 13
756 #define ILL_Current_State_rETURNED 14
757 #define ILL_Current_State_cHECKED_IN 15
758 #define ILL_Current_State_rECALL 16
759 #define ILL_Current_State_lOST 17
760 #define ILL_Current_State_uNKNOWN 18
761
762 struct ILL_Damaged_DetailsSpecific_units {
763         int num;
764         int **elements;
765 };
766
767 struct ILL_Damaged_Details {
768         Odr_oid *document_type_id; /* OPT */
769         int which;
770         union {
771                 Odr_null *complete_document;
772                 ILL_Damaged_DetailsSpecific_units *specific_units;
773 #define ILL_Damaged_Details_complete_document 1
774 #define ILL_Damaged_Details_specific_units 2
775         } u;
776 };
777
778 struct ILL_Date_Due {
779         ILL_ISO_Date *date_due_field;
780         bool_t *renewable;
781 };
782
783 struct ILL_Delivery_Address {
784         ILL_Postal_Address *postal_address; /* OPT */
785         ILL_System_Address *electronic_address; /* OPT */
786 };
787
788 struct ILL_Delivery_ServiceElectronic_delivery {
789         int num;
790         ILL_Electronic_Delivery_Service **elements;
791 };
792
793 struct ILL_Delivery_Service {
794         int which;
795         union {
796                 ILL_Transportation_Mode *physical_delivery;
797                 ILL_Delivery_ServiceElectronic_delivery *electronic_delivery;
798 #define ILL_Delivery_Service_physical_delivery 1
799 #define ILL_Delivery_Service_electronic_delivery 2
800         } u;
801 };
802
803 struct ILL_Electronic_Delivery_Service_0 {
804         Odr_oid *e_delivery_mode;
805         Odr_any *e_delivery_parameters;
806 };
807
808 struct ILL_Electronic_Delivery_Service_1 {
809         Odr_oid *document_type_id;
810         Odr_any *document_type_parameters;
811 };
812
813 struct ILL_Electronic_Delivery_Service {
814         ILL_Electronic_Delivery_Service_0 *e_delivery_service; /* OPT */
815         ILL_Electronic_Delivery_Service_1 *document_type; /* OPT */
816         ILL_String *e_delivery_description; /* OPT */
817         int which;
818         union {
819                 ILL_System_Address *e_delivery_address;
820                 ILL_System_Id *e_delivery_id;
821 #define ILL_Electronic_Delivery_Service_e_delivery_address 1
822 #define ILL_Electronic_Delivery_Service_e_delivery_id 2
823         } u;
824         ILL_String *name_or_code; /* OPT */
825         ILL_ISO_Time *delivery_time; /* OPT */
826 };
827
828 struct ILL_Error_Report {
829         ILL_String *correlation_information;
830         ILL_Report_Source *report_source;
831         ILL_User_Error_Report *user_error_report; /* OPT */
832         ILL_Provider_Error_Report *provider_error_report; /* OPT */
833 };
834
835 struct ILL_Estimate_Results {
836         ILL_String *cost_estimate;
837         int num_locations;
838         ILL_Location_Info **locations; /* OPT */
839 };
840
841 struct ILL_Extension {
842         int *identifier;
843         bool_t *critical;
844         Odr_any *item;
845 };
846
847 #define ILL_General_Problem_unrecognized_APDU 1
848 #define ILL_General_Problem_mistyped_APDU 2
849 #define ILL_General_Problem_badly_structured_APDU 3
850 #define ILL_General_Problem_protocol_version_not_supported 4
851 #define ILL_General_Problem_other 5
852
853 struct ILL_History_Report {
854         ILL_ISO_Date *date_requested; /* OPT */
855         ILL_String *author; /* OPT */
856         ILL_String *title; /* OPT */
857         ILL_String *author_of_article; /* OPT */
858         ILL_String *title_of_article; /* OPT */
859         ILL_ISO_Date *date_of_last_transition;
860 #define ILL_History_Report_iLL_REQUEST 1
861 #define ILL_History_Report_fORWARD 21
862 #define ILL_History_Report_fORWARD_NOTIFICATION 2
863 #define ILL_History_Report_sHIPPED 3
864 #define ILL_History_Report_iLL_ANSWER 4
865 #define ILL_History_Report_cONDITIONAL_REPLY 5
866 #define ILL_History_Report_cANCEL 6
867 #define ILL_History_Report_cANCEL_REPLY 7
868 #define ILL_History_Report_rECEIVED 8
869 #define ILL_History_Report_rECALL 9
870 #define ILL_History_Report_rETURNED 10
871 #define ILL_History_Report_cHECKED_IN 11
872 #define ILL_History_Report_rENEW_ANSWER 14
873 #define ILL_History_Report_lOST 15
874 #define ILL_History_Report_dAMAGED 16
875 #define ILL_History_Report_mESSAGE 17
876 #define ILL_History_Report_sTATUS_QUERY 18
877 #define ILL_History_Report_sTATUS_OR_ERROR_REPORT 19
878 #define ILL_History_Report_eXPIRED 20
879         int *most_recent_service;
880         ILL_ISO_Date *date_of_most_recent_service;
881         ILL_System_Id *initiator_of_most_recent_service;
882         ILL_Shipped_Service_Type *shipped_service_type; /* OPT */
883         ILL_Transaction_Results *transaction_results; /* OPT */
884         ILL_String *most_recent_service_note; /* OPT */
885 };
886
887 struct ILL_Hold_Placed_Results {
888         ILL_ISO_Date *estimated_date_available;
889         ILL_Medium_Type *hold_placed_medium_type; /* OPT */
890         int num_locations;
891         ILL_Location_Info **locations; /* OPT */
892 };
893
894 #define ILL_APDU_Type_iLL_REQUEST 1
895 #define ILL_APDU_Type_fORWARD_NOTIFICATION 2
896 #define ILL_APDU_Type_sHIPPED 3
897 #define ILL_APDU_Type_iLL_ANSWER 4
898 #define ILL_APDU_Type_cONDITIONAL_REPLY 5
899 #define ILL_APDU_Type_cANCEL 6
900 #define ILL_APDU_Type_cANCEL_REPLY 7
901 #define ILL_APDU_Type_rECEIVED 8
902 #define ILL_APDU_Type_rECALL 9
903 #define ILL_APDU_Type_rETURNED 10
904 #define ILL_APDU_Type_cHECKED_IN 11
905 #define ILL_APDU_Type_oVERDUE 12
906 #define ILL_APDU_Type_rENEW 13
907 #define ILL_APDU_Type_rENEW_ANSWER 14
908 #define ILL_APDU_Type_lOST 15
909 #define ILL_APDU_Type_dAMAGED 16
910 #define ILL_APDU_Type_mESSAGE 17
911 #define ILL_APDU_Type_sTATUS_QUERY 18
912 #define ILL_APDU_Type_sTATUS_OR_ERROR_REPORT 19
913 #define ILL_APDU_Type_eXPIRED 20
914
915 #define ILL_Service_Type_loan 1
916 #define ILL_Service_Type_copy_non_returnable 2
917 #define ILL_Service_Type_locations 3
918 #define ILL_Service_Type_estimate 4
919 #define ILL_Service_Type_responder_specific 5
920
921 struct ILL_String {
922         int which;
923         union {
924                 char *GeneralString;
925                 ILL_EDIFACTString *EDIFACTString;
926 #define ILL_String_GeneralString 1
927 #define ILL_String_EDIFACTString 2
928         } u;
929 };
930
931 #define ILL_Intermediary_Problem_cannot_send_onward 1
932
933
934
935
936
937 struct ILL_Item_Id {
938 #define ILL_Item_Id_monograph 1
939 #define ILL_Item_Id_serial 2
940 #define ILL_Item_Id_other 3
941         int *item_type; /* OPT */
942         ILL_Medium_Type *held_medium_type; /* OPT */
943         ILL_String *call_number; /* OPT */
944         ILL_String *author; /* OPT */
945         ILL_String *title; /* OPT */
946         ILL_String *sub_title; /* OPT */
947         ILL_String *sponsoring_body; /* OPT */
948         ILL_String *place_of_publication; /* OPT */
949         ILL_String *publisher; /* OPT */
950         ILL_String *series_title_number; /* OPT */
951         ILL_String *volume_issue; /* OPT */
952         ILL_String *edition; /* OPT */
953         ILL_String *publication_date; /* OPT */
954         ILL_String *publication_date_of_component; /* OPT */
955         ILL_String *author_of_article; /* OPT */
956         ILL_String *title_of_article; /* OPT */
957         ILL_String *pagination; /* OPT */
958         Odr_external *national_bibliography_no; /* OPT */
959         ILL_String *iSBN; /* OPT */
960         ILL_String *iSSN; /* OPT */
961         Odr_external *system_no; /* OPT */
962         ILL_String *additional_no_letters; /* OPT */
963         ILL_String *verification_reference_source; /* OPT */
964 };
965
966 struct ILL_Location_Info {
967         ILL_System_Id *location_id;
968         ILL_System_Address *location_address; /* OPT */
969         ILL_String *location_note; /* OPT */
970 };
971
972 struct ILL_Locations_Results {
973         ILL_Reason_Locs_Provided *reason_locs_provided; /* OPT */
974         int num_locations;
975         ILL_Location_Info **locations;
976 };
977
978 #define ILL_Medium_Type_printed 1
979 #define ILL_Medium_Type_microform 3
980 #define ILL_Medium_Type_film_or_video_recording 4
981 #define ILL_Medium_Type_audio_recording 5
982 #define ILL_Medium_Type_machine_readable 6
983 #define ILL_Medium_Type_other 7
984
985 struct ILL_Name_Of_Person_Or_Institution {
986         int which;
987         union {
988                 ILL_String *name_of_person;
989                 ILL_String *name_of_institution;
990 #define ILL_Name_Of_Person_Or_Institution_name_of_person 1
991 #define ILL_Name_Of_Person_Or_Institution_name_of_institution 2
992         } u;
993 };
994
995 struct ILL_Person_Or_Institution_Symbol {
996         int which;
997         union {
998                 ILL_String *person_symbol;
999                 ILL_String *institution_symbol;
1000 #define ILL_Person_Or_Institution_Symbol_person_symbol 1
1001 #define ILL_Person_Or_Institution_Symbol_institution_symbol 2
1002         } u;
1003 };
1004
1005 #define ILL_Place_On_Hold_Type_yes 1
1006 #define ILL_Place_On_Hold_Type_no 2
1007 #define ILL_Place_On_Hold_Type_according_to_responder_policy 3
1008
1009 struct ILL_Postal_Address {
1010         ILL_Name_Of_Person_Or_Institution *name_of_person_or_institution; /* OPT */
1011         ILL_String *extended_postal_delivery_address; /* OPT */
1012         ILL_String *street_and_number; /* OPT */
1013         ILL_String *post_office_box; /* OPT */
1014         ILL_String *city; /* OPT */
1015         ILL_String *region; /* OPT */
1016         ILL_String *country; /* OPT */
1017         ILL_String *postal_code; /* OPT */
1018 };
1019
1020 struct ILL_Provider_Error_Report {
1021         int which;
1022         union {
1023                 ILL_General_Problem *general_problem;
1024                 ILL_Transaction_Id_Problem *transaction_id_problem;
1025                 ILL_State_Transition_Prohibited *state_transition_prohibited;
1026 #define ILL_Provider_Error_Report_general_problem 1
1027 #define ILL_Provider_Error_Report_transaction_id_problem 2
1028 #define ILL_Provider_Error_Report_state_transition_prohibited 3
1029         } u;
1030 };
1031
1032 #define ILL_Reason_Locs_Provided_in_use_on_loan 1
1033 #define ILL_Reason_Locs_Provided_in_process 2
1034 #define ILL_Reason_Locs_Provided_lost 3
1035 #define ILL_Reason_Locs_Provided_non_circulating 4
1036 #define ILL_Reason_Locs_Provided_not_owned 5
1037 #define ILL_Reason_Locs_Provided_on_order 6
1038 #define ILL_Reason_Locs_Provided_volume_issue_not_yet_available 7
1039 #define ILL_Reason_Locs_Provided_at_bindery 8
1040 #define ILL_Reason_Locs_Provided_lacking 9
1041 #define ILL_Reason_Locs_Provided_not_on_shelf 10
1042 #define ILL_Reason_Locs_Provided_on_reserve 11
1043 #define ILL_Reason_Locs_Provided_poor_condition 12
1044 #define ILL_Reason_Locs_Provided_cost_exceeds_limit 13
1045 #define ILL_Reason_Locs_Provided_on_hold 19
1046 #define ILL_Reason_Locs_Provided_other 27
1047 #define ILL_Reason_Locs_Provided_responder_specific 28
1048
1049 #define ILL_Reason_No_Report_temporary 1
1050 #define ILL_Reason_No_Report_permanent 2
1051
1052 #define ILL_Reason_Unfilled_in_use_on_loan 1
1053 #define ILL_Reason_Unfilled_in_process 2
1054 #define ILL_Reason_Unfilled_lost 3
1055 #define ILL_Reason_Unfilled_non_circulating 4
1056 #define ILL_Reason_Unfilled_not_owned 5
1057 #define ILL_Reason_Unfilled_on_order 6
1058 #define ILL_Reason_Unfilled_volume_issue_not_yet_available 7
1059 #define ILL_Reason_Unfilled_at_bindery 8
1060 #define ILL_Reason_Unfilled_lacking 9
1061 #define ILL_Reason_Unfilled_not_on_shelf 10
1062 #define ILL_Reason_Unfilled_on_reserve 11
1063 #define ILL_Reason_Unfilled_poor_condition 12
1064 #define ILL_Reason_Unfilled_cost_exceeds_limit 13
1065 #define ILL_Reason_Unfilled_charges 14
1066 #define ILL_Reason_Unfilled_prepayment_required 15
1067 #define ILL_Reason_Unfilled_lacks_copyright_compliance 16
1068 #define ILL_Reason_Unfilled_not_found_as_cited 17
1069 #define ILL_Reason_Unfilled_locations_not_found 18
1070 #define ILL_Reason_Unfilled_on_hold 19
1071 #define ILL_Reason_Unfilled_policy_problem 20
1072 #define ILL_Reason_Unfilled_mandatory_messaging_not_supported 21
1073 #define ILL_Reason_Unfilled_expiry_not_supported 22
1074 #define ILL_Reason_Unfilled_requested_delivery_services_not_supported 23
1075 #define ILL_Reason_Unfilled_preferred_delivery_time_not_possible 24
1076 #define ILL_Reason_Unfilled_other 27
1077 #define ILL_Reason_Unfilled_responder_specific 28
1078
1079 #define ILL_Report_Source_user 1
1080 #define ILL_Report_Source_provider 2
1081
1082 struct ILL_Requester_Optional_Messages_Type {
1083         bool_t *can_send_RECEIVED;
1084         bool_t *can_send_RETURNED;
1085 #define ILL_Requester_Optional_Messages_Type_requires 1
1086 #define ILL_Requester_Optional_Messages_Type_desires 2
1087 #define ILL_Requester_Optional_Messages_Type_neither 3
1088         int *requester_SHIPPED;
1089 #define ILL_Requester_Optional_Messages_Type_requires 1
1090 #define ILL_Requester_Optional_Messages_Type_desires 2
1091 #define ILL_Requester_Optional_Messages_Type_neither 3
1092         int *requester_CHECKED_IN;
1093 };
1094
1095 struct ILL_Responder_Optional_Messages_Type {
1096         bool_t *can_send_SHIPPED;
1097         bool_t *can_send_CHECKED_IN;
1098 #define ILL_Responder_Optional_Messages_Type_requires 1
1099 #define ILL_Responder_Optional_Messages_Type_desires 2
1100 #define ILL_Responder_Optional_Messages_Type_neither 3
1101         int *responder_RECEIVED;
1102 #define ILL_Responder_Optional_Messages_Type_requires 1
1103 #define ILL_Responder_Optional_Messages_Type_desires 2
1104 #define ILL_Responder_Optional_Messages_Type_neither 3
1105         int *responder_RETURNED;
1106 };
1107
1108 struct ILL_Retry_Results {
1109 #define ILL_Retry_Results_in_use_on_loan 1
1110 #define ILL_Retry_Results_in_process 2
1111 #define ILL_Retry_Results_on_order 6
1112 #define ILL_Retry_Results_volume_issue_not_yet_available 7
1113 #define ILL_Retry_Results_at_bindery 8
1114 #define ILL_Retry_Results_cost_exceeds_limit 13
1115 #define ILL_Retry_Results_charges 14
1116 #define ILL_Retry_Results_prepayment_required 15
1117 #define ILL_Retry_Results_lacks_copyright_compliance 16
1118 #define ILL_Retry_Results_not_found_as_cited 17
1119 #define ILL_Retry_Results_on_hold 19
1120 #define ILL_Retry_Results_other 27
1121 #define ILL_Retry_Results_responder_specific 28
1122         int *reason_not_available; /* OPT */
1123         ILL_ISO_Date *retry_date; /* OPT */
1124         int num_locations;
1125         ILL_Location_Info **locations; /* OPT */
1126 };
1127
1128 struct ILL_Search_Type {
1129         ILL_String *level_of_service; /* OPT */
1130         ILL_ISO_Date *need_before_date; /* OPT */
1131 #define ILL_Search_Type_need_Before_Date 1
1132 #define ILL_Search_Type_other_Date 2
1133 #define ILL_Search_Type_no_Expiry 3
1134         int *expiry_flag;
1135         ILL_ISO_Date *expiry_date; /* OPT */
1136 };
1137
1138
1139
1140 struct ILL_Send_To_List_Type_s {
1141         ILL_System_Id *system_id;
1142         ILL_Account_Number *account_number; /* OPT */
1143         ILL_System_Address *system_address; /* OPT */
1144 };
1145
1146 struct ILL_Send_To_List_Type {
1147         int num;
1148         ILL_Send_To_List_Type_s **elements;
1149 };
1150
1151 struct ILL_Service_Date_this {
1152         ILL_ISO_Date *date;
1153         ILL_ISO_Time *time; /* OPT */
1154 };
1155
1156 struct ILL_Service_Date_original {
1157         ILL_ISO_Date *date;
1158         ILL_ISO_Time *time; /* OPT */
1159 };
1160
1161 struct ILL_Service_Date_Time {
1162         ILL_Service_Date_this *date_time_of_this_service;
1163         ILL_Service_Date_original *date_time_of_original_service; /* OPT */
1164 };
1165
1166
1167
1168 struct ILL_State_Transition_Prohibited {
1169         ILL_APDU_Type *aPDU_type;
1170         ILL_Current_State *current_state;
1171 };
1172
1173 struct ILL_Status_Report {
1174         ILL_History_Report *user_status_report;
1175         ILL_Current_State *provider_status_report;
1176 };
1177
1178 struct ILL_Supplemental_Item_Description {
1179         int num;
1180         Odr_external **elements;
1181 };
1182
1183 struct ILL_Supply_Details {
1184         ILL_ISO_Date *date_shipped; /* OPT */
1185         ILL_Date_Due *date_due; /* OPT */
1186         int *chargeable_units; /* OPT */
1187         ILL_Amount *cost; /* OPT */
1188 #define ILL_Supply_Details_library_use_only 22
1189 #define ILL_Supply_Details_no_reproduction 23
1190 #define ILL_Supply_Details_client_signature_required 24
1191 #define ILL_Supply_Details_special_collections_supervision_required 25
1192 #define ILL_Supply_Details_other 27
1193         int *shipped_conditions; /* OPT */
1194         int which;
1195         union {
1196                 ILL_Transportation_Mode *physical_delivery;
1197                 ILL_Electronic_Delivery_Service *electronic_delivery;
1198 #define ILL_Supply_Details_physical_delivery 1
1199 #define ILL_Supply_Details_electronic_delivery 2
1200         } u; /* OPT */
1201         ILL_Amount *insured_for; /* OPT */
1202         ILL_Amount *return_insurance_require; /* OPT */
1203         int num_no_of_units_per_medium;
1204         ILL_Units_Per_Medium_Type **no_of_units_per_medium; /* OPT */
1205 };
1206
1207 struct ILL_Supply_Medium_Info_Type {
1208         ILL_Supply_Medium_Type *supply_medium_type;
1209         ILL_String *medium_characteristics; /* OPT */
1210 };
1211
1212 #define ILL_Supply_Medium_Type_printed 1
1213 #define ILL_Supply_Medium_Type_photocopy 2
1214 #define ILL_Supply_Medium_Type_microform 3
1215 #define ILL_Supply_Medium_Type_film_or_video_recording 4
1216 #define ILL_Supply_Medium_Type_audio_recording 5
1217 #define ILL_Supply_Medium_Type_machine_readable 6
1218 #define ILL_Supply_Medium_Type_other 7
1219
1220 struct ILL_System_Address {
1221         ILL_String *telecom_service_identifier; /* OPT */
1222         ILL_String *telecom_service_address; /* OPT */
1223 };
1224
1225 struct ILL_System_Id {
1226         ILL_Person_Or_Institution_Symbol *person_or_institution_symbol; /* OPT */
1227         ILL_Name_Of_Person_Or_Institution *name_of_person_or_institution; /* OPT */
1228 };
1229
1230 struct ILL_Third_Party_Info_Type {
1231         bool_t *permission_to_forward;
1232         bool_t *permission_to_chain;
1233         bool_t *permission_to_partition;
1234         bool_t *permission_to_change_send_to_list;
1235         ILL_System_Address *initial_requester_address; /* OPT */
1236 #define ILL_Third_Party_Info_Type_ordered 1
1237 #define ILL_Third_Party_Info_Type_unordered 2
1238         int *preference;
1239         ILL_Send_To_List_Type *send_to_list; /* OPT */
1240         ILL_Already_Tried_List_Type *already_tried_list; /* OPT */
1241 };
1242
1243 struct ILL_Transaction_Id {
1244         ILL_System_Id *initial_requester_id; /* OPT */
1245         ILL_String *transaction_group_qualifier;
1246         ILL_String *transaction_qualifier;
1247         ILL_String *sub_transaction_qualifier; /* OPT */
1248 };
1249
1250 #define ILL_Transaction_Id_Problem_duplicate_transaction_id 1
1251 #define ILL_Transaction_Id_Problem_invalid_transaction_id 2
1252 #define ILL_Transaction_Id_Problem_unknown_transaction_id 3
1253
1254 #define ILL_Transaction_Results_conditional 1
1255 #define ILL_Transaction_Results_retry 2
1256 #define ILL_Transaction_Results_unfilled 3
1257 #define ILL_Transaction_Results_locations_provided 4
1258 #define ILL_Transaction_Results_will_supply 5
1259 #define ILL_Transaction_Results_hold_placed 6
1260 #define ILL_Transaction_Results_estimate 7
1261
1262 #define ILL_Transaction_Type_simple 1
1263 #define ILL_Transaction_Type_chained 2
1264 #define ILL_Transaction_Type_partitioned 3
1265
1266
1267
1268 #define ILL_Unable_To_Perform_not_available 1
1269 #define ILL_Unable_To_Perform_resource_limitation 2
1270 #define ILL_Unable_To_Perform_other 3
1271
1272 struct ILL_Unfilled_Results {
1273         ILL_Reason_Unfilled *reason_unfilled;
1274         int num_locations;
1275         ILL_Location_Info **locations; /* OPT */
1276 };
1277
1278 struct ILL_Units_Per_Medium_Type {
1279         ILL_Supply_Medium_Type *medium;
1280         int *no_of_units;
1281 };
1282
1283 struct ILL_User_Error_Report {
1284         int which;
1285         union {
1286                 ILL_Already_Forwarded *already_forwarded;
1287                 ILL_Intermediary_Problem *intermediary_problem;
1288                 ILL_Security_Problem *security_problem;
1289                 ILL_Unable_To_Perform *unable_to_perform;
1290 #define ILL_User_Error_Report_already_forwarded 1
1291 #define ILL_User_Error_Report_intermediary_problem 2
1292 #define ILL_User_Error_Report_security_problem 3
1293 #define ILL_User_Error_Report_unable_to_perform 4
1294         } u;
1295 };
1296
1297 struct ILL_Will_Supply_Results {
1298 #define ILL_Will_Supply_Results_in_use_on_loan 1
1299 #define ILL_Will_Supply_Results_in_process 2
1300 #define ILL_Will_Supply_Results_on_order 6
1301 #define ILL_Will_Supply_Results_at_bindery 8
1302 #define ILL_Will_Supply_Results_on_hold 19
1303 #define ILL_Will_Supply_Results_being_processed_for_supply 26
1304 #define ILL_Will_Supply_Results_other 27
1305 #define ILL_Will_Supply_Results_responder_specific 28
1306 #define ILL_Will_Supply_Results_electronic_delivery 30
1307         int *reason_will_supply;
1308         ILL_ISO_Date *supply_date; /* OPT */
1309         ILL_Postal_Address *return_to_address; /* OPT */
1310         int num_locations;
1311         ILL_Location_Info **locations; /* OPT */
1312         ILL_Electronic_Delivery_Service *electronic_delivery_service; /* OPT */
1313 };
1314
1315
1316
1317 #ifdef __cplusplus
1318 }
1319 #endif
1320
1321 #ifdef __cplusplus
1322 extern "C" {
1323 #endif
1324
1325 #ifdef __cplusplus
1326 }
1327 #endif
1328
1329 #endif