logstash-filter-fix_protocol 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+