1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
use dictionary::field_types::generic::{BoolTrueOrBlankFieldType,CharFieldType,CountryFieldType,CurrencyFieldType,DataFieldType,DayOfMonthFieldType,IntFieldType,LengthFieldType,LocalMktDateFieldType,MonthYearFieldType,NoneFieldType,RepeatingGroupFieldType,SeqNumFieldType,StringFieldType,UTCTimeOnlyFieldType,UTCTimestampFieldType};
use dictionary::field_types::other as other_field_types;
use dictionary::field_types::other::{ApplVerIDFieldType,BusinessRejectReasonFieldType,ComplexEventConditionFieldType,ComplexEventPriceBoundaryMethodFieldType,ComplexEventPriceTimeTypeFieldType,ComplexEventTypeFieldType,ContractMultiplierUnitFieldType,CPProgramFieldType,DefaultApplVerIDFieldType,EmailTypeFieldType,EncryptMethodFieldType,EventTypeFieldType,ExerciseStyleFieldType,FlowScheduleTypeFieldType,HandlInstFieldType,InstrmtAssignmentMethodFieldType,IssuerFieldType,ListMethodFieldType,MsgDirectionFieldType,NotRequiredSecurityIDSourceFieldType,NotRequiredSecurityTypeFieldType as SecurityTypeFieldType,NotRequiredSideFieldType,NotRequiredSymbolSfxFieldType as SymbolSfxFieldType,NotRequiredTimeUnitFieldType as TimeUnitFieldType,OptPayoutTypeFieldType,OrdTypeFieldType,PartyIDSourceFieldType,PartyRoleFieldType,PartySubIDTypeFieldType,PriceQuoteMethodFieldType,ProductFieldType,PutOrCallFieldType,RateSourceFieldType,RateSourceTypeFieldType,RequiredSecurityIDSourceFieldType,RequiredSideFieldType,RequiredStipulationTypeFieldType as StipulationTypeFieldType,RestructuringTypeFieldType,RoutingTypeFieldType,SecurityStatusFieldType,SeniorityFieldType,SessionRejectReasonFieldType,SettlMethodFieldType,SettlTypeFieldType,StrikePriceBoundaryMethodFieldType,StrikePriceDeterminationMethodFieldType,TimeInForceFieldType,UnderlyingCashTypeFieldType,UnderlyingFXRateCalcFieldType,UnderlyingPriceDeterminationMethodFieldType,UnderlyingSettlementTypeFieldType,UnitOfMeasureFieldType,ValuationMethodFieldType};
use field_tag;
use fix_version::FIXVersion;
use message::{self,REQUIRED,NOT_REQUIRED};
use message_version;
use rule::Rule;
type PercentageFieldType = StringFieldType;
type PriceFieldType = StringFieldType;
type TZTimeOnlyFieldType = StringFieldType;
type AmtFieldType = StringFieldType;
type QtyFieldType = StringFieldType;
type ExchangeFieldType = StringFieldType;
define_fields!(
Account: StringFieldType = 1,
BeginSeqNo: SeqNumFieldType = 7,
ClOrdID: StringFieldType = 11,
Currency: CurrencyFieldType = 15,
EndSeqNo: SeqNumFieldType = 16,
HandlInst: HandlInstFieldType = 21,
SecurityIDSource: NotRequiredSecurityIDSourceFieldType = 22,
NoLinesOfText: RepeatingGroupFieldType<LinesOfTextGrp> = 33,
MsgSeqNum: SeqNumFieldType = 34,
NewSeqNo: SeqNumFieldType = 36,
OrderID: StringFieldType = 37,
OrderQty: StringFieldType = 38,
OrdType: OrdTypeFieldType = 40,
OrigTime: UTCTimestampFieldType = 42,
PossDupFlag: BoolTrueOrBlankFieldType = 43,
Price: StringFieldType = 44,
RefSeqNum: SeqNumFieldType = 45,
RelatedSym: StringFieldType = 46,
SecurityID: StringFieldType = 48,
SenderCompID: StringFieldType = 49,
SenderSubID: StringFieldType = 50,
SendingTime: UTCTimestampFieldType = 52,
SideField: RequiredSideFieldType = 54,
Symbol: StringFieldType = 55,
TargetCompID: StringFieldType = 56,
TargetSubID: StringFieldType = 57,
Text: StringFieldType = 58,
TimeInForce: TimeInForceFieldType = 59,
TransactTime: UTCTimestampFieldType = 60,
SettlType: SettlTypeFieldType = 63,
SettlDate: LocalMktDateFieldType = 64,
SymbolSfx: SymbolSfxFieldType = 65,
NoOrders: RepeatingGroupFieldType<Order> = 73,
NoAllocs: RepeatingGroupFieldType<Alloc> = 78,
AllocAccount: StringFieldType = 79,
Signature: DataFieldType = 89 => Rule::ConfirmPreviousTag{ previous_tag: SignatureLength::tag() },
SecureDataLen: NoneFieldType = 90 => Rule::PrepareForBytes{ bytes_tag: SecureData::tag() },
SecureData: DataFieldType = 91 => Rule::ConfirmPreviousTag{ previous_tag: SecureDataLen::tag() },
SignatureLength: NoneFieldType = 93 => Rule::PrepareForBytes{ bytes_tag: Signature::tag() },
EmailType: EmailTypeFieldType = 94,
RawDataLength: NoneFieldType = 95 => Rule::PrepareForBytes{ bytes_tag: RawData::tag() },
RawData: DataFieldType = 96 => Rule::ConfirmPreviousTag{ previous_tag: RawDataLength::tag() },
PossResend: StringFieldType = 97,
EncryptMethod: EncryptMethodFieldType = 98,
Issuer: IssuerFieldType = 106,
SecurityDesc: StringFieldType = 107,
HeartBtInt: IntFieldType = 108,
MinQty: StringFieldType = 110,
MaxFloor: StringFieldType = 111,
TestReqID: StringFieldType = 112,
OnBehalfOfCompID: StringFieldType = 115,
OnBehalfOfSubID: StringFieldType = 116,
OrigSendingTime: UTCTimestampFieldType = 122,
GapFillFlag: BoolTrueOrBlankFieldType = 123,
DeliverToCompID: StringFieldType = 128,
DeliverToSubID: StringFieldType = 129,
BidSize: StringFieldType = 134,
ResetSeqNumFlag: BoolTrueOrBlankFieldType = 141,
SenderLocationID: StringFieldType = 142,
TargetLocationID: StringFieldType = 143,
OnBehalfOfLocationID: StringFieldType = 144,
DeliverToLocationID: StringFieldType = 145,
NoRelatedSym: RepeatingGroupFieldType<Instrument> = 146,
Subject: StringFieldType = 147,
CashOrderQty: StringFieldType = 152,
EmailThreadID: StringFieldType = 164,
SecurityType: SecurityTypeFieldType = 167,
MaturityMonthYear: MonthYearFieldType = 200,
PutOrCall: PutOrCallFieldType = 201,
StrikePrice: StringFieldType = 202,
MaturityDay: DayOfMonthFieldType = 205,
OptAttribute: CharFieldType = 206,
SecurityExchange: ExchangeFieldType = 207,
XmlDataLen: NoneFieldType = 212 => Rule::PrepareForBytes{ bytes_tag: XmlData::tag() },
XmlData: DataFieldType = 213 => Rule::ConfirmPreviousTag{ previous_tag: XmlDataLen::tag() },
NoRoutingIDs: RepeatingGroupFieldType<RoutingGrp> = 215,
RoutingType: RoutingTypeFieldType = 216,
RoutingID: StringFieldType = 217,
CouponRate: PercentageFieldType = 223,
CouponPaymentDate: LocalMktDateFieldType = 224,
IssueDate: LocalMktDateFieldType = 225,
RepurchaseTerm: IntFieldType = 226,
RepurchaseRate: PercentageFieldType = 227,
Factor: StringFieldType = 228,
ContractMultiplier: StringFieldType = 231,
RepoCollateralSecurityType: SecurityTypeFieldType = 239,
RedemptionDate: LocalMktDateFieldType = 240,
UnderlyingCouponPaymentDate: LocalMktDateFieldType = 241,
UnderlyingIssueDate: LocalMktDateFieldType = 242,
UnderlyingRepoCollateralSecurityType: SecurityTypeFieldType = 243,
UnderlyingRepurchaseTerm: IntFieldType = 244,
UnderlyingRepurchaseRate: PercentageFieldType = 245,
UnderlyingFactor: StringFieldType = 246,
UnderlyingRedemptionDate: LocalMktDateFieldType = 247,
LegCouponPaymentDate: LocalMktDateFieldType = 248,
LegIssueDate: LocalMktDateFieldType = 249,
LegRepoCollateralSecurityType: SecurityTypeFieldType = 250,
LegRepurchaseTerm: IntFieldType = 251,
LegRepurchaseRate: PercentageFieldType = 252,
LegFactor: StringFieldType = 253,
LegRedemptionDate: LocalMktDateFieldType = 254,
CreditRating: StringFieldType = 255,
UnderlyingCreditRating: StringFieldType = 256,
LegCreditRating: StringFieldType = 257,
UnderlyingSecurityIDSource: NotRequiredSecurityIDSourceFieldType = 305,
UnderlyingIssuer: IssuerFieldType = 306,
UnderlyingSecurityDesc: StringFieldType = 307,
UnderlyingSecurityExchange: ExchangeFieldType = 308,
UnderlyingSecurityID: StringFieldType = 309,
UnderlyingSecurityType: SecurityTypeFieldType = 310,
UnderlyingSymbol: StringFieldType = 311,
UnderlyingSymbolSfx: SymbolSfxFieldType = 312,
UnderlyingMaturityMonthYear: MonthYearFieldType = 313,
UnderlyingPutOrCall: PutOrCallFieldType = 315,
UnderlyingStrikePrice: StringFieldType = 316,
UnderlyingOptAttribute: CharFieldType = 317,
UnderlyingCurrency: CurrencyFieldType = 318,
MessageEncoding: StringFieldType = 347,
EncodedIssuerLen: NoneFieldType = 348 => Rule::PrepareForBytes{ bytes_tag: EncodedIssuer::tag() },
EncodedIssuer: DataFieldType = 349 => Rule::ConfirmPreviousTag{ previous_tag: EncodedIssuerLen::tag() },
EncodedSecurityDescLen: NoneFieldType = 350 => Rule::PrepareForBytes{ bytes_tag: EncodedSecurityDesc::tag() },
EncodedSecurityDesc: DataFieldType = 351 => Rule::ConfirmPreviousTag{ previous_tag: EncodedSecurityDescLen::tag() },
EncodedTextLen: NoneFieldType = 354 => Rule::PrepareForBytes{ bytes_tag: EncodedText::tag() },
EncodedText: DataFieldType = 355 => Rule::ConfirmPreviousTag{ previous_tag: EncodedTextLen::tag() },
EncodedSubjectLen: NoneFieldType = 356 => Rule::PrepareForBytes{ bytes_tag: EncodedSubject::tag() },
EncodedSubject: DataFieldType = 357 => Rule::ConfirmPreviousTag{ previous_tag: EncodedSubjectLen::tag() },
EncodedUnderlyingIssuerLen: NoneFieldType = 362 => Rule::PrepareForBytes{ bytes_tag: EncodedUnderlyingIssuer::tag() },
EncodedUnderlyingIssuer: DataFieldType = 363 => Rule::ConfirmPreviousTag{ previous_tag: EncodedUnderlyingIssuerLen::tag() },
EncodedUnderlyingSecurityDescLen: NoneFieldType = 364 => Rule::PrepareForBytes{ bytes_tag: EncodedUnderlyingSecurityDesc::tag() },
EncodedUnderlyingSecurityDesc: DataFieldType = 365 => Rule::ConfirmPreviousTag{ previous_tag: EncodedUnderlyingSecurityDescLen::tag() },
LastMsgSeqNumProcessed: SeqNumFieldType = 369,
OnBehalfOfSendingTime: UTCTimestampFieldType = 370,
RefTagID: StringFieldType = 371,
RefMsgType: StringFieldType = 372,
SessionRejectReason: SessionRejectReasonFieldType = 373,
BusinessRejectRefID: StringFieldType = 379,
BusinessRejectReason: BusinessRejectReasonFieldType = 380,
MaxMessageSize: LengthFieldType = 383,
NoMsgTypeGrp: RepeatingGroupFieldType<MsgTypeGrp> = 384,
MsgDirection: MsgDirectionFieldType = 385,
UnderlyingCouponRate: PercentageFieldType = 435,
UnderlyingContractMultiplier: StringFieldType = 436,
NoSecurityAltID: RepeatingGroupFieldType<SecAltIDGrp> = 454,
SecurityAltID: StringFieldType = 455,
SecurityAltIDSource: RequiredSecurityIDSourceFieldType = 456,
NoUnderlyingSecurityAltID: RepeatingGroupFieldType<UndSecAltIDGrp> = 457,
UnderlyingSecurityAltID: StringFieldType = 458,
UnderlyingSecurityAltIDSource: RequiredSecurityIDSourceFieldType = 459,
Product: ProductFieldType = 460,
CFICode: StringFieldType = 461,
UnderlyingProduct: ProductFieldType = 462,
UnderlyingCFICode: StringFieldType = 463,
TestMessageIndicator: StringFieldType = 464,
CountryOfIssue: CountryFieldType = 470,
StateOrProvinceOfIssue: StringFieldType = 471,
LocaleOfIssue: StringFieldType = 472,
MaturityDate: LocalMktDateFieldType = 541,
UnderlyingMaturityDate: LocalMktDateFieldType = 542,
InstrRegistry: StringFieldType = 543,
Username: StringFieldType = 553,
Password: StringFieldType = 554,
NoLegs: RepeatingGroupFieldType<InstrumentLeg> = 555,
LegCurrency: CurrencyFieldType = 556,
LegPrice: PriceFieldType = 566,
UnderlyingCountryOfIssue: CountryFieldType = 592,
UnderlyingStateOrProvinceOfIssue: StringFieldType = 593,
UnderlyingLocaleOfIssue: StringFieldType = 594,
UnderlyingInstrRegistry: StringFieldType = 595,
LegCountryOfIssue: CountryFieldType = 596,
LegStateOrProvinceOfIssue: StringFieldType = 597,
LegLocaleOfIssue: StringFieldType = 598,
LegInstrRegistry: StringFieldType = 599,
LegSymbol: StringFieldType = 600,
LegSymbolSfx: SymbolSfxFieldType = 601,
LegSecurityID: StringFieldType = 602,
LegSecurityIDSource: NotRequiredSecurityIDSourceFieldType = 603,
NoLegSecurityAltID: RepeatingGroupFieldType<LegSecAltIDGrp> = 604,
LegSecurityAltID: StringFieldType = 605,
LegSecurityAltIDSource: RequiredSecurityIDSourceFieldType = 606,
LegProduct: ProductFieldType = 607,
LegCFICode: StringFieldType = 608,
LegSecurityType: SecurityTypeFieldType = 609,
LegMaturityMonthYear: MonthYearFieldType = 610,
LegMaturityDate: LocalMktDateFieldType = 611,
LegStrikePrice: PriceFieldType = 612,
LegOptAttribute: CharFieldType = 613,
LegContractMultiplier: StringFieldType = 614,
LegCouponRate: PercentageFieldType = 615,
LegSecurityExchange: ExchangeFieldType = 616,
LegIssuer: IssuerFieldType = 617,
EncodedLegIssuerLen: NoneFieldType = 618 => Rule::PrepareForBytes{ bytes_tag: EncodedLegIssuer::tag() },
EncodedLegIssuer: DataFieldType = 619 => Rule::ConfirmPreviousTag{ previous_tag: EncodedLegIssuerLen::tag() },
LegSecurityDesc: StringFieldType = 620,
EncodedLegSecurityDescLen: NoneFieldType = 621 => Rule::PrepareForBytes{ bytes_tag: EncodedLegSecurityDesc::tag() },
EncodedLegSecurityDesc: DataFieldType = 622 => Rule::ConfirmPreviousTag{ previous_tag: EncodedLegSecurityDescLen::tag() },
LegRatioQty: StringFieldType = 623,
LegSide: NotRequiredSideFieldType = 624,
NoHops: RepeatingGroupFieldType<HopGrp> = 627,
HopCompID: StringFieldType = 628,
HopSendingTime: UTCTimestampFieldType = 629,
HopRefID: SeqNumFieldType = 630,
ContractSettlMonth: MonthYearFieldType = 667,
Pool: StringFieldType = 691,
NoUnderlyings: RepeatingGroupFieldType<UnderlyingInstrument> = 711,
LegDatedDate: LocalMktDateFieldType = 739,
LegPool: StringFieldType = 740,
SecuritySubType: StringFieldType = 762,
UnderlyingSecuritySubType: StringFieldType = 763,
LegSecuritySubType: StringFieldType = 764,
NextExpectedMsgSeqNum: SeqNumFieldType = 789,
UnderlyingPx: PriceFieldType = 810,
NoEvents: RepeatingGroupFieldType<EvntGrp> = 864,
EventType: EventTypeFieldType = 865,
EventDate: LocalMktDateFieldType = 866,
EventPx: PriceFieldType = 867,
EventText: StringFieldType = 868,
DatedDate: LocalMktDateFieldType = 873,
InterestAccrualDate: LocalMktDateFieldType = 874,
CPProgram: CPProgramFieldType = 875,
CPRegType: StringFieldType = 876,
UnderlyingCPProgram: CPProgramFieldType = 877,
UnderlyingCPRegType: StringFieldType = 878,
UnderlyingQty: QtyFieldType = 879,
UnderlyingDirtyPrice: PriceFieldType = 882,
UnderlyingEndPrice: PriceFieldType = 883,
UnderlyingStartValue: AmtFieldType = 884,
UnderlyingCurrentValue: AmtFieldType = 885,
UnderlyingEndValue: AmtFieldType = 886,
NoUnderlyingStips: RepeatingGroupFieldType<UnderlyingStipulation> = 887,
UnderlyingStipType: StipulationTypeFieldType = 888,
UnderlyingStipValue: StringFieldType = 889,
NewPassword: StringFieldType = 925,
UnderlyingStrikeCurrency: CurrencyFieldType = 941,
LegStrikeCurrency: CurrencyFieldType = 942,
StrikeCurrency: CurrencyFieldType = 947,
LegContractSettlMonth: MonthYearFieldType = 955,
LegInterestAccrualDate: LocalMktDateFieldType = 956,
SecurityStatus: SecurityStatusFieldType = 965,
SettleOnOpenFlag: StringFieldType = 966,
StrikeMultiplier: StringFieldType = 967,
StrikeValue: StringFieldType = 968,
MinPriceIncrement: StringFieldType = 969,
PositionLimit: IntFieldType = 970,
NTPositionLimit: IntFieldType = 971,
UnderlyingAllocationPercent: PercentageFieldType = 972,
UnderlyingCashAmount: AmtFieldType = 973,
UnderlyingCashType: UnderlyingCashTypeFieldType = 974,
UnderlyingSettlementType: UnderlyingSettlementTypeFieldType = 975,
UnitOfMeasure: UnitOfMeasureFieldType = 996,
TimeUnit: TimeUnitFieldType = 997,
UnderlyingUnitOfMeasure: UnitOfMeasureFieldType = 998,
LegUnitOfMeasure: UnitOfMeasureFieldType = 999,
UnderlyingTimeUnit: TimeUnitFieldType = 1000,
LegTimeUnit: TimeUnitFieldType = 1001,
LegOptionRatio: StringFieldType = 1017,
NoInstrumentParties: RepeatingGroupFieldType<InstrumentParty> = 1018,
InstrumentPartyID: StringFieldType = 1019,
UnderlyingDeliveryAmount: AmtFieldType = 1037,
UnderlyingCapValue: AmtFieldType = 1038,
UnderlyingSettlMethod: StringFieldType = 1039,
UnderlyingAdjustedQuantity: StringFieldType = 1044,
UnderlyingFXRate: StringFieldType = 1045,
UnderlyingFXRateCalc: UnderlyingFXRateCalcFieldType = 1046,
NoUndlyInstrumentParties: RepeatingGroupFieldType<UndlyInstrumentPtysSubGrp> = 1058,
InstrmtAssignmentMethod: InstrmtAssignmentMethodFieldType = 1049,
InstrumentPartyIDSource: PartyIDSourceFieldType = 1050,
InstrumentPartyRole: PartyRoleFieldType = 1051,
NoInstrumentPartySubIDs: RepeatingGroupFieldType<InstrumentPtysSubGrp> = 1052,
InstrumentPartySubID: StringFieldType = 1053,
InstrumentPartySubIDType: PartySubIDTypeFieldType = 1054,
NoUndlyInstrumentPartySubIDs: RepeatingGroupFieldType<UndlyInstrumentPtysSubGrp> = 1062,
UnderlyingInstrumentPartySubID: StringFieldType = 1063,
UnderlyingInstrumentPartySubIDType: PartySubIDTypeFieldType = 1064,
MaturityTime: TZTimeOnlyFieldType = 1079,
ApplVerID: ApplVerIDFieldType = 1128 => Rule::RequiresFIXVersion{ fix_version: FIXVersion::FIXT_1_1 },
CstmApplVerID: StringFieldType = 1129,
RefApplVerID: ApplVerIDFieldType = 1130,
RefCstmApplVerID: StringFieldType = 1131,
DefaultApplVerID: DefaultApplVerIDFieldType = 1137,
EventTime: UTCTimestampFieldType = 1145,
MinPriceIncrementAmount: AmtFieldType = 1146,
UnitOfMeasureQty: StringFieldType = 1147,
SecurityGroup: StringFieldType = 1151,
ApplExtID: StringFieldType = 1156,
SecurityXMLLen: NoneFieldType = 1184 => Rule::PrepareForBytes{ bytes_tag: SecurityXML::tag() },
SecurityXML: DataFieldType = 1185 => Rule::ConfirmPreviousTag{ previous_tag: SecurityXMLLen::tag() },
SecurityXMLSchema: StringFieldType = 1186,
PriceUnitOfMeasure: UnitOfMeasureFieldType = 1191,
PriceUnitOfMeasureQty: StringFieldType = 1192,
SettlMethod: SettlMethodFieldType = 1193,
ExerciseStyle: ExerciseStyleFieldType = 1194,
OptPayoutAmount: AmtFieldType = 1195,
PriceQuoteMethod: PriceQuoteMethodFieldType = 1196,
ValuationMethod: ValuationMethodFieldType = 1197,
ListMethod: ListMethodFieldType = 1198,
CapPrice: PriceFieldType = 1199,
FloorPrice: PriceFieldType = 1200,
LegMaturityTime: TZTimeOnlyFieldType = 1212,
UnderlyingMaturityTime: TZTimeOnlyFieldType = 1213,
LegUnitOfMeasureQty: StringFieldType = 1224,
ProductComplex: StringFieldType = 1227,
FlexibleProductElgibilityIndicator: BoolTrueOrBlankFieldType = 1242,
FlexibleIndicator: BoolTrueOrBlankFieldType = 1244,
LegPutOrCall: PutOrCallFieldType = 1358,
EncryptedPasswordMethod: StringFieldType = 1400,
EncryptedPasswordLen: NoneFieldType = 1401 => Rule::PrepareForBytes{ bytes_tag: EncryptedPassword::tag() },
EncryptedPassword: DataFieldType = 1402 => Rule::ConfirmPreviousTag{ previous_tag: EncryptedPasswordLen::tag() },
EncryptedNewPasswordLen: NoneFieldType = 1403 => Rule::PrepareForBytes{ bytes_tag: EncryptedNewPassword::tag() },
EncryptedNewPassword: DataFieldType = 1404 => Rule::ConfirmPreviousTag{ previous_tag: EncryptedNewPasswordLen::tag() },
RefApplExtID: StringFieldType = 1406,
DefaultApplExtID: StringFieldType = 1407,
DefaultCstmApplVerID: StringFieldType = 1408,
SessionStatus: StringFieldType = 1409,
DefaultVerIndicator: BoolTrueOrBlankFieldType = 1410,
UnderlyingExerciseStyle: ExerciseStyleFieldType = 1419,
LegExerciseStyle: ExerciseStyleFieldType = 1420,
LegPriceUnitOfMeasure: UnitOfMeasureFieldType = 1421,
LegPriceUnitOfMeasureQty: StringFieldType = 1422,
UnderlyingUnitOfMeasureQty: StringFieldType = 1423,
UnderlyingPriceUnitOfMeasure: UnitOfMeasureFieldType = 1424,
UnderlyingPriceUnitOfMeasureQty: StringFieldType = 1425,
ContractMultiplierUnit: ContractMultiplierUnitFieldType = 1435,
LegContractMultiplierUnit: ContractMultiplierUnitFieldType = 1436,
UnderlyingContractMultiplierUnit: ContractMultiplierUnitFieldType = 1437,
FlowScheduleType: FlowScheduleTypeFieldType = 1439,
LegFlowScheduleType: FlowScheduleTypeFieldType = 1440,
UnderlyingFlowScheduleType: FlowScheduleTypeFieldType = 1441,
NoRateSources: RepeatingGroupFieldType<RateSourceGrp> = 1445,
RateSource: RateSourceFieldType = 1446,
RateSourceType: RateSourceTypeFieldType = 1447,
ReferencePage: StringFieldType = 1448,
RestructuringType: RestructuringTypeFieldType = 1449,
Seniority: SeniorityFieldType = 1450,
NotionalPercentageOutstanding: PercentageFieldType = 1451,
OriginalNotionalPercentageOutstanding: PercentageFieldType = 1452,
UnderlyingRestructuringType: RestructuringTypeFieldType = 1453,
UnderlyingSeniority: SeniorityFieldType = 1454,
UnderlyingNotionalPercentageOutstanding: PercentageFieldType = 1455,
UnderlyingOriginalNotionalPercentageOutstanding: PercentageFieldType = 1456,
AttachmentPoint: PercentageFieldType = 1457,
DetachmentPoint: PercentageFieldType = 1458,
UnderlyingAttachmentPoint: PercentageFieldType = 1459,
UnderlyingDetachmentPoint: PercentageFieldType = 1460,
StrikePriceDeterminationMethod: StrikePriceDeterminationMethodFieldType = 1478,
StrikePriceBoundaryMethod: StrikePriceBoundaryMethodFieldType = 1479,
StrikePriceBoundaryPrecision: PercentageFieldType = 1480,
UnderlyingPriceDeterminationMethod: UnderlyingPriceDeterminationMethodFieldType = 1481,
OptPayoutType: OptPayoutTypeFieldType = 1482,
NoComplexEvents: RepeatingGroupFieldType<ComplexEvent> = 1483,
ComplexEventType: ComplexEventTypeFieldType = 1484,
ComplexOptPayoutAmount: AmtFieldType = 1485,
ComplexEventPrice: PriceFieldType = 1486,
ComplexEventPriceBoundaryMethod: ComplexEventPriceBoundaryMethodFieldType = 1487,
ComplexEventPriceBoundaryPrecision: PercentageFieldType = 1488,
ComplexEventPriceTimeType: ComplexEventPriceTimeTypeFieldType = 1489,
ComplexEventCondition: ComplexEventConditionFieldType = 1490,
NoComplexEventDates: RepeatingGroupFieldType<ComplexEventDate> = 1491,
ComplexEventStartDate: UTCTimestampFieldType = 1492,
ComplexEventEndDate: UTCTimestampFieldType = 1493,
NoComplexEventTimes: RepeatingGroupFieldType<ComplexEventTime> = 1494,
ComplexEventStartTime: UTCTimeOnlyFieldType = 1495,
ComplexEventEndTime: UTCTimeOnlyFieldType = 1496,
);
define_message!(Alloc {
REQUIRED, alloc_account: AllocAccount [FIX40..FIX50SP2],
});
define_message!(ComplexEvent {
REQUIRED, complex_event_type: ComplexEventType [FIX50SP2..],
NOT_REQUIRED, complex_opt_payout_amount: ComplexOptPayoutAmount [FIX50SP2..],
NOT_REQUIRED, complex_event_price: ComplexEventPrice [FIX50SP2..],
NOT_REQUIRED, complex_event_price_boundary_method: ComplexEventPriceBoundaryMethod [FIX50SP2..],
NOT_REQUIRED, complex_event_price_boundary_precision: ComplexEventPriceBoundaryPrecision [FIX50SP2..],
NOT_REQUIRED, complex_event_price_time_type: ComplexEventPriceTimeType [FIX50SP2..],
NOT_REQUIRED, complex_event_condition: ComplexEventCondition [FIX50SP2..],
NOT_REQUIRED, no_complex_event_dates: NoComplexEventDates [FIX50SP2..],
});
define_message!(ComplexEventDate {
REQUIRED, complex_event_start_date: ComplexEventStartDate [FIX50SP2..],
REQUIRED, complex_event_end_date: ComplexEventEndDate [FIX50SP2..],
NOT_REQUIRED, no_complex_event_times: NoComplexEventTimes [FIX50SP2..],
});
define_message!(ComplexEventTime {
REQUIRED, complex_event_start_time: ComplexEventStartTime [FIX50SP2..],
REQUIRED, complex_event_end_time: ComplexEventEndTime [FIX50SP2..],
});
define_message!(EvntGrp {
REQUIRED, event_type: EventType [FIX44..],
NOT_REQUIRED, event_date: EventDate [FIX44..],
NOT_REQUIRED, event_time: EventTime [FIX50SP1..],
NOT_REQUIRED, event_px: EventPx [FIX44..],
NOT_REQUIRED, event_text: EventText [FIX44..],
});
define_message!(HopGrp {
REQUIRED, hop_comp_id: HopCompID [FIX43..],
NOT_REQUIRED, hop_sending_time: HopSendingTime [FIX43..],
NOT_REQUIRED, hop_ref_id: HopRefID [FIX43..],
});
define_message!(Instrument {
REQUIRED, related_sym: RelatedSym [FIX42],
REQUIRED, symbol: Symbol [FIX43..],
NOT_REQUIRED, symbol_sfx: SymbolSfx [FIX41..],
NOT_REQUIRED, security_id: SecurityID [FIX41..],
NOT_REQUIRED, security_id_source: SecurityIDSource [FIX41..] => REQUIRED_WHEN |message: &Instrument,_| { !message.security_id.is_empty() },
NOT_REQUIRED, no_security_alt_id: NoSecurityAltID [FIX43..],
NOT_REQUIRED, product: Product [FIX43..],
NOT_REQUIRED, product_complex: ProductComplex [FIX50SP1..],
NOT_REQUIRED, security_group: SecurityGroup [FIX50SP1..],
NOT_REQUIRED, cfi_code: CFICode [FIX43..],
NOT_REQUIRED, security_type: SecurityType [FIX41..] => REQUIRED_WHEN |message: &Instrument,_| { !message.security_sub_type.is_empty() },
NOT_REQUIRED, security_sub_type: SecuritySubType [FIX44..],
NOT_REQUIRED, maturity_month_year: MaturityMonthYear [FIX41..],
NOT_REQUIRED, maturity_month_day: MaturityDay [FIX41..FIX42],
NOT_REQUIRED, maturity_date: MaturityDate [FIX43..],
NOT_REQUIRED, maturity_time: MaturityTime [FIX50..],
NOT_REQUIRED, settle_on_open_flag: SettleOnOpenFlag [FIX50..],
NOT_REQUIRED, instrmt_assignment_method: InstrmtAssignmentMethod [FIX50..],
NOT_REQUIRED, security_status: SecurityStatus [FIX50..],
NOT_REQUIRED, coupon_payment_date: CouponPaymentDate [FIX43..],
NOT_REQUIRED, restructuring_type: RestructuringType [FIX50SP2..],
NOT_REQUIRED, seniority: Seniority [FIX50SP2..],
NOT_REQUIRED, notional_percentage_outstanding: NotionalPercentageOutstanding [FIX50SP2..],
NOT_REQUIRED, original_notional_percentage_outstanding: OriginalNotionalPercentageOutstanding [FIX50SP2..],
NOT_REQUIRED, attachment_point: AttachmentPoint [FIX50SP2..],
NOT_REQUIRED, detachment_point: DetachmentPoint [FIX50SP2..],
NOT_REQUIRED, issue_date: IssueDate [FIX43..],
NOT_REQUIRED, repo_collateral_security_type: RepoCollateralSecurityType [FIX43..],
NOT_REQUIRED, repurchase_term: RepurchaseTerm [FIX43..],
NOT_REQUIRED, repurchase_rate: RepurchaseRate [FIX43..],
NOT_REQUIRED, factor: Factor [FIX43..],
NOT_REQUIRED, credit_rating: CreditRating [FIX43..],
NOT_REQUIRED, instr_registry: InstrRegistry [FIX43..],
NOT_REQUIRED, country_of_issue: CountryOfIssue [FIX43..],
NOT_REQUIRED, state_or_province_of_issue: StateOrProvinceOfIssue [FIX43..],
NOT_REQUIRED, locale_of_issue: LocaleOfIssue [FIX43..],
NOT_REQUIRED, redemption_date: RedemptionDate [FIX43..],
NOT_REQUIRED, strike_price: StrikePrice [FIX41..],
NOT_REQUIRED, strike_currency: StrikeCurrency [FIX44..],
NOT_REQUIRED, strike_multiplier: StrikeMultiplier [FIX50..],
NOT_REQUIRED, strike_value: StrikeValue [FIX50..],
NOT_REQUIRED, strike_price_determination_method: StrikePriceDeterminationMethod [FIX50SP2..],
NOT_REQUIRED, strike_price_boundary_method: StrikePriceBoundaryMethod [FIX50SP2..],
NOT_REQUIRED, strike_price_boundary_precision: StrikePriceBoundaryPrecision [FIX50SP2..],
NOT_REQUIRED, underlying_price_determination_method: UnderlyingPriceDeterminationMethod [FIX50SP2..],
NOT_REQUIRED, opt_attribute: OptAttribute [FIX41..],
NOT_REQUIRED, contract_multiplier: ContractMultiplier [FIX42..],
NOT_REQUIRED, contract_multiplier_unit: ContractMultiplierUnit [FIX50SP2..],
NOT_REQUIRED, flow_schedule_type: FlowScheduleType [FIX50SP2..],
NOT_REQUIRED, min_price_increment: MinPriceIncrement [FIX50..],
NOT_REQUIRED, min_price_increment_amount: MinPriceIncrementAmount [FIX50SP1..],
NOT_REQUIRED, unit_of_measure: UnitOfMeasure [FIX50..],
NOT_REQUIRED, unit_of_measure_qty: UnitOfMeasureQty [FIX50SP1..],
NOT_REQUIRED, price_unit_of_measure: PriceUnitOfMeasure [FIX50SP1..],
NOT_REQUIRED, price_unit_of_measure_qty: PriceUnitOfMeasureQty [FIX50SP1..],
NOT_REQUIRED, settl_method: SettlMethod [FIX50SP1..],
NOT_REQUIRED, exercise_style: ExerciseStyle [FIX50SP1..],
NOT_REQUIRED, opt_payout_type: OptPayoutType [FIX50SP2..],
NOT_REQUIRED, opt_payout_amount: OptPayoutAmount [FIX50SP1..] => REQUIRED_WHEN |message: &Instrument,_| { if let Some(ref opt_payout_type) = message.opt_payout_type { *opt_payout_type == other_field_types::OptPayoutType::Binary } else { false } },
NOT_REQUIRED, price_quote_method: PriceQuoteMethod [FIX50SP1..],
NOT_REQUIRED, valuation_method: ValuationMethod [FIX50SP1..],
NOT_REQUIRED, list_method: ListMethod [FIX50SP1..],
NOT_REQUIRED, cap_price: CapPrice [FIX50SP1..],
NOT_REQUIRED, floor_price: FloorPrice [FIX50SP1..],
NOT_REQUIRED, put_or_call: PutOrCall [FIX41..],
NOT_REQUIRED, flexible_indicator: FlexibleIndicator [FIX50SP1..],
NOT_REQUIRED, flexible_product_eligibility_indicator: FlexibleProductElgibilityIndicator [FIX50SP1..],
NOT_REQUIRED, time_unit: TimeUnit [FIX50..],
NOT_REQUIRED, coupon_rate: CouponRate [FIX42..],
NOT_REQUIRED, security_exchange: SecurityExchange [FIX41..],
NOT_REQUIRED, position_limit: PositionLimit [FIX50..],
NOT_REQUIRED, nt_position_limit: NTPositionLimit [FIX50..],
NOT_REQUIRED, issuer: Issuer [FIX41..],
NOT_REQUIRED, encoded_issuer_len: EncodedIssuerLen [FIX42..],
NOT_REQUIRED, encoded_issuer: EncodedIssuer [FIX42..],
NOT_REQUIRED, security_desc: SecurityDesc [FIX41..],
NOT_REQUIRED, encoded_security_desc_len: EncodedSecurityDescLen [FIX42..],
NOT_REQUIRED, encoded_security_desc: EncodedSecurityDesc [FIX42..],
NOT_REQUIRED, security_xml_len: SecurityXMLLen [FIX50SP1..],
NOT_REQUIRED, security_xml: SecurityXML [FIX50SP1..],
NOT_REQUIRED, security_xml_schema: SecurityXMLSchema [FIX50SP1..],
NOT_REQUIRED, pool: Pool [FIX44..],
NOT_REQUIRED, contract_settl_month: ContractSettlMonth [FIX44..],
NOT_REQUIRED, cp_program: CPProgram [FIX44..],
NOT_REQUIRED, cp_reg_type: CPRegType [FIX44..],
NOT_REQUIRED, no_events: NoEvents [FIX44..],
NOT_REQUIRED, dated_date: DatedDate [FIX44..],
NOT_REQUIRED, interest_accrual_date: InterestAccrualDate [FIX44..],
NOT_REQUIRED, no_instrument_parties: NoInstrumentParties [FIX50..],
NOT_REQUIRED, no_complex_events: NoComplexEvents [FIX50SP2..],
});
define_message!(InstrumentLeg {
REQUIRED, leg_symbol: LegSymbol,
NOT_REQUIRED, leg_symbol_sfx: LegSymbolSfx,
NOT_REQUIRED, leg_security_id: LegSecurityID,
NOT_REQUIRED, leg_security_id_source: LegSecurityIDSource => REQUIRED_WHEN |message: &InstrumentLeg,_| { !message.leg_security_id.is_empty() },
NOT_REQUIRED, no_leg_security_alt_id: NoLegSecurityAltID,
NOT_REQUIRED, leg_product: LegProduct,
NOT_REQUIRED, leg_cfi_code: LegCFICode,
NOT_REQUIRED, leg_security_type: LegSecurityType => REQUIRED_WHEN |message: &InstrumentLeg,_| { !message.leg_security_sub_type.is_empty() },
NOT_REQUIRED, leg_security_sub_type: LegSecuritySubType,
NOT_REQUIRED, leg_maturity_month_year: LegMaturityMonthYear,
NOT_REQUIRED, leg_maturity_date: LegMaturityDate,
NOT_REQUIRED, leg_maturity_time: LegMaturityTime,
NOT_REQUIRED, leg_coupon_payment_date: LegCouponPaymentDate,
NOT_REQUIRED, leg_issue_date: LegIssueDate,
NOT_REQUIRED, leg_repo_collateral_security_type: LegRepoCollateralSecurityType,
NOT_REQUIRED, leg_repurchase_term: LegRepurchaseTerm,
NOT_REQUIRED, leg_repurchase_rate: LegRepurchaseRate,
NOT_REQUIRED, leg_factor: LegFactor,
NOT_REQUIRED, leg_credit_rating: LegCreditRating,
NOT_REQUIRED, leg_instr_registry: LegInstrRegistry,
NOT_REQUIRED, leg_country_of_issue: LegCountryOfIssue,
NOT_REQUIRED, leg_state_or_province_of_issue: LegStateOrProvinceOfIssue,
NOT_REQUIRED, leg_locale_of_issue: LegLocaleOfIssue,
NOT_REQUIRED, leg_redemption_date: LegRedemptionDate,
NOT_REQUIRED, leg_strike_price: LegStrikePrice,
NOT_REQUIRED, leg_strike_currency: LegStrikeCurrency,
NOT_REQUIRED, leg_opt_attribute: LegOptAttribute,
NOT_REQUIRED, leg_contract_multiplier: LegContractMultiplier,
NOT_REQUIRED, leg_contract_multiplier_unit: LegContractMultiplierUnit,
NOT_REQUIRED, leg_flow_schedule_type: LegFlowScheduleType,
NOT_REQUIRED, leg_unit_of_measure: LegUnitOfMeasure,
NOT_REQUIRED, leg_unit_of_measure_qty: LegUnitOfMeasureQty,
NOT_REQUIRED, leg_price_unit_of_measure: LegPriceUnitOfMeasure,
NOT_REQUIRED, leg_price_unit_of_measure_qty: LegPriceUnitOfMeasureQty,
NOT_REQUIRED, leg_time_unit: LegTimeUnit,
NOT_REQUIRED, leg_exercise_style: LegExerciseStyle,
NOT_REQUIRED, leg_coupon_rate: LegCouponRate,
NOT_REQUIRED, leg_security_exchange: LegSecurityExchange,
NOT_REQUIRED, leg_issuer: LegIssuer,
NOT_REQUIRED, encoded_leg_issuer_len: EncodedLegIssuerLen,
NOT_REQUIRED, encoded_leg_issuer: EncodedLegIssuer,
NOT_REQUIRED, leg_security_desc: LegSecurityDesc,
NOT_REQUIRED, encoded_leg_security_desc_len: EncodedLegSecurityDescLen,
NOT_REQUIRED, encoded_leg_security_desc: EncodedLegSecurityDesc,
NOT_REQUIRED, leg_ratio_qty: LegRatioQty,
NOT_REQUIRED, leg_side: LegSide,
NOT_REQUIRED, leg_currency: LegCurrency,
NOT_REQUIRED, leg_poll: LegPool,
NOT_REQUIRED, leg_dated_date: LegDatedDate,
NOT_REQUIRED, leg_contract_settl_month: LegContractSettlMonth,
NOT_REQUIRED, leg_interest_accrual_date: LegInterestAccrualDate,
NOT_REQUIRED, leg_put_or_call: LegPutOrCall,
NOT_REQUIRED, leg_option_ratio: LegOptionRatio,
NOT_REQUIRED, leg_price: LegPrice,
});
define_message!(InstrumentParty {
REQUIRED, instrument_party_id: InstrumentPartyID [FIX50..],
REQUIRED, instrument_party_id_source: InstrumentPartyIDSource [FIX50..],
NOT_REQUIRED, instrument_party_role: InstrumentPartyRole [FIX50..],
NOT_REQUIRED, no_instrument_party_sub_ids: NoInstrumentPartySubIDs [FIX50..],
});
define_message!(InstrumentPtysSubGrp {
REQUIRED, instrument_party_sub_id: InstrumentPartySubID [FIX50..],
REQUIRED, instrument_party_sub_id_type: InstrumentPartySubIDType [FIX50..],
});
define_message!(LegSecAltIDGrp {
REQUIRED, leg_security_alt_id: LegSecurityAltID,
REQUIRED, leg_security_alt_id_source: LegSecurityAltIDSource,
});
define_message!(LinesOfTextGrp {
REQUIRED, text: Text [FIX40..],
NOT_REQUIRED, encoded_text_len: EncodedTextLen [FIX42..],
NOT_REQUIRED, encoded_text: EncodedText [FIX42..],
});
define_message!(MsgTypeGrp {
REQUIRED, ref_msg_type: RefMsgType [FIX42..],
REQUIRED, msg_direction: MsgDirection [FIX42..],
NOT_REQUIRED, ref_appl_ver_id: RefApplVerID [FIX50..],
NOT_REQUIRED, ref_appl_ext_id: RefApplExtID [FIX50..],
NOT_REQUIRED, ref_cstm_appl_ver_id: RefCstmApplVerID [FIX50..],
NOT_REQUIRED, default_ver_indicator: DefaultVerIndicator [FIX50SP1..],
});
define_message!(Order {
REQUIRED, cl_ord_id: ClOrdID,
NOT_REQUIRED, allocs: NoAllocs,
});
define_message!(RateSourceGrp {
REQUIRED, rate_source: RateSource,
REQUIRED, rate_source_type: RateSourceType,
NOT_REQUIRED, reference_page: ReferencePage => REQUIRED_WHEN |message: &RateSourceGrp,_| { message.rate_source == other_field_types::RateSource::Other },
});
define_message!(RoutingGrp {
REQUIRED, routing_type: RoutingType [FIX42..],
REQUIRED, routing_id: RoutingID [FIX42..],
});
define_message!(SecAltIDGrp {
REQUIRED, security_alt_id: SecurityAltID [FIX43..],
REQUIRED, security_alt_id_source: SecurityAltIDSource [FIX43..],
});
define_message!(UnderlyingInstrument {
REQUIRED, underlying_symbol: UnderlyingSymbol,
NOT_REQUIRED, underlying_symbol_sfx: UnderlyingSymbolSfx,
NOT_REQUIRED, underlying_security_id: UnderlyingSecurityID,
NOT_REQUIRED, underlying_security_id_source: UnderlyingSecurityIDSource => REQUIRED_WHEN |message: &UnderlyingInstrument,_| { !message.underlying_security_id.is_empty() },
NOT_REQUIRED, no_underlying_security_alt_id: NoUnderlyingSecurityAltID,
NOT_REQUIRED, underlying_product: UnderlyingProduct,
NOT_REQUIRED, underlying_cfi_code: UnderlyingCFICode,
NOT_REQUIRED, underlying_security_type: UnderlyingSecurityType => REQUIRED_WHEN |message: &UnderlyingInstrument,_| { !message.underlying_security_sub_type.is_empty() },
NOT_REQUIRED, underlying_security_sub_type: UnderlyingSecuritySubType,
NOT_REQUIRED, underlying_maturity_month_year: UnderlyingMaturityMonthYear,
NOT_REQUIRED, underlying_maturity_date: UnderlyingMaturityDate,
NOT_REQUIRED, underlying_maturity_time: UnderlyingMaturityTime,
NOT_REQUIRED, underlying_coupon_payment_date: UnderlyingCouponPaymentDate,
NOT_REQUIRED, underlying_restructuring_type: UnderlyingRestructuringType,
NOT_REQUIRED, underlying_seniority: UnderlyingSeniority,
NOT_REQUIRED, underlying_notional_percentage_outstanding: UnderlyingNotionalPercentageOutstanding,
NOT_REQUIRED, underlying_original_notional_percentage_outstanding: UnderlyingOriginalNotionalPercentageOutstanding,
NOT_REQUIRED, underlying_attachment_point: UnderlyingAttachmentPoint,
NOT_REQUIRED, underlying_detachment_point: UnderlyingDetachmentPoint,
NOT_REQUIRED, underlying_issue_date: UnderlyingIssueDate,
NOT_REQUIRED, underlying_repo_collateral_security_type: UnderlyingRepoCollateralSecurityType,
NOT_REQUIRED, underlying_repurchase_term: UnderlyingRepurchaseTerm,
NOT_REQUIRED, underlying_repurchase_rate: UnderlyingRepurchaseRate,
NOT_REQUIRED, underlying_factor: UnderlyingFactor,
NOT_REQUIRED, underlying_credit_rating: UnderlyingCreditRating,
NOT_REQUIRED, underlying_instr_registry: UnderlyingInstrRegistry,
NOT_REQUIRED, underlying_country_of_issue: UnderlyingCountryOfIssue,
NOT_REQUIRED, underlying_state_or_province_of_issue: UnderlyingStateOrProvinceOfIssue,
NOT_REQUIRED, underlying_locale_of_issue: UnderlyingLocaleOfIssue,
NOT_REQUIRED, underlying_redemption_date: UnderlyingRedemptionDate,
NOT_REQUIRED, underlying_strike_price: UnderlyingStrikePrice,
NOT_REQUIRED, underlying_strike_currency: UnderlyingStrikeCurrency,
NOT_REQUIRED, underlying_opt_attribute: UnderlyingOptAttribute,
NOT_REQUIRED, underlying_contract_multiplier: UnderlyingContractMultiplier,
NOT_REQUIRED, underlying_contract_multiplier_unit: UnderlyingContractMultiplierUnit,
NOT_REQUIRED, underlying_flow_schedule_type: UnderlyingFlowScheduleType,
NOT_REQUIRED, underlying_unit_of_measure: UnderlyingUnitOfMeasure,
NOT_REQUIRED, underlying_unit_of_measure_qty: UnderlyingUnitOfMeasureQty,
NOT_REQUIRED, underlying_price_unit_of_measure: UnderlyingPriceUnitOfMeasure,
NOT_REQUIRED, underlying_price_unit_of_measure_qty: UnderlyingPriceUnitOfMeasureQty,
NOT_REQUIRED, underlying_time_unit: UnderlyingTimeUnit,
NOT_REQUIRED, underlying_exercise_style: UnderlyingExerciseStyle,
NOT_REQUIRED, underlying_coupon_rate: UnderlyingCouponRate,
NOT_REQUIRED, underlying_security_exchange: UnderlyingSecurityExchange,
NOT_REQUIRED, underlying_issuer: UnderlyingIssuer,
NOT_REQUIRED, encoded_underlying_issuer_len: EncodedUnderlyingIssuerLen,
NOT_REQUIRED, encoded_underlying_issuer: EncodedUnderlyingIssuer,
NOT_REQUIRED, underlying_security_desc: UnderlyingSecurityDesc,
NOT_REQUIRED, encoded_underlying_security_desc_len: EncodedUnderlyingSecurityDescLen,
NOT_REQUIRED, encoded_underlying_security_desc: EncodedUnderlyingSecurityDesc,
NOT_REQUIRED, underlying_cp_program: UnderlyingCPProgram,
NOT_REQUIRED, underlying_cp_reg_type: UnderlyingCPRegType,
NOT_REQUIRED, underlying_allocation_percent: UnderlyingAllocationPercent,
NOT_REQUIRED, underlying_currency: UnderlyingCurrency,
NOT_REQUIRED, underlying_qty: UnderlyingQty,
NOT_REQUIRED, underlying_settlement_type: UnderlyingSettlementType,
NOT_REQUIRED, underlying_cash_amount: UnderlyingCashAmount,
NOT_REQUIRED, underlying_cash_type: UnderlyingCashType,
NOT_REQUIRED, underlying_px: UnderlyingPx,
NOT_REQUIRED, underlying_dirty_price: UnderlyingDirtyPrice,
NOT_REQUIRED, underlying_end_price: UnderlyingEndPrice,
NOT_REQUIRED, underlying_start_value: UnderlyingStartValue,
NOT_REQUIRED, underlying_current_value: UnderlyingCurrentValue,
NOT_REQUIRED, underlying_end_value: UnderlyingEndValue,
NOT_REQUIRED, no_underlying_stips: NoUnderlyingStips,
NOT_REQUIRED, underlying_adjusted_quantity: UnderlyingAdjustedQuantity,
NOT_REQUIRED, underlying_fx_rate: UnderlyingFXRate,
NOT_REQUIRED, underlying_fx_rate_calc: UnderlyingFXRateCalc,
NOT_REQUIRED, underlying_cap_value: UnderlyingCapValue,
NOT_REQUIRED, no_undly_instrument_parties: NoUndlyInstrumentParties,
NOT_REQUIRED, underlying_settl_method: UnderlyingSettlMethod,
NOT_REQUIRED, underlying_put_or_call: UnderlyingPutOrCall,
});
define_message!(UndlyInstrumentPtysSubGrp {
REQUIRED, underlying_instrument_party_sub_id: UnderlyingInstrumentPartySubID,
REQUIRED, underlying_instrument_party_sub_id_type: UnderlyingInstrumentPartySubIDType,
});
define_message!(UnderlyingStipulation {
REQUIRED, underlying_stip_type: UnderlyingStipType,
REQUIRED, underlying_stip_value: UnderlyingStipValue,
});
define_message!(UndSecAltIDGrp {
REQUIRED, underlying_security_alt_id: UnderlyingSecurityAltID,
REQUIRED, underlying_security_alt_id_source: UnderlyingSecurityAltIDSource,
});