1use crate::v005010::element;
2use serde::{Deserialize, Serialize};
3use validator::Validate;
4use x12_types_macros::{DisplaySegment, ParseSegment};
5
6#[derive(
17 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
18)]
19pub struct IMA {
20 #[serde(rename = "01")]
21 pub _01: crate::v005010::element::E748,
22 #[serde(rename = "02")]
23 pub _02: Option<String>,
24 #[serde(rename = "03")]
25 pub _03: Option<crate::v005010::element::E257>,
26 #[serde(rename = "04")]
27 pub _04: Option<crate::v005010::element::E257>,
28}
29
30#[derive(
49 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
50)]
51pub struct IND {
52 #[serde(rename = "01")]
53 pub _01: Option<String>,
54 #[serde(rename = "02")]
55 pub _02: Option<String>,
56 #[serde(rename = "03")]
57 pub _03: Option<String>,
58 #[serde(rename = "04")]
59 pub _04: Option<String>,
60 #[serde(rename = "05")]
61 pub _05: Option<String>,
62 #[serde(rename = "06")]
63 pub _06: Option<crate::v005010::element::E1476>,
64 #[serde(rename = "07")]
65 pub _07: Option<String>,
66 #[serde(rename = "08")]
67 pub _08: Option<String>,
68 #[serde(rename = "09")]
69 pub _09: Option<String>,
70 #[serde(rename = "10")]
71 pub _10: Option<String>,
72 #[serde(rename = "11")]
73 pub _11: Option<String>,
74 #[serde(rename = "12")]
75 pub _12: Option<String>,
76}
77
78#[derive(
80 Serialize,
81 Deserialize,
82 Clone,
83 Default,
84 Debug,
85 Validate,
86 PartialEq,
87 Eq,
88 DisplaySegment,
89 ParseSegment,
90)]
91pub struct ICM {
92 #[serde(rename = "01")]
93 pub _01: String,
94 #[serde(rename = "02")]
95 pub _02: String,
96 #[serde(rename = "03")]
97 pub _03: Option<String>,
98 #[serde(rename = "04")]
99 pub _04: Option<String>,
100 #[serde(rename = "05")]
101 pub _05: Option<String>,
102 #[serde(rename = "06")]
103 pub _06: Option<String>,
104}
105
106#[derive(
108 Serialize,
109 Deserialize,
110 Clone,
111 Default,
112 Debug,
113 Validate,
114 PartialEq,
115 Eq,
116 DisplaySegment,
117 ParseSegment,
118)]
119pub struct IDC {
120 #[serde(rename = "01")]
121 pub _01: String,
122 #[serde(rename = "02")]
123 pub _02: String,
124 #[serde(rename = "03")]
125 pub _03: Option<String>,
126 #[serde(rename = "04")]
127 pub _04: Option<String>,
128}
129
130#[derive(
139 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
140)]
141pub struct IEA {
142 #[serde(rename = "01")]
149 pub _01: element::I16,
150 #[serde(rename = "02")]
157 pub _02: element::I12,
158}
159
160#[derive(
162 Serialize,
163 Deserialize,
164 Clone,
165 Default,
166 Debug,
167 Validate,
168 PartialEq,
169 Eq,
170 DisplaySegment,
171 ParseSegment,
172)]
173pub struct IMM {
174 #[serde(rename = "01")]
175 pub _01: String,
176 #[serde(rename = "02")]
177 pub _02: Option<String>,
178 #[serde(rename = "03")]
179 pub _03: Option<String>,
180 #[serde(rename = "04")]
181 pub _04: Option<String>,
182 #[serde(rename = "05")]
183 pub _05: Option<String>,
184 #[serde(rename = "06")]
185 pub _06: Option<String>,
186}
187
188#[derive(
197 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
198)]
199pub struct IMP {
200 #[serde(rename = "01")]
201 pub _01: String,
202 #[serde(rename = "02")]
203 pub _02: Option<crate::v005010::element::E954>,
204}
205
206#[derive(
220 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
221)]
222pub struct IN1 {
223 #[serde(rename = "01")]
224 pub _01: String,
225 #[serde(rename = "02")]
226 pub _02: crate::v005010::element::E1107,
227 #[serde(rename = "03")]
228 pub _03: Option<String>,
229 #[serde(rename = "04")]
230 pub _04: Option<String>,
231 #[serde(rename = "05")]
232 pub _05: Option<String>,
233 #[serde(rename = "06")]
234 pub _06: Option<crate::v005010::element::E1069>,
235 #[serde(rename = "07")]
236 pub _07: Option<crate::v005010::element::E1131>,
237}
238
239#[derive(
249 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
250)]
251pub struct IN2 {
252 #[serde(rename = "01")]
253 pub _01: crate::v005010::element::E1104,
254 #[serde(rename = "02")]
255 pub _02: String,
256 #[serde(rename = "03")]
257 pub _03: Option<String>,
258}
259
260#[derive(
262 Serialize,
263 Deserialize,
264 Clone,
265 Default,
266 Debug,
267 Validate,
268 PartialEq,
269 Eq,
270 DisplaySegment,
271 ParseSegment,
272)]
273pub struct INC {
274 #[serde(rename = "01")]
275 pub _01: String,
276 #[serde(rename = "02")]
277 pub _02: String,
278 #[serde(rename = "03")]
279 pub _03: String,
280 #[serde(rename = "04")]
281 pub _04: Option<String>,
282 #[serde(rename = "05")]
283 pub _05: Option<String>,
284 #[serde(rename = "06")]
285 pub _06: Option<String>,
286}
287
288#[derive(
290 Serialize,
291 Deserialize,
292 Clone,
293 Default,
294 Debug,
295 Validate,
296 PartialEq,
297 Eq,
298 DisplaySegment,
299 ParseSegment,
300)]
301pub struct INS {
302 #[serde(rename = "01")]
303 pub _01: String,
304 #[serde(rename = "02")]
305 pub _02: String,
306 #[serde(rename = "03")]
307 pub _03: Option<String>,
308 #[serde(rename = "04")]
309 pub _04: Option<String>,
310 #[serde(rename = "05")]
311 pub _05: Option<String>,
312 #[serde(rename = "06")]
313 pub _06: Option<String>,
314 #[serde(rename = "07")]
315 pub _07: Option<String>,
316 #[serde(rename = "08")]
317 pub _08: Option<String>,
318 #[serde(rename = "09")]
319 pub _09: Option<String>,
320 #[serde(rename = "10")]
321 pub _10: Option<String>,
322 #[serde(rename = "11")]
323 pub _11: Option<String>,
324 #[serde(rename = "12")]
325 pub _12: Option<String>,
326 #[serde(rename = "13")]
327 pub _13: Option<String>,
328 #[serde(rename = "14")]
329 pub _14: Option<String>,
330 #[serde(rename = "15")]
331 pub _15: Option<String>,
332 #[serde(rename = "16")]
333 pub _16: Option<String>,
334 #[serde(rename = "17")]
335 pub _17: Option<String>,
336}
337
338#[derive(
340 Serialize,
341 Deserialize,
342 Clone,
343 Default,
344 Debug,
345 Validate,
346 PartialEq,
347 Eq,
348 DisplaySegment,
349 ParseSegment,
350)]
351pub struct INV {
352 #[serde(rename = "01")]
353 pub _01: String,
354 #[serde(rename = "02")]
355 pub _02: Option<String>,
356 #[serde(rename = "03")]
357 pub _03: Option<String>,
358 #[serde(rename = "04")]
359 pub _04: Option<String>,
360 #[serde(rename = "05")]
361 pub _05: Option<String>,
362 #[serde(rename = "06")]
363 pub _06: Option<String>,
364 #[serde(rename = "07")]
365 pub _07: Option<String>,
366}
367
368#[derive(
391 Serialize,
392 Deserialize,
393 Clone,
394 Default,
395 Debug,
396 Validate,
397 PartialEq,
398 Eq,
399 DisplaySegment,
400 ParseSegment,
401)]
402pub struct ISA {
403 #[serde(rename = "01")]
410 pub _01: element::I01,
411 #[validate(length(equal = 10, message = "I02 must be 10 characters long"))]
418 #[serde(rename = "02")]
419 pub _02: String,
420 #[serde(rename = "03")]
427 pub _03: element::I03,
428 #[validate(length(equal = 10, message = "I04 must be 10 characters long"))]
435 #[serde(rename = "04")]
436 pub _04: String,
437 #[serde(rename = "05")]
444 pub _05: element::I05,
445 #[serde(rename = "06")]
452 pub _06: String,
453 #[serde(rename = "07")]
460 pub _07: element::I05,
461 #[serde(rename = "08")]
468 pub _08: String,
469 #[serde(rename = "09")]
476 pub _09: element::I08,
477 #[serde(rename = "10")]
484 pub _10: element::I09,
485 #[serde(rename = "11")]
492 pub _11: element::I10,
493 #[serde(rename = "12")]
500 pub _12: element::I11,
501 #[serde(rename = "13")]
508 pub _13: element::I12,
509 #[serde(rename = "14")]
516 pub _14: element::I13,
517 #[serde(rename = "15")]
524 pub _15: element::I14,
525 #[serde(rename = "16")]
532 pub _16: String,
533}
534
535#[derive(
537 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
538)]
539pub struct III {
540 #[serde(rename = "01")]
541 pub _01: Option<String>,
542 #[serde(rename = "02")]
543 pub _02: Option<String>,
544 #[serde(rename = "03")]
545 pub _03: Option<String>,
546 #[serde(rename = "04")]
547 pub _04: Option<String>,
548 #[serde(rename = "05")]
549 pub _05: Option<String>,
550}
551
552#[derive(
554 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
555)]
556pub struct IK3 {
557 #[serde(rename = "01")]
558 pub _01: Option<String>,
559 #[serde(rename = "02")]
560 pub _02: Option<String>,
561 #[serde(rename = "03")]
562 pub _03: Option<String>,
563 #[serde(rename = "04")]
564 pub _04: Option<String>,
565}
566
567#[derive(
569 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
570)]
571pub struct IK4 {
572 #[serde(rename = "01")]
573 pub _01: Option<String>,
574 #[serde(rename = "02")]
575 pub _02: Option<String>,
576 #[serde(rename = "03")]
577 pub _03: Option<String>,
578 #[serde(rename = "04")]
579 pub _04: Option<String>,
580}
581
582#[derive(
584 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
585)]
586pub struct IK5 {
587 #[serde(rename = "01")]
588 pub _01: Option<String>,
589 #[serde(rename = "02")]
590 pub _02: Option<String>,
591 #[serde(rename = "03")]
592 pub _03: Option<String>,
593 #[serde(rename = "04")]
594 pub _04: Option<String>,
595 #[serde(rename = "05")]
596 pub _05: Option<String>,
597 #[serde(rename = "06")]
598 pub _06: Option<String>,
599}
600
601#[derive(
616 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
617)]
618pub struct IT8 {
619 #[serde(rename = "01")]
620 pub _01: Option<crate::v005010::element::E563>,
621 #[serde(rename = "02")]
622 pub _02: Option<String>,
623 #[serde(rename = "03")]
624 pub _03: Option<crate::v005010::element::E610>,
625 #[serde(rename = "04")]
626 pub _04: Option<String>,
627 #[serde(rename = "05")]
628 pub _05: Option<String>,
629 #[serde(rename = "06")]
630 pub _06: Option<String>,
631 #[serde(rename = "07")]
632 pub _07: Option<crate::v005010::element::E566>,
633 #[serde(rename = "08")]
634 pub _08: Option<String>,
635 #[serde(rename = "09")]
636 pub _09: Option<String>,
637 #[serde(rename = "10")]
638 pub _10: Option<String>,
639 #[serde(rename = "11")]
640 pub _11: Option<String>,
641 #[serde(rename = "12")]
642 pub _12: Option<String>,
643 #[serde(rename = "13")]
644 pub _13: Option<String>,
645 #[serde(rename = "14")]
646 pub _14: Option<String>,
647 #[serde(rename = "15")]
648 pub _15: Option<String>,
649 #[serde(rename = "16")]
650 pub _16: Option<String>,
651 #[serde(rename = "17")]
652 pub _17: Option<String>,
653 #[serde(rename = "18")]
654 pub _18: Option<String>,
655 #[serde(rename = "19")]
656 pub _19: Option<String>,
657 #[serde(rename = "20")]
658 pub _20: Option<String>,
659 #[serde(rename = "21")]
660 pub _21: Option<String>,
661 #[serde(rename = "22")]
662 pub _22: Option<String>,
663 #[serde(rename = "23")]
664 pub _23: Option<String>,
665 #[serde(rename = "24")]
666 pub _24: Option<String>,
667 #[serde(rename = "25")]
668 pub _25: Option<String>,
669 #[serde(rename = "26")]
670 pub _26: Option<String>,
671 #[serde(rename = "27")]
672 pub _27: Option<String>,
673}
674
675#[derive(
677 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
678)]
679pub struct IT1 {
680 #[serde(rename = "01")]
681 pub _01: Option<String>,
682 #[serde(rename = "02")]
683 pub _02: Option<String>,
684 #[serde(rename = "03")]
686 pub _03: Option<crate::v005010::element::E355>,
687 #[serde(rename = "04")]
688 pub _04: Option<String>,
689 #[serde(rename = "05")]
690 pub _05: Option<String>,
691 #[serde(rename = "06")]
693 pub _06: Option<crate::v005010::element::E235>,
694 #[serde(rename = "07")]
695 pub _07: Option<String>,
696 #[serde(rename = "08")]
698 pub _08: Option<crate::v005010::element::E235>,
699 #[serde(rename = "09")]
700 pub _09: Option<String>,
701 #[serde(rename = "10")]
703 pub _10: Option<crate::v005010::element::E235>,
704 #[serde(rename = "11")]
705 pub _11: Option<String>,
706 #[serde(rename = "12")]
708 pub _12: Option<crate::v005010::element::E235>,
709 #[serde(rename = "13")]
710 pub _13: Option<String>,
711 #[serde(rename = "14")]
713 pub _14: Option<crate::v005010::element::E235>,
714 #[serde(rename = "15")]
715 pub _15: Option<String>,
716 #[serde(rename = "16")]
718 pub _16: Option<crate::v005010::element::E235>,
719 #[serde(rename = "17")]
720 pub _17: Option<String>,
721 #[serde(rename = "18")]
723 pub _18: Option<crate::v005010::element::E235>,
724 #[serde(rename = "19")]
725 pub _19: Option<String>,
726 #[serde(rename = "20")]
728 pub _20: Option<crate::v005010::element::E235>,
729 #[serde(rename = "21")]
730 pub _21: Option<String>,
731 #[serde(rename = "22")]
733 pub _22: Option<crate::v005010::element::E235>,
734 #[serde(rename = "23")]
735 pub _23: Option<String>,
736 #[serde(rename = "24")]
738 pub _24: Option<crate::v005010::element::E235>,
739 #[serde(rename = "25")]
740 pub _25: Option<String>,
741}
742
743#[derive(
767 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
768)]
769pub struct ITA {
770 #[serde(rename = "01")]
771 pub _01: String,
772 #[serde(rename = "02")]
773 pub _02: Option<String>,
774 #[serde(rename = "03")]
775 pub _03: Option<crate::v005010::element::E560>,
776 #[serde(rename = "04")]
777 pub _04: crate::v005010::element::E331,
778 #[serde(rename = "05")]
779 pub _05: Option<String>,
780 #[serde(rename = "06")]
781 pub _06: Option<crate::v005010::element::E359>,
782 #[serde(rename = "07")]
783 pub _07: Option<crate::v005010::element::E360>,
784 #[serde(rename = "08")]
785 pub _08: Option<crate::v005010::element::E378>,
786 #[serde(rename = "09")]
787 pub _09: Option<crate::v005010::element::E332>,
788 #[serde(rename = "10")]
789 pub _10: Option<String>,
790 #[serde(rename = "11")]
791 pub _11: Option<String>,
792 #[serde(rename = "12")]
793 pub _12: Option<String>,
794 #[serde(rename = "13")]
795 pub _13: Option<String>,
796 #[serde(rename = "14")]
797 pub _14: Option<crate::v005010::element::E150>,
798 #[serde(rename = "15")]
799 pub _15: Option<String>,
800 #[serde(rename = "16")]
801 pub _16: Option<crate::v005010::element::E662>,
802 #[serde(rename = "17")]
803 pub _17: Option<String>,
804}
805
806#[derive(
808 Serialize,
809 Deserialize,
810 Clone,
811 Default,
812 Debug,
813 Validate,
814 PartialEq,
815 Eq,
816 DisplaySegment,
817 ParseSegment,
818)]
819pub struct ITD {
820 #[serde(rename = "01")]
822 pub _01: Option<crate::v005010::element::E336>,
823 #[serde(rename = "02")]
824 pub _02: Option<String>,
825 #[serde(rename = "03")]
826 pub _03: Option<String>,
827 #[serde(rename = "04")]
828 pub _04: Option<String>,
829 #[serde(rename = "05")]
830 pub _05: Option<String>,
831 #[serde(rename = "06")]
832 pub _06: Option<String>,
833 #[serde(rename = "07")]
834 pub _07: Option<String>,
835 #[serde(rename = "08")]
836 pub _08: Option<String>,
837 #[serde(rename = "09")]
838 pub _09: Option<String>,
839 #[serde(rename = "10")]
840 pub _10: Option<String>,
841 #[serde(rename = "11")]
842 pub _11: Option<String>,
843 #[serde(rename = "12")]
844 pub _12: Option<String>,
845 #[serde(rename = "13")]
846 pub _13: Option<String>,
847 #[serde(rename = "14")]
848 pub _14: Option<String>,
849 #[serde(rename = "15")]
850 pub _15: Option<String>,
851}
852
853#[derive(
863 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
864)]
865pub struct ISR {
866 #[serde(rename = "01")]
867 pub _01: crate::v005010::element::E368,
868 #[serde(rename = "02")]
869 pub _02: Option<String>,
870 #[serde(rename = "03")]
871 pub _03: Option<crate::v005010::element::E641>,
872}
873
874#[derive(
878 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
879)]
880pub struct ISS {
881 #[serde(rename = "01")]
882 pub _01: Option<String>,
883 #[serde(rename = "02")]
884 pub _02: Option<String>,
885 #[serde(rename = "03")]
886 pub _03: Option<String>,
887 #[serde(rename = "04")]
888 pub _04: Option<String>,
889 #[serde(rename = "05")]
890 pub _05: Option<String>,
891 #[serde(rename = "06")]
892 pub _06: Option<String>,
893 #[serde(rename = "07")]
894 pub _07: Option<String>,
895 #[serde(rename = "08")]
896 pub _08: Option<String>,
897}
898
899#[derive(
903 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
904)]
905pub struct IT3 {
906 #[serde(rename = "01")]
907 pub _01: Option<String>,
908 #[serde(rename = "02")]
909 pub _02: Option<String>,
910 #[serde(rename = "03")]
911 pub _03: Option<String>,
912 #[serde(rename = "04")]
913 pub _04: Option<String>,
914 #[serde(rename = "05")]
915 pub _05: Option<String>,
916}
917
918#[derive(
920 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
921)]
922pub struct IC {
923 #[serde(rename = "01")]
924 pub _01: String,
925 #[serde(rename = "02")]
926 pub _02: String,
927 #[serde(rename = "03")]
928 pub _03: Option<String>,
929 #[serde(rename = "04")]
930 pub _04: Option<String>,
931 #[serde(rename = "05")]
932 pub _05: Option<String>,
933 #[serde(rename = "06")]
934 pub _06: Option<String>,
935 #[serde(rename = "07")]
936 pub _07: Option<String>,
937 #[serde(rename = "08")]
938 pub _08: Option<String>,
939 #[serde(rename = "09")]
940 pub _09: Option<String>,
941}
942
943#[derive(
945 Serialize, Deserialize, Clone, Default, Debug, PartialEq, Eq, DisplaySegment, ParseSegment,
946)]
947pub struct IM {
948 #[serde(rename = "01")]
949 pub _01: Option<String>,
950 #[serde(rename = "02")]
951 pub _02: Option<String>,
952 #[serde(rename = "03")]
953 pub _03: Option<String>,
954}