Skip to main content

x12_types/v005010/segment/
a.rs

1use serde::{Deserialize, Serialize};
2use validator::Validate;
3use x12_types_macros::{DisplaySegment, ParseSegment};
4
5/// ADJ - Adjustments
6///
7/// To specify adjustments to balances or services
8///
9/// REF | ID | NAME | REQ | TYPE | MIN/MAX
10/// ----|----|-------|----|------|-------
11/// 01 | 952 | Adjustment Application Code | M | ID | 1/2
12/// 02 | 782 | Monetary Amount | M | R | 1/18
13/// 03 | 782 | Monetary Amount | O | R | 1/18
14/// 04 | 373 | Date | M | DT | 8/8
15/// 05 | 373 | Date | M | DT | 8/8
16/// 06 | 1470 | Number | O | N0 | 1/9
17/// 07 | 352 | Description | O | AN | 1/80
18/// 08 | 235 | Product/Service ID Qualifier | X | ID | 2/2
19/// 09 | 234 | Product/Service ID | X | AN | 1/48
20/// 10 | 610 | Amount | X | N2 | 1/15
21/// 11 | 610 | Amount | X | N2 | 1/15
22/// 12 | 610 | Amount | X | N2 | 1/15
23/// 13 | 380 | Quantity | X | R | 1/15
24/// 14 | 380 | Quantity | X | R | 1/15
25/// 15 | 380 | Quantity | X | R | 1/15
26/// 16 | 128 | Reference Identification Qualifier | X | ID | 2/3
27/// 17 | 127 | Reference Identification | X | AN | 1/50
28#[derive(
29    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
30)]
31pub struct ADJ {
32    #[serde(rename = "01")]
33    pub _01: crate::v005010::element::E952,
34    #[serde(rename = "02")]
35    pub _02: crate::v005010::element::E782,
36    #[serde(rename = "03")]
37    pub _03: Option<crate::v005010::element::E782>,
38    #[serde(rename = "04")]
39    pub _04: String,
40    #[serde(rename = "05")]
41    pub _05: String,
42    #[serde(rename = "06")]
43    pub _06: Option<crate::v005010::element::E1470>,
44    #[serde(rename = "07")]
45    pub _07: Option<String>,
46    #[serde(rename = "08")]
47    pub _08: Option<String>,
48    #[serde(rename = "09")]
49    pub _09: Option<String>,
50    #[serde(rename = "10")]
51    pub _10: Option<crate::v005010::element::E610>,
52    #[serde(rename = "11")]
53    pub _11: Option<crate::v005010::element::E610>,
54    #[serde(rename = "12")]
55    pub _12: Option<crate::v005010::element::E610>,
56    #[serde(rename = "13")]
57    pub _13: Option<String>,
58    #[serde(rename = "14")]
59    pub _14: Option<String>,
60    #[serde(rename = "15")]
61    pub _15: Option<String>,
62    #[serde(rename = "16")]
63    pub _16: Option<String>,
64    #[serde(rename = "17")]
65    pub _17: Option<String>,
66}
67
68/// AVA - Account Availability
69///
70/// To specify the monetary amount and funds availability
71///
72/// REF | ID | NAME | REQ | TYPE | MIN/MAX
73/// ----|----|-------|----|------|-------
74/// 01 | 782 | Monetary Amount | M | R | 1/18
75/// 02 | 895 | Availability | M | R | 1/6
76#[derive(
77    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
78)]
79pub struct AVA {
80    #[serde(rename = "01")]
81    pub _01: crate::v005010::element::E782,
82    #[serde(rename = "02")]
83    pub _02: crate::v005010::element::E895,
84}
85
86/// ATA - Beginning Segment for Motor Carrier Delivery Trailer Manifest
87///
88/// To transmit identifying numbers and dates relating to the delivery trailer manifest
89///
90/// REF | ID | NAME | REQ | TYPE | MIN/MAX
91/// ----|----|-------|----|------|-------
92/// 01 | 140 | Standard Carrier Alpha Code | M | ID | 2/4
93/// 02 | 127 | Reference Identification | M | AN | 1/50
94/// 03 | 373 | Date | O | DT | 8/8
95#[derive(
96    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
97)]
98pub struct ATA {
99    #[serde(rename = "01")]
100    pub _01: String,
101    #[serde(rename = "02")]
102    pub _02: String,
103    #[serde(rename = "03")]
104    pub _03: Option<String>,
105}
106
107/// API - Additional Process Information
108///
109/// To provide additional process-related information
110///
111/// REF | ID | NAME | REQ | TYPE | MIN/MAX
112/// ----|----|-------|----|------|-------
113/// 01 | 1136 | Code Category | M | ID | 2/2
114/// 02 | 306 | Action Code | O | ID | 1/2
115/// 03 | 875 | Maintenance Type Code | O | ID | 3/3
116/// 04 | 641 | Status Reason Code | O | ID | 3/3
117/// 05 | 1469 | Affected Area or Section Code | O | ID | 1/1
118/// 06 | 1336 | Insurance Type Code | O | ID | 1/3
119/// 07 | 1262 | Loan Type Code | O | ID | 1/2
120/// 08 | 1201 | Information Status Code | O | ID | 1/1
121#[derive(
122    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
123)]
124pub struct API {
125    #[serde(rename = "01")]
126    pub _01: crate::v005010::element::E1136,
127    #[serde(rename = "02")]
128    pub _02: Option<String>,
129    #[serde(rename = "03")]
130    pub _03: Option<crate::v005010::element::E875>,
131    #[serde(rename = "04")]
132    pub _04: Option<crate::v005010::element::E641>,
133    #[serde(rename = "05")]
134    pub _05: Option<crate::v005010::element::E1469>,
135    #[serde(rename = "06")]
136    pub _06: Option<crate::v005010::element::E1336>,
137    #[serde(rename = "07")]
138    pub _07: Option<crate::v005010::element::E1262>,
139    #[serde(rename = "08")]
140    pub _08: Option<crate::v005010::element::E1201>,
141}
142
143/// AAA - Request Validation
144#[derive(
145    Serialize,
146    Deserialize,
147    Clone,
148    Default,
149    Debug,
150    Validate,
151    PartialEq,
152    Eq,
153    DisplaySegment,
154    ParseSegment,
155)]
156pub struct AAA {
157    #[serde(rename = "01")]
158    pub _01: Option<String>,
159    #[serde(rename = "02")]
160    pub _02: Option<String>,
161    #[serde(rename = "03")]
162    pub _03: Option<String>,
163    #[serde(rename = "04")]
164    pub _04: Option<String>,
165    #[serde(rename = "05")]
166    pub _05: Option<String>,
167    #[serde(rename = "06")]
168    pub _06: Option<String>,
169}
170
171/// ACT - Account Identification
172#[derive(
173    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
174)]
175pub struct ACT {
176    #[serde(rename = "01")]
177    pub _01: String,
178    #[serde(rename = "02")]
179    pub _02: Option<String>,
180    #[serde(rename = "03")]
181    pub _03: Option<String>,
182    #[serde(rename = "04")]
183    pub _04: Option<String>,
184    #[serde(rename = "05")]
185    pub _05: Option<String>,
186    #[serde(rename = "06")]
187    pub _06: Option<String>,
188    #[serde(rename = "07")]
189    pub _07: Option<String>,
190    #[serde(rename = "08")]
191    pub _08: Option<String>,
192    #[serde(rename = "09")]
193    pub _09: Option<String>,
194}
195
196/// AD1 - Adjustment Amount
197#[derive(
198    Serialize,
199    Deserialize,
200    Clone,
201    Default,
202    Debug,
203    Validate,
204    PartialEq,
205    Eq,
206    DisplaySegment,
207    ParseSegment,
208)]
209pub struct AD1 {
210    #[serde(rename = "01")]
211    pub _01: String,
212    #[serde(rename = "02")]
213    pub _02: Option<String>,
214    #[serde(rename = "03")]
215    pub _03: Option<String>,
216    #[serde(rename = "04")]
217    pub _04: Option<String>,
218    #[serde(rename = "05")]
219    pub _05: Option<String>,
220}
221
222/// AIN - Income
223#[derive(
224    Serialize,
225    Deserialize,
226    Clone,
227    Default,
228    Debug,
229    Validate,
230    PartialEq,
231    Eq,
232    DisplaySegment,
233    ParseSegment,
234)]
235pub struct AIN {
236    #[serde(rename = "01")]
237    pub _01: String,
238    #[serde(rename = "02")]
239    pub _02: String,
240    #[serde(rename = "03")]
241    pub _03: String,
242    #[serde(rename = "04")]
243    pub _04: Option<String>,
244    #[serde(rename = "05")]
245    pub _05: Option<String>,
246    #[serde(rename = "06")]
247    pub _06: Option<String>,
248    #[serde(rename = "07")]
249    pub _07: Option<String>,
250    #[serde(rename = "08")]
251    pub _08: Option<String>,
252    #[serde(rename = "09")]
253    pub _09: Option<String>,
254    #[serde(rename = "10")]
255    pub _10: Option<String>,
256    #[serde(rename = "11")]
257    pub _11: Option<String>,
258    #[serde(rename = "12")]
259    pub _12: Option<String>,
260    #[serde(rename = "13")]
261    pub _13: Option<String>,
262}
263
264/// AMT - Monitary Amount Information
265#[derive(
266    Serialize,
267    Deserialize,
268    Clone,
269    Default,
270    Debug,
271    Validate,
272    PartialEq,
273    Eq,
274    DisplaySegment,
275    ParseSegment,
276)]
277pub struct AMT {
278    /// 522 - Amount Qualifier Code
279    #[serde(rename = "01")]
280    pub _01: crate::v005010::element::E522,
281    #[serde(rename = "02")]
282    pub _02: String,
283    /// 478 - Credit/Debit Flag Code
284    #[serde(rename = "03")]
285    pub _03: Option<crate::v005010::element::E478>,
286}
287
288/// AK1 - Functional Group Response Header
289#[derive(
290    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
291)]
292pub struct AK1 {
293    #[serde(rename = "01")]
294    pub _01: Option<String>,
295    #[serde(rename = "02")]
296    pub _02: Option<String>,
297}
298
299/// AK2 - Transaction Set Response Header
300#[derive(
301    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
302)]
303pub struct AK2 {
304    #[serde(rename = "01")]
305    pub _01: Option<String>,
306    #[serde(rename = "02")]
307    pub _02: Option<String>,
308}
309
310/// AK9 - Functional Group Response Trailer
311#[derive(
312    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
313)]
314pub struct AK9 {
315    #[serde(rename = "01")]
316    pub _01: Option<String>,
317    #[serde(rename = "02")]
318    pub _02: Option<String>,
319    #[serde(rename = "03")]
320    pub _03: Option<String>,
321    #[serde(rename = "04")]
322    pub _04: Option<String>,
323    #[serde(rename = "05")]
324    pub _05: Option<String>,
325    #[serde(rename = "06")]
326    pub _06: Option<String>,
327    #[serde(rename = "07")]
328    pub _07: Option<String>,
329}
330
331/// ADX - Adjustment
332#[derive(
333    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
334)]
335pub struct ADX {
336    #[serde(rename = "01")]
337    pub _01: Option<String>,
338    #[serde(rename = "02")]
339    pub _02: Option<String>,
340    #[serde(rename = "03")]
341    pub _03: Option<String>,
342    #[serde(rename = "04")]
343    pub _04: Option<String>,
344}
345
346/// ASI - Action or Status Indicator
347///
348/// To indicate the action to be taken with the information provided or the status of an entity
349///
350/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
351/// ----|----|-------|--------|----|------|-------
352/// 01 | 306 | Action Code | 1 | M | ID | 1/2
353/// 02 | 875 | Maintenance Type Code | 1 | M | ID | 3/3
354/// 03 | 641 | Status Reason Code | 1 | O | ID | 3/3
355#[derive(
356    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
357)]
358pub struct ASI {
359    #[serde(rename = "01")]
360    pub _01: String,
361    #[serde(rename = "02")]
362    pub _02: crate::v005010::element::E875,
363    #[serde(rename = "03")]
364    pub _03: Option<crate::v005010::element::E641>,
365}
366
367/// ASM - Amount and Settlement Method
368#[derive(
369    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
370)]
371pub struct ASM {
372    #[serde(rename = "01")]
373    pub _01: Option<String>,
374    #[serde(rename = "02")]
375    pub _02: Option<String>,
376    #[serde(rename = "03")]
377    pub _03: Option<String>,
378    #[serde(rename = "04")]
379    pub _04: Option<String>,
380    #[serde(rename = "05")]
381    pub _05: Option<String>,
382    #[serde(rename = "06")]
383    pub _06: Option<String>,
384    #[serde(rename = "07")]
385    pub _07: Option<String>,
386    #[serde(rename = "08")]
387    pub _08: Option<String>,
388    #[serde(rename = "09")]
389    pub _09: Option<String>,
390    #[serde(rename = "10")]
391    pub _10: Option<String>,
392    #[serde(rename = "11")]
393    pub _11: Option<String>,
394    #[serde(rename = "12")]
395    pub _12: Option<String>,
396    #[serde(rename = "13")]
397    pub _13: Option<String>,
398    #[serde(rename = "14")]
399    pub _14: Option<String>,
400    #[serde(rename = "15")]
401    pub _15: Option<String>,
402    #[serde(rename = "16")]
403    pub _16: Option<String>,
404    #[serde(rename = "17")]
405    pub _17: Option<String>,
406    #[serde(rename = "18")]
407    pub _18: Option<String>,
408    #[serde(rename = "19")]
409    pub _19: Option<String>,
410    #[serde(rename = "20")]
411    pub _20: Option<String>,
412    #[serde(rename = "21")]
413    pub _21: Option<String>,
414    #[serde(rename = "22")]
415    pub _22: Option<String>,
416    #[serde(rename = "23")]
417    pub _23: Option<String>,
418    #[serde(rename = "24")]
419    pub _24: Option<String>,
420    #[serde(rename = "25")]
421    pub _25: Option<String>,
422}
423
424/// ATH - Resource Authorization
425///
426/// To specify the cumulative authorization, including period and quantity, for resources
427///
428/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
429/// ----|----|-------|--------|----|------|-------
430/// 01 | 672 | Resource Authorization Code | 1 | M | ID | 2/2
431/// 02 | 373 | Date | 1 | X | DT | 8/8
432/// 03 | 380 | Quantity | 1 | X | R | 1/15
433/// 04 | 380 | Quantity | 1 | O | R | 1/15
434/// 05 | 373 | Date | 1 | X | DT | 8/8
435#[derive(
436    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
437)]
438pub struct ATH {
439    #[serde(rename = "01")]
440    pub _01: crate::v005010::element::E672,
441    #[serde(rename = "02")]
442    pub _02: Option<String>,
443    #[serde(rename = "03")]
444    pub _03: Option<String>,
445    #[serde(rename = "04")]
446    pub _04: Option<String>,
447    #[serde(rename = "05")]
448    pub _05: Option<String>,
449}
450
451/// ATN - Attendance
452#[derive(
453    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
454)]
455pub struct ATN {
456    #[serde(rename = "01")]
457    pub _01: Option<String>,
458    #[serde(rename = "02")]
459    pub _02: Option<String>,
460    #[serde(rename = "03")]
461    pub _03: Option<String>,
462    #[serde(rename = "04")]
463    pub _04: Option<String>,
464    #[serde(rename = "05")]
465    pub _05: Option<String>,
466    #[serde(rename = "06")]
467    pub _06: Option<String>,
468    #[serde(rename = "07")]
469    pub _07: Option<String>,
470    #[serde(rename = "08")]
471    pub _08: Option<String>,
472    #[serde(rename = "09")]
473    pub _09: Option<String>,
474    #[serde(rename = "10")]
475    pub _10: Option<String>,
476    #[serde(rename = "11")]
477    pub _11: Option<String>,
478    #[serde(rename = "12")]
479    pub _12: Option<String>,
480    #[serde(rename = "13")]
481    pub _13: Option<String>,
482    #[serde(rename = "14")]
483    pub _14: Option<String>,
484    #[serde(rename = "15")]
485    pub _15: Option<String>,
486    #[serde(rename = "16")]
487    pub _16: Option<String>,
488    #[serde(rename = "17")]
489    pub _17: Option<String>,
490    #[serde(rename = "18")]
491    pub _18: Option<String>,
492    #[serde(rename = "19")]
493    pub _19: Option<String>,
494    #[serde(rename = "20")]
495    pub _20: Option<String>,
496    #[serde(rename = "21")]
497    pub _21: Option<String>,
498    #[serde(rename = "22")]
499    pub _22: Option<String>,
500    #[serde(rename = "23")]
501    pub _23: Option<String>,
502    #[serde(rename = "24")]
503    pub _24: Option<String>,
504    #[serde(rename = "25")]
505    pub _25: Option<String>,
506}
507
508/// ADV - Advertising Demographic Information
509///
510/// ### Relational Conditions
511///
512/// - P0607 - If either ADV06 or ADV07 is present, then the other is required.
513#[derive(
514    Serialize,
515    Deserialize,
516    Clone,
517    Default,
518    Debug,
519    Validate,
520    PartialEq,
521    Eq,
522    DisplaySegment,
523    ParseSegment,
524)]
525pub struct ADV {
526    #[serde(rename = "01")]
527    pub _01: Option<String>,
528    #[serde(rename = "02")]
529    pub _02: Option<String>,
530    #[serde(rename = "03")]
531    pub _03: Option<String>,
532    #[serde(rename = "04")]
533    pub _04: Option<String>,
534    #[serde(rename = "05")]
535    pub _05: Option<String>,
536    #[serde(rename = "06")]
537    pub _06: Option<String>,
538    #[serde(rename = "07")]
539    pub _07: Option<String>,
540}
541
542/// ACK - Line Item Acknowledgment
543#[derive(
544    Serialize,
545    Deserialize,
546    Clone,
547    Default,
548    Debug,
549    Validate,
550    PartialEq,
551    Eq,
552    DisplaySegment,
553    ParseSegment,
554)]
555pub struct ACK {
556    #[serde(rename = "01")]
557    pub _01: String,
558    #[serde(rename = "02")]
559    pub _02: Option<String>,
560    #[serde(rename = "03")]
561    pub _03: Option<String>,
562    #[serde(rename = "04")]
563    pub _04: Option<String>,
564    #[serde(rename = "05")]
565    pub _05: Option<String>,
566    #[serde(rename = "06")]
567    pub _06: Option<String>,
568    #[serde(rename = "07")]
569    pub _07: Option<String>,
570    #[serde(rename = "08")]
571    pub _08: Option<String>,
572    #[serde(rename = "09")]
573    pub _09: Option<String>,
574    #[serde(rename = "10")]
575    pub _10: Option<String>,
576    #[serde(rename = "11")]
577    pub _11: Option<String>,
578    #[serde(rename = "12")]
579    pub _12: Option<String>,
580    #[serde(rename = "13")]
581    pub _13: Option<String>,
582    #[serde(rename = "14")]
583    pub _14: Option<String>,
584    #[serde(rename = "15")]
585    pub _15: Option<String>,
586    #[serde(rename = "16")]
587    pub _16: Option<String>,
588    #[serde(rename = "17")]
589    pub _17: Option<String>,
590    #[serde(rename = "18")]
591    pub _18: Option<String>,
592    #[serde(rename = "19")]
593    pub _19: Option<String>,
594    #[serde(rename = "20")]
595    pub _20: Option<String>,
596    #[serde(rename = "21")]
597    pub _21: Option<String>,
598    #[serde(rename = "22")]
599    pub _22: Option<String>,
600    #[serde(rename = "23")]
601    pub _23: Option<String>,
602    #[serde(rename = "24")]
603    pub _24: Option<String>,
604    #[serde(rename = "25")]
605    pub _25: Option<String>,
606    #[serde(rename = "26")]
607    pub _26: Option<String>,
608    #[serde(rename = "27")]
609    pub _27: Option<String>,
610    #[serde(rename = "28")]
611    pub _28: Option<String>,
612    #[serde(rename = "29")]
613    pub _29: Option<String>,
614    #[serde(rename = "30")]
615    pub _30: Option<String>,
616}
617
618/// AK3 - Data Segment Note
619///
620/// To report errors in a data segment, and identify the location of a data segment
621///
622/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
623/// ----|----|-------|--------|----|------|-------
624/// 01 | 721 | Segment ID Code | 1 | M | ID | 2/3
625/// 02 | 719 | Segment Position in Transaction Set | 1 | M | N0 | 1/6
626/// 03 | 447 | Loop Identifier Code | 1 | O | AN | 1/6
627/// 04 | 720 | Segment Syntax Error Code | 1 | O | ID | 1/3
628#[derive(
629    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
630)]
631pub struct AK3 {
632    #[serde(rename = "01")]
633    pub _01: String,
634    #[serde(rename = "02")]
635    pub _02: crate::v005010::element::E719,
636    #[serde(rename = "03")]
637    pub _03: Option<String>,
638    #[serde(rename = "04")]
639    pub _04: Option<crate::v005010::element::E720>,
640}
641
642/// AK4 - Data Element Note
643///
644/// To report errors in a data element, and identify the location of a data element
645///
646/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
647/// ----|----|-------|--------|----|------|-------
648/// 01 | C030 | Position in Segment | 1 | M
649/// 02 | 723 | Data Element Reference Number | 1 | O | N0 | 1/4
650/// 03 | 724 | Data Element Syntax Error Code | 1 | O | ID | 1/3
651/// 04 | 725 | Copy of Bad Data Element | 1 | O | AN | 1/99
652#[derive(
653    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
654)]
655pub struct AK4 {
656    #[serde(rename = "01")]
657    pub _01: String,
658    #[serde(rename = "02")]
659    pub _02: Option<crate::v005010::element::E723>,
660    #[serde(rename = "03")]
661    pub _03: String,
662    #[serde(rename = "04")]
663    pub _04: Option<crate::v005010::element::E725>,
664}
665
666/// AK5 - Transaction Set Response Trailer
667///
668/// To acknowledge acceptance/rejection of a transaction set and report errors
669///
670/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
671/// ----|----|-------|--------|----|------|-------
672/// 01 | 717 | Transaction Set Acknowledgment Code | 1 | M | ID | 1/1
673/// 02 | 718 | Transaction Set Syntax Error Code | 1 | O | ID | 1/3
674/// 03 | 718 | Transaction Set Syntax Error Code | 1 | O | ID | 1/3
675/// 04 | 718 | Transaction Set Syntax Error Code | 1 | O | ID | 1/3
676/// 05 | 718 | Transaction Set Syntax Error Code | 1 | O | ID | 1/3
677/// 06 | 718 | Transaction Set Syntax Error Code | 1 | O | ID | 1/3
678#[derive(
679    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
680)]
681pub struct AK5 {
682    #[serde(rename = "01")]
683    pub _01: crate::v005010::element::E717,
684    #[serde(rename = "02")]
685    pub _02: Option<crate::v005010::element::E718>,
686    #[serde(rename = "03")]
687    pub _03: Option<crate::v005010::element::E718>,
688    #[serde(rename = "04")]
689    pub _04: Option<crate::v005010::element::E718>,
690    #[serde(rename = "05")]
691    pub _05: Option<crate::v005010::element::E718>,
692    #[serde(rename = "06")]
693    pub _06: Option<crate::v005010::element::E718>,
694}
695
696/// AT1 - Bill of Lading Line Item Number
697///
698/// To reference bill of lading line numbers; may include reference numbers, rates and charges, descriptions, and/or line item details
699///
700/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
701/// ----|----|-------|--------|----|------|-------
702/// 01 | 213 | Lading Line Item Number | 1 | M | N0 | 1/3
703#[derive(
704    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
705)]
706pub struct AT1 {
707    #[serde(rename = "01")]
708    pub _01: crate::v005010::element::E213,
709}
710
711/// AT2 - Bill of Lading Line Item Detail
712///
713/// To provide the carrier with the appropriate data to rate the shipment
714///
715/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
716/// ----|----|-------|--------|----|------|-------
717/// 01 | 80 | Lading Quantity | 1 | X | N0 | 1/7
718/// 02 | 211 | Packaging Form Code | 1 | X | ID | 3/3
719/// 03 | 187 | Weight Qualifier | 1 | M | ID | 1/2
720/// 04 | 188 | Weight Unit Code | 1 | M | ID | 1/1
721/// 05 | 81 | Weight | 1 | M | R | 1/10
722/// 06 | 80 | Lading Quantity | 1 | X | N0 | 1/7
723/// 07 | 211 | Packaging Form Code | 1 | X | ID | 3/3
724/// 08 | 1073 | Yes/No Condition or Response Code | 1 | O | ID | 1/1
725/// 09 | 22 | Commodity Code | 1 | O | AN | 1/30
726/// 10 | 59 | Freight Class Code | 1 | O | AN | 2/5
727/// 11 | 1073 | Yes/No Condition or Response Code | 1 | O | ID | 1/1
728/// 12 | 148 | Lading Value | 1 | O | R | 2/9
729#[derive(
730    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
731)]
732pub struct AT2 {
733    #[serde(rename = "01")]
734    pub _01: Option<crate::v005010::element::E80>,
735    #[serde(rename = "02")]
736    pub _02: Option<crate::v005010::element::E211>,
737    #[serde(rename = "03")]
738    pub _03: String,
739    #[serde(rename = "04")]
740    pub _04: String,
741    #[serde(rename = "05")]
742    pub _05: crate::v005010::element::E81,
743    #[serde(rename = "06")]
744    pub _06: Option<crate::v005010::element::E80>,
745    #[serde(rename = "07")]
746    pub _07: Option<crate::v005010::element::E211>,
747    #[serde(rename = "08")]
748    pub _08: Option<crate::v005010::element::E1073>,
749    #[serde(rename = "09")]
750    pub _09: Option<String>,
751    #[serde(rename = "10")]
752    pub _10: Option<String>,
753    #[serde(rename = "11")]
754    pub _11: Option<crate::v005010::element::E1073>,
755    #[serde(rename = "12")]
756    pub _12: Option<crate::v005010::element::E148>,
757}
758
759/// AT3 - Bill of Lading Rates and Charges
760///
761/// To provide a means of transmitting freight charges and the basis for those charges
762///
763/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
764/// ----|----|-------|--------|----|------|-------
765/// 01 | 58 | Amount Charged | 1 | M | N2 | 1/15
766/// 02 | 1600 | Freight Rate Qualifier | 1 | X | ID | 2/2
767/// 03 | 60 | Freight Rate | 1 | X | R | 1/9
768/// 04 | 1601 | Rated-as Qualifier | 1 | X | ID | 2/2
769/// 05 | 380 | Quantity | 1 | X | R | 1/15
770/// 06 | 1602 | Bill of Lading Charge Code | 1 | X | ID | 3/3
771/// 07 | 954 | Percent | 1 | X | R | 1/10
772#[derive(
773    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
774)]
775pub struct AT3 {
776    #[serde(rename = "01")]
777    pub _01: crate::v005010::element::E58,
778    #[serde(rename = "02")]
779    pub _02: Option<crate::v005010::element::E1600>,
780    #[serde(rename = "03")]
781    pub _03: Option<crate::v005010::element::E60>,
782    #[serde(rename = "04")]
783    pub _04: Option<crate::v005010::element::E1601>,
784    #[serde(rename = "05")]
785    pub _05: Option<String>,
786    #[serde(rename = "06")]
787    pub _06: Option<crate::v005010::element::E1602>,
788    #[serde(rename = "07")]
789    pub _07: Option<crate::v005010::element::E954>,
790}
791
792/// AT4 - Bill of Lading Description
793///
794/// To provide a text description of the line item
795///
796/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
797/// ----|----|-------|--------|----|------|-------
798/// 01 | 79 | Lading Description | 1 | M | AN | 1/50
799#[derive(
800    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
801)]
802pub struct AT4 {
803    #[serde(rename = "01")]
804    pub _01: String,
805}
806
807/// AT5 - Shipment Status Details
808///
809/// To specify the status of a shipment
810///
811/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
812/// ----|----|-------|--------|----|------|-------
813/// 01 | 127 | Reference Identification | 1 | O | AN | 1/30
814/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
815/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
816#[derive(
817    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
818)]
819pub struct AT5 {
820    #[serde(rename = "01")]
821    pub _01: Option<String>,
822    #[serde(rename = "02")]
823    pub _02: Option<String>,
824    #[serde(rename = "03")]
825    pub _03: Option<String>,
826}
827
828/// AT7 - Shipment Status Details
829///
830/// To specify the status of a shipment
831///
832/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
833/// ----|----|-------|--------|----|------|-------
834/// 01 | 127 | Reference Identification | 1 | O | AN | 1/30
835/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
836/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
837/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
838/// 05 | 373 | Date | 1 | O | DT | 8/8
839/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
840/// 07 | 623 | Time Code | 1 | O | ID | 2/2
841#[derive(
842    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
843)]
844pub struct AT7 {
845    #[serde(rename = "01")]
846    pub _01: Option<String>,
847    #[serde(rename = "02")]
848    pub _02: Option<String>,
849    #[serde(rename = "03")]
850    pub _03: Option<String>,
851    #[serde(rename = "04")]
852    pub _04: Option<String>,
853    /// 373 - Date
854    ///
855    /// Date expressed as CCYYMMDD where CC represents the first two digits of the calendar year
856    /// - TYPE=DT
857    /// - MIN=8
858    /// - MAX=8
859    #[serde(rename = "05")]
860    pub _05: Option<String>,
861    #[serde(rename = "06")]
862    pub _06: Option<String>,
863    /// 623 - Time Code
864    ///
865    /// Code identifying the time. In accordance with International Standards Organization standard 8601, time can be specified by a + or - and an indication in hours in relation to Universal Time Coordinate (UTC) time; since + is a restricted character, + and - are substituted by P and M in the codes that follow
866    /// - TYPE=ID
867    /// - MIN=2
868    /// - MAX=2
869    #[serde(rename = "07")]
870    pub _07: Option<crate::v005010::element::E623>,
871}
872
873/// AT9 - Trailer or Container Dimension and Weight
874///
875/// To specify the dimensions and weight of a trailer or container
876///
877/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
878/// ----|----|-------|--------|----|------|-------
879/// 01 | 567 | Equipment Length | 1 | O | N0 | 4/5
880/// 02 | 65 | Height | 1 | O | R | 1/8
881/// 03 | 189 | Width | 1 | O | R | 1/8
882/// 04 | 187 | Weight Qualifier | 1 | X | ID | 1/2
883/// 05 | 188 | Weight Unit Code | 1 | X | ID | 1/1
884/// 06 | 81 | Weight | 1 | X | R | 1/10
885/// 07 | 184 | Volume Unit Qualifier | 1 | X | ID | 1/1
886/// 08 | 183 | Volume | 1 | X | R | 1/8
887#[derive(
888    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
889)]
890pub struct AT9 {
891    #[serde(rename = "01")]
892    pub _01: Option<crate::v005010::element::E567>,
893    #[serde(rename = "02")]
894    pub _02: Option<crate::v005010::element::E65>,
895    #[serde(rename = "03")]
896    pub _03: Option<crate::v005010::element::E189>,
897    #[serde(rename = "04")]
898    pub _04: Option<String>,
899    #[serde(rename = "05")]
900    pub _05: Option<String>,
901    #[serde(rename = "06")]
902    pub _06: Option<crate::v005010::element::E81>,
903    #[serde(rename = "07")]
904    pub _07: Option<crate::v005010::element::E184>,
905    #[serde(rename = "08")]
906    pub _08: Option<crate::v005010::element::E183>,
907}
908
909/// AT8 - Shipment Status Details
910///
911/// To specify the status of a shipment
912///
913/// REF | ID | NAME | REPEAT | REQ | TYPE | MIN/MAX
914/// ----|----|-------|--------|----|------|-------
915/// 01 | 127 | Reference Identification | 1 | O | AN | 1/30
916/// 02 | 127 | Reference Identification | 1 | O | AN | 1/30
917/// 03 | 127 | Reference Identification | 1 | O | AN | 1/30
918/// 04 | 127 | Reference Identification | 1 | O | AN | 1/30
919/// 05 | 127 | Reference Identification | 1 | O | AN | 1/30
920/// 06 | 127 | Reference Identification | 1 | O | AN | 1/30
921/// 07 | 127 | Reference Identification | 1 | O | AN | 1/30
922#[derive(
923    Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
924)]
925pub struct AT8 {
926    #[serde(rename = "01")]
927    pub _01: Option<String>,
928    #[serde(rename = "02")]
929    pub _02: Option<String>,
930    #[serde(rename = "03")]
931    pub _03: Option<String>,
932    #[serde(rename = "04")]
933    pub _04: Option<String>,
934    #[serde(rename = "05")]
935    pub _05: Option<String>,
936    #[serde(rename = "06")]
937    pub _06: Option<String>,
938    #[serde(rename = "07")]
939    pub _07: Option<String>,
940}