1 #ifndef FIX50_COLLATERALREQUEST_H
2 #define FIX50_COLLATERALREQUEST_H
3 
4 #include "Message.h"
5 
6 namespace FIX50
7 {
8 
9   class CollateralRequest : public Message
10   {
11   public:
CollateralRequest()12     CollateralRequest() : Message(MsgType()) {}
CollateralRequest(const FIX::Message & m)13     CollateralRequest(const FIX::Message& m) : Message(m) {}
CollateralRequest(const Message & m)14     CollateralRequest(const Message& m) : Message(m) {}
CollateralRequest(const CollateralRequest & m)15     CollateralRequest(const CollateralRequest& m) : Message(m) {}
MsgType()16     static FIX::MsgType MsgType() { return FIX::MsgType("AX"); }
17 
CollateralRequest(const FIX::CollReqID & aCollReqID,const FIX::CollAsgnReason & aCollAsgnReason,const FIX::TransactTime & aTransactTime)18     CollateralRequest(
19       const FIX::CollReqID& aCollReqID,
20       const FIX::CollAsgnReason& aCollAsgnReason,
21       const FIX::TransactTime& aTransactTime )
22     : Message(MsgType())
23     {
24       set(aCollReqID);
25       set(aCollAsgnReason);
26       set(aTransactTime);
27     }
28 
29     FIELD_SET(*this, FIX::CollReqID);
30     FIELD_SET(*this, FIX::CollAsgnReason);
31     FIELD_SET(*this, FIX::TransactTime);
32     FIELD_SET(*this, FIX::ExpireTime);
33     FIELD_SET(*this, FIX::NoPartyIDs);
34     class NoPartyIDs: public FIX::Group
35     {
36     public:
NoPartyIDs()37     NoPartyIDs() : FIX::Group(453,448,FIX::message_order(448,447,452,802,0)) {}
38       FIELD_SET(*this, FIX::PartyID);
39       FIELD_SET(*this, FIX::PartyIDSource);
40       FIELD_SET(*this, FIX::PartyRole);
41       FIELD_SET(*this, FIX::NoPartySubIDs);
42       class NoPartySubIDs: public FIX::Group
43       {
44       public:
NoPartySubIDs()45       NoPartySubIDs() : FIX::Group(802,523,FIX::message_order(523,803,0)) {}
46         FIELD_SET(*this, FIX::PartySubID);
47         FIELD_SET(*this, FIX::PartySubIDType);
48       };
49     };
50     FIELD_SET(*this, FIX::Account);
51     FIELD_SET(*this, FIX::AccountType);
52     FIELD_SET(*this, FIX::ClOrdID);
53     FIELD_SET(*this, FIX::OrderID);
54     FIELD_SET(*this, FIX::SecondaryOrderID);
55     FIELD_SET(*this, FIX::SecondaryClOrdID);
56     FIELD_SET(*this, FIX::NoExecs);
57     class NoExecs: public FIX::Group
58     {
59     public:
NoExecs()60     NoExecs() : FIX::Group(124,17,FIX::message_order(17,0)) {}
61       FIELD_SET(*this, FIX::ExecID);
62     };
63     FIELD_SET(*this, FIX::NoTrades);
64     class NoTrades: public FIX::Group
65     {
66     public:
NoTrades()67     NoTrades() : FIX::Group(897,571,FIX::message_order(571,818,0)) {}
68       FIELD_SET(*this, FIX::TradeReportID);
69       FIELD_SET(*this, FIX::SecondaryTradeReportID);
70     };
71     FIELD_SET(*this, FIX::Symbol);
72     FIELD_SET(*this, FIX::SymbolSfx);
73     FIELD_SET(*this, FIX::SecurityID);
74     FIELD_SET(*this, FIX::SecurityIDSource);
75     FIELD_SET(*this, FIX::NoSecurityAltID);
76     class NoSecurityAltID: public FIX::Group
77     {
78     public:
NoSecurityAltID()79     NoSecurityAltID() : FIX::Group(454,455,FIX::message_order(455,456,0)) {}
80       FIELD_SET(*this, FIX::SecurityAltID);
81       FIELD_SET(*this, FIX::SecurityAltIDSource);
82     };
83     FIELD_SET(*this, FIX::Product);
84     FIELD_SET(*this, FIX::CFICode);
85     FIELD_SET(*this, FIX::SecurityType);
86     FIELD_SET(*this, FIX::SecuritySubType);
87     FIELD_SET(*this, FIX::MaturityMonthYear);
88     FIELD_SET(*this, FIX::MaturityDate);
89     FIELD_SET(*this, FIX::MaturityTime);
90     FIELD_SET(*this, FIX::PutOrCall);
91     FIELD_SET(*this, FIX::SettleOnOpenFlag);
92     FIELD_SET(*this, FIX::InstrmtAssignmentMethod);
93     FIELD_SET(*this, FIX::SecurityStatus);
94     FIELD_SET(*this, FIX::CouponPaymentDate);
95     FIELD_SET(*this, FIX::IssueDate);
96     FIELD_SET(*this, FIX::RepoCollateralSecurityType);
97     FIELD_SET(*this, FIX::RepurchaseTerm);
98     FIELD_SET(*this, FIX::RepurchaseRate);
99     FIELD_SET(*this, FIX::Factor);
100     FIELD_SET(*this, FIX::CreditRating);
101     FIELD_SET(*this, FIX::InstrRegistry);
102     FIELD_SET(*this, FIX::CountryOfIssue);
103     FIELD_SET(*this, FIX::StateOrProvinceOfIssue);
104     FIELD_SET(*this, FIX::LocaleOfIssue);
105     FIELD_SET(*this, FIX::RedemptionDate);
106     FIELD_SET(*this, FIX::StrikePrice);
107     FIELD_SET(*this, FIX::StrikeCurrency);
108     FIELD_SET(*this, FIX::StrikeMultiplier);
109     FIELD_SET(*this, FIX::StrikeValue);
110     FIELD_SET(*this, FIX::OptAttribute);
111     FIELD_SET(*this, FIX::ContractMultiplier);
112     FIELD_SET(*this, FIX::MinPriceIncrement);
113     FIELD_SET(*this, FIX::UnitOfMeasure);
114     FIELD_SET(*this, FIX::TimeUnit);
115     FIELD_SET(*this, FIX::CouponRate);
116     FIELD_SET(*this, FIX::SecurityExchange);
117     FIELD_SET(*this, FIX::PositionLimit);
118     FIELD_SET(*this, FIX::NTPositionLimit);
119     FIELD_SET(*this, FIX::Issuer);
120     FIELD_SET(*this, FIX::EncodedIssuerLen);
121     FIELD_SET(*this, FIX::EncodedIssuer);
122     FIELD_SET(*this, FIX::SecurityDesc);
123     FIELD_SET(*this, FIX::EncodedSecurityDescLen);
124     FIELD_SET(*this, FIX::EncodedSecurityDesc);
125     FIELD_SET(*this, FIX::Pool);
126     FIELD_SET(*this, FIX::ContractSettlMonth);
127     FIELD_SET(*this, FIX::CPProgram);
128     FIELD_SET(*this, FIX::CPRegType);
129     FIELD_SET(*this, FIX::NoEvents);
130     class NoEvents: public FIX::Group
131     {
132     public:
NoEvents()133     NoEvents() : FIX::Group(864,865,FIX::message_order(865,866,867,868,0)) {}
134       FIELD_SET(*this, FIX::EventType);
135       FIELD_SET(*this, FIX::EventDate);
136       FIELD_SET(*this, FIX::EventPx);
137       FIELD_SET(*this, FIX::EventText);
138     };
139     FIELD_SET(*this, FIX::DatedDate);
140     FIELD_SET(*this, FIX::InterestAccrualDate);
141     FIELD_SET(*this, FIX::NoInstrumentParties);
142     class NoInstrumentParties: public FIX::Group
143     {
144     public:
NoInstrumentParties()145     NoInstrumentParties() : FIX::Group(1018,1019,FIX::message_order(1019,1050,1051,1052,0)) {}
146       FIELD_SET(*this, FIX::InstrumentPartyID);
147       FIELD_SET(*this, FIX::InstrumentPartyIDSource);
148       FIELD_SET(*this, FIX::InstrumentPartyRole);
149       FIELD_SET(*this, FIX::NoInstrumentPartySubIDs);
150       class NoInstrumentPartySubIDs: public FIX::Group
151       {
152       public:
NoInstrumentPartySubIDs()153       NoInstrumentPartySubIDs() : FIX::Group(1052,1053,FIX::message_order(1053,1054,0)) {}
154         FIELD_SET(*this, FIX::InstrumentPartySubID);
155         FIELD_SET(*this, FIX::InstrumentPartySubIDType);
156       };
157     };
158     FIELD_SET(*this, FIX::AgreementDesc);
159     FIELD_SET(*this, FIX::AgreementID);
160     FIELD_SET(*this, FIX::AgreementDate);
161     FIELD_SET(*this, FIX::AgreementCurrency);
162     FIELD_SET(*this, FIX::TerminationType);
163     FIELD_SET(*this, FIX::StartDate);
164     FIELD_SET(*this, FIX::EndDate);
165     FIELD_SET(*this, FIX::DeliveryType);
166     FIELD_SET(*this, FIX::MarginRatio);
167     FIELD_SET(*this, FIX::SettlDate);
168     FIELD_SET(*this, FIX::Quantity);
169     FIELD_SET(*this, FIX::QtyType);
170     FIELD_SET(*this, FIX::Currency);
171     FIELD_SET(*this, FIX::NoLegs);
172     class NoLegs: public FIX::Group
173     {
174     public:
NoLegs()175     NoLegs() : FIX::Group(555,600,FIX::message_order(600,601,602,603,607,608,609,764,610,611,248,249,250,251,252,253,257,599,596,597,598,254,612,942,613,614,999,1001,615,616,617,618,619,620,621,622,623,624,556,740,739,955,956,1017,0)) {}
176       FIELD_SET(*this, FIX::LegSymbol);
177       FIELD_SET(*this, FIX::LegSymbolSfx);
178       FIELD_SET(*this, FIX::LegSecurityID);
179       FIELD_SET(*this, FIX::LegSecurityIDSource);
180       FIELD_SET(*this, FIX::NoLegSecurityAltID);
181       class NoLegSecurityAltID: public FIX::Group
182       {
183       public:
NoLegSecurityAltID()184       NoLegSecurityAltID() : FIX::Group(604,605,FIX::message_order(605,606,0)) {}
185         FIELD_SET(*this, FIX::LegSecurityAltID);
186         FIELD_SET(*this, FIX::LegSecurityAltIDSource);
187       };
188       FIELD_SET(*this, FIX::LegProduct);
189       FIELD_SET(*this, FIX::LegCFICode);
190       FIELD_SET(*this, FIX::LegSecurityType);
191       FIELD_SET(*this, FIX::LegSecuritySubType);
192       FIELD_SET(*this, FIX::LegMaturityMonthYear);
193       FIELD_SET(*this, FIX::LegMaturityDate);
194       FIELD_SET(*this, FIX::LegCouponPaymentDate);
195       FIELD_SET(*this, FIX::LegIssueDate);
196       FIELD_SET(*this, FIX::LegRepoCollateralSecurityType);
197       FIELD_SET(*this, FIX::LegRepurchaseTerm);
198       FIELD_SET(*this, FIX::LegRepurchaseRate);
199       FIELD_SET(*this, FIX::LegFactor);
200       FIELD_SET(*this, FIX::LegCreditRating);
201       FIELD_SET(*this, FIX::LegInstrRegistry);
202       FIELD_SET(*this, FIX::LegCountryOfIssue);
203       FIELD_SET(*this, FIX::LegStateOrProvinceOfIssue);
204       FIELD_SET(*this, FIX::LegLocaleOfIssue);
205       FIELD_SET(*this, FIX::LegRedemptionDate);
206       FIELD_SET(*this, FIX::LegStrikePrice);
207       FIELD_SET(*this, FIX::LegStrikeCurrency);
208       FIELD_SET(*this, FIX::LegOptAttribute);
209       FIELD_SET(*this, FIX::LegContractMultiplier);
210       FIELD_SET(*this, FIX::LegUnitOfMeasure);
211       FIELD_SET(*this, FIX::LegTimeUnit);
212       FIELD_SET(*this, FIX::LegCouponRate);
213       FIELD_SET(*this, FIX::LegSecurityExchange);
214       FIELD_SET(*this, FIX::LegIssuer);
215       FIELD_SET(*this, FIX::EncodedLegIssuerLen);
216       FIELD_SET(*this, FIX::EncodedLegIssuer);
217       FIELD_SET(*this, FIX::LegSecurityDesc);
218       FIELD_SET(*this, FIX::EncodedLegSecurityDescLen);
219       FIELD_SET(*this, FIX::EncodedLegSecurityDesc);
220       FIELD_SET(*this, FIX::LegRatioQty);
221       FIELD_SET(*this, FIX::LegSide);
222       FIELD_SET(*this, FIX::LegCurrency);
223       FIELD_SET(*this, FIX::LegPool);
224       FIELD_SET(*this, FIX::LegDatedDate);
225       FIELD_SET(*this, FIX::LegContractSettlMonth);
226       FIELD_SET(*this, FIX::LegInterestAccrualDate);
227       FIELD_SET(*this, FIX::LegOptionRatio);
228     };
229     FIELD_SET(*this, FIX::NoUnderlyings);
230     class NoUnderlyings: public FIX::Group
231     {
232     public:
NoUnderlyings()233     NoUnderlyings() : FIX::Group(711,311,FIX::message_order(311,312,309,305,462,463,310,763,313,542,315,241,242,243,244,245,246,256,595,592,593,594,247,316,941,317,436,998,1000,435,308,306,362,363,307,364,365,877,878,972,318,879,975,973,974,810,882,883,884,885,886,1044,1045,1046,1038,1039,944,0)) {}
234       FIELD_SET(*this, FIX::UnderlyingSymbol);
235       FIELD_SET(*this, FIX::UnderlyingSymbolSfx);
236       FIELD_SET(*this, FIX::UnderlyingSecurityID);
237       FIELD_SET(*this, FIX::UnderlyingSecurityIDSource);
238       FIELD_SET(*this, FIX::NoUnderlyingSecurityAltID);
239       class NoUnderlyingSecurityAltID: public FIX::Group
240       {
241       public:
NoUnderlyingSecurityAltID()242       NoUnderlyingSecurityAltID() : FIX::Group(457,458,FIX::message_order(458,459,0)) {}
243         FIELD_SET(*this, FIX::UnderlyingSecurityAltID);
244         FIELD_SET(*this, FIX::UnderlyingSecurityAltIDSource);
245       };
246       FIELD_SET(*this, FIX::UnderlyingProduct);
247       FIELD_SET(*this, FIX::UnderlyingCFICode);
248       FIELD_SET(*this, FIX::UnderlyingSecurityType);
249       FIELD_SET(*this, FIX::UnderlyingSecuritySubType);
250       FIELD_SET(*this, FIX::UnderlyingMaturityMonthYear);
251       FIELD_SET(*this, FIX::UnderlyingMaturityDate);
252       FIELD_SET(*this, FIX::UnderlyingPutOrCall);
253       FIELD_SET(*this, FIX::UnderlyingCouponPaymentDate);
254       FIELD_SET(*this, FIX::UnderlyingIssueDate);
255       FIELD_SET(*this, FIX::UnderlyingRepoCollateralSecurityType);
256       FIELD_SET(*this, FIX::UnderlyingRepurchaseTerm);
257       FIELD_SET(*this, FIX::UnderlyingRepurchaseRate);
258       FIELD_SET(*this, FIX::UnderlyingFactor);
259       FIELD_SET(*this, FIX::UnderlyingCreditRating);
260       FIELD_SET(*this, FIX::UnderlyingInstrRegistry);
261       FIELD_SET(*this, FIX::UnderlyingCountryOfIssue);
262       FIELD_SET(*this, FIX::UnderlyingStateOrProvinceOfIssue);
263       FIELD_SET(*this, FIX::UnderlyingLocaleOfIssue);
264       FIELD_SET(*this, FIX::UnderlyingRedemptionDate);
265       FIELD_SET(*this, FIX::UnderlyingStrikePrice);
266       FIELD_SET(*this, FIX::UnderlyingStrikeCurrency);
267       FIELD_SET(*this, FIX::UnderlyingOptAttribute);
268       FIELD_SET(*this, FIX::UnderlyingContractMultiplier);
269       FIELD_SET(*this, FIX::UnderlyingUnitOfMeasure);
270       FIELD_SET(*this, FIX::UnderlyingTimeUnit);
271       FIELD_SET(*this, FIX::UnderlyingCouponRate);
272       FIELD_SET(*this, FIX::UnderlyingSecurityExchange);
273       FIELD_SET(*this, FIX::UnderlyingIssuer);
274       FIELD_SET(*this, FIX::EncodedUnderlyingIssuerLen);
275       FIELD_SET(*this, FIX::EncodedUnderlyingIssuer);
276       FIELD_SET(*this, FIX::UnderlyingSecurityDesc);
277       FIELD_SET(*this, FIX::EncodedUnderlyingSecurityDescLen);
278       FIELD_SET(*this, FIX::EncodedUnderlyingSecurityDesc);
279       FIELD_SET(*this, FIX::UnderlyingCPProgram);
280       FIELD_SET(*this, FIX::UnderlyingCPRegType);
281       FIELD_SET(*this, FIX::UnderlyingAllocationPercent);
282       FIELD_SET(*this, FIX::UnderlyingCurrency);
283       FIELD_SET(*this, FIX::UnderlyingQty);
284       FIELD_SET(*this, FIX::UnderlyingSettlementType);
285       FIELD_SET(*this, FIX::UnderlyingCashAmount);
286       FIELD_SET(*this, FIX::UnderlyingCashType);
287       FIELD_SET(*this, FIX::UnderlyingPx);
288       FIELD_SET(*this, FIX::UnderlyingDirtyPrice);
289       FIELD_SET(*this, FIX::UnderlyingEndPrice);
290       FIELD_SET(*this, FIX::UnderlyingStartValue);
291       FIELD_SET(*this, FIX::UnderlyingCurrentValue);
292       FIELD_SET(*this, FIX::UnderlyingEndValue);
293       FIELD_SET(*this, FIX::NoUnderlyingStips);
294       class NoUnderlyingStips: public FIX::Group
295       {
296       public:
NoUnderlyingStips()297       NoUnderlyingStips() : FIX::Group(887,888,FIX::message_order(888,889,0)) {}
298         FIELD_SET(*this, FIX::UnderlyingStipType);
299         FIELD_SET(*this, FIX::UnderlyingStipValue);
300       };
301       FIELD_SET(*this, FIX::UnderlyingAdjustedQuantity);
302       FIELD_SET(*this, FIX::UnderlyingFXRate);
303       FIELD_SET(*this, FIX::UnderlyingFXRateCalc);
304       FIELD_SET(*this, FIX::UnderlyingCapValue);
305       FIELD_SET(*this, FIX::NoUndlyInstrumentParties);
306       class NoUndlyInstrumentParties: public FIX::Group
307       {
308       public:
NoUndlyInstrumentParties()309       NoUndlyInstrumentParties() : FIX::Group(1058,1059,FIX::message_order(1059,1060,1061,1062,0)) {}
310         FIELD_SET(*this, FIX::UndlyInstrumentPartyID);
311         FIELD_SET(*this, FIX::UndlyInstrumentPartyIDSource);
312         FIELD_SET(*this, FIX::UndlyInstrumentPartyRole);
313         FIELD_SET(*this, FIX::NoUndlyInstrumentPartySubIDs);
314         class NoUndlyInstrumentPartySubIDs: public FIX::Group
315         {
316         public:
NoUndlyInstrumentPartySubIDs()317         NoUndlyInstrumentPartySubIDs() : FIX::Group(1062,1063,FIX::message_order(1063,1064,0)) {}
318           FIELD_SET(*this, FIX::UndlyInstrumentPartySubID);
319           FIELD_SET(*this, FIX::UndlyInstrumentPartySubIDType);
320         };
321       };
322       FIELD_SET(*this, FIX::UnderlyingSettlMethod);
323       FIELD_SET(*this, FIX::CollAction);
324     };
325     FIELD_SET(*this, FIX::MarginExcess);
326     FIELD_SET(*this, FIX::TotalNetValue);
327     FIELD_SET(*this, FIX::CashOutstanding);
328     FIELD_SET(*this, FIX::NoTrdRegTimestamps);
329     class NoTrdRegTimestamps: public FIX::Group
330     {
331     public:
NoTrdRegTimestamps()332     NoTrdRegTimestamps() : FIX::Group(768,769,FIX::message_order(769,770,771,1033,1034,1035,0)) {}
333       FIELD_SET(*this, FIX::TrdRegTimestamp);
334       FIELD_SET(*this, FIX::TrdRegTimestampType);
335       FIELD_SET(*this, FIX::TrdRegTimestampOrigin);
336       FIELD_SET(*this, FIX::DeskType);
337       FIELD_SET(*this, FIX::DeskTypeSource);
338       FIELD_SET(*this, FIX::DeskOrderHandlingInst);
339     };
340     FIELD_SET(*this, FIX::Side);
341     FIELD_SET(*this, FIX::NoMiscFees);
342     class NoMiscFees: public FIX::Group
343     {
344     public:
NoMiscFees()345     NoMiscFees() : FIX::Group(136,137,FIX::message_order(137,138,139,891,0)) {}
346       FIELD_SET(*this, FIX::MiscFeeAmt);
347       FIELD_SET(*this, FIX::MiscFeeCurr);
348       FIELD_SET(*this, FIX::MiscFeeType);
349       FIELD_SET(*this, FIX::MiscFeeBasis);
350     };
351     FIELD_SET(*this, FIX::Price);
352     FIELD_SET(*this, FIX::PriceType);
353     FIELD_SET(*this, FIX::AccruedInterestAmt);
354     FIELD_SET(*this, FIX::EndAccruedInterestAmt);
355     FIELD_SET(*this, FIX::StartCash);
356     FIELD_SET(*this, FIX::EndCash);
357     FIELD_SET(*this, FIX::Spread);
358     FIELD_SET(*this, FIX::BenchmarkCurveCurrency);
359     FIELD_SET(*this, FIX::BenchmarkCurveName);
360     FIELD_SET(*this, FIX::BenchmarkCurvePoint);
361     FIELD_SET(*this, FIX::BenchmarkPrice);
362     FIELD_SET(*this, FIX::BenchmarkPriceType);
363     FIELD_SET(*this, FIX::BenchmarkSecurityID);
364     FIELD_SET(*this, FIX::BenchmarkSecurityIDSource);
365     FIELD_SET(*this, FIX::NoStipulations);
366     class NoStipulations: public FIX::Group
367     {
368     public:
NoStipulations()369     NoStipulations() : FIX::Group(232,233,FIX::message_order(233,234,0)) {}
370       FIELD_SET(*this, FIX::StipulationType);
371       FIELD_SET(*this, FIX::StipulationValue);
372     };
373     FIELD_SET(*this, FIX::TradingSessionID);
374     FIELD_SET(*this, FIX::TradingSessionSubID);
375     FIELD_SET(*this, FIX::SettlSessID);
376     FIELD_SET(*this, FIX::SettlSessSubID);
377     FIELD_SET(*this, FIX::ClearingBusinessDate);
378     FIELD_SET(*this, FIX::Text);
379     FIELD_SET(*this, FIX::EncodedTextLen);
380     FIELD_SET(*this, FIX::EncodedText);
381   };
382 
383 }
384 
385 #endif
386