logstash-filter-fix_protocol 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,383 @@
1
+ <fix type="FIXT" major="1" minor="1">
2
+ <header>
3
+ <field name="BeginString" required="Y"/>
4
+ <field name="BodyLength" required="Y"/>
5
+ <field name="MsgType" required="Y"/>
6
+ <field name="ApplVerID" required="N"/>
7
+ <field name="ApplExtID" required="N"/>
8
+ <field name="CstmApplVerID" required="N"/>
9
+ <field name="SenderCompID" required="Y"/>
10
+ <field name="TargetCompID" required="Y"/>
11
+ <field name="OnBehalfOfCompID" required="N"/>
12
+ <field name="DeliverToCompID" required="N"/>
13
+ <field name="SecureDataLen" required="N"/>
14
+ <field name="SecureData" required="N"/>
15
+ <field name="MsgSeqNum" required="Y"/>
16
+ <field name="SenderSubID" required="N"/>
17
+ <field name="SenderLocationID" required="N"/>
18
+ <field name="TargetSubID" required="N"/>
19
+ <field name="TargetLocationID" required="N"/>
20
+ <field name="OnBehalfOfSubID" required="N"/>
21
+ <field name="OnBehalfOfLocationID" required="N"/>
22
+ <field name="DeliverToSubID" required="N"/>
23
+ <field name="DeliverToLocationID" required="N"/>
24
+ <field name="PossDupFlag" required="N"/>
25
+ <field name="PossResend" required="N"/>
26
+ <field name="SendingTime" required="Y"/>
27
+ <field name="OrigSendingTime" required="N"/>
28
+ <field name="XmlDataLen" required="N"/>
29
+ <field name="XmlData" required="N"/>
30
+ <field name="MessageEncoding" required="N"/>
31
+ <field name="LastMsgSeqNumProcessed" required="N"/>
32
+ <component name="HopGrp" required="N"/>
33
+ </header>
34
+ <trailer>
35
+ <field name="SignatureLength" required="N"/>
36
+ <field name="Signature" required="N"/>
37
+ <field name="CheckSum" required="Y"/>
38
+ </trailer>
39
+ <messages>
40
+ <message name="Heartbeat" msgtype="0" msgcat="admin">
41
+ <field name="TestReqID" required="N"/>
42
+ </message>
43
+ <message name="TestRequest" msgtype="1" msgcat="admin">
44
+ <field name="TestReqID" required="Y"/>
45
+ </message>
46
+ <message name="ResendRequest" msgtype="2" msgcat="admin">
47
+ <field name="BeginSeqNo" required="Y"/>
48
+ <field name="EndSeqNo" required="Y"/>
49
+ </message>
50
+ <message name="Reject" msgtype="3" msgcat="admin">
51
+ <field name="RefSeqNum" required="Y"/>
52
+ <field name="RefTagID" required="N"/>
53
+ <field name="RefMsgType" required="N"/>
54
+ <field name="RefApplVerID" required="N"/>
55
+ <field name="RefApplExtID" required="N"/>
56
+ <field name="RefCstmApplVerID" required="N"/>
57
+ <field name="SessionRejectReason" required="N"/>
58
+ <field name="Text" required="N"/>
59
+ <field name="EncodedTextLen" required="N"/>
60
+ <field name="EncodedText" required="N"/>
61
+ </message>
62
+ <message name="SequenceReset" msgtype="4" msgcat="admin">
63
+ <field name="GapFillFlag" required="N"/>
64
+ <field name="NewSeqNo" required="Y"/>
65
+ </message>
66
+ <message name="Logout" msgtype="5" msgcat="admin">
67
+ <field name="SessionStatus" required="N"/>
68
+ <field name="Text" required="N"/>
69
+ <field name="EncodedTextLen" required="N"/>
70
+ <field name="EncodedText" required="N"/>
71
+ </message>
72
+ <message name="Logon" msgtype="A" msgcat="admin">
73
+ <field name="EncryptMethod" required="Y"/>
74
+ <field name="HeartBtInt" required="Y"/>
75
+ <field name="RawDataLength" required="N"/>
76
+ <field name="RawData" required="N"/>
77
+ <field name="ResetSeqNumFlag" required="N"/>
78
+ <field name="NextExpectedMsgSeqNum" required="N"/>
79
+ <field name="MaxMessageSize" required="N"/>
80
+ <component name="MsgTypeGrp" required="N"/>
81
+ <field name="TestMessageIndicator" required="N"/>
82
+ <field name="Username" required="N"/>
83
+ <field name="Password" required="N"/>
84
+ <field name="NewPassword" required="N"/>
85
+ <field name="EncryptedPasswordMethod" required="N"/>
86
+ <field name="EncryptedPasswordLen" required="N"/>
87
+ <field name="EncryptedPassword" required="N"/>
88
+ <field name="EncryptedNewPasswordLen" required="N"/>
89
+ <field name="EncryptedNewPassword" required="N"/>
90
+ <field name="SessionStatus" required="N"/>
91
+ <field name="DefaultApplVerID" required="Y"/>
92
+ <field name="DefaultApplExtID" required="N"/>
93
+ <field name="DefaultCstmApplVerID" required="N"/>
94
+ <field name="Text" required="N"/>
95
+ <field name="EncodedTextLen" required="N"/>
96
+ <field name="EncodedText" required="N"/>
97
+ </message>
98
+ <!--
99
+ <message name="XMLnonFIX" msgtype="n" msgcat="admin">
100
+ </message>
101
+ -->
102
+ </messages>
103
+ <components>
104
+ <component name="HopGrp">
105
+ <group name="NoHops" required="N">
106
+ <field name="HopCompID" required="N"/>
107
+ <field name="HopSendingTime" required="N"/>
108
+ <field name="HopRefID" required="N"/>
109
+ </group>
110
+ </component>
111
+ <component name="MsgTypeGrp">
112
+ <group name="NoMsgTypes" required="N">
113
+ <field name="RefMsgType" required="N"/>
114
+ <field name="MsgDirection" required="N"/>
115
+ <field name="RefApplVerID" required="N"/>
116
+ <field name="RefApplExtID" required="N"/>
117
+ <field name="RefCstmApplVerID" required="N"/>
118
+ <field name="DefaultVerIndicator" required="N"/>
119
+ </group>
120
+ </component>
121
+ </components>
122
+ <fields>
123
+ <field number="7" name="BeginSeqNo" type="SEQNUM"/>
124
+ <field number="8" name="BeginString" type="STRING"/>
125
+ <field number="9" name="BodyLength" type="LENGTH"/>
126
+ <field number="10" name="CheckSum" type="STRING"/>
127
+ <field number="16" name="EndSeqNo" type="SEQNUM"/>
128
+ <field number="34" name="MsgSeqNum" type="SEQNUM"/>
129
+ <field number="35" name="MsgType" type="STRING">
130
+ <value enum="0" description="HEARTBEAT"/>
131
+ <value enum="1" description="TEST_REQUEST"/>
132
+ <value enum="2" description="RESEND_REQUEST"/>
133
+ <value enum="3" description="REJECT"/>
134
+ <value enum="4" description="SEQUENCE_RESET"/>
135
+ <value enum="5" description="LOGOUT"/>
136
+ <value enum="6" description="INDICATION_OF_INTEREST"/>
137
+ <value enum="7" description="ADVERTISEMENT"/>
138
+ <value enum="8" description="EXECUTION_REPORT"/>
139
+ <value enum="9" description="ORDER_CANCEL_REJECT"/>
140
+ <value enum="A" description="LOGON"/>
141
+ <value enum="B" description="NEWS"/>
142
+ <value enum="C" description="EMAIL"/>
143
+ <value enum="D" description="ORDER_SINGLE"/>
144
+ <value enum="E" description="ORDER_LIST"/>
145
+ <value enum="F" description="ORDER_CANCEL_REQUEST"/>
146
+ <value enum="G" description="ORDER_CANCEL_REPLACE_REQUEST"/>
147
+ <value enum="H" description="ORDER_STATUS_REQUEST"/>
148
+ <value enum="J" description="ALLOCATION_INSTRUCTION"/>
149
+ <value enum="K" description="LIST_CANCEL_REQUEST"/>
150
+ <value enum="L" description="LIST_EXECUTE"/>
151
+ <value enum="M" description="LIST_STATUS_REQUEST"/>
152
+ <value enum="N" description="LIST_STATUS"/>
153
+ <value enum="P" description="ALLOCATION_INSTRUCTION_ACK"/>
154
+ <value enum="Q" description="DONT_KNOW_TRADE"/>
155
+ <value enum="R" description="QUOTE_REQUEST"/>
156
+ <value enum="S" description="QUOTE"/>
157
+ <value enum="T" description="SETTLEMENT_INSTRUCTIONS"/>
158
+ <value enum="V" description="MARKET_DATA_REQUEST"/>
159
+ <value enum="W" description="MARKET_DATA_SNAPSHOT_FULL_REFRESH"/>
160
+ <value enum="X" description="MARKET_DATA_INCREMENTAL_REFRESH"/>
161
+ <value enum="Y" description="MARKET_DATA_REQUEST_REJECT"/>
162
+ <value enum="Z" description="QUOTE_CANCEL"/>
163
+ <value enum="a" description="QUOTE_STATUS_REQUEST"/>
164
+ <value enum="b" description="MASS_QUOTE_ACKNOWLEDGEMENT"/>
165
+ <value enum="c" description="SECURITY_DEFINITION_REQUEST"/>
166
+ <value enum="d" description="SECURITY_DEFINITION"/>
167
+ <value enum="e" description="SECURITY_STATUS_REQUEST"/>
168
+ <value enum="f" description="SECURITY_STATUS"/>
169
+ <value enum="g" description="TRADING_SESSION_STATUS_REQUEST"/>
170
+ <value enum="h" description="TRADING_SESSION_STATUS"/>
171
+ <value enum="i" description="MASS_QUOTE"/>
172
+ <value enum="j" description="BUSINESS_MESSAGE_REJECT"/>
173
+ <value enum="k" description="BID_REQUEST"/>
174
+ <value enum="l" description="BID_RESPONSE"/>
175
+ <value enum="m" description="LIST_STRIKE_PRICE"/>
176
+ <value enum="n" description="XML_MESSAGE"/>
177
+ <value enum="o" description="REGISTRATION_INSTRUCTIONS"/>
178
+ <value enum="p" description="REGISTRATION_INSTRUCTIONS_RESPONSE"/>
179
+ <value enum="q" description="ORDER_MASS_CANCEL_REQUEST"/>
180
+ <value enum="r" description="ORDER_MASS_CANCEL_REPORT"/>
181
+ <value enum="s" description="NEW_ORDER_CROSS"/>
182
+ <value enum="t" description="CROSS_ORDER_CANCEL_REPLACE_REQUEST"/>
183
+ <value enum="u" description="CROSS_ORDER_CANCEL_REQUEST"/>
184
+ <value enum="v" description="SECURITY_TYPE_REQUEST"/>
185
+ <value enum="w" description="SECURITY_TYPES"/>
186
+ <value enum="x" description="SECURITY_LIST_REQUEST"/>
187
+ <value enum="y" description="SECURITY_LIST"/>
188
+ <value enum="z" description="DERIVATIVE_SECURITY_LIST_REQUEST"/>
189
+ <value enum="AA" description="DERIVATIVE_SECURITY_LIST"/>
190
+ <value enum="AB" description="NEW_ORDER_MULTILEG"/>
191
+ <value enum="AC" description="MULTILEG_ORDER_CANCEL_REPLACE"/>
192
+ <value enum="AD" description="TRADE_CAPTURE_REPORT_REQUEST"/>
193
+ <value enum="AE" description="TRADE_CAPTURE_REPORT"/>
194
+ <value enum="AF" description="ORDER_MASS_STATUS_REQUEST"/>
195
+ <value enum="AG" description="QUOTE_REQUEST_REJECT"/>
196
+ <value enum="AH" description="RFQ_REQUEST"/>
197
+ <value enum="AI" description="QUOTE_STATUS_REPORT"/>
198
+ <value enum="AJ" description="QUOTE_RESPONSE"/>
199
+ <value enum="AK" description="CONFIRMATION"/>
200
+ <value enum="AL" description="POSITION_MAINTENANCE_REQUEST"/>
201
+ <value enum="AM" description="POSITION_MAINTENANCE_REPORT"/>
202
+ <value enum="AN" description="REQUEST_FOR_POSITIONS"/>
203
+ <value enum="AO" description="REQUEST_FOR_POSITIONS_ACK"/>
204
+ <value enum="AP" description="POSITION_REPORT"/>
205
+ <value enum="AQ" description="TRADE_CAPTURE_REPORT_REQUEST_ACK"/>
206
+ <value enum="AR" description="TRADE_CAPTURE_REPORT_ACK"/>
207
+ <value enum="AS" description="ALLOCATION_REPORT"/>
208
+ <value enum="AT" description="ALLOCATION_REPORT_ACK"/>
209
+ <value enum="AU" description="CONFIRMATION_ACK"/>
210
+ <value enum="AV" description="SETTLEMENT_INSTRUCTION_REQUEST"/>
211
+ <value enum="AW" description="ASSIGNMENT_REPORT"/>
212
+ <value enum="AX" description="COLLATERAL_REQUEST"/>
213
+ <value enum="AY" description="COLLATERAL_ASSIGNMENT"/>
214
+ <value enum="AZ" description="COLLATERAL_RESPONSE"/>
215
+ <value enum="CA" description="ORDER_MASS_ACTION_REQUEST"/>
216
+ <value enum="CB" description="USER_NOTIFICATION"/>
217
+ <value enum="CC" description="STREAM_ASSIGNMENT_REQUEST"/>
218
+ <value enum="CD" description="STREAM_ASSIGNMENT_REPORT"/>
219
+ <value enum="CE" description="STREAM_ASSIGNMENT_REPORT_ACK"/>
220
+ <value enum="BA" description="COLLATERAL_REPORT"/>
221
+ <value enum="BB" description="COLLATERAL_INQUIRY"/>
222
+ <value enum="BC" description="NETWORK_STATUS_REQUEST"/>
223
+ <value enum="BD" description="NETWORK_STATUS_RESPONSE"/>
224
+ <value enum="BE" description="USER_REQUEST"/>
225
+ <value enum="BF" description="USER_RESPONSE"/>
226
+ <value enum="BG" description="COLLATERAL_INQUIRY_ACK"/>
227
+ <value enum="BH" description="CONFIRMATION_REQUEST"/>
228
+ <value enum="BI" description="TRADING_SESSION_LIST_REQUEST"/>
229
+ <value enum="BJ" description="TRADING_SESSION_LIST"/>
230
+ <value enum="BK" description="SECURITY_LIST_UPDATE_REPORT"/>
231
+ <value enum="BL" description="ADJUSTED_POSITION_REPORT"/>
232
+ <value enum="BM" description="ALLOCATION_INSTRUCTION_ALERT"/>
233
+ <value enum="BN" description="EXECUTION_ACKNOWLEDGEMENT"/>
234
+ <value enum="BO" description="CONTRARY_INTENTION_REPORT"/>
235
+ <value enum="BP" description="SECURITY_DEFINITION_UPDATE_REPORT"/>
236
+ <value enum="BQ" description="SETTLEMENT_OBLIGATION_REPORT"/>
237
+ <value enum="BR" description="DERIVATIVE_SECURITY_LIST_UPDATE_REPORT"/>
238
+ <value enum="BS" description="TRADING_SESSION_LIST_UPDATER_EPORT"/>
239
+ <value enum="BT" description="MARKET_DEFINITION_REQUEST"/>
240
+ <value enum="BU" description="MARKET_DEFINITION"/>
241
+ <value enum="BV" description="MARKET_DEFINITION_UPDATE_REPORT"/>
242
+ <value enum="BW" description="APPLICATION_MESSAGE_REQUEST"/>
243
+ <value enum="BX" description="APPLICATION_MESSAGE_REQUEST_ACK"/>
244
+ <value enum="BY" description="APPLICATION_MESSAGE_REPORT"/>
245
+ <value enum="BZ" description="ORDER_MASS_ACTION_REPORT"/>
246
+ </field>
247
+ <field number="36" name="NewSeqNo" type="SEQNUM"/>
248
+ <field number="43" name="PossDupFlag" type="BOOLEAN">
249
+ <value enum="N" description="ORIGINAL_TRANSMISSION"/>
250
+ <value enum="Y" description="POSSIBLE_DUPLICATE"/>
251
+ </field>
252
+ <field number="45" name="RefSeqNum" type="SEQNUM"/>
253
+ <field number="49" name="SenderCompID" type="STRING"/>
254
+ <field number="50" name="SenderSubID" type="STRING"/>
255
+ <field number="52" name="SendingTime" type="UTCTIMESTAMP"/>
256
+ <field number="56" name="TargetCompID" type="STRING"/>
257
+ <field number="57" name="TargetSubID" type="STRING"/>
258
+ <field number="58" name="Text" type="STRING"/>
259
+ <field number="89" name="Signature" type="DATA"/>
260
+ <field number="90" name="SecureDataLen" type="LENGTH"/>
261
+ <field number="91" name="SecureData" type="DATA"/>
262
+ <field number="93" name="SignatureLength" type="LENGTH"/>
263
+ <field number="95" name="RawDataLength" type="LENGTH"/>
264
+ <field number="96" name="RawData" type="DATA"/>
265
+ <field number="97" name="PossResend" type="BOOLEAN">
266
+ <value enum="N" description="ORIGINAL_TRANSMISSION"/>
267
+ <value enum="Y" description="POSSIBLE_RESEND"/>
268
+ </field>
269
+ <field number="98" name="EncryptMethod" type="INT">
270
+ <value enum="0" description="NONE_OTHER"/>
271
+ <value enum="1" description="PKCS"/>
272
+ <value enum="2" description="DES"/>
273
+ <value enum="3" description="PKCS_DES"/>
274
+ <value enum="4" description="PGP_DES"/>
275
+ <value enum="5" description="PGP_DES_MD5"/>
276
+ <value enum="6" description="PEM_DES_MD5"/>
277
+ </field>
278
+ <field number="108" name="HeartBtInt" type="INT"/>
279
+ <field number="112" name="TestReqID" type="STRING"/>
280
+ <field number="115" name="OnBehalfOfCompID" type="STRING"/>
281
+ <field number="116" name="OnBehalfOfSubID" type="STRING"/>
282
+ <field number="122" name="OrigSendingTime" type="UTCTIMESTAMP"/>
283
+ <field number="123" name="GapFillFlag" type="BOOLEAN">
284
+ <value enum="N" description="SEQUENCE_RESET_IGNORE_MSG_SEQ_NUM"/>
285
+ <value enum="Y" description="GAP_FILL_MESSAGE_MSG_SEQ_NUM_FIELD_VALID"/>
286
+ </field>
287
+ <field number="128" name="DeliverToCompID" type="STRING"/>
288
+ <field number="129" name="DeliverToSubID" type="STRING"/>
289
+ <field number="141" name="ResetSeqNumFlag" type="BOOLEAN">
290
+ <value enum="N" description="NO"/>
291
+ <value enum="Y" description="YES_RESET_SEQUENCE_NUMBERS"/>
292
+ </field>
293
+ <field number="142" name="SenderLocationID" type="STRING"/>
294
+ <field number="143" name="TargetLocationID" type="STRING"/>
295
+ <field number="144" name="OnBehalfOfLocationID" type="STRING"/>
296
+ <field number="145" name="DeliverToLocationID" type="STRING"/>
297
+ <field number="212" name="XmlDataLen" type="LENGTH"/>
298
+ <field number="213" name="XmlData" type="DATA"/>
299
+ <field number="347" name="MessageEncoding" type="STRING"/>
300
+ <field number="354" name="EncodedTextLen" type="LENGTH"/>
301
+ <field number="355" name="EncodedText" type="DATA"/>
302
+ <field number="369" name="LastMsgSeqNumProcessed" type="SEQNUM"/>
303
+ <field number="371" name="RefTagID" type="INT"/>
304
+ <field number="372" name="RefMsgType" type="STRING"/>
305
+ <field number="373" name="SessionRejectReason" type="INT">
306
+ <value enum="0" description="INVALID_TAG_NUMBER"/>
307
+ <value enum="1" description="REQUIRED_TAG_MISSING"/>
308
+ <value enum="2" description="TAG_NOT_DEFINED_FOR_THIS_MESSAGE_TYPE"/>
309
+ <value enum="3" description="UNDEFINED_TAG"/>
310
+ <value enum="4" description="TAG_SPECIFIED_WITHOUT_A_VALUE"/>
311
+ <value enum="5" description="VALUE_IS_INCORRECT"/>
312
+ <value enum="6" description="INCORRECT_DATA_FORMAT_FOR_VALUE"/>
313
+ <value enum="7" description="DECRYPTION_PROBLEM"/>
314
+ <value enum="8" description="SIGNATURE_PROBLEM"/>
315
+ <value enum="9" description="COMPID_PROBLEM"/>
316
+ <value enum="10" description="SENDINGTIME_ACCURACY_PROBLEM"/>
317
+ <value enum="11" description="INVALID_MSGTYPE"/>
318
+ <value enum="12" description="XML_VALIDATION_ERROR"/>
319
+ <value enum="13" description="TAG_APPEARS_MORE_THAN_ONCE"/>
320
+ <value enum="14" description="TAG_SPECIFIED_OUT_OF_REQUIRED_ORDER"/>
321
+ <value enum="15" description="REPEATING_GROUP_FIELDS_OUT_OF_ORDER"/>
322
+ <value enum="16" description="INCORRECT_NUMINGROUP_COUNT_FOR_REPEATING_GROUP"/>
323
+ <value enum="17" description="NON_DATA_VALUE_INCLUDES_FIELD_DELIMITER"/>
324
+ <value enum="18" description="INVALID_UNSUPPORTED_APPLICATION_VERSION"/>
325
+ <value enum="99" description="OTHER"/>
326
+ </field>
327
+ <field number="383" name="MaxMessageSize" type="LENGTH"/>
328
+ <field number="384" name="NoMsgTypes" type="NUMINGROUP"/>
329
+ <field number="385" name="MsgDirection" type="CHAR">
330
+ <value enum="R" description="RECEIVE"/>
331
+ <value enum="S" description="SEND"/>
332
+ </field>
333
+ <field number="464" name="TestMessageIndicator" type="BOOLEAN">
334
+ <value enum="N" description="FALES"/>
335
+ <value enum="Y" description="TRUE"/>
336
+ </field>
337
+ <field number="553" name="Username" type="STRING"/>
338
+ <field number="554" name="Password" type="STRING"/>
339
+ <field number="627" name="NoHops" type="NUMINGROUP"/>
340
+ <field number="628" name="HopCompID" type="STRING"/>
341
+ <field number="629" name="HopSendingTime" type="UTCTIMESTAMP"/>
342
+ <field number="630" name="HopRefID" type="SEQNUM"/>
343
+ <field number="789" name="NextExpectedMsgSeqNum" type="SEQNUM"/>
344
+ <field number="925" name="NewPassword" type="STRING"/>
345
+ <field number="1128" name="ApplVerID" type="STRING">
346
+ <value enum="0" description="FIX27"/>
347
+ <value enum="1" description="FIX30"/>
348
+ <value enum="2" description="FIX40"/>
349
+ <value enum="3" description="FIX41"/>
350
+ <value enum="4" description="FIX42"/>
351
+ <value enum="5" description="FIX43"/>
352
+ <value enum="6" description="FIX44"/>
353
+ <value enum="7" description="FIX50"/>
354
+ <value enum="8" description="FIX50SP1"/>
355
+ <value enum="9" description="FIX50SP2"/>
356
+ </field>
357
+ <field number="1129" name="CstmApplVerID" type="STRING"/>
358
+ <field number="1130" name="RefApplVerID" type="STRING"/>
359
+ <field number="1131" name="RefCstmApplVerID" type="STRING"/>
360
+ <field number="1137" name="DefaultApplVerID" type="STRING"/>
361
+ <field number="1156" name="ApplExtID" type="INT"/>
362
+ <field number="1400" name="EncryptedPasswordMethod" type="INT"/>
363
+ <field number="1401" name="EncryptedPasswordLen" type="LENGTH"/>
364
+ <field number="1402" name="EncryptedPassword" type="DATA"/>
365
+ <field number="1403" name="EncryptedNewPasswordLen" type="LENGTH"/>
366
+ <field number="1404" name="EncryptedNewPassword" type="DATA"/>
367
+ <field number="1406" name="RefApplExtID" type="INT"/>
368
+ <field number="1407" name="DefaultApplExtID" type="INT"/>
369
+ <field number="1408" name="DefaultCstmApplVerID" type="STRING"/>
370
+ <field number="1409" name="SessionStatus" type="INT">
371
+ <value enum="0" description="SESSION_ACTIVE"/>
372
+ <value enum="1" description="SESSION_PASSWORD_CHANGED"/>
373
+ <value enum="2" description="SESSION_PASSWORD_DUE_TO_EXPIRE"/>
374
+ <value enum="3" description="NEW_SESSION_PASSWORD_DOES_NOT_COMPLY_WITH_POLICY"/>
375
+ <value enum="4" description="SESSION_LOGOUT_COMPLETE"/>
376
+ <value enum="5" description="INVALID_USERNAME_OR_PASSWORD"/>
377
+ <value enum="6" description="ACCOUNT_LOCKED"/>
378
+ <value enum="7" description="LOGONS_ARE_NOT_ALLOWED_AT_THIS_TIME"/>
379
+ <value enum="8" description="PASSWORD_EXPIRED"/>
380
+ </field>
381
+ <field number="1410" name="DefaultVerIndicator" type="BOOLEAN"/>
382
+ </fields>
383
+ </fix>
@@ -0,0 +1,11 @@
1
+ 2015-08-31 17:48:20,890 FIXT.1.1:DUMMY_INC->ANOTHER_INC: 8=FIXT.1.19=14035=W34=249=DUMMY_INC52=20150831-17:48:20.89056=ANOTHER_INC22=9948=.AQUA-W262=golden_path_test268=1269=3270=640754272=20150831273=17:48:20.88210=070
2
+ 2015-08-26 23:10:17,748 FIX.4.2:DUMMY_INC->ANOTHER_INC: 8=FIX.4.29=24035=834=649=DUMMY_INC52=20150826-23:10:17.74456=ANOTHER_INC57=Firm_B1=Inst_B6=011=best_buy14=517=ITRZ1201508261_2420=022=831=101032=537=ITRZ1201508261_1238=539=240=241=best_buy44=101154=155=ITRZ160=20150826-23:10:15.547150=2151=010=227
3
+ 2015-08-31 20:48:26,536 FIXT.1.1:DUMMY_INC->ANOTHER_INC: 8=FIXT.1.19=18935=W34=549=DUMMY_INC52=20150831-20:48:26.53556=ANOTHER_INC22=9948=ITRZ21262=req_A268=2269=0270=0.01005271=10272=20150831273=20:48:26.514269=1270=0.0101271=2272=20150831273=20:48:26.51410=123
4
+ 2015-08-26 23:08:38,096 FIX.4.2:DUMMY_INC->ANOTHER_INC: 8=FIX.4.29=18435=F34=249=ANOTHER_INC50=DefaultSenderSubID52=20150826-23:08:38.09456=DUMMY_INC1=DefaultAccount11=clordid_of_cancel41=part_fill_test_buy54=155=ITER60=20250407-13:14:15167=FUT200=20151210=147
5
+ 2015-08-26 23:03:21,150 FIX.4.2:DUMMY_INC->ANOTHER_INC: 8=FIX.4.29=17335=D34=249=ANOTHER_INC50=683352=20150826-23:03:21.14656=DUMMY_INC1=kkozel11=1505123021=122=838=240=244=2271054=155=DUMMY_INC59=160=20250407-13:14:15100=XDMI167=FUT200=20150610=138
6
+ 2015-08-26 23:03:21,150 FIX.4.2:DUMMY_INC->ANOTHER_INC: 8=FIX.4.29=17335=D34=249=ANOTHER_INC50=683352=20150826-23:03:21.14656=DUMMY_INC1=kkozel11=15101256921=122=838=240=244=2271054=155=DUMMY_INC59=160=20250407-13:14:15100=XDMI167=FUT200=20150610=138
7
+ 2015-08-26 23:10:17,748 FIX.4.2:DUMMY_INC->ANOTHER_INC: 8=FIX.4.29=24035=834=649=DUMMY_INC52=20150826-23:10:17.74456=ANOTHER_INC57=Firm_B1=Inst_B6=011=15101256917=ITRZ1201508261_2420=022=831=101032=537=ITRZ1201508261_1238=539=240=241=best_buy44=101154=155=ITRZ160=20150826-23:10:15.547150=2151=010=227
8
+ 2015-08-26 23:08:38,096 FIX.4.2:DUMMY_INC->ANOTHER_INC: 8=FIX.4.29=18435=F34=249=ANOTHER_INC50=DefaultSenderSubID52=20150826-23:08:38.09456=DUMMY_INC1=DefaultAccount11=clordid_of_cancel41=15101256954=155=ITER60=20250407-13:14:15167=FUT200=20151210=147
9
+ 2015-08-31 17:48:20,890 FIXT.1.1:DUMMY_INC->ANOTHER_INC: 8=FIXT.1.19=14035=W34=249=DUMMY_INC52=20150831-17:48:20.89056=ANOTHER_INC22=9948=.AQUA-W262=golden_path_test268=1269=3270=640754272=20150831273=17:48:20.88210=070
10
+ 2015-08-31 20:48:26,536 FIXT.1.1:DUMMY_INC->ANOTHER_INC: 8=FIXT.1.19=18935=W34=549=DUMMY_INC52=20150831-20:48:26.53556=ANOTHER_INC22=9948=ITRZ21262=req_A268=2269=0270=0.01005271=10272=20150831273=20:48:26.514269=1270=0.0101271=2272=20150831273=20:48:26.51410=123
11
+
@@ -0,0 +1,6 @@
1
+ 8=FIX.4.19=13935=834=349=EXEC52=20121105-23:24:4256=BANZAI6=011=135215788257714=017=120=031=032=037=138=1000039=054=155=MSFT150=2151=010=059
2
+ 8=FIX.4.19=15335=834=449=EXEC52=20121105-23:24:4256=BANZAI6=12.311=135215788257714=1000017=220=031=12.332=1000037=238=1000039=254=155=MSFT150=2151=010=230
3
+ 8=FIX.4.19=13935=834=549=EXEC52=20121105-23:24:5556=BANZAI6=011=135215789503214=017=320=031=032=037=338=1000039=054=155=ORCL150=2151=010=049
4
+ 8=FIX.4.19=15335=834=649=EXEC52=20121105-23:24:5556=BANZAI6=12.311=135215789503214=1000017=420=031=12.332=1000037=438=1000039=254=155=ORCL150=2151=010=220
5
+ 8=FIX.4.19=13835=834=749=EXEC52=20121105-23:25:1256=BANZAI6=011=135215791235714=017=520=031=032=037=538=1000039=054=155=SPY150=2151=010=252
6
+ 8=FIX.4.29=24035=834=649=DUMMY_INC52=20150826-23:10:17.74456=ANOTHER_INC57=Firm_B1=Inst_B6=011=best_buy14=517=ITRZ1201508261_2420=022=831=101032=537=ITRZ1201508261_1238=539=240=241=best_buy44=101154=155=ITRZ160=20150826-23:10:15.547150=2151=010=227
@@ -0,0 +1,2 @@
1
+ 8=FIX.4.19=4935=034=249=BANZAI52=20121105-23:24:3756=EXEC10=228
2
+ 8=FIX.4.19=4935=034=249=EXEC52=20121105-23:24:3756=BANZAI10=228
@@ -0,0 +1,2 @@
1
+ 8=FIX.4.19=6135=A34=149=EXEC52=20121105-23:24:0656=BANZAI98=0108=3010=003
2
+ 8=FIX.4.19=6135=A34=149=BANZAI52=20121105-23:24:0656=EXEC98=0108=3010=003
@@ -0,0 +1,2 @@
1
+ 8=FIXT.1.19=18935=W34=549=DUMMY_INC52=20150831-20:48:26.53556=ANOTHER_INC22=9948=ITRZ21262=req_A268=2269=0270=0.01005271=10272=20150831273=20:48:26.514269=1270=0.0101271=2272=20150831273=20:48:26.51410=123
2
+ 8=FIXT.1.19=14035=W34=249=DUMMY_INC52=20150831-17:48:20.89056=ANOTHER_INC22=9948=.AQUA-W262=golden_path_test268=1269=3270=640754272=20150831273=17:48:20.88210=070
@@ -0,0 +1,4 @@
1
+ 8=FIX.4.19=10335=D34=349=BANZAI52=20121105-23:24:4256=EXEC11=135215788257721=138=1000040=154=155=MSFT59=010=062
2
+ 8=FIX.4.19=10335=D34=449=BANZAI52=20121105-23:24:5556=EXEC11=135215789503221=138=1000040=154=155=ORCL59=010=047
3
+ 8=FIX.4.19=10835=D34=549=BANZAI52=20121105-23:25:1256=EXEC11=135215791235721=138=1000040=244=1054=155=SPY59=010=003
4
+ 8=FIX.4.29=17335=D34=249=ANOTHER_INC50=683352=20150826-23:03:21.14656=DUMMY_INC1=kkozel11=1505123021=122=838=240=244=2271054=155=DUMMY_INC59=160=20250407-13:14:15100=XDMI167=FUT200=20150610=138
@@ -0,0 +1,3 @@
1
+ 8=FIX.4.19=10435=F34=649=BANZAI52=20121105-23:25:1656=EXEC11=135215791643738=1000041=135215791235754=155=SPY10=198
2
+ 8=FIX.4.19=10435=F34=749=BANZAI52=20121105-23:25:2556=EXEC11=135215792530938=1000041=135215791235754=155=SPY10=197
3
+ 8=FIX.4.29=18435=F34=249=ANOTHER_INC50=DefaultSenderSubID52=20150826-23:08:3809456=DUMMY_INC1=DefaultAccount11=clordid_of_cancel41=part_fill_test_buy54=155=ITER60=20250407-13:14:15167=FUT200=20151210=147
@@ -0,0 +1,2 @@
1
+ 8=FIX.4.19=8235=334=849=EXEC52=20121105-23:25:1656=BANZAI45=658=Unsupported message type10=000
2
+ 8=FIX.4.19=8235=334=949=EXEC52=20121105-23:25:2556=BANZAI45=758=Unsupported message type10=002
@@ -0,0 +1,14 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'pry'
3
+
4
+ Dir[("#{Dir.pwd}/spec/support/**/*.rb")].each { |f| require f }
5
+
6
+ # Base config
7
+ RSpec.configure do |config|
8
+ config.filter_run :focus
9
+ config.run_all_when_everything_filtered = true
10
+
11
+ config.order = :random
12
+ end
13
+
14
+ LF = LogStash::Filters
@@ -0,0 +1,45 @@
1
+ require 'logstash/filters/data_dictionary'
2
+
3
+ require 'rexml/document'
4
+
5
+ module LogStash
6
+ module Filters
7
+ class DataDictionary < quickfix.DataDictionary
8
+
9
+ # These are just helpers to visualize data dictionary as ruby hash
10
+ def get_reverse_value_name(tag, name)
11
+ if @reverse_lookup[tag].has_key?(name)
12
+ @reverse_lookup[tag][name]
13
+ else
14
+ name
15
+ end
16
+ end
17
+
18
+ def reverse_lookup
19
+ @reverse_lookup ||= parse_xml
20
+ end
21
+
22
+ private
23
+
24
+ def parse_xml
25
+ lookup = {}
26
+
27
+ doc = ::REXML::Document.new(@file)
28
+
29
+ doc.elements.each("fix/fields/field") do |f|
30
+ tag = f.attributes['number'].to_i
31
+ lookup[tag] ||= {}
32
+
33
+ f.elements.each("value") do |v|
34
+ lookup[ tag ][v.attributes['description']] = v.attributes['enum']
35
+ end
36
+ end
37
+
38
+ #also map pretty msg type names
39
+ doc.elements.each("fix/messages/message") do |m|
40
+ lookup[35][m.attributes['name']] = m.attributes['msgtype']
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,33 @@
1
+ require_relative 'fixture_helper'
2
+
3
+ module FixConfiguration
4
+ include FixtureHelper
5
+
6
+ def fix_5_configuration
7
+ <<-CONFIG
8
+ filter {
9
+ fix_protocol {
10
+ message => fix_message
11
+ session_dictionary_path => "#{ load_fixture("FIXT11.xml") }"
12
+ data_dictionary_path => "#{ load_fixture("FIX50SP1.xml") }"
13
+ }
14
+ }
15
+ CONFIG
16
+ end
17
+
18
+ def fix_4_configuration
19
+ <<-CONFIG
20
+ filter {
21
+ fix_protocol {
22
+ message => fix_message
23
+ data_dictionary_path => "#{ load_fixture("FIX42.xml") }"
24
+ }
25
+ }
26
+ CONFIG
27
+ end
28
+ end
29
+
30
+ RSpec.configure do |config|
31
+ config.include FixConfiguration
32
+ config.extend FixConfiguration
33
+ end
@@ -0,0 +1,10 @@
1
+ module FixtureHelper
2
+ def load_fixture(file_name)
3
+ File.expand_path("../../fixtures/#{file_name}", __FILE__)
4
+ end
5
+ end
6
+
7
+ RSpec.configure do |config|
8
+ config.include FixtureHelper
9
+ config.extend FixtureHelper
10
+ end
@@ -0,0 +1,3 @@
1
+ require 'logstash/filters/fix_protocol'
2
+ require "logstash/devutils/rspec/spec_helper"
3
+