/*
*************************************
* Broker's side of advertised trade *
*************************************
*/
export enum AdvSide {
  Buy = 'B',
  Sell = 'S',
  Trade = 'T',
  Cross = 'X'
}

/*
*****************************************************
* Identifies advertisement message transaction type *
*****************************************************
*/
export enum AdvTransType {
  New = 'N',
  Cancel = 'C',
  Replace = 'R'
}

/*
***********************************************************
* Specifies the basis or unit used to calculate the total *
* commission based on the rate.                           *
***********************************************************
*/
export enum CommType {
  AmountPerUnit = '1',
  Percent = '2',
  Absolute = '3',
  PercentageWaivedCashDiscountBasis = '4',
  PercentageWaivedEnhancedUnitsBasis = '5',
  PointsPerBondOrContract = '6',
  BasisPoints = '7',
  AmountPerContract = '8'
}

/*
****************************************************************
* Instructions for order handling on exchange trading floor.   *
* If more than one instruction is applicable to an order, this *
* field can contain multiple instructions separated by space.  *
* *** SOME VALUES HAVE BEEN REPLACED - See "Replaced Features  *
* and Supported Approach" *** (see Volume : "Glossary" for     *
* value definitions)                                           *
****************************************************************
*/
export enum ExecInst {
  StayOnOfferSide = '0',
  NotHeld = '1',
  Work = '2',
  GoAlong = '3',
  OverTheDay = '4',
  Held = '5',
  ParticipateDontInitiate = '6',
  StrictScale = '7',
  TryToScale = '8',
  StayOnBidSide = '9',
  NoCross = 'A',
  OkToCross = 'B',
  CallFirst = 'C',
  PercentOfVolume = 'D',
  DoNotIncreaseDni = 'E',
  DoNotReduceDnr = 'F',
  AllOrNoneAon = 'G',
  ReinstateOnSystemFailure = 'H',
  InstitutionsOnly = 'I',
  ReinstateOnTradingHalt = 'J',
  CancelOnTradingHalt = 'K',
  LastPegLastSale = 'L',
  MidPricePegMidpriceOfInsideQuote = 'M',
  NonNegotiable = 'N',
  OpeningPeg = 'O',
  MarketPeg = 'P',
  CancelOnSystemFailure = 'Q',
  PrimaryPeg = 'R',
  Suspend = 'S',
  FixedPegToLocalBestBidOrOfferAtTimeOfOrder = 'T',
  CustomerDisplayInstruction = 'U',
  NettingForForex = 'V',
  PegToVwap = 'W',
  TradeAlong = 'X',
  TryToStop = 'Y',
  CancelIfNotBest = 'Z',
  TrailingStopPeg = 'a',
  StrictLimit = 'b',
  IgnorePriceValidityChecks = 'c',
  PegToLimitPrice = 'd',
  WorkToTargetStrategy = 'e',
  IntermarketSweep = 'f',
  ExternalRoutingAllowed = 'g',
  ExternalRoutingNotAllowed = 'h',
  ImbalanceOnly = 'i',
  SingleExecutionRequestedForBlockTrade = 'j',
  BestExecution = 'k',
  SuspendOnSystemFailure = 'l',
  SuspendOnTradingHalt = 'm',
  ReinstateOnConnectionLoss = 'n',
  CancelOnConnectionLoss = 'o',
  SuspendOnConnectionLoss = 'p',
  Release = 'q',
  ExecuteAsDeltaNeutralUsingVolatilityProvided = 'r',
  ExecuteAsDurationNeutral = 's',
  ExecuteAsFxNeutral = 't',
  MinimumGuaranteedFillEligible = 'u',
  BypassNonDisplayedLiquidity = 'v',
  Lock = 'w',
  IgnoreNotionalValueChecks = 'x',
  TradeAtReferencePrice = 'y'
}

/*
***********************************************************
* Instructions for order handling on Broker trading floor *
***********************************************************
*/
export enum HandlInst {
  AutomatedExecutionOrderPrivateNoBrokerIntervention = '1',
  AutomatedExecutionOrderPublicBrokerInterventionOk = '2',
  ManualOrderBestExecution = '3'
}

/*
***********************************************************
* Identifies class or source of the SecurityID(48) value. *
***********************************************************
*/
export enum SecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
**********************************
* Relative quality of indication *
**********************************
*/
export enum IOIQltyInd {
  High = 'H',
  Low = 'L',
  Medium = 'M'
}

/*
****************************************************************
* Quantity (e.g. number of shares) in numeric form or relative *
* size.                                                        *
****************************************************************
*/
export enum IOIQty {
  Small = 'S',
  Medium = 'M',
  Large = 'L',
  UndisclosedQuantity = 'U'
}

/*
*******************************************
* Identifies IOI message transaction type *
*******************************************
*/
export enum IOITransType {
  New = 'N',
  Cancel = 'C',
  Replace = 'R'
}

/*
**************************************
* Broker capacity in order execution *
**************************************
*/
export enum LastCapacity {
  Agent = '1',
  CrossAsAgent = '2',
  CrossAsPrincipal = '3',
  Principal = '4',
  RisklessPrincipal = '5'
}

/*
***************************************************************
* Defines message type ALWAYS THIRD FIELD IN MESSAGE. (Always *
* unencrypted)                                                *
* Note: A "U" as the first character in the MsgType field     *
* (i.e. U, U2, etc) indicates that the message format is      *
* privately defined between the sender and receiver.          *
* *** Note the use of lower case letters ***                  *
***************************************************************
*/
export enum MsgType {
  Heartbeat = '0',
  TestRequest = '1',
  ResendRequest = '2',
  Reject = '3',
  SequenceReset = '4',
  Logout = '5',
  Ioi = '6',
  Advertisement = '7',
  ExecutionReport = '8',
  OrderCancelReject = '9',
  Logon = 'A',
  News = 'B',
  Email = 'C',
  NewOrderSingle = 'D',
  NewOrderList = 'E',
  OrderCancelRequest = 'F',
  OrderCancelReplaceRequest = 'G',
  OrderStatusRequest = 'H',
  AllocationInstruction = 'J',
  ListCancelRequest = 'K',
  ListExecute = 'L',
  ListStatusRequest = 'M',
  ListStatus = 'N',
  AllocationInstructionAck = 'P',
  DontKnowTrade = 'Q',
  QuoteRequest = 'R',
  Quote = 'S',
  SettlementInstructions = 'T',
  MarketDataRequest = 'V',
  MarketDataSnapshotFullRefresh = 'W',
  MarketDataIncrementalRefresh = 'X',
  MarketDataRequestReject = 'Y',
  QuoteCancel = 'Z',
  QuoteStatusRequest = 'a',
  MassQuoteAck = 'b',
  SecurityDefinitionRequest = 'c',
  SecurityDefinition = 'd',
  SecurityStatusRequest = 'e',
  SecurityStatus = 'f',
  TradingSessionStatusRequest = 'g',
  TradingSessionStatus = 'h',
  MassQuote = 'i',
  BusinessMessageReject = 'j',
  BidRequest = 'k',
  BidResponse = 'l',
  ListStrikePrice = 'm',
  XmLnonFix = 'n',
  RegistrationInstructions = 'o',
  RegistrationInstructionsResponse = 'p',
  OrderMassCancelRequest = 'q',
  OrderMassCancelReport = 'r',
  NewOrderCross = 's',
  CrossOrderCancelReplaceRequest = 't',
  CrossOrderCancelRequest = 'u',
  SecurityTypeRequest = 'v',
  SecurityTypes = 'w',
  SecurityListRequest = 'x',
  SecurityList = 'y',
  DerivativeSecurityListRequest = 'z',
  DerivativeSecurityList = 'AA',
  NewOrderMultileg = 'AB',
  MultilegOrderCancelReplace = 'AC',
  TradeCaptureReportRequest = 'AD',
  TradeCaptureReport = 'AE',
  OrderMassStatusRequest = 'AF',
  QuoteRequestReject = 'AG',
  RfqRequest = 'AH',
  QuoteStatusReport = 'AI',
  QuoteResponse = 'AJ',
  Confirmation = 'AK',
  PositionMaintenanceRequest = 'AL',
  PositionMaintenanceReport = 'AM',
  RequestForPositions = 'AN',
  RequestForPositionsAck = 'AO',
  PositionReport = 'AP',
  TradeCaptureReportRequestAck = 'AQ',
  TradeCaptureReportAck = 'AR',
  AllocationReport = 'AS',
  AllocationReportAck = 'AT',
  ConfirmationAck = 'AU',
  SettlementInstructionRequest = 'AV',
  AssignmentReport = 'AW',
  CollateralRequest = 'AX',
  CollateralAssignment = 'AY',
  CollateralResponse = 'AZ',
  CollateralReport = 'BA',
  CollateralInquiry = 'BB',
  NetworkCounterpartySystemStatusRequest = 'BC',
  NetworkCounterpartySystemStatusResponse = 'BD',
  UserRequest = 'BE',
  UserResponse = 'BF',
  CollateralInquiryAck = 'BG',
  ConfirmationRequest = 'BH',
  ContraryIntentionReport = 'BO',
  SecurityDefinitionUpdateReport = 'BP',
  SecurityListUpdateReport = 'BK',
  AdjustedPositionReport = 'BL',
  AllocationInstructionAlert = 'BM',
  ExecutionAck = 'BN',
  TradingSessionList = 'BJ',
  TradingSessionListRequest = 'BI',
  SettlementObligationReport = 'BQ',
  DerivativeSecurityListUpdateReport = 'BR',
  TradingSessionListUpdateReport = 'BS',
  MarketDefinitionRequest = 'BT',
  MarketDefinition = 'BU',
  MarketDefinitionUpdateReport = 'BV',
  ApplicationMessageRequest = 'BW',
  ApplicationMessageRequestAck = 'BX',
  ApplicationMessageReport = 'BY',
  OrderMassActionReport = 'BZ',
  OrderMassActionRequest = 'CA',
  UserNotification = 'CB',
  StreamAssignmentRequest = 'CC',
  StreamAssignmentReport = 'CD',
  StreamAssignmentReportAck = 'CE',
  PartyDetailsListRequest = 'CF',
  PartyDetailsListReport = 'CG',
  MarginRequirementInquiry = 'CH',
  MarginRequirementInquiryAck = 'CI',
  MarginRequirementReport = 'CJ',
  PartyDetailsListUpdateReport = 'CK',
  PartyRiskLimitsRequest = 'CL',
  PartyRiskLimitsReport = 'CM',
  SecurityMassStatusRequest = 'CN',
  SecurityMassStatus = 'CO',
  AccountSummaryReport = 'CQ',
  PartyRiskLimitsUpdateReport = 'CR',
  PartyRiskLimitsDefinitionRequest = 'CS',
  PartyRiskLimitsDefinitionRequestAck = 'CT',
  PartyEntitlementsRequest = 'CU',
  PartyEntitlementsReport = 'CV',
  QuoteAck = 'CW',
  PartyDetailsDefinitionRequest = 'CX',
  PartyDetailsDefinitionRequestAck = 'CY',
  PartyEntitlementsUpdateReport = 'CZ',
  PartyEntitlementsDefinitionRequest = 'DA',
  PartyEntitlementsDefinitionRequestAck = 'DB',
  TradeMatchReport = 'DC',
  TradeMatchReportAck = 'DD',
  PartyRiskLimitsReportAck = 'DE',
  PartyRiskLimitCheckRequest = 'DF',
  PartyRiskLimitCheckRequestAck = 'DG',
  PartyActionRequest = 'DH',
  PartyActionReport = 'DI',
  MassOrder = 'DJ',
  MassOrderAck = 'DK',
  PositionTransferInstruction = 'DL',
  PositionTransferInstructionAck = 'DM',
  PositionTransferReport = 'DN',
  MarketDataStatisticsRequest = 'DO',
  MarketDataStatisticsReport = 'DP',
  CollateralReportAck = 'DQ',
  MarketDataReport = 'DR',
  CrossRequest = 'DS',
  CrossRequestAck = 'DT'
}

/*
************************************************************
* Identifies current status of order. *** SOME VALUES HAVE *
* BEEN REPLACED - See "Replaced Features and Supported     *
* Approach" *** (see Volume : "Glossary" for value         *
* definitions)                                             *
************************************************************
*/
export enum OrdStatus {
  New = '0',
  PartiallyFilled = '1',
  Filled = '2',
  DoneForDay = '3',
  Canceled = '4',
  ReplacedNoLongerUsed = '5',
  PendingCancelIEResultOfOrderCancelRequest = '6',
  Stopped = '7',
  Rejected = '8',
  Suspended = '9',
  PendingNew = 'A',
  Calculated = 'B',
  Expired = 'C',
  AcceptedForBidding = 'D',
  PendingReplaceIEResultOfOrderCancelReplaceRequest = 'E'
}

/*
*************************************************************
* Order type. *** SOME VALUES ARE NO LONGER USED - See      *
* "Deprecated (Phased-out) Features and Supported Approach" *
* *** (see Volume : "Glossary" for value definitions)       *
*************************************************************
*/
export enum OrdType {
  Market = '1',
  Limit = '2',
  StopStopLoss = '3',
  StopLimit = '4',
  MarketOnCloseNoLongerUsed = '5',
  WithOrWithout = '6',
  LimitOrBetter = '7',
  LimitWithOrWithout = '8',
  OnBasis = '9',
  OnCloseNoLongerUsed = 'A',
  LimitOnCloseNoLongerUsed = 'B',
  ForexMarketNoLongerUsed = 'C',
  PreviouslyQuoted = 'D',
  PreviouslyIndicated = 'E',
  ForexLimitNoLongerUsed = 'F',
  ForexSwap = 'G',
  ForexPreviouslyQuotedNoLongerUsed = 'H',
  FunariLimitDayOrderWithUnexecutedPortionHandlesAsMarketOnCloseEGJapan = 'I',
  MarketIfTouchedMit = 'J',
  MarketWithLeftOverAsLimitMarketOrderWithUnexecutedQuantityBecomingLimitOrderAtLastPrice = 'K',
  PreviousFundValuationPointHistoricPricingForCiv = 'L',
  NextFundValuationPointForwardPricingForCiv = 'M',
  Pegged = 'P',
  CounterOrderSelection = 'Q',
  StopOnBidOrOffer = 'R',
  StopLimitOnBidOrOffer = 'S'
}

/*
**********************************************************
* Indicates possible retransmission of message with this *
* sequence number                                        *
**********************************************************
*/
export enum PossDupFlag {
  OriginalTransmission = 'N',
  PossibleDuplicate = 'Y'
}

/*
****************************************************
* Side of order (see Volume : "Glossary" for value *
* definitions)                                     *
****************************************************
*/
export enum Side {
  Buy = '1',
  Sell = '2',
  BuyMinus = '3',
  SellPlus = '4',
  SellShort = '5',
  SellShortExempt = '6',
  Undisclosed = '7',
  CrossOrdersWhereCounterpartyIsAnExchangeValidForAllMessagesExceptIoIs = '8',
  CrossShort = '9',
  CrossShortExempt = 'A',
  AsDefinedForUseWithMultilegInstruments = 'B',
  OppositeForUseWithMultilegInstruments = 'C',
  SubscribeEGCiv = 'D',
  RedeemEGCiv = 'E',
  LendFinancingIdentifiesDirectionOfCollateral = 'F',
  BorrowFinancingIdentifiesDirectionOfCollateral = 'G',
  SellUndisclosed = 'H'
}

/*
****************************************************************
* Specifies how long the order remains in effect. Absence of   *
* this field is interpreted as DAY. NOTE not applicable to CIV *
* Orders. (see Volume : "Glossary" for value definitions)      *
****************************************************************
*/
export enum TimeInForce {
  DayOrSession = '0',
  GoodTillCancelGtc = '1',
  AtTheOpeningOpg = '2',
  ImmediateOrCancelIoc = '3',
  FillOrKillFok = '4',
  GoodTillCrossingGtx = '5',
  GoodTillDateGtd = '6',
  AtTheClose = '7',
  GoodThroughCrossing = '8',
  AtCrossing = '9',
  GoodForTimeGft = 'A',
  GoodForAuctionGfa = 'B'
}

/*
****************
* Urgency flag *
****************
*/
export enum Urgency {
  Normal = '0',
  Flash = '1',
  Background = '2'
}

/*
****************************************************************
* Indicates order settlement period. If present, SettlDate     *
* (64) overrides this field. If both SettlType (63) and        *
* SettDate (64) are omitted, the default for SettlType (63) is *
* 0 (Regular)                                                  *
* Regular is defined as the default settlement period for the  *
* particular security on the exchange of execution.            *
* In Fixed Income the contents of this field may influence the *
* instrument definition if the SecurityID (48) is ambiguous.   *
* In the US an active Treasury offering may be re-opened, and  *
* for a time one CUSIP will apply to both the current and      *
* "when-issued" securities. Supplying a value of "7" clarifies *
* the instrument description; any other value or the absence   *
* of this field should cause the respondent to default to the  *
* active issue.                                                *
* Additionally the following patterns may be uses as well as   *
* enum values                                                  *
* Dx = FX tenor expression for "days", e.g. "D5", where "x" is *
* any integer > 0                                              *
* Mx = FX tenor expression for "months", e.g. "M3", where "x"  *
* is any integer > 0                                           *
* Wx = FX tenor expression for "weeks", e.g. "W13", where "x"  *
* is any integer > 0                                           *
* Yx = FX tenor expression for "years", e.g. "Y1", where "x"   *
* is any integer > 0                                           *
* Noted that for FX the tenors expressed using Dx, Mx, Wx, and *
* Yx values do not denote business days, but calendar days.    *
****************************************************************
*/
export enum SettlType {
  RegularFxSpotSettlementT1OrT2DependingOnCurrency = '0',
  CashTodT0 = '1',
  NextDayTomT1 = '2',
  T2 = '3',
  T3 = '4',
  T4 = '5',
  Future = '6',
  WhenAndIfIssued = '7',
  SellersOption = '8',
  T5 = '9',
  BrokenDate = 'B',
  FxSpotNextSettlementSpot1AkaNextDay = 'C'
}

/*
**************************************************************
* Additional information about the security (e.g. preferred, *
* warrants, etc.). Note also see SecurityType (167).         *
* As defined in the NYSE Stock and bond Symbol Directory and *
* in the AMEX Fitch Directory.                               *
**************************************************************
*/
export enum SymbolSfx {
  EucpWithLumpSumInterestRatherThanDiscountPrice = 'CD',
  WhenIssuedForASecurityToBeReissuedUnderAnOldCusipOrIsin = 'WI'
}

/*
***************************************************************
* Identifies allocation transaction type *** SOME VALUES HAVE *
* BEEN REPLACED - See "Replaced Features and Supported        *
* Approach" ***                                               *
***************************************************************
*/
export enum AllocTransType {
  New = '0',
  Replace = '1',
  Cancel = '2',
  PreliminaryWithoutMiscFeesAndNetMoneyRemovedReplaced = '3',
  CalculatedIncludesMiscFeesAndNetMoneyRemovedReplaced = '4',
  CalculatedWithoutPreliminarySentUnsolicitedByBrokerIncludesMiscFeesAndNetMoneyRemovedReplaced = '5',
  Reversal = '6'
}

/*
***************************************************************
* Indicates whether the resulting position after a trade      *
* should be an opening position or closing position. Used for *
* omnibus accounting - where accounts are held on a gross     *
* basis instead of being netted together.                     *
***************************************************************
*/
export enum PositionEffect {
  Close = 'C',
  Fifo = 'F',
  Open = 'O',
  Rolled = 'R',
  CloseButNotifyOnOpen = 'N',
  Default = 'D'
}

/*
*************************************************************
* Processing code for sub-account. Absence of this field in *
* AllocAccount (79) / AllocPrice (366) /AllocQty (80) /     *
* ProcessCode instance indicates regular trade.             *
*************************************************************
*/
export enum ProcessCode {
  Regular = '0',
  SoftDollar = '1',
  StepIn = '2',
  StepOut = '3',
  SoftDollarStepIn = '4',
  SoftDollarStepOut = '5',
  PlanSponsor = '6'
}

/*
************************************
* Identifies status of allocation. *
************************************
*/
export enum AllocStatus {
  AcceptedSuccessfullyProcessed = 0,
  BlockLevelReject = 1,
  AccountLevelReject = 2,
  ReceivedReceivedNotYetProcessed = 3,
  Incomplete = 4,
  RejectedByIntermediary = 5,
  AllocationPending = 6,
  Reversed = 7,
  CancelledByIntermediary = 8,
  Claimed = 9,
  Refused = 10,
  PendingGiveUpApproval = 11,
  Cancelled = 12,
  PendingTakeUpApproval = 13,
  ReversalPending = 14
}

/*
************************************
* Identifies reason for rejection. *
************************************
*/
export enum AllocRejCode {
  UnknownOrMissingAccountS = 0,
  IncorrectOrMissingBlockQuantity = 1,
  IncorrectOrMissingAveragePrice = 2,
  UnknownExecutingBrokerMnemonic = 3,
  IncorrectOrMissingCommission = 4,
  UnknownOrderId37 = 5,
  UnknownListId66 = 6,
  OtherFurtherInText58 = 7,
  IncorrectOrMissingAllocatedQuantity = 8,
  CalculationDifference = 9,
  UnknownOrStaleExecId = 10,
  MismatchedData = 11,
  UnknownClOrdId = 12,
  WarehouseRequestRejected = 13,
  DuplicateOrMissingIndividualAllocId467 = 14,
  TradeNotRecognized = 15,
  TradePreviouslyAllocated = 16,
  IncorrectOrMissingInstrument = 17,
  IncorrectOrMissingSettlementDate = 18,
  IncorrectOrMissingFundIdOrFundName = 19,
  IncorrectOrMissingSettlementInstructions = 20,
  IncorrectOrMissingFees = 21,
  IncorrectOrMissingTax = 22,
  UnknownOrMissingParty = 23,
  IncorrectOrMissingSide = 24,
  IncorrectOrMissingNetMoney = 25,
  IncorrectOrMissingTradeDate = 26,
  IncorrectOrMissingSettlementCurrencyInstructions = 27,
  IncorrrectOrMissingProcessCode81 = 28,
  Other = 99
}

/*
***********************
* Email message type. *
***********************
*/
export enum EmailType {
  New = '0',
  Reply = '1',
  AdminReply = '2'
}

/*
****************************************************************
* Indicates that message may contain information that has been *
* sent under another sequence number.                          *
****************************************************************
*/
export enum PossResend {
  OriginalTransmission = 'N',
  PossibleResend = 'Y'
}

/*
*************************************************
* Code to identify reason for cancel rejection. *
*************************************************
*/
export enum CxlRejReason {
  TooLateToCancel = 0,
  UnknownOrder = 1,
  BrokerExchangeOption = 2,
  OrderAlreadyInPendingCancelOrPendingReplaceStatus = 3,
  UnableToProcessOrderMassCancelRequest = 4,
  OrigOrdModTime586DidNotMatchLastTransactTime60OfOrder = 5,
  DuplicateClOrdId11Received = 6,
  PriceExceedsCurrentPrice = 7,
  PriceExceedsCurrentPriceBand = 8,
  InvalidPriceIncrement = 18,
  Other = 99
}

/*
****************************************************************
* Code to identify reason for order rejection. Note: Values 3, *
* 4, and 5 will be used when rejecting an order due to         *
* pre-allocation information errors.                           *
****************************************************************
*/
export enum OrdRejReason {
  BrokerExchangeOption = 0,
  UnknownSymbol = 1,
  ExchangeClosed = 2,
  OrderExceedsLimit = 3,
  TooLateToEnter = 4,
  UnknownOrder = 5,
  DuplicateOrderEGDupeClOrdId = 6,
  DuplicateOfAVerballyCommunicatedOrder = 7,
  StaleOrder = 8,
  TradeAlongRequired = 9,
  InvalidInvestorId = 10,
  UnsupportedOrderCharacteristic = 11,
  SurveillanceOption = 12,
  IncorrectQuantity = 13,
  IncorrectAllocatedQuantity = 14,
  UnknownAccountS = 15,
  PriceExceedsCurrentPriceBand = 16,
  InvalidPriceIncrement = 18,
  ReferencePriceNotAvailable = 19,
  NotionalValueExceedsThreshold = 20,
  AlgorithmRiskThresholdBreached = 21,
  ShortSellNotPermitted = 22,
  ShortSellRejectedDueToSecurityPreBorrowRestriction = 23,
  ShortSellRejectedDueToAccountPreBorrowRestriction = 24,
  InsufficientCreditLimit = 25,
  ExceededClipSizeLimit = 26,
  ExceededMaximumNotionalOrderAmount = 27,
  ExceededDv01Pv01Limit = 28,
  ExceededCs01Limit = 29,
  Other = 99
}

/*
***************************************************************
* Code to qualify IOI use. (see Volume : "Glossary" for value *
* definitions)                                                *
***************************************************************
*/
export enum IOIQualifier {
  QuantityIsNegotiable = '1',
  AllowLateBids = '2',
  ImmediateOrCounter = '3',
  AutoTrade = '4',
  AllOrNoneAon = 'A',
  MarketOnCloseMocHeldToClose = 'B',
  AtTheCloseAroundNotHeldToClose = 'C',
  VwapVolumeWeightedAveragePrice = 'D',
  Axe = 'E',
  AxeOnBid = 'F',
  AxeOnOffer = 'G',
  ClientNaturalWorking = 'H',
  InTouchWith = 'I',
  PositionWanted = 'J',
  MarketMaking = 'K',
  Limit = 'L',
  MoreBehind = 'M',
  ClientNaturalBlock = 'N',
  AtTheOpen = 'O',
  TakingAPosition = 'P',
  AtTheMarketPreviouslyCalledCurrentQuote = 'Q',
  ReadyToTrade = 'R',
  InventoryOrPortfolioShown = 'S',
  ThroughTheDay = 'T',
  Unwind = 'U',
  Versus = 'V',
  IndicationWorkingAway = 'W',
  CrossingOpportunity = 'X',
  AtTheMidpoint = 'Y',
  PreOpen = 'Z',
  AutomaticSpot = 'a',
  PlatformCalculatedSpot = 'b',
  OutsideSpread = 'c',
  DeferredSpot = 'd',
  NegotiatedSpot = 'n'
}

/*
******************************************************
* Identifies party of trade responsible for exchange *
* reporting.                                         *
******************************************************
*/
export enum ReportToExch {
  IndicatesThePartySendingMessageWillReportTrade = 'N',
  IndicatesThePartyReceivingMessageMustReportTrade = 'Y'
}

/*
**********************************************************
* Indicates whether the broker is to locate the stock in *
* conjunction with a short sell order.                   *
**********************************************************
*/
export enum LocateReqd {
  IndicatesTheBrokerIsNotRequiredToLocate = 'N',
  IndicatesTheBrokerIsResponsibleForLocatingTheStock = 'Y'
}

/*
*********************************************************
* Indicates request for forex accommodation trade to be *
* executed along with security transaction.             *
*********************************************************
*/
export enum ForexReq {
  DoNotExecuteForexAfterSecurityTrade = 'N',
  ExecuteForexAfterSecurityTrade = 'Y'
}

/*
***********************************
* Reason for execution rejection. *
***********************************
*/
export enum DKReason {
  UnknownSecurity = 'A',
  WrongSide = 'B',
  QuantityExceedsOrder = 'C',
  NoMatchingOrder = 'D',
  PriceExceedsLimit = 'E',
  CalculationDifference = 'F',
  NoMatchingExecutionReport358 = 'G',
  Other = 'Z'
}

/*
****************************************************************
* Indicates that IOI is the result of an existing agency order *
* or a facilitation position resulting from an agency order,   *
* not from principal trading or order solicitation activity.   *
****************************************************************
*/
export enum IOINaturalFlag {
  NotNatural = 'N',
  Natural = 'Y'
}

/*
****************************************
* Indicates type of miscellaneous fee. *
****************************************
*/
export enum MiscFeeType {
  RegulatoryEGSec = '1',
  Tax = '2',
  LocalCommission = '3',
  ExchangeFees = '4',
  Stamp = '5',
  Levy = '6',
  Other = '7',
  Markup = '8',
  ConsumptionTax = '9',
  PerTransaction = '10',
  Conversion = '11',
  Agent = '12',
  TransferFee = '13',
  SecurityLending = '14',
  TradeReporting = '15',
  TaxOnPrincipalAmount = '16',
  TaxOnAccruedInterestAmount = '17',
  NewIssuanceFee = '18',
  ServiceFee = '19',
  OddLotFee = '20',
  AuctionFee = '21',
  ValueAddedTaxVat = '22',
  SalesTax = '23'
}

/*
**************************************************************
* Describes the specific ExecutionRpt (e.g. Pending Cancel)  *
* while OrdStatus(39) will always identify the current order *
* status (e.g. Partially Filled).                            *
**************************************************************
*/
export enum ExecType {
  New = '0',
  DoneForDay = '3',
  Canceled = '4',
  Replaced = '5',
  PendingCancelEGResultOfOrderCancelRequest = '6',
  Stopped = '7',
  Rejected = '8',
  Suspended = '9',
  PendingNew = 'A',
  Calculated = 'B',
  Expired = 'C',
  RestatedExecutionReportSentUnsolicitedBySellsideWithExecRestatementReason378Set = 'D',
  PendingReplaceEGResultOfOrderCancelReplaceRequest = 'E',
  TradePartialFillOrFill = 'F',
  TradeCorrect = 'G',
  TradeCancel = 'H',
  OrderStatus = 'I',
  TradeInAClearingHold = 'J',
  TradeHasBeenReleasedToClearing = 'K',
  TriggeredOrActivatedBySystem = 'L',
  Locked = 'M',
  Released = 'N'
}

/*
************************************************************
* Specifies whether or not SettlCurrFxRate (155) should be *
* multiplied or divided.                                   *
************************************************************
*/
export enum SettlCurrFxRateCalc {
  Multiply = 'M',
  Divide = 'D'
}

/*
****************************************************************
* Indicates mode used for Settlement Instructions message. *** *
* SOME VALUES HAVE BEEN REPLACED - See "Replaced Features and  *
* Supported Approach" ***                                      *
****************************************************************
*/
export enum SettlInstMode {
  DefaultReplaced = '0',
  StandingInstructionsProvided = '1',
  SpecificAllocationAccountOverridingReplaced = '2',
  SpecificAllocationAccountStandingReplaced = '3',
  SpecificOrderForASingleAccountForCiv = '4',
  RequestReject = '5'
}

/*
****************************************************
* Settlement Instructions message transaction type *
****************************************************
*/
export enum SettlInstTransType {
  New = 'N',
  Cancel = 'C',
  Replace = 'R',
  Restate = 'T'
}

/*
***********************************************
* Indicates source of Settlement Instructions *
***********************************************
*/
export enum SettlInstSource {
  BrokersInstructions = '1',
  InstitutionsInstructions = '2',
  InvestorEGCivUse = '3'
}

/*
****************************************************************
* Indicates type of security. Security type enumerations are   *
* grouped by Product(460) field value. NOTE: Additional values *
* may be used by mutual agreement of the counterparties.       *
****************************************************************
*/
export enum SecurityType {
  EuroSupranationalCoupons = 'EUSUPRA',
  CorporateBond = 'CORP',
  ForeignExchangeContract = 'FOR',
  CommonStock = 'CS',
  Repurchase = 'REPO',
  BradyBond = 'BRADY',
  TermLoan = 'TERM',
  BankersAcceptance = 'BA',
  AssetBackedSecurities = 'ABS',
  OtherAnticipationNotesBanGanEtc = 'AN',
  MutualFund = 'MF',
  FederalAgencyCoupon = 'FAC',
  CorporatePrivatePlacement = 'CPP',
  PreferredStock = 'PS',
  Forward = 'FORWARD',
  CanadianTreasuryNotes = 'CAN',
  RevolverLoan = 'RVLV',
  BankDepositoryNote = 'BDN',
  CanadianMortgageBonds = 'CMB',
  CertificateOfObligation = 'COFO',
  MultilegInstrument = 'MLEG',
  NonDeliverableForward = 'FXNDF',
  Cap = 'CAP',
  FederalAgencyDiscountNote = 'FADN',
  ConvertibleBond = 'CB',
  CreditDefaultSwap = 'CDS',
  BuySellback = 'BUYSELL',
  CanadianTreasuryBills = 'CTB',
  RevolverTermLoan = 'RVLVTRM',
  BankNotes = 'BN',
  CorpMortgageBackedSecurities = 'CMBS',
  CertificateOfParticipation = 'COFP',
  NoSecurityType = 'NONE',
  FxSpot = 'FXSPOT',
  UsTreasuryNoteDeprecatedValueUseTnote = 'UST',
  PrivateExportFunding = 'PEF',
  DualCurrency = 'DUAL',
  SecuritiesLoan = 'SECLOAN',
  EuroSovereigns = 'EUSOV',
  BridgeLoan = 'BRIDGE',
  BillOfExchanges = 'BOX',
  CollateralizedMortgageObligation = 'CMO',
  GeneralObligationBonds = 'GO',
  FxForward = 'FXFWD',
  Collar = 'CLLR',
  UsTreasuryBillDeprecatedValueUseTbill = 'USTB',
  UsdSupranationalCoupons = 'SUPRA',
  EuroCorporateBond = 'EUCORP',
  SecuritiesPledge = 'SECPLEDGE',
  CanadianProvincialBonds = 'PROV',
  LetterOfCredit = 'LOFC',
  CanadianMoneyMarkets = 'CAMM',
  IoetteMortgage = 'IET',
  MandatoryTender = 'MT',
  FxSwap = 'FXSWAP',
  CommoditySwap = 'CMDTYSWAP',
  EuroCorporateFloatingRateNotes = 'EUFRN',
  TreasuryBillNonUs = 'TB',
  SwingLineFacility = 'SWING',
  CertificateOfDeposit = 'CD',
  MortgageBackedSecurities = 'MBS',
  RevenueAnticipationNote = 'RAN',
  WildcardEntryForUseOnSecurityDefinitionRequest = '?',
  DeliveryVersusPledge = 'DVPLDG',
  Exotic = 'EXOTIC',
  UsCorporateFloatingRateNotes = 'FRN',
  OptionsOnCombo = 'OOC',
  UsTreasuryBond = 'TBOND',
  DebtorInPossession = 'DINP',
  CallLoans = 'CL',
  MortgageInterestOnly = 'MIO',
  RevenueBonds = 'REV',
  Cash = 'CASH',
  Floor = 'FLR',
  CollateralBasket = 'COLLBSKT',
  IndexedLinked = 'XLINKD',
  InterestStripFromAnyBondOrNote = 'TINT',
  Defaulted = 'DEFLTED',
  CommercialPaper = 'CP',
  MortgagePrincipalOnly = 'MPO',
  SpecialAssessment = 'SPCLA',
  ForwardRateAgreement = 'FRA',
  StructuredNotes = 'STRUCT',
  Future = 'FUT',
  UsTreasuryBill = 'TBILL',
  TreasuryInflationProtectedSecurities = 'TIPS',
  Withdrawn = 'WITHDRN',
  DepositNotes = 'DN',
  MortgagePrivatePlacement = 'MPP',
  SpecialObligation = 'SPCLO',
  YankeeCorporateBond = 'YANK',
  PrincipalStripOfACallableBondOrNote = 'TCAL',
  Replaced = 'REPLACD',
  EuroCertificateOfDeposit = 'EUCD',
  MiscellaneousPassThrough = 'MPT',
  SpecialTax = 'SPCLT',
  DerivativeForward = 'FWD',
  InterestRateSwap = 'IRS',
  PrincipalStripFromANonCallableBondOrNote = 'TPRN',
  Matured = 'MATURED',
  EuroCommercialPaper = 'EUCP',
  Pfandbriefe = 'PFAND',
  TaxAnticipationNote = 'TAN',
  TotalReturnSwap = 'TRS',
  UsTreasuryNote = 'TNOTE',
  AmendedRestated = 'AMENDED',
  LiquidityNote = 'LQN',
  ToBeAnnounced = 'TBA',
  TaxAllocation = 'TAXA',
  LoanLease = 'LOANLEASE',
  Retired = 'RETIRED',
  MediumTermNotes = 'MTN',
  TaxExemptCommercialPaper = 'TECP',
  OptionsOnFutures = 'OOF',
  Overnight = 'ONITE',
  TaxableMunicipalCp = 'TMCP',
  OptionsOnPhysicalUseNotRecommended = 'OOP',
  PromissoryNote = 'PN',
  ShortTermLoanNote = 'STN',
  TaxRevenueAnticipationNote = 'TRAN',
  Option = 'OPT',
  PlazosFijos = 'PZFJ',
  VariableRateDemandNote = 'VRDN',
  SecuredLiquidityNote = 'SLQN',
  Warrant = 'WAR',
  SpotForward = 'SPOTFWD',
  TimeDeposit = 'TD',
  SwapOption = 'SWAPTION',
  Transmission = 'XMISSION',
  TermLiquidityNote = 'TLQN',
  GeneralTypeForAContractBasedOnAnEstablishedIndex = 'INDEX',
  ExtendedCommNote = 'XCN',
  BondBasket = 'BDBSKT',
  YankeeCertificateOfDeposit = 'YCD',
  ContractForDifference = 'CFD',
  CorrelationSwap = 'CRLTNSWAP',
  DividendSwap = 'DVDNDSWAP',
  EquityBasket = 'EQBSKT',
  EquityForward = 'EQFWD',
  ReturnSwap = 'RTRNSWAP',
  VarianceSwap = 'VARSWAP'
}

/*
*****************************************************
* Identifies the Standing Instruction database used *
*****************************************************
*/
export enum StandInstDbType {
  Other = 0,
  DtcSid = 1,
  ThomsonAlert = 2,
  AGlobalCustodianStandInstDbName70MustBeProvided = 3,
  AccountNet = 4
}

/*
*********************************
* Identifies type of settlement *
*********************************
*/
export enum SettlDeliveryType {
  VersusPaymentDeliverIfSellOrReceiveIfBuyVsAgainstPayment = 0,
  FreeDeliverIfSellOrReceiveIfBuyFree = 1,
  TriParty = 2,
  HoldInCustody = 3
}

/*
**************************************************************
* Identifies the type of Allocation linkage when AllocLinkID *
* (96) is used.                                              *
**************************************************************
*/
export enum AllocLinkType {
  FxNetting = 0,
  FxSwap = 1
}

/*
*********************************************************
* Indicates whether an option contract is a put or call *
*********************************************************
*/
export enum PutOrCall {
  Put = 0,
  Call = 1
}

/*
*************************************************
* Used for derivative products, such as options *
*************************************************
*/
export enum CoveredOrUncovered {
  Covered = 0,
  Uncovered = 1
}

/*
**************************************************************
* Indicates whether or not details should be communicated to *
* BrokerOfCredit (i.e. step-in broker).                      *
**************************************************************
*/
export enum NotifyBrokerOfCredit {
  DetailsShouldNotBeCommunicated = 'N',
  DetailsShouldBeCommunicated = 'Y'
}

/*
***************************************************************
* Indicates how the receiver (i.e. third party) of Allocation *
* message should handle/process the account details.          *
***************************************************************
*/
export enum AllocHandlInst {
  Match = 1,
  Forward = 2,
  ForwardAndMatch = 3
}

/*
****************************************************
* Indicates the type of RoutingID (217) specified. *
****************************************************
*/
export enum RoutingType {
  TargetFirm = 1,
  TargetList = 2,
  BlockFirm = 3,
  BlockList = 4,
  TargetPerson = 5,
  BlockPerson = 6
}

/*
**********************************************************
* Name of benchmark curve.                               *
* (Note tag # was reserved in FIX 4.1, added in FIX 4.3) *
**********************************************************
*/
export enum BenchmarkCurveName {
  Eonia = 'EONIA',
  Eurepo = 'EUREPO',
  EuriborDeprecatedUseEnumEuriborInstead = 'Euribor',
  FutureSwap = 'FutureSWAP',
  Libid = 'LIBID',
  LiborLondonInterBankOffer = 'LIBOR',
  MuniAaa = 'MuniAAA',
  Other = 'OTHER',
  Pfandbriefe = 'Pfandbriefe',
  Sonia = 'SONIA',
  Swap = 'SWAP',
  Treasury = 'Treasury',
  UsFederalReserveFedFundsEffectiveRate = 'FEDEFF',
  UsFedFundsTargetRate = 'FEDOPEN',
  EuroInterbankOfferRate = 'EURIBOR'
}

/*
**********************************************************
* For Fixed Income.                                      *
* Type of Stipulation.                                   *
* Other types may be used by mutual agreement of the     *
* counterparties.                                        *
* (Note tag # was reserved in FIX 4.1, added in FIX 4.3) *
**********************************************************
*/
export enum StipulationType {
  AlternativeMinimumTaxYN = 'AMT',
  AbsolutePrepaymentSpeed = 'ABS',
  IncurredRecoveryYN = 'INCURRCVY',
  AutoReinvestmentAtRateOrBetter = 'AUTOREINV',
  ConstantPrepaymentPenalty = 'CPP',
  AdditionalTerm = 'ADDTRM',
  BankQualifiedYN = 'BANKQUAL',
  ConstantPrepaymentRate = 'CPR',
  ModifiedEquityDelivery = 'MODEQTYDLVY',
  BargainConditionsSeeStipulationValue234ForValues = 'BGNCON',
  ConstantPrepaymentYield = 'CPY',
  NoReferenceObligationYN = 'NOREFOBLIG',
  CouponRange = 'COUPON',
  FinalCprOfHomeEquityPrepaymentCurve = 'HEP',
  UnknownReferenceObligationYN = 'UNKREFOBLIG',
  IsoCurrencyCode = 'CURRENCY',
  PercentOfManufacturedHousingPrepaymentCurve = 'MHP',
  AllGuaranteesYN = 'ALLGUARANTEES',
  CustomStartEndDate = 'CUSTOMDATE',
  MonthlyPrepaymentRate = 'MPR',
  ReferencePriceYN = 'REFPX',
  GeographicsAndRangeEx234Ca080MinimumOf80CaliforniaAssets = 'GEOG',
  PercentOfProspectusPrepaymentCurve = 'PPC',
  ReferencePolicyYN = 'REFPOLICY',
  ValuationDiscount = 'HAIRCUT',
  PercentOfBmaPrepaymentCurve = 'PSA',
  SecuredListYN = 'SECRDLIST',
  InsuredYN = 'INSURED',
  SingleMonthlyMortality = 'SMM',
  YearOrYearMonthOfIssueEx234200209 = 'ISSUE',
  IssuersTicker = 'ISSUER',
  IssueSizeRange = 'ISSUESIZE',
  LookbackDays = 'LOOKBACK',
  ExplicitLotIdentifier = 'LOT',
  LotVarianceValueInPercentMaximumOverOrUnderAllocationAllowed = 'LOTVAR',
  MaturityYearAndMonth = 'MAT',
  MaturityRange = 'MATURITY',
  MaximumSubstitutionsRepo = 'MAXSUBS',
  MinimumDenomination = 'MINDNOM',
  MinimumIncrement = 'MININCR',
  MinimumQuantity = 'MINQTY',
  PaymentFrequencyCalendar = 'PAYFREQ',
  NumberOfPieces = 'PIECES',
  PoolsMaximum = 'PMAX',
  PoolsPerLot = 'PPL',
  PoolsPerMillion = 'PPM',
  PoolsPerTrade = 'PPT',
  PriceRange = 'PRICE',
  PricingFrequency = 'PRICEFREQ',
  ProductionYear = 'PROD',
  CallProtection = 'PROTECT',
  Purpose = 'PURPOSE',
  BenchmarkPriceSource = 'PXSOURCE',
  RatingSourceAndRange = 'RATING',
  TypeOfRedemptionValuesAreNonCallablePrefundedEscrowedToMaturityPutableConvertible = 'REDEMPTION',
  RestrictedYN = 'RESTRICTED',
  MarketSector = 'SECTOR',
  SecurityTypeIncludedOrExcluded = 'SECTYPE',
  Structure = 'STRUCT',
  SubstitutionsFrequencyRepo = 'SUBSFREQ',
  SubstitutionsLeftRepo = 'SUBSLEFT',
  FreeformText = 'TEXT',
  TradeVarianceValueInPercentMaximumOverOrUnderAllocationAllowed = 'TRDVAR',
  WeightedAverageCouponValueInPercentExactOrRangePlusGrossOrNetOfServicingSpreadTheDefaultEx23465NetMinimumOf65NetOfServicingFee = 'WAC',
  WeightedAverageLifeCouponValueInPercentExactOrRange = 'WAL',
  WeightedAverageLoanAgeValueInMonthsExactOrRange = 'WALA',
  WeightedAverageMaturityValueInMonthsExactOrRange = 'WAM',
  WholePoolYN = 'WHOLE',
  YieldRange = 'YIELD',
  AverageFicoScore = 'AVFICO',
  OriginalAmount = 'ORIGAMT',
  AverageLoanSize = 'AVSIZE',
  PoolEffectiveDate = 'POOLEFFDT',
  MaximumLoanBalance = 'MAXBAL',
  PoolInitialFactor = 'POOLINITFCTR',
  PoolIdentifier = 'POOL',
  TrancheIdentifier = 'TRANCHE',
  TypeOfRollTrade = 'ROLLTYPE',
  SubstitutionYN = 'SUBSTITUTION',
  ReferenceToRollingOrClosingTrade = 'REFTRADE',
  MultipleExchangeFallbackYN = 'MULTEXCHFLLBCK',
  PrincipalOfRollingOrClosingTrade = 'REFPRIN',
  ComponentSecurityFallbackYN = 'COMPSECFLLBCK',
  InterestOfRollingOrClosingTrade = 'REFINT',
  LocalJurisdictionYN = 'LOCLJRSDCTN',
  AvailableOfferQuantityToBeShownToTheStreet = 'AVAILQTY',
  RelevantJurisdictionYN = 'RELVJRSDCTN',
  BrokersSalesCredit = 'BROKERCREDIT',
  OfferPriceToBeShownToInternalBrokers = 'INTERNALPX',
  OfferQuantityToBeShownToInternalBrokers = 'INTERNALQTY',
  TheMinimumResidualOfferQuantity = 'LEAVEQTY',
  MaximumOrderSize = 'MAXORDQTY',
  OrderQuantityIncrement = 'ORDRINCR',
  PrimaryOrSecondaryMarketIndicator = 'PRIMARY',
  BrokerSalesCreditOverride = 'SALESCREDITOVR',
  TradersCredit = 'TRADERCREDIT',
  DiscountRateWhenPriceIsDenominatedInPercentOfPar = 'DISCOUNT',
  YieldToMaturityWhenYieldType235AndYield236ShowADifferentYield = 'YTM'
}

/*
****************************************************************
* Type of yield. (Note tag # was reserved in FIX 4.1, added in *
* FIX 4.3)                                                     *
****************************************************************
*/
export enum YieldType {
  AfterTaxYieldMunicipals = 'AFTERTAX',
  AnnualYield = 'ANNUAL',
  YieldAtIssueMunicipals = 'ATISSUE',
  YieldToAvgMaturity = 'AVGMATURITY',
  BookYield = 'BOOK',
  YieldToNextCall = 'CALL',
  YieldChangeSinceClose = 'CHANGE',
  ClosingYield = 'CLOSE',
  CompoundYield = 'COMPOUND',
  CurrentYield = 'CURRENT',
  GvntEquivalentYield = 'GOVTEQUIV',
  TrueGrossYield = 'GROSS',
  YieldWithInflationAssumption = 'INFLATION',
  InverseFloaterBondYield = 'INVERSEFLOATER',
  MostRecentClosingYield = 'LASTCLOSE',
  ClosingYieldMostRecentMonth = 'LASTMONTH',
  ClosingYieldMostRecentQuarter = 'LASTQUARTER',
  ClosingYieldMostRecentYear = 'LASTYEAR',
  YieldToLongestAverageLife = 'LONGAVGLIFE',
  MarkToMarketYield = 'MARK',
  YieldToMaturity = 'MATURITY',
  YieldToNextRefundSinkingFundBonds = 'NEXTREFUND',
  OpenAverageYield = 'OPENAVG',
  PreviousCloseYield = 'PREVCLOSE',
  ProceedsYield = 'PROCEEDS',
  YieldToNextPut = 'PUT',
  SemiAnnualYield = 'SEMIANNUAL',
  YieldToShortestAverageLife = 'SHORTAVGLIFE',
  SimpleYield = 'SIMPLE',
  TaxEquivalentYield = 'TAXEQUIV',
  YieldToTenderDate = 'TENDER',
  TrueYield = 'TRUE',
  YieldValueOf132 = 'VALUE1_32',
  YieldToWorst = 'WORST'
}

/*
**************************************************************
* Driver and part of trade in the event that the Security    *
* Master file was wrong at the point of entry(Note tag # was *
* reserved in FIX 4.1, added in FIX 4.3)                     *
**************************************************************
*/
export enum TradedFlatSwitch {
  NotTradedFlat = 'N',
  TradedFlat = 'Y'
}

/*
*****************************
* Subscription Request Type *
*****************************
*/
export enum SubscriptionRequestType {
  Snapshot = '0',
  SnapshotUpdatesSubscribe = '1',
  DisablePreviousSnapshotUpdateRequestUnsubscribe = '2'
}

/*
*********************************************
* Specifies the type of Market Data update. *
*********************************************
*/
export enum MDUpdateType {
  FullRefresh = 0,
  IncrementalRefresh = 1
}

/*
***************************************************************
* Specifies whether or not book entries should be aggregated. *
* (Not specified) = broker option                             *
***************************************************************
*/
export enum AggregatedBook {
  BookEntriesToBeAggregated = 'Y',
  BookEntriesShouldNotBeAggregated = 'N'
}

/*
******************************
* Type of market data entry. *
******************************
*/
export enum MDEntryType {
  Bid = '0',
  Offer = '1',
  Trade = '2',
  IndexValue = '3',
  OpeningPrice = '4',
  ClosingPrice = '5',
  SettlementPrice = '6',
  TradingSessionHighPrice = '7',
  TradingSessionLowPrice = '8',
  TradingSessionVolumeWeightedAveragePriceVwap = '9',
  Imbalance = 'A',
  TradeVolume = 'B',
  OpenInterest = 'C',
  CompositeUnderlyingPrice = 'D',
  SimulatedSellPrice = 'E',
  SimulatedBuyPrice = 'F',
  MarginRate = 'G',
  MidPrice = 'H',
  EmptyBook = 'J',
  SettleHighPrice = 'K',
  SettleLowPrice = 'L',
  PriorSettlePrice = 'M',
  SessionHighBid = 'N',
  SessionLowOffer = 'O',
  EarlyPrices = 'P',
  AuctionClearingPrice = 'Q',
  SwapValueFactorSvfForSwapsClearedThroughACentralCounterpartyCcp = 'S',
  DailyValueAdjustmentForLongPositions = 'R',
  CumulativeValueAdjustmentForLongPositions = 'T',
  DailyValueAdjustmentForShortPositions = 'U',
  CumulativeValueAdjustmentForShortPositions = 'V',
  FixingPrice = 'W',
  CashRate = 'X',
  RecoveryRate = 'Y',
  RecoveryRateForLongPositions = 'Z',
  RecoveryRateForShortPositions = 'a',
  MarketBid = 'b',
  MarketOffer = 'c',
  ShortSaleMinimumPrice = 'd',
  PreviousClosingPrice = 'e'
}

/*
****************************
* Direction of the "tick". *
****************************
*/
export enum TickDirection {
  PlusTick = '0',
  ZeroPlusTick = '1',
  MinusTick = '2',
  ZeroMinusTick = '3'
}

/*
**********************************************************
* Space-delimited list of conditions describing a quote. *
**********************************************************
*/
export enum QuoteCondition {
  ReservedSam = '0',
  NoActiveSam = '1',
  Restricted = '2',
  RestOfBookVwap = '3',
  BetterPricesInConditionalOrders = '4',
  MedianPrice = '5',
  FullCurve = '6',
  FlatCurve = '7',
  OpenActive = 'A',
  ClosedInactive = 'B',
  ExchangeBest = 'C',
  ConsolidatedBest = 'D',
  Locked = 'E',
  Crossed = 'F',
  Depth = 'G',
  FastTrading = 'H',
  NonFirm = 'I',
  ManualSlowQuote = 'L',
  OutrightPrice = 'J',
  ImpliedPrice = 'K',
  DepthOnOffer = 'M',
  DepthOnBid = 'N',
  Closing = 'O',
  NewsDissemination = 'P',
  TradingRange = 'Q',
  OrderInflux = 'R',
  DueToRelated = 'S',
  NewsPending = 'T',
  AdditionalInfo = 'U',
  AdditionalInfoDueToRelated = 'V',
  Resume = 'W',
  ViewOfCommon = 'X',
  VolumeAlert = 'Y',
  OrderImbalance = 'Z',
  EquipmentChangeover = 'a',
  NoOpenNoResume = 'b',
  RegularEth = 'c',
  AutomaticExecution = 'd',
  AutomaticExecutionEth = 'e',
  FastMarketEth = 'f ',
  InactiveEth = 'g',
  Rotation = 'h',
  RotationEth = 'i',
  Halt = 'j',
  HaltEth = 'k',
  DueToNewsDissemination = 'l',
  DueToNewsPending = 'm',
  TradingResume = 'n',
  OutOfSequence = 'o',
  BidSpecialist = 'p',
  OfferSpecialist = 'q',
  BidOfferSpecialist = 'r',
  EndOfDaySam = 's',
  ForbiddenSam = 't',
  FrozenSam = 'u',
  PreOpeningSam = 'v',
  OpeningSam = 'w',
  OpenSam = 'x',
  SurveillanceSam = 'y',
  SuspendedSam = 'z'
}

/*
******************************
* Type of market data entry. *
******************************
*/
export enum TradeCondition {
  Cancel = '0',
  ImpliedTrade = '1',
  MarketplaceEnteredTrade = '2',
  MultiAssetClassMultilegTrade = '3',
  MultilegToMultilegTrade = '4',
  ShortSaleMinimumPrice = '5',
  Benchmark = '6',
  CashOnlyMarket = 'A',
  AveragePriceTrade = 'B',
  CashTradeSameDayClearing = 'C',
  NextDayOnlyMarket = 'D',
  OpeningReopeningTradeDetail = 'E',
  IntradayTradeDetail = 'F',
  Rule127TradeNyse = 'G',
  Rule155TradeAmex = 'H',
  SoldLastLateReporting = 'I',
  NextDayTradeNextDayClearing = 'J',
  OpenedLateReportOfOpenedTrade = 'K',
  Seller = 'L',
  SoldOutOfSequence = 'M',
  StoppedStockGuaranteeOfPriceButDoesNotExecuteTheOrder = 'N',
  ImbalanceMoreBuyersCannotBeUsedInCombinationWithQ = 'P',
  ImbalanceMoreSellersCannotBeUsedInCombinationWithP = 'Q',
  OpeningPrice = 'R',
  BargainConditionLse = 'S',
  ConvertedPriceIndicator = 'T',
  ExchangeLast = 'U',
  FinalPriceOfSession = 'V',
  ExPit = 'W',
  Crossed = 'X',
  TradesResultingFromManualSlowQuote = 'Y',
  TradesResultingFromIntermarketSweep = 'Z',
  VolumeOnly = 'a',
  DirectPlus = 'b',
  Acquisition = 'c',
  Bunched = 'd',
  Distribution = 'e',
  BunchedSale = 'f',
  SplitTrade = 'g',
  CancelStopped = 'h',
  CancelEth = 'i',
  CancelStoppedEth = 'j',
  OutOfSequenceEth = 'k',
  CancelLastEth = 'l',
  SoldLastSaleEth = 'm',
  CancelLast = 'n',
  SoldLastSale = 'o',
  CancelOpen = 'p',
  CancelOpenEth = 'q',
  OpenedSaleEth = 'r',
  CancelOnly = 's',
  CancelOnlyEth = 't',
  LateOpenEth = 'u',
  AutoExecutionEth = 'v',
  Reopen = 'w',
  ReopenEth = 'x',
  Adjusted = 'y',
  AdjustedEth = 'z',
  Spread = 'AA',
  SpreadEth = 'AB',
  Straddle = 'AC',
  StraddleEth = 'AD',
  Stopped = 'AE',
  StoppedEth = 'AF',
  RegularEth = 'AG',
  Combo = 'AH',
  ComboEth = 'AI',
  OfficialClosingPrice = 'AJ',
  PriorReferencePrice = 'AK',
  StoppedSoldLast = 'AL',
  StoppedOutOfSequence = 'AM',
  OfficalClosingPriceDuplicateEnumerationUseAjInstead = 'AN',
  CrossedDuplicateEnumerationUseXInstead = 'AO',
  FastMarket = 'AP',
  AutomaticExecution = 'AQ',
  FormT = 'AR',
  BasketIndex = 'AS',
  BurstBasket = 'AT',
  TradeThroughExempt = 'AU',
  QuoteSpread = 'AV',
  LastAuctionPrice = 'AW',
  HighPrice = 'AX',
  LowPrice = 'AY',
  SystematicInternaliserSi = 'AZ',
  AwayMarket = 'BA',
  MidPointPrice = 'BB',
  TradedBeforeIssueDate = 'BC',
  PreviousClosingPrice = 'BD',
  NationalBestBidAndOffer = 'BE'
}

/*
**************************************
* Type of Market Data update action. *
**************************************
*/
export enum MDUpdateAction {
  New = '0',
  Change = '1',
  Delete = '2',
  DeleteThru = '3',
  DeleteFrom = '4',
  Overlay = '5'
}

/*
******************************************************
* Reason for the rejection of a Market Data request. *
******************************************************
*/
export enum MDReqRejReason {
  UnknownSymbol = '0',
  DuplicateMdReqId = '1',
  InsufficientBandwidth = '2',
  InsufficientPermissions = '3',
  UnsupportedSubscriptionRequestType = '4',
  UnsupportedMarketDepth = '5',
  UnsupportedMdUpdateType = '6',
  UnsupportedAggregatedBook = '7',
  UnsupportedMdEntryType = '8',
  UnsupportedTradingSessionId = '9',
  UnsupportedScope = 'A',
  UnsupportedOpenCloseSettleFlag = 'B',
  UnsupportedMdImplicitDelete = 'C',
  InsufficientCredit = 'D'
}

/*
************************
* Reason for deletion. *
************************
*/
export enum DeleteReason {
  CancellationTradeBust = '0',
  Error = '1'
}

/*
***************************************************************
* Flag that identifies a market data entry. (Prior to FIX 4.3 *
* this field was of type char)                                *
***************************************************************
*/
export enum OpenCloseSettlFlag {
  DailyOpenCloseSettlementEntry = '0',
  SessionOpenCloseSettlementEntry = '1',
  DeliverySettlementEntry = '2',
  ExpectedEntry = '3',
  EntryFromPreviousBusinessDay = '4',
  TheoreticalPriceValue = '5'
}

/*
********************************************************
* Identifies a firm's or a security's financial status *
********************************************************
*/
export enum FinancialStatus {
  Bankrupt = '1',
  PendingDelisting = '2',
  Restricted = '3'
}

/*
********************************************
* Identifies the type of Corporate Action. *
********************************************
*/
export enum CorporateAction {
  ExDividend = 'A',
  ExDistribution = 'B',
  ExRights = 'C',
  New = 'D',
  ExInterest = 'E',
  CashDividend = 'F',
  StockDividend = 'G',
  NonIntegerStockSplit = 'H',
  ReverseStockSplit = 'I',
  StandardIntegerStockSplit = 'J',
  PositionConsolidation = 'K',
  LiquidationReorganization = 'L',
  MergerReorganization = 'M',
  RightsOffering = 'N',
  ShareholderMeeting = 'O',
  Spinoff = 'P',
  TenderOffer = 'Q',
  Warrant = 'R',
  SpecialAction = 'S',
  SymbolConversion = 'T',
  CusipNameChange = 'U',
  LeapRollover = 'V',
  SuccessionEvent = 'W'
}

/*
*******************************************************
* Identifies the status of the quote acknowledgement. *
*******************************************************
*/
export enum QuoteStatus {
  Accepted = 0,
  CanceledForSpecificSecurities = 1,
  CanceledForSpecificSecurityTypes167 = 2,
  CanceledForUnderlying = 3,
  CanceledAll = 4,
  Rejected = 5,
  RemovedFromMarket = 6,
  Expired = 7,
  Query = 8,
  QuoteNotFound = 9,
  Pending = 10,
  Pass = 11,
  LockedMarketWarning = 12,
  CrossedMarketWarning = 13,
  CanceledDueToLockedMarket = 14,
  CanceledDueToCrossedMarket = 15,
  Active = 16,
  Canceled = 17,
  UnsolicitedQuoteReplenishment = 18,
  PendingEndTrade = 19,
  TooLateToEnd = 20,
  Traded = 21,
  TradedAndRemoved = 22
}

/*
****************************************
* Identifies the type of quote cancel. *
****************************************
*/
export enum QuoteCancelType {
  CancelForOneOrMoreSecurities = 1,
  CancelForSecurityTypeS = 2,
  CancelForUnderlyingSecurity = 3,
  CancelAllQuotes = 4,
  CancelSpecifiedSingleQuote = 5,
  CancelByTypeOfQuote = 6,
  CancelForSecurityIssuer = 7,
  CancelForIssuerOfUnderlyingSecurity = 8
}

/*
******************************
* Reason Quote was rejected: *
******************************
*/
export enum QuoteRejectReason {
  UnknownSymbolSecurity = 1,
  ExchangeSecurityClosed = 2,
  QuoteRequestExceedsLimit = 3,
  TooLateToEnter = 4,
  UnknownQuote = 5,
  DuplicateQuote = 6,
  InvalidBidAskSpread = 7,
  InvalidPrice = 8,
  NotAuthorizedToQuoteSecurity = 9,
  PriceExceedsCurrentPriceBand = 10,
  QuoteLockedUnableToUpdateCancel = 11,
  InvalidOrUnknownSecurityIssuer = 12,
  InvalidOrUnknownIssuerOfUnderlyingSecurity = 13,
  NotionalValueExceedsThreshold = 14,
  PriceExceedsCurrentPriceBand2 = 15,
  ReferencePriceNotAvailable = 16,
  InsufficientCreditLimit = 17,
  ExceededClipSizeLimit = 18,
  ExceededMaximumNotionalOrderAmount = 19,
  ExceededDv01Pv01Limit = 20,
  ExceededCs01Limit = 21,
  Other = 99
}

/*
****************************************************************
* Level of Response requested from receiver of quote messages. *
* A default value should be bilaterally agreed.                *
****************************************************************
*/
export enum QuoteResponseLevel {
  NoAcknowledgement = 0,
  AcknowledgeOnlyNegativeOrErroneousQuotes = 1,
  AcknowledgeEachQuoteMessage = 2,
  SummaryAcknowledgement = 3
}

/*
*******************************************************
* Indicates the type of Quote Request being generated *
*******************************************************
*/
export enum QuoteRequestType {
  Manual = 1,
  Automatic = 2,
  ConfirmQuote = 3
}

/*
*************************************************
* Underlying security's SecurityIDSource.       *
* Valid values: see SecurityIDSource (22) field *
*************************************************
*/
export enum UnderlyingSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
***************************************************************
* Underlying security's SecurityType.                         *
* Valid values: see SecurityType (167) field                  *
* (see below for details concerning this fields use in        *
* conjunction with SecurityType=REPO)                         *
* The following applies when used in conjunction with         *
* SecurityType=REPO                                           *
* Represents the general or specific type of security that    *
* underlies a financing agreement                             *
* Valid values for SecurityType=REPO:                         *
* If bonds of a particular issuer or country are wanted in an *
* Order or are in the basket of an Execution and the          *
* SecurityType is not granular enough, include the            *
* UnderlyingIssuer (306), UnderlyingCountryOfIssue (592),     *
* UnderlyingProgram, UnderlyingRegType and/or <               *
* UnderlyingStipulations > block e.g.:                        *
***************************************************************
*/
export enum UnderlyingSecurityType {
  EuroSupranationalCoupons = 'EUSUPRA',
  CorporateBond = 'CORP',
  ForeignExchangeContract = 'FOR',
  CommonStock = 'CS',
  Repurchase = 'REPO',
  BradyBond = 'BRADY',
  TermLoan = 'TERM',
  BankersAcceptance = 'BA',
  AssetBackedSecurities = 'ABS',
  OtherAnticipationNotesBanGanEtc = 'AN',
  MutualFund = 'MF',
  FederalAgencyCoupon = 'FAC',
  CorporatePrivatePlacement = 'CPP',
  PreferredStock = 'PS',
  Forward = 'FORWARD',
  CanadianTreasuryNotes = 'CAN',
  RevolverLoan = 'RVLV',
  BankDepositoryNote = 'BDN',
  CanadianMortgageBonds = 'CMB',
  CertificateOfObligation = 'COFO',
  MultilegInstrument = 'MLEG',
  NonDeliverableForward = 'FXNDF',
  Cap = 'CAP',
  FederalAgencyDiscountNote = 'FADN',
  ConvertibleBond = 'CB',
  CreditDefaultSwap = 'CDS',
  BuySellback = 'BUYSELL',
  CanadianTreasuryBills = 'CTB',
  RevolverTermLoan = 'RVLVTRM',
  BankNotes = 'BN',
  CorpMortgageBackedSecurities = 'CMBS',
  CertificateOfParticipation = 'COFP',
  NoSecurityType = 'NONE',
  FxSpot = 'FXSPOT',
  UsTreasuryNoteDeprecatedValueUseTnote = 'UST',
  PrivateExportFunding = 'PEF',
  DualCurrency = 'DUAL',
  SecuritiesLoan = 'SECLOAN',
  EuroSovereigns = 'EUSOV',
  BridgeLoan = 'BRIDGE',
  BillOfExchanges = 'BOX',
  CollateralizedMortgageObligation = 'CMO',
  GeneralObligationBonds = 'GO',
  FxForward = 'FXFWD',
  Collar = 'CLLR',
  UsTreasuryBillDeprecatedValueUseTbill = 'USTB',
  UsdSupranationalCoupons = 'SUPRA',
  EuroCorporateBond = 'EUCORP',
  SecuritiesPledge = 'SECPLEDGE',
  CanadianProvincialBonds = 'PROV',
  LetterOfCredit = 'LOFC',
  CanadianMoneyMarkets = 'CAMM',
  IoetteMortgage = 'IET',
  MandatoryTender = 'MT',
  FxSwap = 'FXSWAP',
  CommoditySwap = 'CMDTYSWAP',
  EuroCorporateFloatingRateNotes = 'EUFRN',
  TreasuryBillNonUs = 'TB',
  SwingLineFacility = 'SWING',
  CertificateOfDeposit = 'CD',
  MortgageBackedSecurities = 'MBS',
  RevenueAnticipationNote = 'RAN',
  WildcardEntryForUseOnSecurityDefinitionRequest = '?',
  DeliveryVersusPledge = 'DVPLDG',
  Exotic = 'EXOTIC',
  UsCorporateFloatingRateNotes = 'FRN',
  OptionsOnCombo = 'OOC',
  UsTreasuryBond = 'TBOND',
  DebtorInPossession = 'DINP',
  CallLoans = 'CL',
  MortgageInterestOnly = 'MIO',
  RevenueBonds = 'REV',
  Cash = 'CASH',
  Floor = 'FLR',
  CollateralBasket = 'COLLBSKT',
  IndexedLinked = 'XLINKD',
  InterestStripFromAnyBondOrNote = 'TINT',
  Defaulted = 'DEFLTED',
  CommercialPaper = 'CP',
  MortgagePrincipalOnly = 'MPO',
  SpecialAssessment = 'SPCLA',
  ForwardRateAgreement = 'FRA',
  StructuredNotes = 'STRUCT',
  Future = 'FUT',
  UsTreasuryBill = 'TBILL',
  TreasuryInflationProtectedSecurities = 'TIPS',
  Withdrawn = 'WITHDRN',
  DepositNotes = 'DN',
  MortgagePrivatePlacement = 'MPP',
  SpecialObligation = 'SPCLO',
  YankeeCorporateBond = 'YANK',
  PrincipalStripOfACallableBondOrNote = 'TCAL',
  Replaced = 'REPLACD',
  EuroCertificateOfDeposit = 'EUCD',
  MiscellaneousPassThrough = 'MPT',
  SpecialTax = 'SPCLT',
  DerivativeForward = 'FWD',
  InterestRateSwap = 'IRS',
  PrincipalStripFromANonCallableBondOrNote = 'TPRN',
  Matured = 'MATURED',
  EuroCommercialPaper = 'EUCP',
  Pfandbriefe = 'PFAND',
  TaxAnticipationNote = 'TAN',
  TotalReturnSwap = 'TRS',
  UsTreasuryNote = 'TNOTE',
  AmendedRestated = 'AMENDED',
  LiquidityNote = 'LQN',
  ToBeAnnounced = 'TBA',
  TaxAllocation = 'TAXA',
  LoanLease = 'LOANLEASE',
  Retired = 'RETIRED',
  MediumTermNotes = 'MTN',
  TaxExemptCommercialPaper = 'TECP',
  OptionsOnFutures = 'OOF',
  Overnight = 'ONITE',
  TaxableMunicipalCp = 'TMCP',
  OptionsOnPhysicalUseNotRecommended = 'OOP',
  PromissoryNote = 'PN',
  ShortTermLoanNote = 'STN',
  TaxRevenueAnticipationNote = 'TRAN',
  Option = 'OPT',
  PlazosFijos = 'PZFJ',
  VariableRateDemandNote = 'VRDN',
  SecuredLiquidityNote = 'SLQN',
  Warrant = 'WAR',
  SpotForward = 'SPOTFWD',
  TimeDeposit = 'TD',
  SwapOption = 'SWAPTION',
  Transmission = 'XMISSION',
  TermLiquidityNote = 'TLQN',
  GeneralTypeForAContractBasedOnAnEstablishedIndex = 'INDEX',
  ExtendedCommNote = 'XCN',
  BondBasket = 'BDBSKT',
  YankeeCertificateOfDeposit = 'YCD',
  ContractForDifference = 'CFD',
  CorrelationSwap = 'CRLTNSWAP',
  DividendSwap = 'DVDNDSWAP',
  EquityBasket = 'EQBSKT',
  EquityForward = 'EQFWD',
  ReturnSwap = 'RTRNSWAP',
  VarianceSwap = 'VARSWAP'
}

/*
********************************************
* Underlying security's SymbolSfx.         *
* See SymbolSfx (65) field for description *
********************************************
*/
export enum UnderlyingSymbolSfx {
  EucpWithLumpSumInterestRatherThanDiscountPrice = 'CD',
  WhenIssuedForASecurityToBeReissuedUnderAnOldCusipOrIsin = 'WI'
}

/*
*****************************************************
* Put or call indicator of the underlying security. *
* See PutOrCall(201).                               *
*****************************************************
*/
export enum UnderlyingPutOrCall {
  Put = 0,
  Call = 1
}

/*
****************************************
* Type of Security Definition Request. *
****************************************
*/
export enum SecurityRequestType {
  RequestSecurityIdentityAndSpecifications = 0,
  RequestSecurityIdentityForTheSpecificationsProvidedNameOfTheSecurityIsNotSupplied = 1,
  RequestListSecurityTypes = 2,
  RequestListSecuritiesCanBeQualifiedWithSymbolSecurityTypeTradingSessionIdSecurityExchangeIfProvidedThenOnlyListSecuritiesForTheSpecificType = 3,
  Symbol = 4,
  SecurityTypeAndOrCfiCode = 5,
  Product = 6,
  TradingSessionId = 7,
  AllSecurities = 8,
  MarketIdOrMarketIdMarketSegmentId = 9
}

/*
*************************************************
* Type of Security Definition message response. *
*************************************************
*/
export enum SecurityResponseType {
  AcceptSecurityProposalAsIs = 1,
  AcceptSecurityProposalWithRevisionsAsIndicatedInTheMessage = 2,
  ListOfSecurityTypesReturnedPerRequest = 3,
  ListOfSecuritiesReturnedPerRequest = 4,
  RejectSecurityProposal = 5,
  CannotMatchSelectionCriteria = 6
}

/*
**************************************************************
* Indicates whether or not message is being sent as a result *
* of a subscription request or not.                          *
**************************************************************
*/
export enum UnsolicitedIndicator {
  MessageIsBeingSentAsAResultOfAPriorRequest = 'N',
  MessageIsBeingSentUnsolicited = 'Y'
}

/*
****************************************************************
* Identifies the trading status applicable to the transaction. *
****************************************************************
*/
export enum SecurityTradingStatus {
  OpeningDelay = 1,
  TradingHalt = 2,
  Resume = 3,
  NoOpenNoResume = 4,
  PriceIndication = 5,
  TradingRangeIndication = 6,
  MarketImbalanceBuy = 7,
  MarketImbalanceSell = 8,
  MarketOnCloseImbalanceBuy = 9,
  MarketOnCloseImbalanceSell = 10,
  NoMarketImbalance = 12,
  NoMarketOnCloseImbalance = 13,
  ItsPreOpening = 14,
  NewPriceIndication = 15,
  TradeDisseminationTime = 16,
  ReadyToTradeStartOfSession = 17,
  NotAvailableForTradingEndOfSession = 18,
  NotTradedOnThisMarket = 19,
  UnknownOrInvalid = 20,
  PreOpen = 21,
  OpeningRotation = 22,
  FastMarket = 23,
  PreCrossSystemIsInAPreCrossStateAllowingMarketToRespondToEitherSideOfCross = 24,
  CrossSystemHasCrossedAPercentageOfTheOrdersAndAllowsMarketToRespondPriorToCrossingRemainingPortion = 25,
  PostClose = 26,
  NoCancel = 27
}

/*
*************************************************************
* Denotes the reason for the Opening Delay or Trading Halt. *
*************************************************************
*/
export enum HaltReason {
  NewsDissemination = 0,
  OrderInflux = 1,
  OrderImbalance = 2,
  AdditionalInformation = 3,
  NewsPending = 4,
  EquipmentChangeover = 5
}

/*
*************************************************************
* Indicates whether or not the halt was due to Common Stock *
* trading being halted.                                     *
*************************************************************
*/
export enum InViewOfCommon {
  HaltWasNotRelatedToAHaltOfTheCommonStock = 'N',
  HaltWasDueToCommonStockBeingHalted = 'Y'
}

/*
************************************************************
* Indicates whether or not the halt was due to the Related *
* Security being halted.                                   *
************************************************************
*/
export enum DueToRelated {
  HaltWasNotRelatedToAHaltOfTheRelatedSecurity = 'N',
  HaltWasDueToRelatedSecurityBeingHalted = 'Y'
}

/*
**************************************
* Identifies the type of adjustment. *
**************************************
*/
export enum Adjustment {
  Cancel = 1,
  Error = 2,
  Correction = 3
}

/*
***************************************************************
* Identifier for a trading session.                           *
* A trading session spans an extended period of time that can *
* also be expressed informally in terms of the trading day.   *
* Usage is determined by market or counterparties.            *
* To specify good for session where session spans more than   *
* one calendar day, use TimeInForce = 0 (Day) in conjunction  *
* with TradingSessionID(336).                                 *
* Bilaterally agreed values of data type "String" that start  *
* with a character can be used for backward compatibility.    *
***************************************************************
*/
export enum TradingSessionID {
  Day = '1',
  HalfDay = '2',
  Morning = '3',
  Afternoon = '4',
  Evening = '5',
  AfterHours = '6',
  Holiday = '7'
}

/*
*********************
* Method of trading *
*********************
*/
export enum TradSesMethod {
  Electronic = 1,
  OpenOutcry = 2,
  TwoParty = 3
}

/*
************************
* Trading Session Mode *
************************
*/
export enum TradSesMode {
  Testing = 1,
  Simulated = 2,
  Production = 3
}

/*
*********************************
* State of the trading session. *
*********************************
*/
export enum TradSesStatus {
  Unknown = 0,
  Halted = 1,
  Open = 2,
  Closed = 3,
  PreOpen = 4,
  PreClose = 5,
  RequestRejected = 6
}

/*
************************************
* Reason Quote Entry was rejected: *
************************************
*/
export enum QuoteEntryRejectReason {
  UnknownSymbolSecurity = 1,
  ExchangeSecurityClosed = 2,
  QuoteRequestExceedsLimit = 3,
  TooLateToEnter = 4,
  UnknownQuote = 5,
  DuplicateQuote = 6,
  InvalidBidAskSpread = 7,
  InvalidPrice = 8,
  NotAuthorizedToQuoteSecurity = 9,
  PriceExceedsCurrentPriceBand = 10,
  QuoteLockedUnableToUpdateCancel = 11,
  InvalidOrUnknownSecurityIssuer = 12,
  InvalidOrUnknownIssuerOfUnderlyingSecurity = 13,
  NotionalValueExceedsThreshold = 14,
  PriceExceedsCurrentPriceBand2 = 15,
  ReferencePriceNotAvailable = 16,
  InsufficientCreditLimit = 17,
  ExceededClipSizeLimit = 18,
  ExceededMaximumNotionalOrderAmount = 19,
  ExceededDv01Pv01Limit = 20,
  ExceededCs01Limit = 21,
  Other = 99
}

/*
*********************************************************
* The MsgType (35) of the FIX message being referenced. *
*********************************************************
*/
export enum RefMsgType {
  Heartbeat = '0',
  TestRequest = '1',
  ResendRequest = '2',
  Reject = '3',
  SequenceReset = '4',
  Logout = '5',
  Ioi = '6',
  Advertisement = '7',
  ExecutionReport = '8',
  OrderCancelReject = '9',
  Logon = 'A',
  News = 'B',
  Email = 'C',
  NewOrderSingle = 'D',
  NewOrderList = 'E',
  OrderCancelRequest = 'F',
  OrderCancelReplaceRequest = 'G',
  OrderStatusRequest = 'H',
  AllocationInstruction = 'J',
  ListCancelRequest = 'K',
  ListExecute = 'L',
  ListStatusRequest = 'M',
  ListStatus = 'N',
  AllocationInstructionAck = 'P',
  DontKnowTrade = 'Q',
  QuoteRequest = 'R',
  Quote = 'S',
  SettlementInstructions = 'T',
  MarketDataRequest = 'V',
  MarketDataSnapshotFullRefresh = 'W',
  MarketDataIncrementalRefresh = 'X',
  MarketDataRequestReject = 'Y',
  QuoteCancel = 'Z',
  QuoteStatusRequest = 'a',
  MassQuoteAck = 'b',
  SecurityDefinitionRequest = 'c',
  SecurityDefinition = 'd',
  SecurityStatusRequest = 'e',
  SecurityStatus = 'f',
  TradingSessionStatusRequest = 'g',
  TradingSessionStatus = 'h',
  MassQuote = 'i',
  BusinessMessageReject = 'j',
  BidRequest = 'k',
  BidResponse = 'l',
  ListStrikePrice = 'm',
  XmLnonFix = 'n',
  RegistrationInstructions = 'o',
  RegistrationInstructionsResponse = 'p',
  OrderMassCancelRequest = 'q',
  OrderMassCancelReport = 'r',
  NewOrderCross = 's',
  CrossOrderCancelReplaceRequest = 't',
  CrossOrderCancelRequest = 'u',
  SecurityTypeRequest = 'v',
  SecurityTypes = 'w',
  SecurityListRequest = 'x',
  SecurityList = 'y',
  DerivativeSecurityListRequest = 'z',
  DerivativeSecurityList = 'AA',
  NewOrderMultileg = 'AB',
  MultilegOrderCancelReplace = 'AC',
  TradeCaptureReportRequest = 'AD',
  TradeCaptureReport = 'AE',
  OrderMassStatusRequest = 'AF',
  QuoteRequestReject = 'AG',
  RfqRequest = 'AH',
  QuoteStatusReport = 'AI',
  QuoteResponse = 'AJ',
  Confirmation = 'AK',
  PositionMaintenanceRequest = 'AL',
  PositionMaintenanceReport = 'AM',
  RequestForPositions = 'AN',
  RequestForPositionsAck = 'AO',
  PositionReport = 'AP',
  TradeCaptureReportRequestAck = 'AQ',
  TradeCaptureReportAck = 'AR',
  AllocationReport = 'AS',
  AllocationReportAck = 'AT',
  ConfirmationAck = 'AU',
  SettlementInstructionRequest = 'AV',
  AssignmentReport = 'AW',
  CollateralRequest = 'AX',
  CollateralAssignment = 'AY',
  CollateralResponse = 'AZ',
  CollateralReport = 'BA',
  CollateralInquiry = 'BB',
  NetworkCounterpartySystemStatusRequest = 'BC',
  NetworkCounterpartySystemStatusResponse = 'BD',
  UserRequest = 'BE',
  UserResponse = 'BF',
  CollateralInquiryAck = 'BG',
  ConfirmationRequest = 'BH',
  ContraryIntentionReport = 'BO',
  SecurityDefinitionUpdateReport = 'BP',
  SecurityListUpdateReport = 'BK',
  AdjustedPositionReport = 'BL',
  AllocationInstructionAlert = 'BM',
  ExecutionAck = 'BN',
  TradingSessionList = 'BJ',
  TradingSessionListRequest = 'BI',
  SettlementObligationReport = 'BQ',
  DerivativeSecurityListUpdateReport = 'BR',
  TradingSessionListUpdateReport = 'BS',
  MarketDefinitionRequest = 'BT',
  MarketDefinition = 'BU',
  MarketDefinitionUpdateReport = 'BV',
  ApplicationMessageRequest = 'BW',
  ApplicationMessageRequestAck = 'BX',
  ApplicationMessageReport = 'BY',
  OrderMassActionReport = 'BZ',
  OrderMassActionRequest = 'CA',
  UserNotification = 'CB',
  StreamAssignmentRequest = 'CC',
  StreamAssignmentReport = 'CD',
  StreamAssignmentReportAck = 'CE',
  PartyDetailsListRequest = 'CF',
  PartyDetailsListReport = 'CG',
  MarginRequirementInquiry = 'CH',
  MarginRequirementInquiryAck = 'CI',
  MarginRequirementReport = 'CJ',
  PartyDetailsListUpdateReport = 'CK',
  PartyRiskLimitsRequest = 'CL',
  PartyRiskLimitsReport = 'CM',
  SecurityMassStatusRequest = 'CN',
  SecurityMassStatus = 'CO',
  AccountSummaryReport = 'CQ',
  PartyRiskLimitsUpdateReport = 'CR',
  PartyRiskLimitsDefinitionRequest = 'CS',
  PartyRiskLimitsDefinitionRequestAck = 'CT',
  PartyEntitlementsRequest = 'CU',
  PartyEntitlementsReport = 'CV',
  QuoteAck = 'CW',
  PartyDetailsDefinitionRequest = 'CX',
  PartyDetailsDefinitionRequestAck = 'CY',
  PartyEntitlementsUpdateReport = 'CZ',
  PartyEntitlementsDefinitionRequest = 'DA',
  PartyEntitlementsDefinitionRequestAck = 'DB',
  TradeMatchReport = 'DC',
  TradeMatchReportAck = 'DD',
  PartyRiskLimitsReportAck = 'DE',
  PartyRiskLimitCheckRequest = 'DF',
  PartyRiskLimitCheckRequestAck = 'DG',
  PartyActionRequest = 'DH',
  PartyActionReport = 'DI',
  MassOrder = 'DJ',
  MassOrderAck = 'DK',
  PositionTransferInstruction = 'DL',
  PositionTransferInstructionAck = 'DM',
  PositionTransferReport = 'DN',
  MarketDataStatisticsRequest = 'DO',
  MarketDataStatisticsReport = 'DP',
  CollateralReportAck = 'DQ',
  MarketDataReport = 'DR',
  CrossRequest = 'DS',
  CrossRequestAck = 'DT'
}

/*
********************************************
* Identifies the Bid Request message type. *
********************************************
*/
export enum BidRequestTransType {
  Cancel = 'C',
  New = 'N'
}

/*
*****************************************************
* Indicates whether or not the order was solicited. *
*****************************************************
*/
export enum SolicitedFlag {
  WasNotSolicited = 'N',
  WasSolicited = 'Y'
}

/*
****************************************************************
* The reason for restatement when an ExecutionReport(35=8) or  *
* TradeCaptureReport(35=AE) message is sent with ExecType(150) *
* = D (Restated) or used when communicating an unsolicited     *
* cancel.                                                      *
****************************************************************
*/
export enum ExecRestatementReason {
  GtCorporateAction = 0,
  GtRenewalRestatementNoCorporateAction = 1,
  VerbalChange = 2,
  RepricingOfOrder = 3,
  BrokerOption = 4,
  PartialDeclineOfOrderQtyEGExchangeInitiatedPartialCancel = 5,
  CancelOnTradingHalt = 6,
  CancelOnSystemFailure = 7,
  MarketExchangeOption = 8,
  CanceledNotBest = 9,
  WarehouseRecap = 10,
  PegRefresh = 11,
  CancelOnConnectionLoss = 12,
  CancelOnLogout = 13,
  AssignTimePriority = 14,
  CancelledTradePriceViolation = 15,
  CancelledCrossImbalance = 16,
  Other = 99
}

/*
*********************************************************
* Code to identify reason for a Business Message Reject *
* message.                                              *
*********************************************************
*/
export enum BusinessRejectReason {
  Other = 0,
  UnknownId = 1,
  UnknownSecurity = 2,
  UnsupportedMessageType = 3,
  ApplicationNotAvailable = 4,
  ConditionallyRequiredFieldMissing = 5,
  NotAuthorized = 6,
  DeliverToFirmNotAvailableAtThisTime = 7,
  ThrottleLimitExceeded = 8,
  ThrottleLimitExceededSessionWillBeDisconnected = 9,
  ThrottledMessagesRejectedOnRequest = 10,
  InvalidPriceIncrement = 18
}

/*
***************************************************************
* Code to identify the price a DiscretionOffsetValue (389) is *
* related to and should be mathematically added to.           *
***************************************************************
*/
export enum DiscretionInst {
  RelatedToDisplayedPrice = '0',
  RelatedToMarketPrice = '1',
  RelatedToPrimaryPrice = '2',
  RelatedToLocalPrimaryPrice = '3',
  RelatedToMidpointPrice = '4',
  RelatedToLastTradePrice = '5',
  RelatedToVwap = '6',
  AveragePriceGuarantee = '7'
}

/*
*********************************************
* Code to identify the type of Bid Request. *
*********************************************
*/
export enum BidType {
  NonDisclosedStyleEGUsEuropean = 1,
  DisclosedSytleEGJapanese = 2,
  NoBiddingProcess = 3
}

/*
*****************************************************
* Code to identify the type of BidDescriptor (400). *
*****************************************************
*/
export enum BidDescriptorType {
  Sector = 1,
  Country = 2,
  Index = 3
}

/*
****************************************************************
* Code to identify which "SideValue" the value refers to.      *
* SideValue1 and SideValue2 are used as opposed to Buy or Sell *
* so that the basket can be quoted either way as Buy or Sell.  *
****************************************************************
*/
export enum SideValueInd {
  SideValue1 = 1,
  SideValue2 = 2
}

/*
*****************************************************
* Code to identify the type of liquidity indicator. *
*****************************************************
*/
export enum LiquidityIndType {
  E5DayMovingAverage = 1,
  E20DayMovingAverage = 2,
  NormalMarketSize = 3,
  Other = 4
}

/*
******************************************************
* Indicates whether or not to exchange for phsyical. *
******************************************************
*/
export enum ExchangeForPhysical {
  False = 'N',
  True = 'Y'
}

/*
***************************************************************
* Code to identify the desired frequency of progress reports. *
***************************************************************
*/
export enum ProgRptReqs {
  BuySideExplicitlyRequestsStatusUsingStatueRequestDefaultTheSellSideFirmCanHoweverSendADoneStatusListSTatusResponseInAnUnsolicitedFashion = 1,
  SellSidePeriodicallySendsStatusUsingListStatusPeriodOptionallySpecifiedInProgressPeriod = 2,
  RealTimeExecutionReportsToBeDiscourage = 3
}

/*
****************************************************************
* Code to represent whether value is net (inclusive of tax) or *
* gross.                                                       *
****************************************************************
*/
export enum IncTaxInd {
  Net = 1,
  Gross = 2
}

/*
*******************************************************
* Code to represent the type of trade.                *
* (Prior to FIX 4.4 this field was named "TradeType") *
*******************************************************
*/
export enum BidTradeType {
  Agency = 'A',
  VwapGuarantee = 'G',
  GuaranteedClose = 'J',
  RiskTrade = 'R'
}

/*
*******************************************
* Code to represent the basis price type. *
*******************************************
*/
export enum BasisPxType {
  ClosingPriceAtMorningSession = '2',
  ClosingPrice = '3',
  CurrentPrice = '4',
  Sq = '5',
  VwapThroughADay = '6',
  VwapThroughAMorningSession = '7',
  VwapThroughAnAfternoonSession = '8',
  VwapThroughADayExceptYoriAnOpeningAuction = '9',
  VwapThroughAMorningSessionExceptYoriAnOpeningAuction = 'A',
  VwapThroughAnAfternoonSessionExceptYoriAnOpeningAuction = 'B',
  Strike = 'C',
  Open = 'D',
  Others = 'Z'
}

/*
*************************************
* Code to represent the price type. *
*************************************
*/
export enum PriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  PerUnitIEPerShareOrContract = 2,
  FixedAmountAbsoluteValue = 3,
  DiscountPercentagePointsBelowPar = 4,
  PremiumPercentagePointsOverPar = 5,
  SpreadBasisPointsSpread = 6,
  TedPrice = 7,
  TedYield = 8,
  Yield = 9,
  FixedCabinetTradePricePrimarilyForListedFuturesAndOptions = 10,
  VariableCabinetTradePricePrimarilyForListedFuturesAndOptions = 11,
  PriceSpread = 12,
  ProductTicksInHalves = 13,
  ProductTicksInFourths = 14,
  ProductTicksInEighths = 15,
  ProductTicksInSixteenths = 16,
  ProductTicksInThirtySeconds = 17,
  ProductTicksInSixtyFourths = 18,
  ProductTicksInOneTwentyEighths = 19,
  NormalRateRepresentationEGFxRate = 20,
  InverseRateRepresentationEGFxRate = 21,
  BasisPoints = 22,
  UpFrontPoints = 23,
  InterestRate = 24,
  PercentageOfNotional = 25
}

/*
********************************************************
* Code to identify whether to book out executions on a *
* part-filled GT order on the day of execution or to   *
* accumulate.                                          *
********************************************************
*/
export enum GTBookingInst {
  BookOutAllTradesOnDayOfExecution = 0,
  AccumulateExecutionsUntilOrderIsFilledOrExpires = 1,
  AccumulateUntilVerballyNotifiedOtherwise = 2
}

/*
**************************************
* Code to represent the status type. *
**************************************
*/
export enum ListStatusType {
  Ack = 1,
  Response = 2,
  Timed = 3,
  ExecStarted = 4,
  AllDone = 5,
  Alert = 6
}

/*
****************************************************************
* Code to represent whether value is net (inclusive of tax) or *
* gross.                                                       *
****************************************************************
*/
export enum NetGrossInd {
  Net = 1,
  Gross = 2
}

/*
*************************************************
* Code to represent the status of a list order. *
*************************************************
*/
export enum ListOrderStatus {
  InBiddingProcess = 1,
  ReceivedForExecution = 2,
  Executing = 3,
  Cancelling = 4,
  Alert = 5,
  AllDone = 6,
  Reject = 7
}

/*
*********************************************
* Identifies the type of ListExecInst (69). *
*********************************************
*/
export enum ListExecInstType {
  Immediate = '1',
  WaitForExecutInstructionIEAListExecutMessageOrPhoneCallBeforeProceedingWithExecutionOfTheList = '2',
  ExchangeSwitchCivOrderSellDriven = '3',
  ExchangeSwitchCivOrderBuyDrivenCashTopUpIEAdditionalCashWillBeProvidedToFulfillTheOrder = '4',
  ExchangeSwitchCivOrderBuyDrivenCashWithdrawIEAdditionalCashWillNotBeProvidedToFulfillTheOrder = '5'
}

/*
*************************************************************
* Identifies the type of request that a Cancel Reject is in *
* response to.                                              *
*************************************************************
*/
export enum CxlRejResponseTo {
  OrderCancelRequest = '1',
  OrderCancelReplaceRequest = '2'
}

/*
***************************************************************
* Used to indicate how the multi-legged security (e.g. option *
* strategies, spreads, etc.) is being reported.               *
***************************************************************
*/
export enum MultiLegReportingType {
  SingleSecurityDefaultIfNotSpecified = '1',
  IndividualLegOfAMultiLegSecurity = '2',
  MultiLegSecurity = '3'
}

/*
*************************************************************
* Identifies class or source of the PartyID (448) value.    *
* Required if PartyID is specified. Note: applicable values *
* depend upon PartyRole (452) specified.                    *
* See "Appendix 6-G - Use of <Parties> Component Block"     *
*************************************************************
*/
export enum PartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
***************************************************************
* Identifies the type or role of the PartyID (448) specified. *
* See "Appendix 6-G - Use of <Parties> Component Block"       *
* (see Volume : "Glossary" for value definitions)             *
***************************************************************
*/
export enum PartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
****************************************************************
* Identifies class or source of the SecurityAltID (455) value. *
* Required if SecurityAltID is specified.                      *
* Valid values:                                                *
* Same valid values as the SecurityIDSource (22) field         *
****************************************************************
*/
export enum SecurityAltIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
*************************************************************
* Identifies class or source of the UnderlyingSecurityAltID *
* (458) value. Required if UnderlyingSecurityAltID is       *
* specified.                                                *
* Valid values:                                             *
* Same valid values as the SecurityIDSource (22) field      *
*************************************************************
*/
export enum UnderlyingSecurityAltIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
************************************************************
* Indicates the type of product the security is associated *
* with. See also the CFICode (461) and SecurityType (167)  *
* fields.                                                  *
************************************************************
*/
export enum Product {
  Agency = 1,
  Commodity = 2,
  Corporate = 3,
  Currency = 4,
  Equity = 5,
  Government = 6,
  Index = 7,
  Loan = 8,
  Moneymarket = 9,
  Mortgage = 10,
  Municipal = 11,
  Other = 12,
  Financing = 13
}

/*
****************************************
* Underlying security's Product.       *
* Valid values: see Product(460) field *
****************************************
*/
export enum UnderlyingProduct {
  Agency = 1,
  Commodity = 2,
  Corporate = 3,
  Currency = 4,
  Equity = 5,
  Government = 6,
  Index = 7,
  Loan = 8,
  Moneymarket = 9,
  Mortgage = 10,
  Municipal = 11,
  Other = 12,
  Financing = 13
}

/*
****************************************************************
* Specifies which direction to round For CIV - indicates       *
* whether or not the quantity of shares/units is to be rounded *
* and in which direction where CashOrdQty (152) or (for CIV    *
* only) OrderPercent (516) are specified on an order.          *
* The default is for rounding to be at the discretion of the   *
* executing broker or fund manager.                            *
* e.g. for an order specifying CashOrdQty or OrderPercent if   *
* the calculated number of shares/units was 325.76 and         *
* RoundingModulus (469) was 0 - "round down" would give 320    *
* units, 1 - "round up" would give 330 units and "round to     *
* nearest" would give 320 units.                               *
****************************************************************
*/
export enum RoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
****************************************************************
* A code identifying the payment method for a (fractional)     *
* distribution.                                                *
* 13 through 998 are reserved for future use                   *
* Values above 1000 are available for use by private agreement *
* among counterparties                                         *
****************************************************************
*/
export enum DistribPaymentMethod {
  Crest = 1,
  Nscc = 2,
  Euroclear = 3,
  Clearstream = 4,
  Cheque = 5,
  TelegraphicTransfer = 6,
  FedWire = 7,
  DirectCreditBecsBacs = 8,
  AchCredit = 9,
  Bpay = 10,
  HighValueClearingSystemHvacs = 11,
  ReinvestInFund = 12
}

/*
******************************************************
* For CIV - A one character code identifying whether *
* Cancellation rights/Cooling off period applies.    *
******************************************************
*/
export enum CancellationRights {
  Yes = 'Y',
  NoExecutionOnly = 'N',
  NoWaiverAgreement = 'M',
  NoInstitutional = 'O'
}

/*
*************************************************************
* A one character code identifying Money laundering status. *
*************************************************************
*/
export enum MoneyLaunderingStatus {
  ExemptBelowTheLimit = '1',
  ExemptClientMoneyTypeExemption = '2',
  ExemptAuthorisedCreditOrFinancialInstitution = '3',
  Passed = 'Y',
  NotChecked = 'N'
}

/*
****************************************************************
* For CIV - Identifies how the execution price LastPx (31) was *
* calculated from the fund unit/share price(s) calculated at   *
* the fund valuation point.                                    *
****************************************************************
*/
export enum ExecPriceType {
  BidPrice = 'B',
  CreationPrice = 'C',
  CreationPricePlusAdjustmentPercent = 'D',
  CreationPricePlusAdjustmentAmount = 'E',
  OfferPrice = 'O',
  OfferPriceMinusAdjustmentPercent = 'P',
  OfferPriceMinusAdjustmentAmount = 'Q',
  SinglePrice = 'S'
}

/*
****************************************************
* Identifies Trade Report message transaction type *
* (Prior to FIX 4.4 this field was of type char)   *
****************************************************
*/
export enum TradeReportTransType {
  New = 0,
  Cancel = 1,
  Replace = 2,
  Release = 3,
  Reverse = 4,
  CancelDueToBackOutOfTrade = 5
}

/*
****************************************************************
* A code identifying the Settlement payment method. 16 through *
* 998 are reserved for future use                              *
* Values above 1000 are available for use by private agreement *
* among counterparties                                         *
****************************************************************
*/
export enum PaymentMethod {
  Crest = 1,
  Nscc = 2,
  Euroclear = 3,
  Clearstream = 4,
  Cheque = 5,
  TelegraphicTransfer = 6,
  FedWire = 7,
  DebitCard = 8,
  DirectDebitBecs = 9,
  DirectCreditBecs = 10,
  CreditCard = 11,
  AchDebit = 12,
  AchCredit = 13,
  Bpay = 14,
  HighValueClearingSystemHvacs = 15,
  Chips = 16,
  SWIFT = 17,
  Chaps = 18,
  Sic = 19,
  EuroSic = 20
}

/*
****************************************************************
* For CIV - a code identifying the type of tax exempt account  *
* in which purchased shares/units are to be held.              *
* 30 - 998 are reserved for future use by recognized taxation  *
* authorities                                                  *
* 999=Other                                                    *
* values above 1000 are available for use by private agreement *
* among counterparties                                         *
****************************************************************
*/
export enum TaxAdvantageType {
  NoneNotApplicableDefault = 0,
  MaxiIsaUk = 1,
  TessaUk = 2,
  MiniCashIsaUk = 3,
  MiniStocksAndSharesIsaUk = 4,
  MiniInsuranceIsaUk = 5,
  CurrentYearPaymentUs = 6,
  PriorYearPaymentUs = 7,
  AssetTransferUs = 8,
  EmployeePriorYearUs = 9,
  EmployeeCurrentYearUs = 10,
  EmployerPriorYearUs = 11,
  EmployerCurrentYearUs = 12,
  NonFundPrototypeIraUs = 13,
  NonFundQualifiedPlanUs = 14,
  DefinedContributionPlanUs = 15,
  IndividualRetirementAccountUs = 16,
  IndividualRetirementAccountRolloverUs = 17,
  KeoghUs = 18,
  ProfitSharingPlanUs = 19,
  E401KUs = 20,
  SelfDirectedIraUs = 21,
  E403BUs = 22,
  E457Us = 23,
  RothIraFundPrototypeUs = 24,
  RothIraNonPrototypeUs = 25,
  RothConversionIraFundPrototypeUs = 26,
  RothConversionIraNonPrototypeUs = 27,
  EducationIraFundPrototypeUs = 28,
  EducationIraNonPrototypeUs = 29,
  Other = 999
}

/*
***********************************************************
* A one character code identifying whether the Fund based *
* renewal commission is to be waived.                     *
***********************************************************
*/
export enum FundRenewWaiv {
  No = 'N',
  Yes = 'Y'
}

/*
**************************************************************
* Registration status as returned by the broker or (for CIV) *
* the fund manager:                                          *
**************************************************************
*/
export enum RegistStatus {
  Accepted = 'A',
  Rejected = 'R',
  Held = 'H',
  ReminderIERegistrationInstructionsAreStillOutstanding = 'N'
}

/*
**************************************************************
* Reason(s) why Registration Instructions has been rejected. *
* The reason may be further amplified in the                 *
* RegistRejReasonCode field.                                 *
* Possible values of reason code include:                    *
**************************************************************
*/
export enum RegistRejReasonCode {
  InvalidUnacceptableAccountType = 1,
  InvalidUnacceptableTaxExemptType = 2,
  InvalidUnacceptableOwnershipType = 3,
  InvalidUnacceptableNoRegDetails = 4,
  InvalidUnacceptableRegSeqNo = 5,
  InvalidUnacceptableRegDetails = 6,
  InvalidUnacceptableMailingDetails = 7,
  InvalidUnacceptableMailingInstructions = 8,
  InvalidUnacceptableInvestorId = 9,
  InvalidUnaceeptableInvestorIdSource = 10,
  InvalidUnacceptableDateOfBirth = 11,
  InvalidUnacceptableInvestorCountryOfResidence = 12,
  InvalidUnacceptableNoDistribInstns = 13,
  InvalidUnacceptableDistribPercentage = 14,
  InvalidUnacceptableDistribPaymentMethod = 15,
  InvalidUnacceptableCashDistribAgentAcctName = 16,
  InvalidUnacceptableCashDistribAgentCode = 17,
  InvalidUnacceptableCashDistribAgentAcctNum = 18,
  Other = 99
}

/*
*********************************************************
* Identifies Registration Instructions transaction type *
*********************************************************
*/
export enum RegistTransType {
  New = '0',
  Replace = '1',
  Cancel = '2'
}

/*
**************************************************
* The relationship between Registration parties. *
**************************************************
*/
export enum OwnershipType {
  JointTrustees = '2',
  JointInvestors = 'J',
  TenantsInCommon = 'T'
}

/*
**************************************************************
* Type of ContAmtValue (520).                                *
* NOTE That Commission Amount / % in Contract Amounts is the *
* commission actually charged, rather than the commission    *
* instructions given in Fields 2/3.                          *
**************************************************************
*/
export enum ContAmtType {
  CommissionAmountActual = 1,
  CommissionPercentActual = 2,
  InitialChargeAmount = 3,
  InitialChargePercent = 4,
  DiscountAmount = 5,
  DiscountPercent = 6,
  DilutionLevyAmount = 7,
  DilutionLevyPercent = 8,
  ExitChargeAmount = 9,
  ExitChargePercent = 10,
  FundBasedRenewalCommissionPercentAKATrailCommission = 11,
  ProjectedFundValueIEForInvestmentsIntendedToRealiseOrExceedASpecificFutureValue = 12,
  FundBasedRenewalCommissionAmountBasedOnOrderValue = 13,
  FundBasedRenewalCommissionAmountBasedOnProjectedFundValue = 14,
  NetSettlementAmount = 15
}

/*
*********************************
* Identifies the type of owner. *
*********************************
*/
export enum OwnerType {
  IndividualInvestor = 1,
  PublicCompany = 2,
  PrivateCompany = 3,
  IndividualTrustee = 4,
  CompanyTrustee = 5,
  PensionPlan = 6,
  CustodianUnderGiftsToMinorsAct = 7,
  Trusts = 8,
  Fiduciaries = 9,
  NetworkingSubAccount = 10,
  NonProfitOrganization = 11,
  CorporateBody = 12,
  Nominee = 13,
  InstitutionalCustomer = 14,
  Combined = 15,
  MemberFirmEmployeeOrAssociatedPerson = 16,
  MarketMakingAccount = 17,
  ProprietaryAccount = 18,
  NonBrokerDealer = 19,
  UnknownBeneficialOwnerType = 20,
  ErrorAccountOfFirm = 21
}

/*
********************************************************
* PartyIDSource value within a nested repeating group. *
* Same values as PartyIDSource (447)                   *
********************************************************
*/
export enum NestedPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
***************************************************************
* Designates the capacity of the firm placing the order.      *
* (as of FIX 4.3, this field replaced Rule80A (tag 47) --used *
* in conjunction with OrderRestrictions (529) field)          *
* (see Volume : "Glossary" for value definitions)             *
***************************************************************
*/
export enum OrderCapacity {
  Agency = 'A',
  Proprietary = 'G',
  Individual = 'I',
  Principal = 'P',
  RisklessPrincipal = 'R',
  AgentForOtherMember = 'W',
  MixedCapacity = 'M'
}

/*
***********************************************************
* Restrictions associated with an order. If more than one *
* restriction is applicable to an order, this field can   *
* contain multiple instructions separated by space.       *
***********************************************************
*/
export enum OrderRestrictions {
  ProgramTrade = '1',
  IndexArbitrage = '2',
  NonIndexArbitrage = '3',
  CompetingMarketMaker = '4',
  ActingAsMarketMakerOrSpecialistInTheSecurity = '5',
  ActingAsMarketMakerOrSpecialistInTheUnderlyingSecurityOfADerivativeSecurity = '6',
  ForeignEntityOfForeignGovernmentOrRegulatoryJurisdiction = '7',
  ExternalMarketParticipant = '8',
  ExternalInterConnectedMarketLinkage = '9',
  RisklessArbitrage = 'A',
  IssuerHolding = 'B',
  IssuePriceStabilization = 'C',
  NonAlgorithmic = 'D',
  Algorithmic = 'E',
  Cross = 'F',
  InsiderAccount = 'G',
  SignificantShareholder = 'H',
  NormalCourseIssuerBidNcib = 'I'
}

/*
*************************************************
* Specifies scope of Order Mass Cancel Request. *
*************************************************
*/
export enum MassCancelRequestType {
  CancelOrdersForASecurity = '1',
  CancelOrdersForAnUnderlyingSecurity = '2',
  CancelOrdersForAProduct = '3',
  CancelOrdersForACfiCode = '4',
  CancelOrdersForASecurityType = '5',
  CancelOrdersForATradingSession = '6',
  CancelAllOrders = '7',
  CancelOrdersForAMarket = '8',
  CancelOrdersForAMarketSegment = '9',
  CancelOrdersForASecurityGroup = 'A',
  CancelForSecurityIssuer = 'B',
  CancelForIssuerOfUnderlyingSecurity = 'C'
}

/*
*************************************************************
* Specifies the action taken by counterparty order handling *
* system as a result of the Order Mass Cancel Request       *
*************************************************************
*/
export enum MassCancelResponse {
  CancelRequestRejectedSeeMassCancelRejectReason532 = '0',
  CancelOrdersForASecurity = '1',
  CancelOrdersForAnUnderlyingSecurity = '2',
  CancelOrdersForAProduct = '3',
  CancelOrdersForACfiCode = '4',
  CancelOrdersForASecurityType = '5',
  CancelOrdersForATradingSession = '6',
  CancelAllOrders = '7',
  CancelOrdersForAMarket = '8',
  CancelOrdersForAMarketSegment = '9',
  CancelOrdersForASecurityGroup = 'A',
  CancelOrdersForASecuritiesIssuer = 'B',
  CancelOrdersForIssuerOfUnderlyingSecurity = 'C'
}

/*
*************************************************
* Reason Order Mass Cancel Request was rejected *
*************************************************
*/
export enum MassCancelRejectReason {
  MassCancelNotSupported = 0,
  InvalidOrUnknownSecurity = 1,
  InvalidOrUnkownUnderlyingSecurity = 2,
  InvalidOrUnknownProduct = 3,
  InvalidOrUnknownCfiCode = 4,
  InvalidOrUnknownSecurityType = 5,
  InvalidOrUnknownTradingSession = 6,
  InvalidOrUnknownMarket = 7,
  InvalidOrUnkownMarketSegment = 8,
  InvalidOrUnknownSecurityGroup = 9,
  InvalidOrUnknownSecurityIssuer = 10,
  InvalidOrUnknownIssuerOfUnderlyingSecurity = 11,
  Other = 99
}

/*
****************************************************************
* Identifies the type of quote.                                *
* An indicative quote is used to inform a counterparty of a    *
* market. An indicative quote does not result directly in a    *
* trade.                                                       *
* A tradeable quote is submitted to a market and will result   *
* directly in a trade against other orders and quotes in a     *
* market.                                                      *
* A restricted tradeable quote is submitted to a market and    *
* within a certain restriction (possibly based upon price or   *
* quantity) will automatically trade against orders. Order     *
* that do not comply with restrictions are sent to the quote   *
* issuer who can choose to accept or decline the order.        *
* A counter quote is used in the negotiation model. See Volume *
* 7 - Product: Fixed Income for example usage.                 *
****************************************************************
*/
export enum QuoteType {
  Indicative = 0,
  Tradeable = 1,
  RestrictedTradeable = 2,
  CounterTradeable = 3,
  InitiallyTradeable = 4
}

/*
****************************************************
* PartyRole value within a nested repeating group. *
* Same values as PartyRole (452)                   *
****************************************************
*/
export enum NestedPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
****************************************************************
* Identifies whether an order is a margin order or a           *
* non-margin order. This is primarily used when sending orders *
* to Japanese exchanges to indicate sell margin or buy to      *
* cover. The same tag could be assigned also by buy-side to    *
* indicate the intent to sell or buy margin and the sell-side  *
* to accept or reject (base on some validation criteria) the   *
* margin request.                                              *
****************************************************************
*/
export enum CashMargin {
  Cash = '1',
  MarginOpen = '2',
  MarginClose = '3'
}

/*
**************************************************
* Specifies the market scope of the market data. *
**************************************************
*/
export enum Scope {
  LocalMarketExchangeEcnAts = '1',
  National = '2',
  Global = '3'
}

/*
************************************************************
* Defines how a server handles distribution of a truncated *
* book. Defaults to broker option.                         *
************************************************************
*/
export enum MDImplicitDelete {
  ServerMustSendAnExplicitDeleteForBidsOrOffersFallingOutsideTheRequestedMarketDepthOfTheRequest = 'N',
  ClientHasResponsibilityForImplicitlyDeletingBidsOrOffersFallingOutsideTheMarketDepthOfTheRequest = 'Y'
}

/*
*********************************************
* Type of cross being submitted to a market *
*********************************************
*/
export enum CrossType {
  AllOrNoneCross = 1,
  ImmediateOrCancelCross = 2,
  OneSidedCross = 3,
  CrossExecutedAgainstBook = 4,
  BasisCross = 5,
  ContingentCross = 6,
  VolumeWeightedAveragePriceVwapCross = 7,
  SpecialTradingSessionCross = 8,
  CustomerToCustomerCross = 9
}

/*
**************************************************************
* Indicates if one side or the other of a cross order should *
* be prioritized.                                            *
* The definition of prioritization is left to the market. In *
* some markets prioritization means which side of the cross  *
* order is applied to the market first. In other markets -   *
* prioritization may mean that the prioritized side is fully *
* executed (sometimes referred to as the side being          *
* protected).                                                *
**************************************************************
*/
export enum CrossPrioritization {
  None = 0,
  BuySideIsPrioritized = 1,
  SellSideIsPrioritized = 2
}

/*
*********************************************************
* Identifies the type/criteria of Security List Request *
*********************************************************
*/
export enum SecurityListRequestType {
  Symbol = 0,
  SecurityTypeAndOrCfiCode = 1,
  Product = 2,
  TradingSessionId = 3,
  AllSecurities = 4,
  MarketIdOrMarketIdMarketSegmentId = 5
}

/*
******************************************************
* The results returned to a Security Request message *
******************************************************
*/
export enum SecurityRequestResult {
  ValidRequest = 0,
  InvalidOrUnsupportedRequest = 1,
  NoInstrumentsFoundThatMatchSelectionCriteria = 2,
  NotAuthorizedToRetrieveInstrumentData = 3,
  InstrumentDataTemporarilyUnavailable = 4,
  RequestForInstrumentDataNotSupported = 5
}

/*
************************************************************
* Indicates the method of execution reporting requested by *
* issuer of the order.                                     *
************************************************************
*/
export enum MultiLegRptTypeReq {
  ReportByMulitlegSecurityOnlyDoNotReportLegs = 0,
  ReportByMultilegSecurityAndByInstrumentLegsBelongingToTheMultilegSecurity = 1,
  ReportByInstrumentLegsBelongingToTheMultilegSecurityOnlyDoNotReportStatusOfMultilegSecurity = 2
}

/*
*************************************************
* PositionEffect for leg of a multileg          *
* See PositionEffect (77) field for description *
*************************************************
*/
export enum LegPositionEffect {
  Close = 'C',
  Fifo = 'F',
  Open = 'O',
  Rolled = 'R',
  CloseButNotifyOnOpen = 'N',
  Default = 'D'
}

/*
******************************************************
* CoveredOrUncovered for leg of a multileg           *
* See CoveredOrUncovered (203) field for description *
******************************************************
*/
export enum LegCoveredOrUncovered {
  Covered = 0,
  Uncovered = 1
}

/*
*************************************************************
* Indicates the reason a Trading Session Status Request was *
* rejected.                                                 *
*************************************************************
*/
export enum TradSesStatusRejReason {
  UnknownOrInvalidTradingSessionId = 1,
  Other = 99
}

/*
*********************************
* Type of Trade Capture Report. *
*********************************
*/
export enum TradeRequestType {
  AllTrades = 0,
  MatchedTradesMatchingCriteriaProvidedOnRequestPartiesExecIdTradeIdOrderIdInstrumentInputSourceEtc = 1,
  UnmatchedTradesThatMatchCriteria = 2,
  UnreportedTradesThatMatchCriteria = 3,
  AdvisoriesThatMatchCriteria = 4
}

/*
********************************************************
* Indicates if the trade capture report was previously *
* reported to the counterparty or market.              *
********************************************************
*/
export enum PreviouslyReported {
  NotReportedToCounterpartyOrMarket = 'N',
  PreviouslyReportedToCounterpartyOrMarket = 'Y'
}

/*
********************************************************
* The status of this trade with respect to matching or *
* comparison.                                          *
********************************************************
*/
export enum MatchStatus {
  ComparedMatchedOrAffirmed = '0',
  UncomparedUnmatchedOrUnaffirmed = '1',
  AdvisoryOrAlert = '2'
}

/*
*************************************************************
* The point in the matching process at which this trade was *
* matched.                                                  *
*************************************************************
*/
export enum MatchType {
  OnePartyTradeReportPrivatelyNegotiatedTrade = '1',
  TwoPartyTradeReportPrivatelyNegotiatedTrade = '2',
  ConfirmedTradeReportReportingFromRecognizedMarkets = '3',
  AutoMatch = '4',
  CrossAuction = '5',
  CounterOrderSelection = '6',
  CallAuction = '7',
  IssuingBuyBackAuction = '8',
  SystematicInternaliserSi = '9',
  AutoMatchWithLastLook = '10',
  CrossAuctionWithLastLook = '11',
  ExactMatchOnTradeDateStockSymbolQuantityPriceTradeTypeAndSpecialTradeIndicatorPlusFourBadgesAndExecutionTimeWithinTwoMinuteWindow = 'A1',
  ExactMatchOnTradeDateStockSymbolQuantityPriceTradeTypeAndSpecialTradeIndicatorPlusFourBadges = 'A2',
  ActAcceptedTrade = 'M3',
  ExactMatchOnTradeDateStockSymbolQuantityPriceTradeTypeAndSpecialTradeIndicatorPlusTwoBadgesAndExecutionTimeWithinTwoMinuteWindow = 'A3',
  ActDefaultTrade = 'M4',
  ExactMatchOnTradeDateStockSymbolQuantityPriceTradeTypeAndSpecialTradeIndicatorPlusTwoBadges = 'A4',
  ActDefaultAfterM2 = 'M5',
  ExactMatchOnTradeDateStockSymbolQuantityPriceTradeTypeAndSpecialTradeIndicatorPlusExecutionTimeWithinTwoMinuteWindow = 'A5',
  ActM6Match = 'M6',
  ComparedRecordsResultingFromStampedAdvisoriesOrSpecialistAcceptsPairOffs = 'AQ',
  SummarizedMatchUsingA1ExactMatchCriteriaExceptQuantityIsSummaried = 'S1',
  SummarizedMatchUsingA2ExactMatchCriteriaExceptQuantityIsSummarized = 'S2',
  SummarizedMatchUsingA3ExactMatchCriteriaExceptQuantityIsSummarized = 'S3',
  SummarizedMatchUsingA4ExactMatchCriteriaExceptQuantityIsSummarized = 'S4',
  SummarizedMatchUsingA5ExactMatchCriteriaExceptQuantityIsSummarized = 'S5',
  ExactMatchOnTradeDateStockSymbolQuantityPriceTradeTypeAndSpecialTradeIndicatorMinusBadgesAndTimesActM1Match = 'M1',
  SummarizedMatchMinusBadgesAndTimesActM2Match = 'M2',
  OcsLockedInNonAct = 'MT'
}

/*
***********************************************************
* This trade is to be treated as an odd lot               *
* If this field is not specified, the default will be "N" *
***********************************************************
*/
export enum OddLot {
  TreatAsRoundLotDefault = 'N',
  TreatAsOddLot = 'Y'
}

/*
******************************************************
* Eligibility of this trade for clearing and central *
* counterparty processing.                           *
******************************************************
*/
export enum ClearingInstruction {
  ProcessNormally = 0,
  ExcludeFromAllNetting = 1,
  BilateralNettingOnly = 2,
  ExClearing = 3,
  SpecialTrade = 4,
  MultilateralNetting = 5,
  ClearAgainstCentralCounterparty = 6,
  ExcludeFromCentralCounterparty = 7,
  ManualModePrePostingAndOrPreGiveup = 8,
  AutomaticPostingModeTradePostingToThePositionAccountNumberSpecified = 9,
  AutomaticGiveUpModeTradeGiveUpToTheGiveUpDestinationNumberSpecified = 10,
  QualifiedServiceRepresentativeQsr = 11,
  CustomerTrade = 12,
  SelfClearing = 13,
  BuyIn = 14
}

/*
********************************************
* Type of account associated with an order *
********************************************
*/
export enum AccountType {
  AccountIsCarriedOnCustomerSideOfTheBooks = 1,
  AccountIsCarriedOnNonCustomerSideOfBooks = 2,
  HouseTrader = 3,
  FloorTrader = 4,
  AccountIsCarriedOnNonCustomerSideOfBooksAndIsCrossMargined = 6,
  AccountIsHouseTraderAndIsCrossMargined = 7,
  JointBackOfficeAccountJbo = 8,
  EquitiesSpecialist = 9,
  OptionsMarketMaker = 10,
  OptionsFirmAccount = 11
}

/*
*******************************************
* Capacity of customer placing the order. *
*******************************************
*/
export enum CustOrderCapacity {
  MemberTradingForTheirOwnAccount = 1,
  ClearingFirmTradingForItsProprietaryAccount = 2,
  MemberTradingForAnotherMember = 3,
  AllOther = 4,
  RetailCustomer = 5
}

/*
****************************
* Mass Status Request Type *
****************************
*/
export enum MassStatusReqType {
  StatusForOrdersForASecurity = 1,
  StatusForOrdersForAnUnderlyingSecurity = 2,
  StatusForOrdersForAProduct = 3,
  StatusForOrdersForACfiCode = 4,
  StatusForOrdersForASecurityType = 5,
  StatusForOrdersForATradingSession = 6,
  StatusForAllOrders = 7,
  StatusForOrdersForAPartyId = 8,
  StatusForSecurityIssuer = 9,
  StatusForIssuerOfUnderlyingSecurity = 10
}

/*
****************************************************************
* Indicates order settlement period. If present, LegSettlDate  *
* (588) overrides this field. If both LegSettlType (587) and   *
* LegSettDate (588) are omitted, the default for LegSettlType  *
* (587) is 0 (Regular)                                         *
* Regular is defined as the default settlement period for the  *
* particular security on the exchange of execution.            *
* In Fixed Income the contents of this field may influence the *
* instrument definition if the LegSecurityID (602) is          *
* ambiguous. In the US an active Treasury offering may be      *
* re-opened, and for a time one CUSIP will apply to both the   *
* current and "when-issued" securities. Supplying a value of   *
* "7" clarifies the instrument description; any other value or *
* the absence of this field should cause the respondent to     *
* default to the active issue.                                 *
* Additionally the following patterns may be uses as well as   *
* enum values                                                  *
* Dx = FX tenor expression for "days", e.g. "D5", where "x" is *
* any integer > 0                                              *
* Mx = FX tenor expression for "months", e.g. "M3", where "x"  *
* is any integer > 0                                           *
* Wx = FX tenor expression for "weeks", e.g. "W13", where "x"  *
* is any integer > 0                                           *
* Yx = FX tenor expression for "years", e.g. "Y1", where "x"   *
* is any integer > 0.                                          *
* Note that for FX the tenors expressed using Dx, Mx, Wx, and  *
* Yx values do not denote business days, but calendar days.    *
****************************************************************
*/
export enum LegSettlType {
  RegularFxSpotSettlementT1OrT2DependingOnCurrency = '0',
  CashTodT0 = '1',
  NextDayTomT1 = '2',
  T2 = '3',
  T3 = '4',
  T4 = '5',
  Future = '6',
  WhenAndIfIssued = '7',
  SellersOption = '8',
  T5 = '9',
  BrokenDate = 'B',
  FxSpotNextSettlementSpot1AkaNextDay = 'C'
}

/*
*********************************************************
* Indicates whether or not automatic booking can occur. *
*********************************************************
*/
export enum DayBookingInst {
  CanTriggerBookingWithoutReferenceToTheOrderInitiatorAuto = '0',
  SpeakWithOrderInitiatorBeforeBookingSpeakFirst = '1',
  Accumulate = '2'
}

/*
***********************************************
* Indicates what constitutes a bookable unit. *
***********************************************
*/
export enum BookingUnit {
  EachPartialExecutionIsABookableUnit = '0',
  AggregatePartialExecutionsOnThisOrderAndBookOneTradePerOrder = '1',
  AggregateExecutionsForThisSymbolSideAndSettlementDate = '2'
}

/*
******************************************
* Indicates the method of preallocation. *
******************************************
*/
export enum PreallocMethod {
  ProRata = '0',
  DoNotProRataDiscussFirst = '1'
}

/*
**********************************************************
* Multileg instrument's individual security's SymbolSfx. *
* See SymbolSfx (65) field for description               *
**********************************************************
*/
export enum LegSymbolSfx {
  EucpWithLumpSumInterestRatherThanDiscountPrice = 'CD',
  WhenIssuedForASecurityToBeReissuedUnderAnOldCusipOrIsin = 'WI'
}

/*
***************************************************
* Multileg instrument's individual security's     *
* SecurityIDSource.                               *
* See SecurityIDSource (22) field for description *
***************************************************
*/
export enum LegSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
*******************************************************
* Multileg instrument's individual security's         *
* SecurityAltIDSource.                                *
* See SecurityAltIDSource (456) field for description *
*******************************************************
*/
export enum LegSecurityAltIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
********************************************************
* Multileg instrument's individual security's Product. *
* See Product (460) field for description              *
********************************************************
*/
export enum LegProduct {
  Agency = 1,
  Commodity = 2,
  Corporate = 3,
  Currency = 4,
  Equity = 5,
  Government = 6,
  Index = 7,
  Loan = 8,
  Moneymarket = 9,
  Mortgage = 10,
  Municipal = 11,
  Other = 12,
  Financing = 13
}

/*
********************************************
* Refer to definition of SecurityType(167) *
********************************************
*/
export enum LegSecurityType {
  EuroSupranationalCoupons = 'EUSUPRA',
  CorporateBond = 'CORP',
  ForeignExchangeContract = 'FOR',
  CommonStock = 'CS',
  Repurchase = 'REPO',
  BradyBond = 'BRADY',
  TermLoan = 'TERM',
  BankersAcceptance = 'BA',
  AssetBackedSecurities = 'ABS',
  OtherAnticipationNotesBanGanEtc = 'AN',
  MutualFund = 'MF',
  FederalAgencyCoupon = 'FAC',
  CorporatePrivatePlacement = 'CPP',
  PreferredStock = 'PS',
  Forward = 'FORWARD',
  CanadianTreasuryNotes = 'CAN',
  RevolverLoan = 'RVLV',
  BankDepositoryNote = 'BDN',
  CanadianMortgageBonds = 'CMB',
  CertificateOfObligation = 'COFO',
  MultilegInstrument = 'MLEG',
  NonDeliverableForward = 'FXNDF',
  Cap = 'CAP',
  FederalAgencyDiscountNote = 'FADN',
  ConvertibleBond = 'CB',
  CreditDefaultSwap = 'CDS',
  BuySellback = 'BUYSELL',
  CanadianTreasuryBills = 'CTB',
  RevolverTermLoan = 'RVLVTRM',
  BankNotes = 'BN',
  CorpMortgageBackedSecurities = 'CMBS',
  CertificateOfParticipation = 'COFP',
  NoSecurityType = 'NONE',
  FxSpot = 'FXSPOT',
  UsTreasuryNoteDeprecatedValueUseTnote = 'UST',
  PrivateExportFunding = 'PEF',
  DualCurrency = 'DUAL',
  SecuritiesLoan = 'SECLOAN',
  EuroSovereigns = 'EUSOV',
  BridgeLoan = 'BRIDGE',
  BillOfExchanges = 'BOX',
  CollateralizedMortgageObligation = 'CMO',
  GeneralObligationBonds = 'GO',
  FxForward = 'FXFWD',
  Collar = 'CLLR',
  UsTreasuryBillDeprecatedValueUseTbill = 'USTB',
  UsdSupranationalCoupons = 'SUPRA',
  EuroCorporateBond = 'EUCORP',
  SecuritiesPledge = 'SECPLEDGE',
  CanadianProvincialBonds = 'PROV',
  LetterOfCredit = 'LOFC',
  CanadianMoneyMarkets = 'CAMM',
  IoetteMortgage = 'IET',
  MandatoryTender = 'MT',
  FxSwap = 'FXSWAP',
  CommoditySwap = 'CMDTYSWAP',
  EuroCorporateFloatingRateNotes = 'EUFRN',
  TreasuryBillNonUs = 'TB',
  SwingLineFacility = 'SWING',
  CertificateOfDeposit = 'CD',
  MortgageBackedSecurities = 'MBS',
  RevenueAnticipationNote = 'RAN',
  WildcardEntryForUseOnSecurityDefinitionRequest = '?',
  DeliveryVersusPledge = 'DVPLDG',
  Exotic = 'EXOTIC',
  UsCorporateFloatingRateNotes = 'FRN',
  OptionsOnCombo = 'OOC',
  UsTreasuryBond = 'TBOND',
  DebtorInPossession = 'DINP',
  CallLoans = 'CL',
  MortgageInterestOnly = 'MIO',
  RevenueBonds = 'REV',
  Cash = 'CASH',
  Floor = 'FLR',
  CollateralBasket = 'COLLBSKT',
  IndexedLinked = 'XLINKD',
  InterestStripFromAnyBondOrNote = 'TINT',
  Defaulted = 'DEFLTED',
  CommercialPaper = 'CP',
  MortgagePrincipalOnly = 'MPO',
  SpecialAssessment = 'SPCLA',
  ForwardRateAgreement = 'FRA',
  StructuredNotes = 'STRUCT',
  Future = 'FUT',
  UsTreasuryBill = 'TBILL',
  TreasuryInflationProtectedSecurities = 'TIPS',
  Withdrawn = 'WITHDRN',
  DepositNotes = 'DN',
  MortgagePrivatePlacement = 'MPP',
  SpecialObligation = 'SPCLO',
  YankeeCorporateBond = 'YANK',
  PrincipalStripOfACallableBondOrNote = 'TCAL',
  Replaced = 'REPLACD',
  EuroCertificateOfDeposit = 'EUCD',
  MiscellaneousPassThrough = 'MPT',
  SpecialTax = 'SPCLT',
  DerivativeForward = 'FWD',
  InterestRateSwap = 'IRS',
  PrincipalStripFromANonCallableBondOrNote = 'TPRN',
  Matured = 'MATURED',
  EuroCommercialPaper = 'EUCP',
  Pfandbriefe = 'PFAND',
  TaxAnticipationNote = 'TAN',
  TotalReturnSwap = 'TRS',
  UsTreasuryNote = 'TNOTE',
  AmendedRestated = 'AMENDED',
  LiquidityNote = 'LQN',
  ToBeAnnounced = 'TBA',
  TaxAllocation = 'TAXA',
  LoanLease = 'LOANLEASE',
  Retired = 'RETIRED',
  MediumTermNotes = 'MTN',
  TaxExemptCommercialPaper = 'TECP',
  OptionsOnFutures = 'OOF',
  Overnight = 'ONITE',
  TaxableMunicipalCp = 'TMCP',
  OptionsOnPhysicalUseNotRecommended = 'OOP',
  PromissoryNote = 'PN',
  ShortTermLoanNote = 'STN',
  TaxRevenueAnticipationNote = 'TRAN',
  Option = 'OPT',
  PlazosFijos = 'PZFJ',
  VariableRateDemandNote = 'VRDN',
  SecuredLiquidityNote = 'SLQN',
  Warrant = 'WAR',
  SpotForward = 'SPOTFWD',
  TimeDeposit = 'TD',
  SwapOption = 'SWAPTION',
  Transmission = 'XMISSION',
  TermLiquidityNote = 'TLQN',
  GeneralTypeForAContractBasedOnAnEstablishedIndex = 'INDEX',
  ExtendedCommNote = 'XCN',
  BondBasket = 'BDBSKT',
  YankeeCertificateOfDeposit = 'YCD',
  ContractForDifference = 'CFD',
  CorrelationSwap = 'CRLTNSWAP',
  DividendSwap = 'DVDNDSWAP',
  EquityBasket = 'EQBSKT',
  EquityForward = 'EQFWD',
  ReturnSwap = 'RTRNSWAP',
  VarianceSwap = 'VARSWAP'
}

/*
********************************************************
* The side of this individual leg (multileg security). *
* See Side (54) field for description and values       *
********************************************************
*/
export enum LegSide {
  Buy = '1',
  Sell = '2',
  BuyMinus = '3',
  SellPlus = '4',
  SellShort = '5',
  SellShortExempt = '6',
  Undisclosed = '7',
  CrossOrdersWhereCounterpartyIsAnExchangeValidForAllMessagesExceptIoIs = '8',
  CrossShort = '9',
  CrossShortExempt = 'A',
  AsDefinedForUseWithMultilegInstruments = 'B',
  OppositeForUseWithMultilegInstruments = 'C',
  SubscribeEGCiv = 'D',
  RedeemEGCiv = 'E',
  LendFinancingIdentifiesDirectionOfCollateral = 'F',
  BorrowFinancingIdentifiesDirectionOfCollateral = 'G',
  SellUndisclosed = 'H'
}

/*
****************************************************************
* Optional market assigned sub identifier for a trading phase  *
* within a trading session. Usage is determined by market or   *
* counterparties. Used by US based futures markets to identify *
* exchange specific execution time bracket codes as required   *
* by US market regulations. Bilaterally agreed values of data  *
* type "String" that start with a character can be used for    *
* backward compatibility                                       *
****************************************************************
*/
export enum TradingSessionSubID {
  PreTrading = '1',
  OpeningOrOpeningAuction = '2',
  ContinuousTrading = '3',
  ClosingOrClosingAuction = '4',
  PostTrading = '5',
  ScheduledIntradayAuction = '6',
  Quiescent = '7',
  AnyAuction = '8',
  UnscheduledIntradayAuction = '9',
  OutOfMainSessionTrading = '10',
  PrivateAuction = '11',
  PublicAuction = '12',
  GroupAuction = '13'
}

/*
***************************************************************
* Describes the specific type or purpose of an Allocation     *
* message (i.e. "Buyside Calculated")                         *
* (see Volume : "Glossary" for value definitions)             *
* *** SOME VALUES HAVE BEEN REPLACED - See "Replaced Features *
* and Supported Approach" ***                                 *
***************************************************************
*/
export enum AllocType {
  CalculatedIncludesMiscFeesAndNetMoney = 1,
  PreliminaryWithoutMiscFeesAndNetMoney = 2,
  SellsideCalculatedUsingPreliminaryIncludesMiscFeesAndNetMoneyReplaced = 3,
  SellsideCalculateddWithoutPreliminarySentUnsolicitedBySellsideIncludesMiscFeesAndNetMoneyReplaced = 4,
  ReadyToBookSingleOrder = 5,
  BuysideReadyToBookCombinedSetOfOrdersReplaced = 6,
  WarehouseInstruction = 7,
  RequestToIntermediary = 8,
  Accept = 9,
  Reject = 10,
  AcceptPending = 11,
  IncompleteGroup = 12,
  CompleteGroup = 13,
  ReversalPending = 14,
  ReopenGroup = 15,
  CancelGroup = 16,
  GiveUp = 17,
  TakeUp = 18,
  RefuseTakeUp = 19,
  InitiateReversal = 20,
  Reverse = 21,
  RefuseReversal = 22,
  SubAllocationGiveUp = 23,
  ApproveGiveUp = 24,
  ApproveTakeUp = 25
}

/*
************************************************************
* Indicates type of fee being assessed of the customer for *
* trade executions at an exchange. Applicable for futures  *
* markets only at this time.                               *
* (Values source CBOT, CME, NYBOT, and NYMEX):             *
************************************************************
*/
export enum ClearingFeeIndicator {
  E1stYearDelegateTradingForOwnAccount = '1',
  E2ndYearDelegateTradingForOwnAccount = '2',
  E3rdYearDelegateTradingForOwnAccount = '3',
  E4thYearDelegateTradingForOwnAccount = '4',
  E5thYearDelegateTradingForOwnAccount = '5',
  E6thYearDelegateTradingForOwnAccount = '9',
  CboeMember = 'B',
  NonMemberAndCustomer = 'C',
  EquityMemberAndClearingMember = 'E',
  FullAndAssociateMemberTradingForOwnAccountAndAsFloorBrokers = 'F',
  E106HAnd106JFirms = 'H',
  GimIdemAndComMembershipInterestHolders = 'I',
  Lessee106FEmployees = 'L',
  AllOtherOwnershipTypes = 'M'
}

/*
****************************************************************
* Indicates if the order is currently being worked. Applicable *
* only for OrdStatus = "New". For open outcry markets this     *
* indicates that the order is being worked in the crowd. For   *
* electronic markets it indicates that the order has           *
* transitioned from a contingent order to a market order.      *
****************************************************************
*/
export enum WorkingIndicator {
  OrderHasBeenAcceptedButNotYetInAWorkingState = 'N',
  OrderIsCurrentlyBeingWorked = 'Y'
}

/*
*************************************************************
* Indicates if a Cancel/Replace has caused an order to lose *
* book priority.                                            *
*************************************************************
*/
export enum PriorityIndicator {
  PriorityUnchanged = 0,
  LostPriorityAsResultOfOrderChange = 1
}

/*
************************************************************
* Indicates that this message is to serve as the final and *
* legal confirmation.                                      *
************************************************************
*/
export enum LegalConfirm {
  DoesNotConsituteALegalConfirm = 'N',
  LegalConfirm = 'Y'
}

/*
******************************
* Reason Quote was rejected: *
******************************
*/
export enum QuoteRequestRejectReason {
  UnknownSymbolSecurity = 1,
  ExchangeSecurityClosed = 2,
  QuoteRequestExceedsLimit = 3,
  TooLateToEnter = 4,
  InvalidPrice = 5,
  NotAuthorizedToRequestQuote = 6,
  NoMatchForInquiry = 7,
  NoMarketForInstrument = 8,
  NoInventory = 9,
  Pass = 10,
  InsufficientCredit = 11,
  ExceededClipSizeLimit = 12,
  ExceededMaximumNotionalOrderAmount = 13,
  ExceededDv01Pv01Limit = 14,
  ExceededCs01Limit = 15,
  Other = 99
}

/*
****************************************************************
* Used to identify the source of the Account (1) code. This is *
* especially useful if the account is a new account that the   *
* Respondent may not have setup yet in their system.           *
****************************************************************
*/
export enum AcctIDSource {
  Bic = 1,
  SidCode = 2,
  TfmGspta = 3,
  OmgeoAlertId = 4,
  DtccCode = 5,
  OtherCustomOrProprietary = 99
}

/*
**************************************************************
* Used to identify the source of the AllocAccount (79) code. *
* See AcctIDSource (660) for valid values.                   *
**************************************************************
*/
export enum AllocAcctIDSource {
  Bic = 1,
  SidCode = 2,
  TfmGspta = 3,
  OmgeoAlertId = 4,
  DtccCode = 5,
  OtherCustomOrProprietary = 99
}

/*
********************************************
* Identifies type of BenchmarkPrice (662). *
* See PriceType (423) for valid values.    *
********************************************
*/
export enum BenchmarkPriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  PerUnitIEPerShareOrContract = 2,
  FixedAmountAbsoluteValue = 3,
  DiscountPercentagePointsBelowPar = 4,
  PremiumPercentagePointsOverPar = 5,
  SpreadBasisPointsSpread = 6,
  TedPrice = 7,
  TedYield = 8,
  Yield = 9,
  FixedCabinetTradePricePrimarilyForListedFuturesAndOptions = 10,
  VariableCabinetTradePricePrimarilyForListedFuturesAndOptions = 11,
  PriceSpread = 12,
  ProductTicksInHalves = 13,
  ProductTicksInFourths = 14,
  ProductTicksInEighths = 15,
  ProductTicksInSixteenths = 16,
  ProductTicksInThirtySeconds = 17,
  ProductTicksInSixtyFourths = 18,
  ProductTicksInOneTwentyEighths = 19,
  NormalRateRepresentationEGFxRate = 20,
  InverseRateRepresentationEGFxRate = 21,
  BasisPoints = 22,
  UpFrontPoints = 23,
  InterestRate = 24,
  PercentageOfNotional = 25
}

/*
**********************************************
* Identifies the status of the Confirmation. *
**********************************************
*/
export enum ConfirmStatus {
  Received = 1,
  MismatchedAccount = 2,
  MissingSettlementInstructions = 3,
  Confirmed = 4,
  RequestRejected = 5
}

/*
*************************************************
* Identifies the Confirmation transaction type. *
*************************************************
*/
export enum ConfirmTransType {
  New = 0,
  Replace = 1,
  Cancel = 2
}

/*
************************************
* Identifies the form of delivery. *
************************************
*/
export enum DeliveryForm {
  BookEntryDefault = 1,
  Bearer = 2
}

/*
*********************************************************
* Name of the Leg Benchmark Curve.                      *
* See BenchmarkCurveName (22) for description and valid *
* values.                                               *
*********************************************************
*/
export enum LegBenchmarkCurveName {
  Eonia = 'EONIA',
  Eurepo = 'EUREPO',
  EuriborDeprecatedUseEnumEuriborInstead = 'Euribor',
  FutureSwap = 'FutureSWAP',
  Libid = 'LIBID',
  LiborLondonInterBankOffer = 'LIBOR',
  MuniAaa = 'MuniAAA',
  Other = 'OTHER',
  Pfandbriefe = 'Pfandbriefe',
  Sonia = 'SONIA',
  Swap = 'SWAP',
  Treasury = 'Treasury',
  UsFederalReserveFedFundsEffectiveRate = 'FEDEFF',
  UsFedFundsTargetRate = 'FEDOPEN',
  EuroInterbankOfferRate = 'EURIBOR'
}

/*
*************************************************
* The price type of the LegBenchmarkPrice(679). *
*************************************************
*/
export enum LegBenchmarkPriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  PerUnitIEPerShareOrContract = 2,
  FixedAmountAbsoluteValue = 3,
  DiscountPercentagePointsBelowPar = 4,
  PremiumPercentagePointsOverPar = 5,
  SpreadBasisPointsSpread = 6,
  TedPrice = 7,
  TedYield = 8,
  Yield = 9,
  FixedCabinetTradePricePrimarilyForListedFuturesAndOptions = 10,
  VariableCabinetTradePricePrimarilyForListedFuturesAndOptions = 11,
  PriceSpread = 12,
  ProductTicksInHalves = 13,
  ProductTicksInFourths = 14,
  ProductTicksInEighths = 15,
  ProductTicksInSixteenths = 16,
  ProductTicksInThirtySeconds = 17,
  ProductTicksInSixtyFourths = 18,
  ProductTicksInOneTwentyEighths = 19,
  NormalRateRepresentationEGFxRate = 20,
  InverseRateRepresentationEGFxRate = 21,
  BasisPoints = 22,
  UpFrontPoints = 23,
  InterestRate = 24,
  PercentageOfNotional = 25
}

/*
****************************************************
* Leg-specific IOI quantity.                       *
* See IOIQty (27) for description and valid values *
****************************************************
*/
export enum LegIOIQty {
  Small = 'S',
  Medium = 'M',
  Large = 'L',
  UndisclosedQuantity = 'U'
}

/*
**********************************************************
* The price type of the LegBidPx (681) and/or LegOfferPx *
* (684).                                                 *
* See PriceType (423) for description and valid values   *
**********************************************************
*/
export enum LegPriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  PerUnitIEPerShareOrContract = 2,
  FixedAmountAbsoluteValue = 3,
  DiscountPercentagePointsBelowPar = 4,
  PremiumPercentagePointsOverPar = 5,
  SpreadBasisPointsSpread = 6,
  TedPrice = 7,
  TedYield = 8,
  Yield = 9,
  FixedCabinetTradePricePrimarilyForListedFuturesAndOptions = 10,
  VariableCabinetTradePricePrimarilyForListedFuturesAndOptions = 11,
  PriceSpread = 12,
  ProductTicksInHalves = 13,
  ProductTicksInFourths = 14,
  ProductTicksInEighths = 15,
  ProductTicksInSixteenths = 16,
  ProductTicksInThirtySeconds = 17,
  ProductTicksInSixtyFourths = 18,
  ProductTicksInOneTwentyEighths = 19,
  NormalRateRepresentationEGFxRate = 20,
  InverseRateRepresentationEGFxRate = 21,
  BasisPoints = 22,
  UpFrontPoints = 23,
  InterestRate = 24,
  PercentageOfNotional = 25
}

/*
**************************************************************
* For Fixed Income, type of Stipulation for this leg.        *
* See StipulationType (233) for description and valid values *
**************************************************************
*/
export enum LegStipulationType {
  AlternativeMinimumTaxYN = 'AMT',
  AbsolutePrepaymentSpeed = 'ABS',
  IncurredRecoveryYN = 'INCURRCVY',
  AutoReinvestmentAtRateOrBetter = 'AUTOREINV',
  ConstantPrepaymentPenalty = 'CPP',
  AdditionalTerm = 'ADDTRM',
  BankQualifiedYN = 'BANKQUAL',
  ConstantPrepaymentRate = 'CPR',
  ModifiedEquityDelivery = 'MODEQTYDLVY',
  BargainConditionsSeeStipulationValue234ForValues = 'BGNCON',
  ConstantPrepaymentYield = 'CPY',
  NoReferenceObligationYN = 'NOREFOBLIG',
  CouponRange = 'COUPON',
  FinalCprOfHomeEquityPrepaymentCurve = 'HEP',
  UnknownReferenceObligationYN = 'UNKREFOBLIG',
  IsoCurrencyCode = 'CURRENCY',
  PercentOfManufacturedHousingPrepaymentCurve = 'MHP',
  AllGuaranteesYN = 'ALLGUARANTEES',
  CustomStartEndDate = 'CUSTOMDATE',
  MonthlyPrepaymentRate = 'MPR',
  ReferencePriceYN = 'REFPX',
  GeographicsAndRangeEx234Ca080MinimumOf80CaliforniaAssets = 'GEOG',
  PercentOfProspectusPrepaymentCurve = 'PPC',
  ReferencePolicyYN = 'REFPOLICY',
  ValuationDiscount = 'HAIRCUT',
  PercentOfBmaPrepaymentCurve = 'PSA',
  SecuredListYN = 'SECRDLIST',
  InsuredYN = 'INSURED',
  SingleMonthlyMortality = 'SMM',
  YearOrYearMonthOfIssueEx234200209 = 'ISSUE',
  IssuersTicker = 'ISSUER',
  IssueSizeRange = 'ISSUESIZE',
  LookbackDays = 'LOOKBACK',
  ExplicitLotIdentifier = 'LOT',
  LotVarianceValueInPercentMaximumOverOrUnderAllocationAllowed = 'LOTVAR',
  MaturityYearAndMonth = 'MAT',
  MaturityRange = 'MATURITY',
  MaximumSubstitutionsRepo = 'MAXSUBS',
  MinimumDenomination = 'MINDNOM',
  MinimumIncrement = 'MININCR',
  MinimumQuantity = 'MINQTY',
  PaymentFrequencyCalendar = 'PAYFREQ',
  NumberOfPieces = 'PIECES',
  PoolsMaximum = 'PMAX',
  PoolsPerLot = 'PPL',
  PoolsPerMillion = 'PPM',
  PoolsPerTrade = 'PPT',
  PriceRange = 'PRICE',
  PricingFrequency = 'PRICEFREQ',
  ProductionYear = 'PROD',
  CallProtection = 'PROTECT',
  Purpose = 'PURPOSE',
  BenchmarkPriceSource = 'PXSOURCE',
  RatingSourceAndRange = 'RATING',
  TypeOfRedemptionValuesAreNonCallablePrefundedEscrowedToMaturityPutableConvertible = 'REDEMPTION',
  RestrictedYN = 'RESTRICTED',
  MarketSector = 'SECTOR',
  SecurityTypeIncludedOrExcluded = 'SECTYPE',
  Structure = 'STRUCT',
  SubstitutionsFrequencyRepo = 'SUBSFREQ',
  SubstitutionsLeftRepo = 'SUBSLEFT',
  FreeformText = 'TEXT',
  TradeVarianceValueInPercentMaximumOverOrUnderAllocationAllowed = 'TRDVAR',
  WeightedAverageCouponValueInPercentExactOrRangePlusGrossOrNetOfServicingSpreadTheDefaultEx23465NetMinimumOf65NetOfServicingFee = 'WAC',
  WeightedAverageLifeCouponValueInPercentExactOrRange = 'WAL',
  WeightedAverageLoanAgeValueInMonthsExactOrRange = 'WALA',
  WeightedAverageMaturityValueInMonthsExactOrRange = 'WAM',
  WholePoolYN = 'WHOLE',
  YieldRange = 'YIELD',
  AverageFicoScore = 'AVFICO',
  OriginalAmount = 'ORIGAMT',
  AverageLoanSize = 'AVSIZE',
  PoolEffectiveDate = 'POOLEFFDT',
  MaximumLoanBalance = 'MAXBAL',
  PoolInitialFactor = 'POOLINITFCTR',
  PoolIdentifier = 'POOL',
  TrancheIdentifier = 'TRANCHE',
  TypeOfRollTrade = 'ROLLTYPE',
  SubstitutionYN = 'SUBSTITUTION',
  ReferenceToRollingOrClosingTrade = 'REFTRADE',
  MultipleExchangeFallbackYN = 'MULTEXCHFLLBCK',
  PrincipalOfRollingOrClosingTrade = 'REFPRIN',
  ComponentSecurityFallbackYN = 'COMPSECFLLBCK',
  InterestOfRollingOrClosingTrade = 'REFINT',
  LocalJurisdictionYN = 'LOCLJRSDCTN',
  AvailableOfferQuantityToBeShownToTheStreet = 'AVAILQTY',
  RelevantJurisdictionYN = 'RELVJRSDCTN',
  BrokersSalesCredit = 'BROKERCREDIT',
  OfferPriceToBeShownToInternalBrokers = 'INTERNALPX',
  OfferQuantityToBeShownToInternalBrokers = 'INTERNALQTY',
  TheMinimumResidualOfferQuantity = 'LEAVEQTY',
  MaximumOrderSize = 'MAXORDQTY',
  OrderQuantityIncrement = 'ORDRINCR',
  PrimaryOrSecondaryMarketIndicator = 'PRIMARY',
  BrokerSalesCreditOverride = 'SALESCREDITOVR',
  TradersCredit = 'TRADERCREDIT',
  DiscountRateWhenPriceIsDenominatedInPercentOfPar = 'DISCOUNT',
  YieldToMaturityWhenYieldType235AndYield236ShowADifferentYield = 'YTM'
}

/*
**************************************************************
* For Fixed Income, used instead of LegOrderQty(685) to      *
* requests the respondent to calculate the quantity based on *
* the quantity on the opposite side of the swap.             *
**************************************************************
*/
export enum LegSwapType {
  ParForPar = 1,
  ModifiedDuration = 2,
  Risk = 4,
  Proceeds = 5
}

/*
***************************************************************
* Code to represent price type requested in Quote.            *
* If the Quote Request is for a Swap, values 1-8 apply to all *
* legs.                                                       *
***************************************************************
*/
export enum QuotePriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  PerUnitIEPerShareOrContract = 2,
  FixedAmountAbsoluteValue = 3,
  DiscountPercentagePointsBelowPar = 4,
  PremiumPercentagePointsOverPar = 5,
  SpreadBasisPointsRelativeToBenchmark = 6,
  TedPrice = 7,
  TedYield = 8,
  YieldSpreadSwaps = 9,
  Yield = 10,
  PriceSpread = 12,
  ProductTicksInHalves = 13,
  ProductTicksInFourths = 14,
  ProductTicksInEighths = 15,
  ProductTicksInSixteenths = 16,
  ProductTicksInThirtySeconds = 17,
  ProductTicksInSixtyFourths = 18,
  ProductTicksInOneTwentyEighths = 19,
  NormalRateRepresentationEGFxRate = 20,
  InverseRateRepresentationEGFxRate = 21,
  BasisPoints = 22,
  UpFrontPoints = 23,
  InterestRate = 24,
  PercentageOfNotional = 25
}

/*
******************************************
* Identifies the type of Quote Response. *
******************************************
*/
export enum QuoteRespType {
  HitLift = 1,
  Counter = 2,
  Expired = 3,
  Cover = 4,
  DoneAway = 5,
  Pass = 6,
  EndTrade = 7,
  TimedOut = 8,
  Tied = 9,
  TiedCover = 10
}

/*
********************************************************
* Code to qualify Quote use and other aspects of price *
* negotiation.                                         *
********************************************************
*/
export enum QuoteQualifier {
  QuantityIsNegotiable = '1',
  AllowLateBids = '2',
  ImmediateOrCounter = '3',
  AutoTrade = '4',
  AllOrNoneAon = 'A',
  MarketOnCloseMocHeldToClose = 'B',
  AtTheCloseAroundNotHeldToClose = 'C',
  VwapVolumeWeightedAveragePrice = 'D',
  Axe = 'E',
  AxeOnBid = 'F',
  AxeOnOffer = 'G',
  ClientNaturalWorking = 'H',
  InTouchWith = 'I',
  PositionWanted = 'J',
  MarketMaking = 'K',
  Limit = 'L',
  MoreBehind = 'M',
  ClientNaturalBlock = 'N',
  AtTheOpen = 'O',
  TakingAPosition = 'P',
  AtTheMarketPreviouslyCalledCurrentQuote = 'Q',
  ReadyToTrade = 'R',
  InventoryOrPortfolioShown = 'S',
  ThroughTheDay = 'T',
  Unwind = 'U',
  Versus = 'V',
  IndicationWorkingAway = 'W',
  CrossingOpportunity = 'X',
  AtTheMidpoint = 'Y',
  PreOpen = 'Z',
  AutomaticSpot = 'a',
  PlatformCalculatedSpot = 'b',
  OutsideSpread = 'c',
  DeferredSpot = 'd',
  NegotiatedSpot = 'n'
}

/*
*********************************************************
* The price type of the YieldRedemptionPrice (697)      *
* See PriceType (423) for description and valid values. *
*********************************************************
*/
export enum YieldRedemptionPriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  PerUnitIEPerShareOrContract = 2,
  FixedAmountAbsoluteValue = 3,
  DiscountPercentagePointsBelowPar = 4,
  PremiumPercentagePointsOverPar = 5,
  SpreadBasisPointsSpread = 6,
  TedPrice = 7,
  TedYield = 8,
  Yield = 9,
  FixedCabinetTradePricePrimarilyForListedFuturesAndOptions = 10,
  VariableCabinetTradePricePrimarilyForListedFuturesAndOptions = 11,
  PriceSpread = 12,
  ProductTicksInHalves = 13,
  ProductTicksInFourths = 14,
  ProductTicksInEighths = 15,
  ProductTicksInSixteenths = 16,
  ProductTicksInThirtySeconds = 17,
  ProductTicksInSixtyFourths = 18,
  ProductTicksInOneTwentyEighths = 19,
  NormalRateRepresentationEGFxRate = 20,
  InverseRateRepresentationEGFxRate = 21,
  BasisPoints = 22,
  UpFrontPoints = 23,
  InterestRate = 24,
  PercentageOfNotional = 25
}

/*
*******************************************************
* Used to identify the type of quantity that is being *
* returned.                                           *
*******************************************************
*/
export enum PosType {
  AllocationTradeQty = 'ALC',
  OptionAssignment = 'AS',
  AsOfTradeQty = 'ASF',
  DeliveryQty = 'DLV',
  ElectronicTradeQty = 'ETR',
  OptionExerciseQty = 'EX',
  EndOfDayQty = 'FIN',
  IntraSpreadQty = 'IAS',
  InterSpreadQty = 'IES',
  AdjustmentQty = 'PA',
  PitTradeQty = 'PIT',
  StartOfDayQty = 'SOD',
  IntegralSplit = 'SPL',
  TransactionFromAssignment = 'TA',
  TotalTransactionQty = 'TOT',
  TransactionQuantity = 'TQ',
  TransferTradeQty = 'TRF',
  TransactionFromExercise = 'TX',
  CrossMarginQty = 'XM',
  ReceiveQuantity = 'RCV',
  CorporateActionAdjustment = 'CAA',
  DeliveryNoticeQty = 'DN',
  ExchangeForPhysicalQty = 'EP',
  PrivatelyNegotiatedTradeQtyNonRegulated = 'PNTN',
  NetDeltaQty = 'DLT',
  CreditEventAdjustment = 'CEA',
  SuccessionEventAdjustment = 'SEA',
  NetQty = 'NET',
  GrossQty = 'GRS',
  IntradayQty = 'ITD',
  GrossNonDeltaAdjustedSwaptionPosition = 'NDAS',
  DeltaAdjustedPairedSwaptionPosition = 'DAS',
  ExpiringQuantity = 'EXP',
  QuantityNotExercised = 'UNEX',
  RequestedExerciseQuantity = 'REQ',
  CashFuturesEquivalentQuantity = 'CFE'
}

/*
****************************
* Status of this position. *
****************************
*/
export enum PosQtyStatus {
  Submitted = 0,
  Accepted = 1,
  Rejected = 2
}

/*
***************************
* Type of Position amount *
***************************
*/
export enum PosAmtType {
  CashAmountCorporateEvent = 'CASH',
  CashResidualAmount = 'CRES',
  FinalMarkToMarketAmount = 'FMTM',
  IncrementalMarkToMarket = 'IMTM',
  PremiumAmount = 'PREM',
  StartOfDayMarkToMarket = 'SMTM',
  TradeVariationAmount = 'TVAR',
  ValueAdjustedAmount = 'VADJ',
  SettlementValue = 'SETL',
  InitialTradeCouponAmount = 'ICPN',
  AccruedCouponAmount = 'ACPN',
  CouponAmount = 'CPN',
  IncrementalAccruedCoupon = 'IACPN',
  CollateralizedMarkToMarket = 'CMTM',
  IncrementalCollateralizedMarkToMarket = 'ICMTM',
  CompensationAmount = 'DLV',
  TotalBankedAmount = 'BANK',
  TotalCollateralizedAmount = 'COLAT',
  LongPairedSwapOrSwaptionNotionalValue = 'LSNV',
  ShortPairedSwapOrSwaptionNotionalValue = 'SSNV',
  StartOfDayAccruedCoupon = 'SACPN',
  NetPresentValue = 'NPV',
  StartOfDayNetPresentValue = 'SNPV',
  NetCashFlow = 'NCF',
  PresentValueOfAllFees = 'PVFEES',
  PresentValueOfOneBasisPoints = 'PV01',
  TheFiveYearEquivalentNotionalAmount = '5YREN',
  UndiscountedMarkToMarket = 'UMTM',
  MarkToModel = 'MTD',
  MarkToMarketVariance = 'VMTM',
  MarkToModelVariance = 'VMTD',
  UpfrontPayment = 'UPFRNT'
}

/*
************************************************
* Identifies the type of position transaction. *
************************************************
*/
export enum PosTransType {
  Exercise = 1,
  DoNotExercise = 2,
  PositionAdjustment = 3,
  PositionChangeSubmissionMarginDisposition = 4,
  Pledge = 5,
  LargeTraderSubmission = 6,
  LargePositionsReportingSubmission = 7,
  LongHoldings = 8,
  InternalTransfer = 9,
  TransferOfFirm = 10,
  ExternalTransfer = 11,
  CorporateAction = 12,
  Notification = 13,
  PositionCreation = 14,
  CloseOut = 15,
  Reopen = 16
}

/*
***************************************
* Maintenance Action to be performed. *
***************************************
*/
export enum PosMaintAction {
  New = 1,
  Replace = 2,
  Cancel = 3,
  Reverse = 4
}

/*
********************************************
* Identifies a specific settlement session *
********************************************
*/
export enum SettlSessID {
  Intraday = 'ITD',
  RegularTradingHours = 'RTH',
  ElectronicTradingHours = 'ETH',
  EndOfDay = 'EOD'
}

/*
**************************************************************
* Type of adjustment to be applied. Used for Position Change *
* Submission (PCS), Position Adjustment (PAJ), and Customer  *
* Gross Margin (CGM).                                        *
**************************************************************
*/
export enum AdjustmentType {
  ProcessRequestAsMarginDisposition = 0,
  DeltaPlus = 1,
  DeltaMinus = 2,
  Final = 3,
  CustomerSpecificPosition = 4
}

/*
******************************************
* Status of Position Maintenance Request *
******************************************
*/
export enum PosMaintStatus {
  Accepted = 0,
  AcceptedWithWarnings = 1,
  Rejected = 2,
  Completed = 3,
  CompletedWithWarnings = 4
}

/*
*******************************************
* Result of Position Maintenance Request. *
*******************************************
*/
export enum PosMaintResult {
  SuccessfulCompletionNoWarningsOrErrors = 0,
  Rejected = 1,
  Other = 99
}

/*
************************************************************
* Used to specify the type of position request being made. *
************************************************************
*/
export enum PosReqType {
  Positions = 0,
  Trades = 1,
  Exercises = 2,
  Assignments = 3,
  SettlementActivity = 4,
  BackoutMessage = 5,
  DeltaPositions = 6,
  NetPosition = 7,
  LargePositionsReporting = 8,
  ExercisePositionReportingSubmission = 9,
  PositionLimitReportingSubmission = 10
}

/*
********************************************************
* Identifies how the response to the request should be *
* transmitted.                                         *
* Details specified via ResponseDestination (726).     *
********************************************************
*/
export enum ResponseTransportType {
  InBandDefault = 0,
  OutOfBand = 1
}

/*
************************************
* Result of Request for Positions. *
************************************
*/
export enum PosReqResult {
  ValidRequest = 0,
  InvalidOrUnsupportedRequest = 1,
  NoPositionsFoundThatMatchCriteria = 2,
  NotAuthorizedToRequestPositions = 3,
  RequestForPositionNotSupported = 4,
  OtherUseText58InConjunctionWithThisCodeForAnExplaination = 99
}

/*
***********************************
* Status of Request for Positions *
***********************************
*/
export enum PosReqStatus {
  Completed = 0,
  CompletedWithWarnings = 1,
  Rejected = 2
}

/*
****************************
* Type of settlement price *
****************************
*/
export enum SettlPriceType {
  Final = 1,
  Theoretical = 2
}

/*
**************************************************
* Underlying security's SettlPriceType.          *
* See SettlPriceType (731) field for description *
**************************************************
*/
export enum UnderlyingSettlPriceType {
  Final = 1,
  Theoretical = 2
}

/*
***************************************************************
* Method by which short positions are assigned to an exercise *
* notice during exercise and assignment processing            *
***************************************************************
*/
export enum AssignmentMethod {
  ProRata = 'P',
  Random = 'R'
}

/*
*****************************************************
* Exercise Method used to in performing assignment. *
*****************************************************
*/
export enum ExerciseMethod {
  Automatic = 'A',
  Manual = 'M'
}

/*
***************************
* Result of Trade Request *
***************************
*/
export enum TradeRequestResult {
  SuccessfulDefault = 0,
  InvalidOrUnknownInstrument = 1,
  InvalidTypeOfTradeRequested = 2,
  InvalidParties = 3,
  InvalidTransportTypeRequested = 4,
  InvalidDestinationRequested = 5,
  TradeRequestTypeNotSupported = 8,
  NotAuthorized = 9,
  Other = 99
}

/*
****************************
* Status of Trade Request. *
****************************
*/
export enum TradeRequestStatus {
  Accepted = 0,
  Completed = 1,
  Rejected = 2
}

/*
************************************************************
* Reason Trade Capture Request was rejected.               *
* 100+ Reserved and available for bi-laterally agreed upon *
* user-defined values.                                     *
************************************************************
*/
export enum TradeReportRejectReason {
  SuccessfulDefault = 0,
  InvalidPartyInformation = 1,
  UnknownInstrument = 2,
  UnauthorizedToReportTrades = 3,
  InvalidTradeType = 4,
  PriceExceedsCurrentPriceBand = 5,
  ReferencePriceNotAvailable = 6,
  NotionalValueExceedsThreshold = 7,
  Other = 99
}

/*
****************************************************************
* Used to indicate if the side being reported on Trade Capture *
* Report represents a leg of a multileg instrument or a single *
* security.                                                    *
****************************************************************
*/
export enum SideMultiLegReportingType {
  SingleSecurityDefaultIfNotSpecified = 1,
  IndividualLegOfAMultilegSecurity = 2,
  MultilegSecurity = 3
}

/*
*********************************************************
* PartyIDSource value within a "second instance" Nested *
* repeating group.                                      *
* Same values as PartyIDSource (447)                    *
*********************************************************
*/
export enum Nested2PartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
***************************************************************
* PartyRole value within a "second instance" Nested repeating *
* group.                                                      *
* Same values as PartyRole (452)                              *
***************************************************************
*/
export enum Nested2PartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
***************************************************************
* Identifies class or source of the BenchmarkSecurityID (699) *
* value. Required if BenchmarkSecurityID is specified.        *
* Same values as the SecurityIDSource (22) field              *
***************************************************************
*/
export enum BenchmarkSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
************************************************************
* Trading / Regulatory timestamp type.                     *
* Note of Applicability: values are required in US futures *
* markets by the CFTC to support computerized trade        *
* reconstruction.                                          *
* (see Volume : "Glossary" for value definitions)          *
************************************************************
*/
export enum TrdRegTimestampType {
  ExecutionTime = 1,
  TimeIn = 2,
  TimeOut = 3,
  BrokerReceipt = 4,
  BrokerExecution = 5,
  DeskReceipt = 6,
  SubmissionToClearing = 7,
  TimePriority = 8,
  OrderbookEntryTime = 9,
  OrderSubmissionTime = 10,
  PubliclyReported = 11,
  PublicReportUpdated = 12,
  NonPubliclyReported = 13,
  NonPublicReportUpdated = 14,
  SubmittedForConfirmation = 15,
  UpdatedForConfirmation = 16,
  Confirmed = 17,
  UpdatedForClearing = 18,
  Cleared = 19,
  AllocationsSubmitted = 20,
  AllocationsUpdated = 21,
  ApplicationCompleted = 22,
  SubmittedToRepository = 23,
  PostTradeContinuationEvent = 24,
  PostTradeValuation = 25,
  PreviousTimePriority = 26
}

/*
***********************************************************
* Identifies the type of Confirmation message being sent. *
***********************************************************
*/
export enum ConfirmType {
  Status = 1,
  Confirmation = 2,
  ConfirmationRequestRejectedReasonCanBeStatedInText58Field = 3
}

/*
*******************************************************
* Identifies the reason for rejecting a Confirmation. *
*******************************************************
*/
export enum ConfirmRejReason {
  IncorrectOrMissingAccount = 1,
  IncorrectOrMissingSettlementInstructions = 2,
  UnknownOrMissingIndividualAllocId467 = 3,
  TransactionNotRecognized = 4,
  DuplicateTransaction = 5,
  IncorrectOrMissingInstrument = 6,
  IncorrectOrMissingPrice = 7,
  IncorrectOrMissingCommission = 8,
  IncorrectOrMissingSettlementDate = 9,
  IncorrectOrMissingFundIdOrFundName = 10,
  IncorrectOrMissingQuantity = 11,
  IncorrectOrMissingFees = 12,
  IncorrectOrMissingTax = 13,
  IncorrectOrMissingParty = 14,
  IncorrectOrMissingSide = 15,
  IncorrectOrMissingNetMoney = 16,
  IncorrectOrMissingTradeDate = 17,
  IncorrectOrMissingSettlementCurrencyInstructions = 18,
  IncorrectOrMissingCapacity = 19,
  Other = 99
}

/*
**************************************************************
* Method for booking out this order. Used when notifying a   *
* broker that an order to be settled by that broker is to be *
* booked out as an OTC derivative (e.g. CFD or similar).     *
**************************************************************
*/
export enum BookingType {
  RegularBooking = 0,
  CfdContractForDifference = 1,
  TotalReturnSwap = 2
}

/*
**************************************************************
* Identified reason for rejecting an individual AllocAccount *
* (79) detail.                                               *
* Same values as AllocRejCode (88)                           *
**************************************************************
*/
export enum IndividualAllocRejCode {
  UnknownOrMissingAccountS = 0,
  IncorrectOrMissingBlockQuantity = 1,
  IncorrectOrMissingAveragePrice = 2,
  UnknownExecutingBrokerMnemonic = 3,
  IncorrectOrMissingCommission = 4,
  UnknownOrderId37 = 5,
  UnknownListId66 = 6,
  OtherFurtherInText58 = 7,
  IncorrectOrMissingAllocatedQuantity = 8,
  CalculationDifference = 9,
  UnknownOrStaleExecId = 10,
  MismatchedData = 11,
  UnknownClOrdId = 12,
  WarehouseRequestRejected = 13,
  DuplicateOrMissingIndividualAllocId467 = 14,
  TradeNotRecognized = 15,
  TradePreviouslyAllocated = 16,
  IncorrectOrMissingInstrument = 17,
  IncorrectOrMissingSettlementDate = 18,
  IncorrectOrMissingFundIdOrFundName = 19,
  IncorrectOrMissingSettlementInstructions = 20,
  IncorrectOrMissingFees = 21,
  IncorrectOrMissingTax = 22,
  UnknownOrMissingParty = 23,
  IncorrectOrMissingSide = 24,
  IncorrectOrMissingNetMoney = 25,
  IncorrectOrMissingTradeDate = 26,
  IncorrectOrMissingSettlementCurrencyInstructions = 27,
  IncorrrectOrMissingProcessCode81 = 28,
  Other = 99
}

/*
**************************************************************
* Used to indicate whether settlement instructions are       *
* provided on an allocation instruction message, and if not, *
* how they are to be derived.                                *
**************************************************************
*/
export enum AllocSettlInstType {
  UseDefaultInstructions = 0,
  DeriveFromParametersProvided = 1,
  FullDetailsProvided = 2,
  SsiDbIDsProvided = 3,
  PhoneForInstructions = 4
}

/*
**************************************************************
* PartyIDSource value within a settlement parties component. *
* Same values as PartyIDSource (447)                         *
**************************************************************
*/
export enum SettlPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
**********************************************************
* PartyRole value within a settlement parties component. *
* Same values as PartyRole (452)                         *
**********************************************************
*/
export enum SettlPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
****************************************
* Type of SettlPartySubID (785) value. *
* Same values as PartySubIDType (803)  *
****************************************
*/
export enum SettlPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
***************************************************************
* Used to indicate whether a delivery instruction is used for *
* securities or cash settlement.                              *
***************************************************************
*/
export enum DlvyInstType {
  Cash = 'C',
  Securities = 'S'
}

/*
**********************************
* Type of financing termination. *
**********************************
*/
export enum TerminationType {
  Overnight = 1,
  Term = 2,
  Flexible = 3,
  Open = 4
}

/*
****************************************************************
* Identifies reason for rejection (of a settlement instruction *
* request message).                                            *
****************************************************************
*/
export enum SettlInstReqRejCode {
  UnableToProcessRequest = 0,
  UnknownAccount = 1,
  NoMatchingSettlementInstructionsFound = 2,
  Other = 99
}

/*
***********************************************************
* Describes the specific type or purpose of an Allocation *
* Report message                                          *
***********************************************************
*/
export enum AllocReportType {
  PreliminaryRequestToIntermediary = 2,
  SellsideCalculatedUsingPreliminaryIncludesMiscFeesAndNetMoney = 3,
  SellsideCalculatedWithoutPreliminarySentUnsolicitedBySellsideIncludesMiscFeesAndNetMoney = 4,
  WarehouseRecap = 5,
  RequestToIntermediary = 8,
  Accept = 9,
  Reject = 10,
  AcceptPending = 11,
  Complete = 12,
  ReversePending = 14,
  GiveUp = 15,
  TakeUp = 16,
  Reversal = 17,
  AllegedReversal = 18,
  SubAllocationGiveUp = 19
}

/*
****************************************************************
* Reason for cancelling or replacing an Allocation Instruction *
* or Allocation Report message                                 *
****************************************************************
*/
export enum AllocCancReplaceReason {
  OriginalDetailsIncompleteIncorrect = 1,
  ChangeInUnderlyingOrderDetails = 2,
  CancelledByGiveUpFirm = 3,
  Other = 99
}

/*
***********************************************************
* Type of account associated with a confirmation or other *
* trade-level message                                     *
***********************************************************
*/
export enum AllocAccountType {
  AccountIsCarriedPnCustomerSideOfBooks = 1,
  AccountIsCarriedOnNonCustomerSideOfBooks = 2,
  HouseTrader = 3,
  FloorTrader = 4,
  AccountIsCarriedOnNonCustomerSideOfBooksAndIsCrossMargined = 6,
  AccountIsHouseTraderAndIsCrossMargined = 7,
  JointBackOfficeAccountJbo = 8
}

/*
**********************************
* Type of PartySubID(523) value. *
**********************************
*/
export enum PartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*****************************************
* Type of NestedPartySubID (545) value. *
* Same values as PartySubIDType (803)   *
*****************************************
*/
export enum NestedPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*************************************************************
* Type of Nested2PartySubID (760) value. Second instance of *
* <NestedParties>.                                          *
* Same values as PartySubIDType (803)                       *
*************************************************************
*/
export enum Nested2PartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
***************************************************************
* Response to allocation to be communicated to a counterparty *
* through an intermediary, i.e. clearing house. Used in       *
* conjunction with AllocType = "Request to Intermediary" and  *
* AllocReportType = "Request to Intermediary"                 *
***************************************************************
*/
export enum AllocIntermedReqType {
  PendingAccept = 1,
  PendingRelease = 2,
  PendingReversal = 3,
  Accept = 4,
  BlockLevelReject = 5,
  AccountLevelReject = 6
}

/*
**************************************************************
* Resolution taken when ApplQueueDepth (813) exceeds         *
* ApplQueueMax (812) or system specified maximum queue size. *
**************************************************************
*/
export enum ApplQueueResolution {
  NoActionTaken = 0,
  QueueFlushed = 1,
  OverlayLast = 2,
  EndSession = 3
}

/*
**********************************************************
* Action to take to resolve an application message queue *
* (backlog).                                             *
**********************************************************
*/
export enum ApplQueueAction {
  NoActionTaken = 0,
  QueueFlushed = 1,
  OverlayLast = 2,
  EndSession = 3
}

/*
*****************************
* Average Pricing Indicator *
*****************************
*/
export enum AvgPxIndicator {
  NoAveragePricing = 0,
  TradeIsPartOfAnAveragePriceGroupIdentifiedByTheAvgPxGroupId1731 = 1,
  LastTradeIsTheAveragePriceGroupIdentifiedByTheAvgPxGroupId1731 = 2
}

/*
***********************************************************
* Identifies if, and how, the trade is to be allocated or *
* split.                                                  *
***********************************************************
*/
export enum TradeAllocIndicator {
  AllocationNotRequired = 0,
  AllocationRequiredGiveUpTradeAllocationInformationNotProvidedIncomplete = 1,
  UseAllocationProvidedWithTheTrade = 2,
  AllocationGiveUpExecutor = 3,
  AllocationFromExecutor = 4,
  AllocationToClaimAccount = 5,
  TradeSplit = 6
}

/*
**************************************************************
* Part of trading cycle when an instrument expires. Field is *
* applicable for derivatives.                                *
**************************************************************
*/
export enum ExpirationCycle {
  ExpireOnTradingSessionCloseDefault = 0,
  ExpireOnTradingSessionOpen = 1,
  TradingEligibilityExpirationSpecifiedInTheDateAndTimeFieldsEventDate866AndEventTime1145AssociatedWithEventType8657LastEligibleTradeDate = 2
}

/*
******************
* Type of trade. *
******************
*/
export enum TrdType {
  RegularTrade = 0,
  BlockTrade = 1,
  ExchangeForPhysicalEfp = 2,
  Transfer = 3,
  LateTrade = 4,
  TTrade = 5,
  WeightedAveragePriceTrade = 6,
  BunchedTrade = 7,
  LateBunchedTrade = 8,
  PriorReferencePriceTrade = 9,
  AfterHoursTrade = 10,
  ExchangeForRiskEfr = 11,
  ExchangeForSwapEfs = 12,
  ExchangeOfFuturesForInMarketFuturesEfm = 13,
  ExchangeOfOptionsForOptionsEoo = 14,
  TradingAtSettlement = 15,
  AllOrNone = 16,
  FuturesLargeOrderExecution = 17,
  ExchangeOfFuturesForExternalMarketFuturesEff = 18,
  OptionInterimTrade = 19,
  OptionCabinetTrade = 20,
  PrivatelyNegotiatedTrade = 22,
  SubstitutionOfFuturesForForwards = 23,
  ErrorTrade = 24,
  SpecialCumDividendCd = 25,
  SpecialExDividendXd = 26,
  SpecialCumCouponCc = 27,
  SpecialExCouponXc = 28,
  CashSettlementCs = 29,
  SpecialPriceSp = 30,
  GuaranteedDeliveryGd = 31,
  SpecialCumRightsCr = 32,
  SpecialExRightsXr = 33,
  SpecialCumCapitalRepaymentsCp = 34,
  SpecialExCapitalRepaymentsXp = 35,
  SpecialCumBonusCb = 36,
  SpecialExBonusXb = 37,
  BlockTrade2 = 38,
  WorkedPrincipalTrade = 39,
  BlockTrades = 40,
  NameChange = 41,
  PortfolioTransfer = 42,
  ProrogationBuy = 43,
  ProrogationSell = 44,
  OptionExercise = 45,
  DeltaNeutralTransaction = 46,
  FinancingTransaction = 47,
  NonStandardSettlement = 48,
  DerivativeRelatedTransaction = 49,
  PortfolioTrade = 50,
  VolumeWeightedAverageTrade = 51,
  ExchangeGrantedTrade = 52,
  RepurchaseAgreement = 53,
  Otc = 54,
  ExchangeBasisFacilityEbf = 55,
  OpeningTrade = 56,
  NettedTrade = 57,
  BlockSwapTrade = 58,
  CreditEventTrade = 59,
  SuccessionEventTrade = 60,
  GiveUpGiveInTrade = 61,
  DarkTrade = 62,
  TechnicalTrade = 63,
  Benchmark = 64,
  PackageTrade = 65
}

/*
*******************************************
* Further qualification to the trade type *
*******************************************
*/
export enum TrdSubType {
  Cmta = 0,
  InternalTransferOrAdjustment = 1,
  ExternalTransferOrTransferOfAccount = 2,
  RejectForSubmittingSide = 3,
  AdvisoryForContraSide = 4,
  OffsetDueToAnAllocation = 5,
  OnsetDueToAnAllocation = 6,
  DifferentialSpread = 7,
  ImpliedSpreadLegExecutedAgainstAnOutright = 8,
  TransactionFromExercise = 9,
  TransactionFromAssignment = 10,
  Acats = 11,
  AiAutomatedInputFacilityDisabledInResponseToAnExchangeRequest = 14,
  BTransactionBetweenTwoMemberFirmsWhereNeitherMemberFirmIsRegisteredAsAMarketMakerInTheSecurityInQuestionAndNeitherIsADesignatedFundManagerAlsoUsedByBrokerDealersWhenDealingWithAnotherBrokerWhichIsNotAMemberFirmNonOrderBookSecuritiesOnly = 15,
  KTransactionUsingBlockTradeFacility = 16,
  LcCorrectionSubmittedMoreThanThreeDaysAfterPublicationOfTheOriginalTradeReport = 17,
  MTransactionOtherThanATransactionResultingFromAStockSwapOrStockSwitchBetweenTwoMarketMakersRegisteredInThatSecurityIncludingIdbOrAPublicDisplaySystemTradesNonOrderBookSecuritiesOnly = 18,
  NNonProtectedPortfolioTransactionOrAFullyDisclosedPortfolioTransaction = 19,
  NmITransactionWhereExchangeHasGrantedPermissionForNonPublicationIiIdbIsReportingAsSellerIiiSubmittingATransactionReportToTheExchangeWhereTheTransactionReportIsNotAlsoATradeReport = 20,
  NrNonRiskTransactionInASeatsSecurityOtherThanAnAimSecurity = 21,
  PProtectedPortfolioTransactionOrAWorkedPrincipalAgreementToEffectAPortfolioTransactionWhichIncludesOrderBookSecurities = 22,
  PaProtectedTransactionNotification = 23,
  PcContraTradeForTransactionWhichTookPlaceOnAPreviousDayAndWhichWasAutomaticallyExecutedOnTheExchangeTradingSystem = 24,
  PnWorkedPrincipalNotificationForAPortfolioTransactionWhichIncludesOrderBookSecurities = 25,
  RIRisklessPrincipalTransactionBetweenNonMembersWhereTheBuyingAndSellingTransactionsAreExecutedAtDifferentPricesOrOnDifferentTermsRequiresATradeReportWithTradeTypeIndicatorRForEachTransactionIiMarketMakerIsReportingAllTheLegsOfARisklessPrincipalTransactionWhereTheBuyingAndSellingTransactionsAreExecutedAtDifferentPricesRequiresATradeReportWithTradeTypeIndicatorRForEachTransactionOrIiiMarketMakerIsReportingTheOnwardLegOfARisklessPrincipalTransactionWhereTheLegsAreExecutedAtDifferentPricesAndAnotherMarketMakerHasSubmittedATradeReportUsingTradeTypeIndicatorMForTheFirstLegThisRequiresASingleTradeReportWithTradeTypeIndicatorR = 26,
  RoTransactionWhichResultedFromTheExerciseOfATraditionalOptionOrAStockSettledCoveredWarrant = 27,
  RtRiskTransactionInASeatsSecurityExcludingAimSecurityReportedByAMarketMakerRegisteredInThatSecurity = 28,
  SwTransactionsResultingFromStockSwapOrAStockSwitchOneReportIsRequiredForEachLineOfStock = 29,
  TIfReportingASingleProtectedTransaction = 30,
  WnWorkedPrincipalNotificationForASingleOrderBookSecurity = 31,
  WtWorkedPrincipalTransactionOtherThanAPortfolioTransaction = 32,
  OffHoursTrade = 33,
  OnHoursTrade = 34,
  OtcQuote = 35,
  ConvertedSwap = 36,
  CrossedTradeX = 37,
  InterimProtectedTradeI = 38,
  LargeInScaleL = 39,
  WashTrade = 40,
  TradeAtSettlementTas = 41,
  AuctionTrade = 42,
  TradeAtMarkerTam = 43,
  DefaultCreditEvent = 44,
  RestructuringCreditEvent = 45,
  MergerSuccessionEvent = 46,
  SpinOffSuccessionEvent = 47,
  MultilateralCompression = 48,
  Balancing = 50,
  BasisTradeIndexCloseBtic = 51
}

/*
*********************************************
* Describes whether peg is static or floats *
*********************************************
*/
export enum PegMoveType {
  FloatingDefault = 0,
  Fixed = 1
}

/*
****************************
* Type of Peg Offset value *
****************************
*/
export enum PegOffsetType {
  PriceDefault = 0,
  BasisPoints = 1,
  Ticks = 2,
  PriceTierLevel = 3,
  Percentage = 4
}

/*
*********************
* Type of Peg Limit *
*********************
*/
export enum PegLimitType {
  OrBetterDefaultPriceImprovementAllowed = 0,
  StrictLimitIsAStrictLimit = 1,
  OrWorseForABuyThePegLimitIsAMinimumAndForASellThePegLimitIsAMaximumForUseForOrdersWhichHaveAPriceRange = 2
}

/*
***********************************************************
* If the calculated peg price is not a valid tick price,  *
* specifies whether to round the price to be more or less *
* aggressive                                              *
***********************************************************
*/
export enum PegRoundDirection {
  MoreAggressiveOnABuyOrderRoundThePriceUpToTheNearestTickOnASellOrderRoundDownToTheNearestTick = 1,
  MorePassiveOnABuyOrderRoundDownToTheNearestTickOnASellOrderRoundUpToTheNearestTick = 2
}

/*
************************
* The scope of the peg *
************************
*/
export enum PegScope {
  LocalExchangeEcnAts = 1,
  National = 2,
  Global = 3,
  NationalExcludingLocal = 4
}

/*
************************************************************
* Describes whether discretionay price is static or floats *
************************************************************
*/
export enum DiscretionMoveType {
  FloatingDefault = 0,
  Fixed = 1
}

/*
***********************************
* Type of Discretion Offset value *
***********************************
*/
export enum DiscretionOffsetType {
  PriceDefault = 0,
  BasisPoints = 1,
  Ticks = 2,
  PriceTierLevel = 3
}

/*
****************************
* Type of Discretion Limit *
****************************
*/
export enum DiscretionLimitType {
  OrBetterDefaultPriceImprovementAllowed = 0,
  StrictLimitIsAStrictLimit = 1,
  OrWorseForABuyTheDiscretionPriceIsAMinimumAndForASellTheDiscretionPriceIsAMaximumForUseForOrdersWhichHaveAPriceRange = 2
}

/*
*************************************************************
* If the calculated discretionary price is not a valid tick *
* price, specifies whether to round the price to be more or *
* less aggressive                                           *
*************************************************************
*/
export enum DiscretionRoundDirection {
  MoreAggressiveOnABuyOrderRoundThePriceUpToTheNearestTickOnASellRoundDownToTheNearestTick = 1,
  MorePassiveOnABuyOrderRoundDownToTheNearestTickOnASellOrderRoundUpToTheNearestTick = 2
}

/*
*******************************
* The scope of the discretion *
*******************************
*/
export enum DiscretionScope {
  LocalExchangeEcnAts = 1,
  National = 2,
  Global = 3,
  NationalExcludingLocal = 4
}

/*
***************************************************************
* The target strategy of the order                            *
* 1000+ = Reserved and available for bi-laterally agreed upon *
* user defined values                                         *
***************************************************************
*/
export enum TargetStrategy {
  Vwap = 1,
  ParticipateIEAimToBeXPercentOfTheMarketVolume = 2,
  MininizeMarketImpact = 3
}

/*
**************************************************************
* Indicator to identify whether this fill was a result of a  *
* liquidity provider providing or liquidity taker taking the *
* liquidity.                                                 *
**************************************************************
*/
export enum LastLiquidityInd {
  AddedLiquidity = 1,
  RemovedLiquidity = 2,
  LiquidityRoutedOut = 3,
  Auction = 4,
  TriggeredStopOrder = 5,
  TriggeredContingencyOrder = 6,
  TriggeredMarketOrder = 7
}

/*
********************************************************
* Indicates if a trade should be reported via a market *
* reporting service.                                   *
********************************************************
*/
export enum PublishTrdIndicator {
  DoNotReportTrade = 'N',
  ReportTrade = 'Y'
}

/*
**************************
* Reason for short sale. *
**************************
*/
export enum ShortSaleReason {
  DealerSoldShort = 0,
  DealerSoldShortExempt = 1,
  SellingCustomerSoldShort = 2,
  SellingCustomerSoldShortExempt = 3,
  QualifiedServiceRepresentativeQsrOrAutomaticGiveUpAguContraSideSoldShort = 4,
  QsrOrAguContraSideSoldShortExempt = 5
}

/*
***************************************************************
* Type of quantity specified in quantity field.               *
* ContractMultiplier (tag 231) is required when QtyType = 1   *
* (Contracts). UnitOfMeasure (tag 996) and TimeUnit (tag 997) *
* are required when QtyType =  2 (Units of Measure per Time   *
* Unit).                                                      *
***************************************************************
*/
export enum QtyType {
  UnitsSharesParCurrency = 0,
  Contracts = 1,
  UnitOfMeasurePerTimeUnit = 2
}

/*
**************************************************************
* Additional TrdType(828) assigned to a trade by trade match *
* system.                                                    *
**************************************************************
*/
export enum SecondaryTrdType {
  RegularTrade = 0,
  BlockTrade = 1,
  ExchangeForPhysicalEfp = 2,
  Transfer = 3,
  LateTrade = 4,
  TTrade = 5,
  WeightedAveragePriceTrade = 6,
  BunchedTrade = 7,
  LateBunchedTrade = 8,
  PriorReferencePriceTrade = 9,
  AfterHoursTrade = 10,
  ExchangeForRiskEfr = 11,
  ExchangeForSwapEfs = 12,
  ExchangeOfFuturesForInMarketFuturesEfm = 13,
  ExchangeOfOptionsForOptionsEoo = 14,
  TradingAtSettlement = 15,
  AllOrNone = 16,
  FuturesLargeOrderExecution = 17,
  ExchangeOfFuturesForExternalMarketFuturesEff = 18,
  OptionInterimTrade = 19,
  OptionCabinetTrade = 20,
  PrivatelyNegotiatedTrade = 22,
  SubstitutionOfFuturesForForwards = 23,
  ErrorTrade = 24,
  SpecialCumDividendCd = 25,
  SpecialExDividendXd = 26,
  SpecialCumCouponCc = 27,
  SpecialExCouponXc = 28,
  CashSettlementCs = 29,
  SpecialPriceSp = 30,
  GuaranteedDeliveryGd = 31,
  SpecialCumRightsCr = 32,
  SpecialExRightsXr = 33,
  SpecialCumCapitalRepaymentsCp = 34,
  SpecialExCapitalRepaymentsXp = 35,
  SpecialCumBonusCb = 36,
  SpecialExBonusXb = 37,
  BlockTrade2 = 38,
  WorkedPrincipalTrade = 39,
  BlockTrades = 40,
  NameChange = 41,
  PortfolioTransfer = 42,
  ProrogationBuy = 43,
  ProrogationSell = 44,
  OptionExercise = 45,
  DeltaNeutralTransaction = 46,
  FinancingTransaction = 47,
  NonStandardSettlement = 48,
  DerivativeRelatedTransaction = 49,
  PortfolioTrade = 50,
  VolumeWeightedAverageTrade = 51,
  ExchangeGrantedTrade = 52,
  RepurchaseAgreement = 53,
  Otc = 54,
  ExchangeBasisFacilityEbf = 55,
  OpeningTrade = 56,
  NettedTrade = 57,
  BlockSwapTrade = 58,
  CreditEventTrade = 59,
  SuccessionEventTrade = 60,
  GiveUpGiveInTrade = 61,
  DarkTrade = 62,
  TechnicalTrade = 63,
  Benchmark = 64,
  PackageTrade = 65
}

/*
************************
* Type of Trade Report *
************************
*/
export enum TradeReportType {
  Submit = 0,
  Alleged = 1,
  Accept = 2,
  Decline = 3,
  Addendum = 4,
  NoWas = 5,
  TradeReportCancel = 6,
  LockedInTradeBreak = 7,
  Defaulted = 8,
  InvalidCmta = 9,
  Pended = 10,
  AllegedNew = 11,
  AllegedAddendum = 12,
  AllegedNoWas = 13,
  AllegedTradeReportCancel = 14,
  AllegedLockedInTradeBreak = 15,
  Verify = 16,
  Dispute = 17
}

/*
**************************************************************
* Indicates how the orders being booked and allocated by an  *
* AllocationInstruction or AllocationReport message are      *
* identified, e.g. by explicit definition in the OrdAllocGrp *
* or ExecAllocGrp components, or not identified explicitly.  *
**************************************************************
*/
export enum AllocNoOrdersType {
  NotSpecified = 0,
  ExplicitListProvided = 1
}

/*
***************************************
* Code to represent the type of event *
***************************************
*/
export enum EventType {
  Put = 1,
  Call = 2,
  Tender = 3,
  SinkingFundCall = 4,
  Activation = 5,
  Inactivation = 6,
  LastEligibleTradeDate = 7,
  SwapStartDate = 8,
  SwapEndDate = 9,
  SwapRollDate = 10,
  SwapNextStartDate = 11,
  SwapNextRollDate = 12,
  FirstDeliveryDate = 13,
  LastDeliveryDate = 14,
  InitialInventoryDueDate = 15,
  FinalInventoryDueDate = 16,
  FirstIntentDate = 17,
  LastIntentDate = 18,
  PositionRemovalDate = 19,
  MinimumNotice = 20,
  DeliveryStartTime = 21,
  DeliveryEndTime = 22,
  FirstNoticeDate = 23,
  LastNoticeDate = 24,
  FirstExerciseDate = 25,
  RedemptionDate = 26,
  TradeContinuationEffectiveDate = 27,
  Other = 99
}

/*
******************************************************
* Code to represent the type of instrument attribute *
******************************************************
*/
export enum InstrAttribType {
  FlatSecuritiesPayInterestOnACurrentBasisButAreTradedWithoutInterest = 1,
  ZeroCoupon = 2,
  InterestBearingForEuroCommercialPaperWhenNotIssuedAtDiscount = 3,
  NoPeriodicPayments = 4,
  VariableRate = 5,
  LessFeeForPut = 6,
  SteppedCoupon = 7,
  CouponPeriodIfNotSemiAnnual = 8,
  WhenAndIfIssued = 9,
  OriginalIssueDiscount = 10,
  CallablePuttable = 11,
  EscrowedToMaturity = 12,
  EscrowedToRedemptionDateCallable = 13,
  PreRefunded = 14,
  InDefault = 15,
  Unrated = 16,
  Taxable = 17,
  Indexed = 18,
  SubjectToAlternativeMinimumTax = 19,
  OriginalIssueDiscountPrice = 20,
  CallableBelowMaturityValue = 21,
  CallableWithoutNoticeByMailToHolderUnlessRegistered = 22,
  PriceTickRulesForSecurity = 23,
  TradeTypeEligibilityDetailsForSecurity = 24,
  InstrumentDenominator = 25,
  InstrumentNumerator = 26,
  InstrumentPricePrecision = 27,
  InstrumentStrikePrice = 28,
  TradeableIndicator = 29,
  InstrumentIsEligibleToAcceptAnonymousOrders = 30,
  MinimumGuaranteedFillVolume = 31,
  MinimumGuaranteedFillStatus = 32,
  TradeAtSettlementTasEligibility = 33,
  TestInstrument = 34,
  DummyInstrument = 35,
  NegativeSettlementPriceEligibility = 36,
  NegativeStrikePriceEligibility = 37,
  UsStandardContractIndicator = 38,
  Text = 99
}

/*
************************************************************
* The program under which a commercial paper offering is   *
* exempt from SEC registration identified by the paragraph *
* number(s) within the US Securities Act of 1933 or as     *
* identified below.                                        *
************************************************************
*/
export enum CPProgram {
  E3A3 = 1,
  E42 = 2,
  E3A2 = 3,
  E3A33C7 = 4,
  E3A4 = 5,
  E3A5 = 6,
  E3A7 = 7,
  E3C7 = 8,
  Other = 99
}

/*
**************************************************************
* The program under which the underlying commercial paper is *
* issued                                                     *
**************************************************************
*/
export enum UnderlyingCPProgram {
  E3A3 = 1,
  E42 = 2,
  E3A2 = 3,
  E3A33C7 = 4,
  E3A4 = 5,
  E3A5 = 6,
  E3A7 = 7,
  E3C7 = 8,
  Other = 99
}

/*
****************************************
* Type of stipulation.                 *
* Same values as StipulationType (233) *
****************************************
*/
export enum UnderlyingStipType {
  AlternativeMinimumTaxYN = 'AMT',
  AbsolutePrepaymentSpeed = 'ABS',
  IncurredRecoveryYN = 'INCURRCVY',
  AutoReinvestmentAtRateOrBetter = 'AUTOREINV',
  ConstantPrepaymentPenalty = 'CPP',
  AdditionalTerm = 'ADDTRM',
  BankQualifiedYN = 'BANKQUAL',
  ConstantPrepaymentRate = 'CPR',
  ModifiedEquityDelivery = 'MODEQTYDLVY',
  BargainConditionsSeeStipulationValue234ForValues = 'BGNCON',
  ConstantPrepaymentYield = 'CPY',
  NoReferenceObligationYN = 'NOREFOBLIG',
  CouponRange = 'COUPON',
  FinalCprOfHomeEquityPrepaymentCurve = 'HEP',
  UnknownReferenceObligationYN = 'UNKREFOBLIG',
  IsoCurrencyCode = 'CURRENCY',
  PercentOfManufacturedHousingPrepaymentCurve = 'MHP',
  AllGuaranteesYN = 'ALLGUARANTEES',
  CustomStartEndDate = 'CUSTOMDATE',
  MonthlyPrepaymentRate = 'MPR',
  ReferencePriceYN = 'REFPX',
  GeographicsAndRangeEx234Ca080MinimumOf80CaliforniaAssets = 'GEOG',
  PercentOfProspectusPrepaymentCurve = 'PPC',
  ReferencePolicyYN = 'REFPOLICY',
  ValuationDiscount = 'HAIRCUT',
  PercentOfBmaPrepaymentCurve = 'PSA',
  SecuredListYN = 'SECRDLIST',
  InsuredYN = 'INSURED',
  SingleMonthlyMortality = 'SMM',
  YearOrYearMonthOfIssueEx234200209 = 'ISSUE',
  IssuersTicker = 'ISSUER',
  IssueSizeRange = 'ISSUESIZE',
  LookbackDays = 'LOOKBACK',
  ExplicitLotIdentifier = 'LOT',
  LotVarianceValueInPercentMaximumOverOrUnderAllocationAllowed = 'LOTVAR',
  MaturityYearAndMonth = 'MAT',
  MaturityRange = 'MATURITY',
  MaximumSubstitutionsRepo = 'MAXSUBS',
  MinimumDenomination = 'MINDNOM',
  MinimumIncrement = 'MININCR',
  MinimumQuantity = 'MINQTY',
  PaymentFrequencyCalendar = 'PAYFREQ',
  NumberOfPieces = 'PIECES',
  PoolsMaximum = 'PMAX',
  PoolsPerLot = 'PPL',
  PoolsPerMillion = 'PPM',
  PoolsPerTrade = 'PPT',
  PriceRange = 'PRICE',
  PricingFrequency = 'PRICEFREQ',
  ProductionYear = 'PROD',
  CallProtection = 'PROTECT',
  Purpose = 'PURPOSE',
  BenchmarkPriceSource = 'PXSOURCE',
  RatingSourceAndRange = 'RATING',
  TypeOfRedemptionValuesAreNonCallablePrefundedEscrowedToMaturityPutableConvertible = 'REDEMPTION',
  RestrictedYN = 'RESTRICTED',
  MarketSector = 'SECTOR',
  SecurityTypeIncludedOrExcluded = 'SECTYPE',
  Structure = 'STRUCT',
  SubstitutionsFrequencyRepo = 'SUBSFREQ',
  SubstitutionsLeftRepo = 'SUBSLEFT',
  FreeformText = 'TEXT',
  TradeVarianceValueInPercentMaximumOverOrUnderAllocationAllowed = 'TRDVAR',
  WeightedAverageCouponValueInPercentExactOrRangePlusGrossOrNetOfServicingSpreadTheDefaultEx23465NetMinimumOf65NetOfServicingFee = 'WAC',
  WeightedAverageLifeCouponValueInPercentExactOrRange = 'WAL',
  WeightedAverageLoanAgeValueInMonthsExactOrRange = 'WALA',
  WeightedAverageMaturityValueInMonthsExactOrRange = 'WAM',
  WholePoolYN = 'WHOLE',
  YieldRange = 'YIELD',
  AverageFicoScore = 'AVFICO',
  OriginalAmount = 'ORIGAMT',
  AverageLoanSize = 'AVSIZE',
  PoolEffectiveDate = 'POOLEFFDT',
  MaximumLoanBalance = 'MAXBAL',
  PoolInitialFactor = 'POOLINITFCTR',
  PoolIdentifier = 'POOL',
  TrancheIdentifier = 'TRANCHE',
  TypeOfRollTrade = 'ROLLTYPE',
  SubstitutionYN = 'SUBSTITUTION',
  ReferenceToRollingOrClosingTrade = 'REFTRADE',
  MultipleExchangeFallbackYN = 'MULTEXCHFLLBCK',
  PrincipalOfRollingOrClosingTrade = 'REFPRIN',
  ComponentSecurityFallbackYN = 'COMPSECFLLBCK',
  InterestOfRollingOrClosingTrade = 'REFINT',
  LocalJurisdictionYN = 'LOCLJRSDCTN',
  AvailableOfferQuantityToBeShownToTheStreet = 'AVAILQTY',
  RelevantJurisdictionYN = 'RELVJRSDCTN',
  BrokersSalesCredit = 'BROKERCREDIT',
  OfferPriceToBeShownToInternalBrokers = 'INTERNALPX',
  OfferQuantityToBeShownToInternalBrokers = 'INTERNALQTY',
  TheMinimumResidualOfferQuantity = 'LEAVEQTY',
  MaximumOrderSize = 'MAXORDQTY',
  OrderQuantityIncrement = 'ORDRINCR',
  PrimaryOrSecondaryMarketIndicator = 'PRIMARY',
  BrokerSalesCreditOverride = 'SALESCREDITOVR',
  TradersCredit = 'TRADERCREDIT',
  DiscountRateWhenPriceIsDenominatedInPercentOfPar = 'DISCOUNT',
  YieldToMaturityWhenYieldType235AndYield236ShowADifferentYield = 'YTM'
}

/*
*********************************************
* Defines the unit for a miscellaneous fee. *
*********************************************
*/
export enum MiscFeeBasis {
  Absolute = 0,
  PerUnit = 1,
  Percentage = 2
}

/*
****************************************************************
* Indicates whether this message is the last in a sequence of  *
* messages for those messages that support fragmentation, such *
* as Allocation Instruction, Mass Quote, Security List,        *
* Derivative Security List                                     *
****************************************************************
*/
export enum LastFragment {
  NotLastMessage = 'N',
  LastMessage = 'Y'
}

/*
************************************
* Reason for Collateral Assignment *
************************************
*/
export enum CollAsgnReason {
  Initial = 0,
  Scheduled = 1,
  TimeWarning = 2,
  MarginDeficiency = 3,
  MarginExcess = 4,
  ForwardCollateralDemand = 5,
  EventOfDefault = 6,
  AdverseTaxEvent = 7,
  TransferDeposit = 8,
  TransferWithdrawal = 9,
  Pledge = 10
}

/*
**********************************
* Collateral inquiry qualifiers: *
**********************************
*/
export enum CollInquiryQualifier {
  TradeDate = 0,
  GcInstrument = 1,
  CollateralInstrument = 2,
  SubstitutionEligible = 3,
  NotAssigned = 4,
  PartiallyAssigned = 5,
  FullyAssigned = 6,
  OutstandingTradesTodayEndDate = 7
}

/*
******************************************
* Collateral Assignment Transaction Type *
******************************************
*/
export enum CollAsgnTransType {
  New = 0,
  Replace = 1,
  Cancel = 2,
  Release = 3,
  Reverse = 4
}

/*
*******************************************
* Type of collateral assignment response. *
*******************************************
*/
export enum CollAsgnRespType {
  Received = 0,
  Accepted = 1,
  Declined = 2,
  Rejected = 3,
  TransactionPending = 4,
  TransactionCompletedWithWarningSeeText58ForFurtherInformation = 5
}

/*
***************************************
* Collateral Assignment Reject Reason *
***************************************
*/
export enum CollAsgnRejectReason {
  UnknownDealOrderTrade = 0,
  UnknownOrInvalidInstrument = 1,
  UnauthorizedTransaction = 2,
  InsufficientCollateral = 3,
  InvalidTypeOfCollateral = 4,
  ExcessiveSubstitution = 5,
  Other = 99
}

/*
*********************
* Collateral Status *
*********************
*/
export enum CollStatus {
  Unassigned = 0,
  PartiallyAssigned = 1,
  AssignmentProposed = 2,
  AssignedAccepted = 3,
  Challenged = 4
}

/*
****************************************************************
* Indicates whether this message is the last report message in *
* response to a request message, e.g.                          *
* OrderMassStatusRequest(35=AF),                               *
* TradeCaptureReportRequest(35=AD).                            *
****************************************************************
*/
export enum LastRptRequested {
  NotLastMessage = 'N',
  LastMessage = 'Y'
}

/*
*********************************
* Identifies type of settlement *
*********************************
*/
export enum DeliveryType {
  VersusPaymentDeliverIfSellOrReceiveIfBuyVsAgainstPayment = 0,
  FreeDeliverIfSellOrReceiveIfBuyFree = 1,
  TriParty = 2,
  HoldInCustody = 3
}

/*
***********************************************************
* Indicates the action required by a User Request Message *
***********************************************************
*/
export enum UserRequestType {
  LogOnUser = 1,
  LogOffUser = 2,
  ChangePasswordForUser = 3,
  RequestIndividualUserStatus = 4,
  RequestThrottleLimit = 5
}

/*
**********************************
* Indicates the status of a user *
**********************************
*/
export enum UserStatus {
  LoggedIn = 1,
  NotLoggedIn = 2,
  UserNotRecognised = 3,
  PasswordIncorrect = 4,
  PasswordChanged = 5,
  Other = 6,
  ForcedUserLogoutByExchange = 7,
  SessionShutdownWarning = 8,
  ThrottleParametersChanged = 9
}

/*
************************************************
* Indicates the status of a network connection *
************************************************
*/
export enum StatusValue {
  Connected = 1,
  NotConnectedDownExpectedUp = 2,
  NotConnectedDownExpectedDown = 3,
  InProcess = 4
}

/*
**********************************************************
* Indicates the type and level of details required for a *
* Network Status Request Message                         *
* Boolean logic applies EG If you want to subscribe for  *
* changes to certain id's then UserRequestType =0 (8+2), *
* Snapshot for certain ID's = 9 (8+1)                    *
**********************************************************
*/
export enum NetworkRequestType {
  Snapshot = 1,
  Subscribe = 2,
  StopSubscribing = 4,
  LevelOfDetailThenNoCompIDsBecomesRequired = 8
}

/*
***************************************************
* Indicates the type of Network Response Message. *
***************************************************
*/
export enum NetworkStatusResponseType {
  Full = 1,
  IncrementalUpdate = 2
}

/*
***********************
* Trade Report Status *
***********************
*/
export enum TrdRptStatus {
  Accepted = 0,
  Rejected = 1,
  Cancelled = 2,
  AcceptedWithErrors = 3,
  PendingNew = 4,
  PendingCancel = 5,
  PendingReplace = 6,
  Terminated = 7,
  PendingVerification = 8,
  DeemedVerified = 9,
  Verified = 10,
  Disputed = 11
}

/*
*********************************************************
* Specifies the affirmation status of the confirmation. *
*********************************************************
*/
export enum AffirmStatus {
  Received = 1,
  ConfirmRejectedIENotAffirmed = 2,
  Affirmed = 3
}

/*
**********************************************************
* Action proposed for an Underlying Instrument instance. *
**********************************************************
*/
export enum CollAction {
  Retain = 0,
  Add = 1,
  Remove = 2
}

/*
********************************
* Status of Collateral Inquiry *
********************************
*/
export enum CollInquiryStatus {
  Accepted = 0,
  AcceptedWithWarnings = 1,
  Completed = 2,
  CompletedWithWarnings = 3,
  Rejected = 4
}

/*
*************************************************************
* Result returned in response to Collateral Inquiry         *
* 4000+ Reserved and available for bi-laterally agreed upon *
* user-defined values                                       *
*************************************************************
*/
export enum CollInquiryResult {
  SuccessfulDefault = 0,
  InvalidOrUnknownInstrument = 1,
  InvalidOrUnknownCollateralType = 2,
  InvalidParties = 3,
  InvalidTransportTypeRequested = 4,
  InvalidDestinationRequested = 5,
  NoCollateralFoundForTheTradeSpecified = 6,
  NoCollateralFoundForTheOrderSpecified = 7,
  CollateralInquiryTypeNotSupported = 8,
  UnauthorizedForCollateralInquiry = 9,
  OtherFurtherInformationInText58Field = 99
}

/*
********************************************************
* PartyIDSource value within a "third instance" Nested *
* repeating group.                                     *
* Same values as PartyIDSource (447)                   *
********************************************************
*/
export enum Nested3PartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
**************************************************************
* PartyRole value within a "third instance" Nested repeating *
* group.                                                     *
* Same values as PartyRole (452)                             *
**************************************************************
*/
export enum Nested3PartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*********************************************************
* PartySubIDType value within a "third instance" Nested *
* repeating group.                                      *
* Same values as PartySubIDType (803)                   *
*********************************************************
*/
export enum Nested3PartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*****************************
* Datatype of the parameter *
*****************************
*/
export enum StrategyParameterType {
  Int = 1,
  Length = 2,
  NumInGroup = 3,
  SeqNum = 4,
  TagNum = 5,
  Float = 6,
  Qty = 7,
  Price = 8,
  PriceOffset = 9,
  Amt = 10,
  Percentage = 11,
  Char = 12,
  Boolean = 13,
  String = 14,
  MultipleCharValue = 15,
  Currency = 16,
  Exchange = 17,
  MonthYear = 18,
  UtcTimestamp = 19,
  UtcTimeOnly = 20,
  LocalMktDate = 21,
  UtcDateOnly = 22,
  Data = 23,
  MultipleStringValue = 24,
  Country = 25,
  Language = 26,
  TzTimeOnly = 27,
  TzTimestamp = 28,
  Tenor = 29
}

/*
**********************************************************
* Used for derivatives. Denotes the current state of the *
* Instrument.                                            *
**********************************************************
*/
export enum SecurityStatus {
  Active = '1',
  Inactive = '2',
  ActiveClosingOrdersOnly = '3',
  Expired = '4',
  Delisted = '5',
  KnockedOut = '6',
  KnockOutRevoked = '7',
  PendingExpiry = '8',
  Suspended = '9',
  Published = '10',
  PendingDeletion = '11'
}

/*
***********************************************************
* Used for derivatives that deliver into cash underlying. *
***********************************************************
*/
export enum UnderlyingCashType {
  Fixed = 'FIXED',
  Diff = 'DIFF'
}

/*
********************************************************
* Indicates order settlement period for the underlying *
* instrument.                                          *
********************************************************
*/
export enum UnderlyingSettlementType {
  T1 = 2,
  T3 = 4,
  T4 = 5
}

export enum SecurityUpdateAction {
  Add = 'A',
  Delete = 'D',
  Modify = 'M'
}

/*
****************************
* Expiration Quantity type *
****************************
*/
export enum ExpirationQtyType {
  AutoExercise = 1,
  NonAutoExercise = 2,
  FinalWillBeExercised = 3,
  ContraryIntention = 4,
  Difference = 5
}

/*
***************************************************************
* Identifies whether the allocation is to be sub-allocated or *
* allocated to a third party                                  *
***************************************************************
*/
export enum IndividualAllocType {
  SubAllocate = 1,
  ThirdPartyAllocation = 2
}

/*
****************************************************************
* The unit of measure of the underlying commodity upon which   *
* the contract is based. Two groups of units of measure        *
* enumerations are supported.                                  *
* Fixed Magnitude UOMs are primarily used in energy            *
* derivatives and specify a magnitude (such as, MM, Kilo, M,   *
* etc.) and the dimension (such as, watt hours, BTU's) to      *
* produce standard fixed measures (such as MWh -               *
* Megawatt-hours, MMBtu - One million BTUs).                   *
* The second group, Variable Quantity UOMs, specifies the      *
* dimension as a single unit without a magnitude (or more      *
* accurately a magnitude of one) and uses the                  *
* UnitOfMeasureQty(1147) field to define the quantity of units *
* per contract. Variable Quantity UOMs are used for both       *
* commodities (such as lbs of lean cattle, bushels of corn,    *
* ounces of gold) and financial futures.                       *
* Examples:                                                    *
* For lean cattle futures contracts, a UnitOfMeasure of 'lbs'  *
* with a UnitOfMeasureQty(1147) of 40,000, means each lean     *
* cattle futures contract represents 40,000 lbs of lean        *
* cattle.                                                      *
* For Eurodollars futures contracts, a UnitOfMeasure of Ccy    *
* with a UnitOfMeasureCurrency(1716)  of USD and a             *
* UnitOfMeasureQty(1147) of 1,000,000, means a Eurodollar      *
* futures contract represents 1,000,000 USD.                   *
* For gold futures contracts, a UnitOfMeasure is oz_tr (Troy   *
* ounce) with a UnitOfMeasureQty(1147) of 1,000, means each    *
* gold futures contract represents 1,000 troy ounces of gold.  *
****************************************************************
*/
export enum UnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Unit of time associated with the contract.                 *
* NOTE: Additional values may be used by mutual agreement of *
* the counterparties                                         *
**************************************************************
*/
export enum TimeUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
********************************************
* Refer to defintion of UnitOfMeasure(996) *
********************************************
*/
export enum UnderlyingUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
********************************************
* Refer to defintion of UnitOfMeasure(996) *
********************************************
*/
export enum LegUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
*********************
* Same as TimeUnit. *
*********************
*/
export enum UnderlyingTimeUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
*********************
* Same as TimeUnit. *
*********************
*/
export enum LegTimeUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
*********************************************************
* Specifies the method under which a trade quantity was *
* allocated.                                            *
*********************************************************
*/
export enum AllocMethod {
  Automatic = 1,
  Guarantor = 2,
  Manual = 3,
  BrokerAssigned = 4
}

/*
****************************************************************
* Used on a multi-sided trade to specify the type of trade for *
* a given side. Same values as TrdSubType (829).               *
****************************************************************
*/
export enum SideTrdSubTyp {
  Cmta = 0,
  InternalTransferOrAdjustment = 1,
  ExternalTransferOrTransferOfAccount = 2,
  RejectForSubmittingSide = 3,
  AdvisoryForContraSide = 4,
  OffsetDueToAnAllocation = 5,
  OnsetDueToAnAllocation = 6,
  DifferentialSpread = 7,
  ImpliedSpreadLegExecutedAgainstAnOutright = 8,
  TransactionFromExercise = 9,
  TransactionFromAssignment = 10,
  Acats = 11,
  AiAutomatedInputFacilityDisabledInResponseToAnExchangeRequest = 14,
  BTransactionBetweenTwoMemberFirmsWhereNeitherMemberFirmIsRegisteredAsAMarketMakerInTheSecurityInQuestionAndNeitherIsADesignatedFundManagerAlsoUsedByBrokerDealersWhenDealingWithAnotherBrokerWhichIsNotAMemberFirmNonOrderBookSecuritiesOnly = 15,
  KTransactionUsingBlockTradeFacility = 16,
  LcCorrectionSubmittedMoreThanThreeDaysAfterPublicationOfTheOriginalTradeReport = 17,
  MTransactionOtherThanATransactionResultingFromAStockSwapOrStockSwitchBetweenTwoMarketMakersRegisteredInThatSecurityIncludingIdbOrAPublicDisplaySystemTradesNonOrderBookSecuritiesOnly = 18,
  NNonProtectedPortfolioTransactionOrAFullyDisclosedPortfolioTransaction = 19,
  NmITransactionWhereExchangeHasGrantedPermissionForNonPublicationIiIdbIsReportingAsSellerIiiSubmittingATransactionReportToTheExchangeWhereTheTransactionReportIsNotAlsoATradeReport = 20,
  NrNonRiskTransactionInASeatsSecurityOtherThanAnAimSecurity = 21,
  PProtectedPortfolioTransactionOrAWorkedPrincipalAgreementToEffectAPortfolioTransactionWhichIncludesOrderBookSecurities = 22,
  PaProtectedTransactionNotification = 23,
  PcContraTradeForTransactionWhichTookPlaceOnAPreviousDayAndWhichWasAutomaticallyExecutedOnTheExchangeTradingSystem = 24,
  PnWorkedPrincipalNotificationForAPortfolioTransactionWhichIncludesOrderBookSecurities = 25,
  RIRisklessPrincipalTransactionBetweenNonMembersWhereTheBuyingAndSellingTransactionsAreExecutedAtDifferentPricesOrOnDifferentTermsRequiresATradeReportWithTradeTypeIndicatorRForEachTransactionIiMarketMakerIsReportingAllTheLegsOfARisklessPrincipalTransactionWhereTheBuyingAndSellingTransactionsAreExecutedAtDifferentPricesRequiresATradeReportWithTradeTypeIndicatorRForEachTransactionOrIiiMarketMakerIsReportingTheOnwardLegOfARisklessPrincipalTransactionWhereTheLegsAreExecutedAtDifferentPricesAndAnotherMarketMakerHasSubmittedATradeReportUsingTradeTypeIndicatorMForTheFirstLegThisRequiresASingleTradeReportWithTradeTypeIndicatorR = 26,
  RoTransactionWhichResultedFromTheExerciseOfATraditionalOptionOrAStockSettledCoveredWarrant = 27,
  RtRiskTransactionInASeatsSecurityExcludingAimSecurityReportedByAMarketMakerRegisteredInThatSecurity = 28,
  SwTransactionsResultingFromStockSwapOrAStockSwitchOneReportIsRequiredForEachLineOfStock = 29,
  TIfReportingASingleProtectedTransaction = 30,
  WnWorkedPrincipalNotificationForASingleOrderBookSecurity = 31,
  WtWorkedPrincipalTransactionOtherThanAPortfolioTransaction = 32,
  OffHoursTrade = 33,
  OnHoursTrade = 34,
  OtcQuote = 35,
  ConvertedSwap = 36,
  CrossedTradeX = 37,
  InterimProtectedTradeI = 38,
  LargeInScaleL = 39,
  WashTrade = 40,
  TradeAtSettlementTas = 41,
  AuctionTrade = 42,
  TradeAtMarkerTam = 43,
  DefaultCreditEvent = 44,
  RestructuringCreditEvent = 45,
  MergerSuccessionEvent = 46,
  SpinOffSuccessionEvent = 47,
  MultilateralCompression = 48,
  Balancing = 50,
  BasisTradeIndexCloseBtic = 51
}

/*
*******************************
* Same as TrdRegTimeStampType *
*******************************
*/
export enum SideTrdRegTimestampType {
  ExecutionTime = 1,
  TimeIn = 2,
  TimeOut = 3,
  BrokerReceipt = 4,
  BrokerExecution = 5,
  DeskReceipt = 6,
  SubmissionToClearing = 7,
  TimePriority = 8,
  OrderbookEntryTime = 9,
  OrderSubmissionTime = 10,
  PubliclyReported = 11,
  PublicReportUpdated = 12,
  NonPubliclyReported = 13,
  NonPublicReportUpdated = 14,
  SubmittedForConfirmation = 15,
  UpdatedForConfirmation = 16,
  Confirmed = 17,
  UpdatedForClearing = 18,
  Cleared = 19,
  AllocationsSubmitted = 20,
  AllocationsUpdated = 21,
  ApplicationCompleted = 22,
  SubmittedToRepository = 23,
  PostTradeContinuationEvent = 24,
  PostTradeValuation = 25,
  PreviousTimePriority = 26
}

/*
****************************************************************
* A trade that is being submitted for a trade date prior to    *
* the current trade or clearing date, e.g. in an open outcry   *
* market an out trade being submitted for the previous trading *
* session or trading day.                                      *
****************************************************************
*/
export enum AsOfIndicator {
  FalseTradeIsNotAnAsOfTrade = '0',
  TrueTradeIsAnAsOfTrade = '1'
}

/*
**************************************************************
* Describes the type of book for which the feed is intended. *
* Used when multiple feeds are provided over the same        *
* connection                                                 *
**************************************************************
*/
export enum MDBookType {
  TopOfBook = 1,
  PriceDepth = 2,
  OrderDepth = 3
}

/*
*********************************************************
* Used to describe the origin of the market data entry. *
*********************************************************
*/
export enum MDOriginType {
  Book = 0,
  OffBook = 1,
  Cross = 2,
  QuoteDrivenMarket = 3,
  DarkOrderBook = 4,
  AuctionDrivenMarket = 5,
  QuoteNegotiation = 6,
  VoiceNegotiation = 7,
  HybridMarket = 8
}

/*
***************************************************************************************
* Codes that apply special information that the Broker /                              *
* Dealer needs to report, as specified by the customer.                               *
* NOTE: This field and its values have no bearing on the                              *
* ExecInst and TimeInForce fields. These values should not be                         *
* used instead of ExecInst or TimeInForce. This field and its                         *
* values are intended for compliance reporting and/or billing                         *
* purposes only.                                                                      *
*                                                                                     *
* For OrderHandlingInstSrc(1032) = 1 (FINRA OATS), valid                              *
* values are (as of OATS Phase 3 as provided by FINRA. See                            *
* also                                                                                *
* http://www.finra.org/Industry/Compliance/MarketTransparency/OATS/PhaseIII/index.htm *
* for a complete list.                                                                *
*                                                                                     *
* For OrderHandlingInstSrc(1032) = 2 (FIA Execution Source                            *
* Code), only one enumeration value may be specified.                                 *
***************************************************************************************
*/
export enum CustOrderHandlingInst {
  PhoneSimple = 'A',
  GOrderFinraOatsFcmApiOrFixFiaExecutionSource = 'G',
  AddOnOrder = 'ADD',
  PhoneComplex = 'B',
  AllOrNone = 'AON',
  FcmProvidedScreen = 'C',
  OtherProvidedScreen = 'D',
  ConditionalOrder = 'CND',
  CashNotHeld = 'CNH',
  ClientProvidedPlatformControlledByFcm = 'E',
  ClientProvidedPlatformDirectToExchange = 'F',
  DeliveryInstructionsCash = 'CSH',
  DirectedOrder = 'DIR',
  AlgoEngine = 'H',
  DiscretionaryLimitOrder = 'DLO',
  ExchangeForPhysicalTransaction = 'E.W',
  PriceAtExecutionPriceAddedAtInitialOrderEntryTradingMiddleOfficeOrTimeOfGiveUp = 'J',
  FillOrKill = 'FOK',
  DeskElectronic = 'W',
  DeskPit = 'X',
  ClientElectronic = 'Y',
  IntradayCross = 'IDX',
  ImbalanceOnly = 'IO',
  ClientPit = 'Z',
  ImmediateOrCancel = 'IOC',
  IntermarketSweepOrder = 'ISO',
  LimitOnOpen = 'LOO',
  LimitOnClose = 'LOC',
  MarketAtOpen = 'MAO',
  MarketAtClose = 'MAC',
  MarketOnOpen = 'MOO',
  MarketOnClose = 'MOC',
  MergerRelatedTransferPosition = 'MPT',
  MinimumQuantity = 'MQT',
  MarketToLimit = 'MTL',
  DeliveryInstructionsNextDay = 'ND',
  NotHeld = 'NH',
  OptionsRelatedTransaction = 'OPT',
  OverTheDay = 'OVD',
  Pegged = 'PEG',
  ReserveSizeOrder = 'RSV',
  StopStockTransaction = 'S.W',
  Scale = 'SCL',
  DeliveryInstructionsSellersOption = 'SLR',
  TimeOrder = 'TMO',
  TrailingStop = 'TS',
  Work = 'WRK',
  StayOnOfferside = 'F0',
  GoAlong = 'F3',
  ParticipateDoNotInitiate = 'F6',
  StrictScale = 'F7',
  TryToScale = 'F8',
  StayOnBidside = 'F9',
  NoCross = 'FA',
  OkToCross = 'FB',
  CallFirst = 'FC',
  PercentOfVolume = 'FD',
  ReinstateOnSystemFailure = 'FH',
  InstitutionOnly = 'FI',
  ReinstateOnTradingHalt = 'FJ',
  CancelOnTradingHalf = 'FK',
  LastPeg = 'FL',
  MidPricePeg = 'FM',
  NonNegotiable = 'FN',
  OpeningPeg = 'FO',
  MarketPeg = 'FP',
  CancelOnSystemFailure = 'FQ',
  PrimaryPeg = 'FR',
  Suspend = 'FS',
  FixedPegToLocalBestBidOrOfferAtTimeOfOrder = 'FT',
  PegToVwap = 'FW',
  TradeAlong = 'FX',
  TryToStop = 'FY',
  CancelIfNotBest = 'FZ',
  StrictLimit = 'Fb',
  IgnorePriceValidityChecks = 'Fc',
  PegToLimitPrice = 'Fd',
  WorkToTargetStrategy = 'Fe'
}

/*
****************************************************************
* Identifies the class or source of the order handling         *
* instruction values.  Scope of this will apply to both        *
* CustOrderHandlingInst(1031) and DeskOrderHandlingInst(1035). *
* Conditionally required when CustOrderHandlingInst(1031) or   *
* DeskOrderHandlingInst(1035) is specified.                    *
****************************************************************
*/
export enum OrderHandlingInstSource {
  FinraOats = 1,
  FiaExecutionSourceCode = 2
}

/*
*************************************************************
* Identifies the type of Trading Desk.                      *
* Conditionally required when InformationBarrierID(1727) is *
* specified for OATS.                                       *
*************************************************************
*/
export enum DeskType {
  Agency = 'A',
  Arbitrage = 'AR',
  BlockTrading = 'B',
  ConvertibleDesk = 'C',
  CentralRiskBooks = 'CR',
  Derivatives = 'D',
  EquityCapitalMarkets = 'EC',
  International = 'IN',
  Institutional = 'IS',
  Other = 'O',
  PreferredTrading = 'PF',
  Proprietary = 'PR',
  ProgramTrading = 'PT',
  Sales = 'S',
  Swaps = 'SW',
  TradingDeskOrSystemNonMarketMaker = 'T',
  Treasury = 'TR'
}

/*
************************************************************
* Identifies the class or source of DeskType(1033) values. *
* Conditionally required when DeskType(1033) is specified. *
************************************************************
*/
export enum DeskTypeSource {
  FinraOats = 1
}

/*
***************************************************************
* Codes that apply special information that the broker-dealer *
* needs to report.                                            *
***************************************************************
*/
export enum DeskOrderHandlingInst {
  PhoneSimple = 'A',
  GOrderFinraOatsFcmApiOrFixFiaExecutionSource = 'G',
  AddOnOrder = 'ADD',
  PhoneComplex = 'B',
  AllOrNone = 'AON',
  FcmProvidedScreen = 'C',
  OtherProvidedScreen = 'D',
  ConditionalOrder = 'CND',
  CashNotHeld = 'CNH',
  ClientProvidedPlatformControlledByFcm = 'E',
  ClientProvidedPlatformDirectToExchange = 'F',
  DeliveryInstructionsCash = 'CSH',
  DirectedOrder = 'DIR',
  AlgoEngine = 'H',
  DiscretionaryLimitOrder = 'DLO',
  ExchangeForPhysicalTransaction = 'E.W',
  PriceAtExecutionPriceAddedAtInitialOrderEntryTradingMiddleOfficeOrTimeOfGiveUp = 'J',
  FillOrKill = 'FOK',
  DeskElectronic = 'W',
  DeskPit = 'X',
  ClientElectronic = 'Y',
  IntradayCross = 'IDX',
  ImbalanceOnly = 'IO',
  ClientPit = 'Z',
  ImmediateOrCancel = 'IOC',
  IntermarketSweepOrder = 'ISO',
  LimitOnOpen = 'LOO',
  LimitOnClose = 'LOC',
  MarketAtOpen = 'MAO',
  MarketAtClose = 'MAC',
  MarketOnOpen = 'MOO',
  MarketOnClose = 'MOC',
  MergerRelatedTransferPosition = 'MPT',
  MinimumQuantity = 'MQT',
  MarketToLimit = 'MTL',
  DeliveryInstructionsNextDay = 'ND',
  NotHeld = 'NH',
  OptionsRelatedTransaction = 'OPT',
  OverTheDay = 'OVD',
  Pegged = 'PEG',
  ReserveSizeOrder = 'RSV',
  StopStockTransaction = 'S.W',
  Scale = 'SCL',
  DeliveryInstructionsSellersOption = 'SLR',
  TimeOrder = 'TMO',
  TrailingStop = 'TS',
  Work = 'WRK',
  StayOnOfferside = 'F0',
  GoAlong = 'F3',
  ParticipateDoNotInitiate = 'F6',
  StrictScale = 'F7',
  TryToScale = 'F8',
  StayOnBidside = 'F9',
  NoCross = 'FA',
  OkToCross = 'FB',
  CallFirst = 'FC',
  PercentOfVolume = 'FD',
  ReinstateOnSystemFailure = 'FH',
  InstitutionOnly = 'FI',
  ReinstateOnTradingHalt = 'FJ',
  CancelOnTradingHalf = 'FK',
  LastPeg = 'FL',
  MidPricePeg = 'FM',
  NonNegotiable = 'FN',
  OpeningPeg = 'FO',
  MarketPeg = 'FP',
  CancelOnSystemFailure = 'FQ',
  PrimaryPeg = 'FR',
  Suspend = 'FS',
  FixedPegToLocalBestBidOrOfferAtTimeOfOrder = 'FT',
  PegToVwap = 'FW',
  TradeAlong = 'FX',
  TryToStop = 'FY',
  CancelIfNotBest = 'FZ',
  StrictLimit = 'Fb',
  IgnorePriceValidityChecks = 'Fc',
  PegToLimitPrice = 'Fd',
  WorkToTargetStrategy = 'Fe'
}

/*
*********************************************************
* The status of this execution acknowledgement message. *
*********************************************************
*/
export enum ExecAckStatus {
  ReceivedNotYetProcessed = '0',
  Accepted = '1',
  DontKnowRejected = '2'
}

/*
**************************************************************
* Settlement method for a contract or instrument. Additional *
* values may be used with bilateral agreement.               *
**************************************************************
*/
export enum UnderlyingSettlMethod {
  CashSettlementRequired = 'C',
  PhysicalSettlementRequired = 'P',
  ElectionAtExercise = 'E'
}

/*
*********************************************************
* conveys how the collateral should be/has been applied *
*********************************************************
*/
export enum CollApplType {
  SpecificDeposit = 0,
  General = 1
}

/*
**********************************************************
* Specifies whether the UnderlyingFxRate(1045) should be *
* multiplied or divided.                                 *
**********************************************************
*/
export enum UnderlyingFXRateCalc {
  Divide = 'D',
  Multiply = 'M'
}

/*
***************************************************************
* Indicates whether the resulting position after a trade      *
* should be an opening position or closing position. Used for *
* omnibus accounting - where accounts are held on a gross     *
* basis instead of being netted together.                     *
***************************************************************
*/
export enum AllocPositionEffect {
  Open = 'O',
  Close = 'C',
  Rolled = 'R',
  Fifo = 'F'
}

/*
************************************************
* Identifies role of dealer; Agent, Principal, *
* RisklessPrincipal                            *
************************************************
*/
export enum DealingCapacity {
  Agent = 'A',
  Principal = 'P',
  RisklessPrincipal = 'R'
}

/*
***********************************************
* Method under which assignment was conducted *
***********************************************
*/
export enum InstrmtAssignmentMethod {
  ProRata = 'P',
  Random = 'R'
}

/*
***********************************************************
* PartyIDSource value within an instrument partyrepeating *
* group.                                                  *
* Same values as PartyIDSource (447)                      *
***********************************************************
*/
export enum InstrumentPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
*************************************************************
* PartyRole value within an instrument partyepeating group. *
* Same values as PartyRole (452)                            *
*************************************************************
*/
export enum InstrumentPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
**********************************************
* Type of InstrumentPartySubID (1053) value. *
* Same values as PartySubIDType (803)        *
**********************************************
*/
export enum InstrumentPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
****************************************************************
* Used to identify whether the order initiator is an aggressor *
* or not in the trade.                                         *
****************************************************************
*/
export enum AggressorIndicator {
  OrderInitiatorIsAggressor = 'Y',
  OrderInitiatorIsPassive = 'N'
}

/*
*******************************************************
* PartyIDSource value within an underlying instrument *
* partyrepeating group.                               *
* Same values as PartyIDSource (447)                  *
*******************************************************
*/
export enum UnderlyingInstrumentPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
***************************************************
* PartyRole value within an underlying instrument *
* partyepeating group.                            *
* Same values as PartyRole (452)                  *
***************************************************
*/
export enum UnderlyingInstrumentPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*********************************************************
* Type of underlying InstrumentPartySubID (1053) value. *
* Same values as PartySubIDType (803)                   *
*********************************************************
*/
export enum UnderlyingInstrumentPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
**************************************
* Identifies market data quote type. *
**************************************
*/
export enum MDQuoteType {
  Indicative = 0,
  Tradeable = 1,
  RestrictedTradeable = 2,
  Counter = 3,
  IndicativeAndTradeable = 4
}

/*
**************************************************************
* Used to specify what identifier, provided in order depth   *
* market data, to use when hitting (taking) a specific order *
* or to identify what type of order or quote reference is    *
* being provided when seeking credit limit check.            *
**************************************************************
*/
export enum RefOrderIDSource {
  SecondaryOrderId198 = '0',
  OrderId37 = '1',
  MdEntryId278 = '2',
  QuoteEntryId299 = '3',
  OriginalOrderId = '4',
  QuoteId117 = '5',
  QuoteReqId131 = '6'
}

/*
************************************************
* Instructs when to refresh DisplayQty (1138). *
************************************************
*/
export enum DisplayWhen {
  ImmediateAfterEachFill = '1',
  ExhaustWhenDisplayQty0 = '2'
}

/*
**********************************************************
* Defines what value to use in DisplayQty (1138). If not *
* specified the default DisplayMethod is "1"             *
**********************************************************
*/
export enum DisplayMethod {
  InitialUseOriginalDisplayQty = '1',
  NewUseRefreshQty = '2',
  RandomRandomizeValue = '3',
  UndisclosedInvisibleOrder = '4'
}

/*
**************************************************************
* Defines the type of price protection the customer requires *
* on their order.                                            *
**************************************************************
*/
export enum PriceProtectionScope {
  None = '0',
  LocalExchangeEcnAts = '1',
  NationalAcrossAllNationalMarkets = '2',
  GlobalAcrossAllMarkets = '3'
}

/*
***********************************************
* Defines the lot type assigned to the order. *
***********************************************
*/
export enum LotType {
  OddLot = '1',
  RoundLot = '2',
  BlockLot = '3',
  RoundLotBasedUponUnitOfMeasure996 = '4'
}

/*
****************************
* Defines the type of peg. *
****************************
*/
export enum PegPriceType {
  LastPegLastSale = 1,
  MidPricePegMidpriceOfInsideQuote = 2,
  OpeningPeg = 3,
  MarketPeg = 4,
  PrimaryPegPrimaryMarketBuyAtBidOrSellAtOffer = 5,
  PegToVwap = 7,
  TrailingStopPeg = 8,
  PegToLimitPrice = 9,
  ShortSaleMinimumPricePeg = 10
}

/*
*************************************************************
* Defines the identity of the security off whose prices the *
* order will peg. Same values as SecurityIDSource (22)      *
*************************************************************
*/
export enum PegSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
****************************************************************
* Defines when the trigger will hit, i.e. the action specified *
* by the trigger instructions will come into effect.           *
****************************************************************
*/
export enum TriggerType {
  PartialExecution = '1',
  SpecifiedTradingSession = '2',
  NextAuction = '3',
  PriceMovement = '4',
  OnOrderEntryOrOrderModificationEntry = '5'
}

/*
*************************************************************
* Defines the type of action to take when the trigger hits. *
*************************************************************
*/
export enum TriggerAction {
  Activate = '1',
  Modify = '2',
  Cancel = '3'
}

/*
*************************************************************
* Defines the identity of the security whose prices will be *
* tracked by the trigger logic. Same values as              *
* SecurityIDSource (22).                                    *
*************************************************************
*/
export enum TriggerSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
******************************************************
* The type of price that the trigger is compared to. *
******************************************************
*/
export enum TriggerPriceType {
  BestOffer = '1',
  LastTrade = '2',
  BestBid = '3',
  BestBidOrLastTrade = '4',
  BestOfferOrLastTrade = '5',
  BestMid = '6'
}

/*
**************************************************************
* Defines the type of price protection the customer requires *
* on their order.                                            *
**************************************************************
*/
export enum TriggerPriceTypeScope {
  None = '0',
  LocalExchangeEcnAts = '1',
  NationalAcrossAllNationalMarkets = '2',
  GlobalAcrossAllMarkets = '3'
}

/*
*****************************************************
* The side from which the trigger price is reached. *
*****************************************************
*/
export enum TriggerPriceDirection {
  TriggerIfThePriceOfTheSpecifiedTypeGoesUpToOrThroughTheSpecifiedTriggerPrice = 'U',
  TriggerIfThePriceOfTheSpecifiedTypeGoesDownToOrThroughTheSpecifiedTriggerPrice = 'D'
}

/*
****************************************************************
* The OrdType the order should have after the trigger has hit. *
* Required to express orders that change from Limit to Market. *
* Other values from OrdType (40) may be used if appropriate    *
* and bilaterally agreed upon.                                 *
****************************************************************
*/
export enum TriggerOrderType {
  Market = '1',
  Limit = '2'
}

/*
****************************************************************
* Defines the type of interest behind a trade (fill or partial *
* fill).                                                       *
****************************************************************
*/
export enum OrderCategory {
  Order = '1',
  Quote = '2',
  PrivatelyNegotiatedTrade = '3',
  MultilegOrder = '4',
  LinkedOrder = '5',
  QuoteRequest = '6',
  ImpliedOrder = '7',
  CrossOrder = '8',
  StreamingPriceQuote = '9',
  InternalCrossOrder = 'A'
}

/*
*************************************************************
* PartyIDSource value within a root parties component. Same *
* values as PartyIDSource (447)                             *
*************************************************************
*/
export enum RootPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
****************************************************************
* PartyRole value within a root parties component. Same values *
* as PartyRole (452)                                           *
****************************************************************
*/
export enum RootPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*******************************************************
* Type of RootPartySubID (1121) value. Same values as *
* PartySubIDType (803)                                *
*******************************************************
*/
export enum RootPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*********************************************************
* Specified how the TradeCaptureReport(35=AE) should be *
* handled by the respondent.                            *
*********************************************************
*/
export enum TradeHandlingInstr {
  TradeConfirmation = '0',
  TwoPartyReport = '1',
  OnePartyReportForMatching = '2',
  OnePartyReportForPassThrough = '3',
  AutomatedFloorOrderRouting = '4',
  TwoPartyReportForClaim = '5',
  OnePartyReport = '6',
  ThirdPartyReportForPassThrough = '7',
  OnePartyReportForAutoMatch = '8'
}

/*
***************************************************************
* Optionally used with TradeHandlingInstr = 0 to relay the    *
* trade handling instruction used when reporting the trade to *
* the marketplace. Same values as TradeHandlingInstr (1123)   *
***************************************************************
*/
export enum OrigTradeHandlingInstr {
  TradeConfirmation = '0',
  TwoPartyReport = '1',
  OnePartyReportForMatching = '2',
  OnePartyReportForPassThrough = '3',
  AutomatedFloorOrderRouting = '4',
  TwoPartyReportForClaim = '5',
  OnePartyReport = '6',
  ThirdPartyReportForPassThrough = '7',
  OnePartyReportForAutoMatch = '8'
}

/*
***************************************************************
* Specifies the service pack release being applied at message *
* level. Enumerated field with values assigned at time of     *
* service pack release                                        *
***************************************************************
*/
export enum ApplVerID {
  Fix27 = '0',
  Fix30 = '1',
  Fix40 = '2',
  Fix41 = '3',
  Fix42 = '4',
  Fix43 = '5',
  Fix44 = '6',
  Fix50 = '7',
  Fix50Sp1 = '8',
  Fix50Sp2 = '9'
}

/*
**************************************************************
* Specifies the service pack release being applied to a      *
* message at the session level. Enumerated field with values *
* assigned at time of service pack release. Uses same values *
* as ApplVerID                                               *
**************************************************************
*/
export enum RefApplVerID {
  Fix27 = '0',
  Fix30 = '1',
  Fix40 = '2',
  Fix41 = '3',
  Fix42 = '4',
  Fix43 = '5',
  Fix44 = '6',
  Fix50 = '7',
  Fix50Sp1 = '8',
  Fix50Sp2 = '9'
}

/*
**********************************
* The ID source of ExDestination *
**********************************
*/
export enum ExDestinationIDSource {
  BicBankIdentificationCodeIso9362 = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  MicIso10383MarketIdentifierCode = 'G'
}

/*
**************************************************************
* Specifies the service pack release being applied, by       *
* default, to message at the session level. Enumerated field *
* with values assigned at time of service pack release. Uses *
* same values as ApplVerID                                   *
**************************************************************
*/
export enum DefaultApplVerID {
  Fix27 = '0',
  Fix30 = '1',
  Fix40 = '2',
  Fix41 = '3',
  Fix42 = '4',
  Fix43 = '5',
  Fix44 = '6',
  Fix50 = '7',
  Fix50Sp1 = '8',
  Fix50Sp2 = '9'
}

/*
***************************************************************
* Indicates that an implied market should be created for      *
* either the legs of a multi-leg instrument (Implied-in) or   *
* for the multi-leg instrument based on the existence of the  *
* legs (Implied-out). Determination as to whether implied     *
* markets should be created is generally done at the level of *
* the multi-leg instrument. Commonly used in listed           *
* derivatives.                                                *
***************************************************************
*/
export enum ImpliedMarketIndicator {
  NotImplied = 0,
  ImpliedInTheExistenceOfAMultiLegInstrumentIsImpliedByTheLegsOfThatInstrument = 1,
  ImpliedOutTheExistenceOfTheUnderlyingLegsAreImpliedByTheMultiLegInstrument = 2,
  BothImpliedInAndImpliedOut = 3
}

/*
*********************************************************
* Used to identify the reporting mode of the settlement *
* obligation which is either preliminary or final       *
*********************************************************
*/
export enum SettlObligMode {
  Preliminary = 1,
  Final = 2
}

/*
*************************************************************
* Transaction Type - required except where SettlInstMode is *
* 5=Reject SSI request                                      *
*************************************************************
*/
export enum SettlObligTransType {
  Cancel = 'C',
  New = 'N',
  Replace = 'R',
  Restate = 'T'
}

/*
****************************************************************
* Used to identify whether these delivery instructions are for *
* the buyside or the sellside.                                 *
****************************************************************
*/
export enum SettlObligSource {
  InstructionsOfBroker = '1',
  InstructionsForInstitution = '2',
  Investor = '3',
  BuyersSettlementInstructions = '4',
  SellersSettlementInstructions = '5'
}

/*
**********************************************************
* Identifies the status of an individual quote. See also *
* QuoteStatus(297) which is used for single Quotes.      *
**********************************************************
*/
export enum QuoteEntryStatus {
  Accepted = 0,
  Rejected = 5,
  RemovedFromMarket = 6,
  Expired = 7,
  LockedMarketWarning = 12,
  CrossMarketWarning = 13,
  CanceledDueToLockMarket = 14,
  CanceledDueToCrossMarket = 15,
  Active = 16
}

/*
**************************************************************
* Specifies whether a quote is public, i.e. available to the *
* market, or private, i.e. available to a specified          *
* counterparty only.                                         *
**************************************************************
*/
export enum PrivateQuote {
  PrivateQuote = 'Y',
  PublicQuote = 'N'
}

/*
************************************************
* Specifies the type of respondents requested. *
************************************************
*/
export enum RespondentType {
  AllMarketParticipants = 1,
  SpecifiedMarketParticipants = 2,
  AllMarketMakers = 3,
  PrimaryMarketMakerS = 4
}

/*
****************************************************************
* Identifies an event related to a SecurityTradingStatus(326). *
* An event occurs and is gone, it is not a state that applies  *
* for a period of time.                                        *
****************************************************************
*/
export enum SecurityTradingEvent {
  OrderImbalanceAuctionIsExtended = 1,
  TradingResumesAfterHalt = 2,
  PriceVolatilityInterruption = 3,
  ChangeOfTradingSession = 4,
  ChangeOfTradingSubsession = 5,
  ChangeOfSecurityTradingStatus = 6,
  ChangeOfBookType = 7,
  ChangeOfMarketDepth = 8,
  CorporateAction = 9
}

/*
**********************
* Type of statistics *
**********************
*/
export enum StatsType {
  ExchangeLast = 1,
  HighLowPrice = 2,
  AveragePriceVwapTwap = 3,
  TurnoverPriceQty = 4
}

/*
*****************************************
* Specifies the type of secondary size. *
*****************************************
*/
export enum MDSecSizeType {
  Customer = 1,
  CustomerProfessional = 2,
  DoNotTradeThrough = 3
}

/*
**************************************************************
* Used to express the UOM of the price if different from the *
* contract. In futures, this can be different for cross-rate *
* products in which the price is quoted in units differently *
* from the contract                                          *
**************************************************************
*/
export enum PriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Settlement method for a contract or instrument. Additional *
* values may be used with bilateral agreement.               *
**************************************************************
*/
export enum SettlMethod {
  CashSettlementRequired = 'C',
  PhysicalSettlementRequired = 'P',
  ElectionAtExercise = 'E'
}

/*
**********************************************
* Type of exercise of a derivatives security *
**********************************************
*/
export enum ExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
******************************
* Method for price quotation *
******************************
*/
export enum PriceQuoteMethod {
  StandardMoneyPerUnitOfAPhysical = 'STD',
  Index = 'INX',
  InterestRateIndex = 'INT',
  PercentOfPar = 'PCTPAR'
}

/*
***************************************************
* Specifies the type of valuation method applied. *
***************************************************
*/
export enum ValuationMethod {
  PremiumStyle = 'EQTY',
  FuturesStyleMarkToMarket = 'FUT',
  FuturesStyleWithAnAttachedCashAdjustment = 'FUTDA',
  CdsStyleCollateralizationOfMarketToMarketAndCoupon = 'CDS',
  CdsInDeliveryUseRecoveryRateToCalculateObligation = 'CDSD'
}

/*
************************************************************
* Indicates whether instruments are pre-listed only or can *
* also be defined via user request                         *
************************************************************
*/
export enum ListMethod {
  PreListedOnly = 0,
  UserRequested = 1
}

/*
************************************************************
* Specifies the type of tick rule which is being described *
************************************************************
*/
export enum TickRuleType {
  RegularTrading = 0,
  VariableCabinet = 1,
  FixedCabinet = 2,
  TradedAsASpreadLeg = 3,
  SettledAsASpreadLeg = 4,
  TradedAsSpread = 5
}

/*
******************************************************
* Code to represent the type of instrument attribute *
******************************************************
*/
export enum NestedInstrAttribType {
  FlatSecuritiesPayInterestOnACurrentBasisButAreTradedWithoutInterest = 1,
  ZeroCoupon = 2,
  InterestBearingForEuroCommercialPaperWhenNotIssuedAtDiscount = 3,
  NoPeriodicPayments = 4,
  VariableRate = 5,
  LessFeeForPut = 6,
  SteppedCoupon = 7,
  CouponPeriodIfNotSemiAnnual = 8,
  WhenAndIfIssued = 9,
  OriginalIssueDiscount = 10,
  CallablePuttable = 11,
  EscrowedToMaturity = 12,
  EscrowedToRedemptionDateCallable = 13,
  PreRefunded = 14,
  InDefault = 15,
  Unrated = 16,
  Taxable = 17,
  Indexed = 18,
  SubjectToAlternativeMinimumTax = 19,
  OriginalIssueDiscountPrice = 20,
  CallableBelowMaturityValue = 21,
  CallableWithoutNoticeByMailToHolderUnlessRegistered = 22,
  PriceTickRulesForSecurity = 23,
  TradeTypeEligibilityDetailsForSecurity = 24,
  InstrumentDenominator = 25,
  InstrumentNumerator = 26,
  InstrumentPricePrecision = 27,
  InstrumentStrikePrice = 28,
  TradeableIndicator = 29,
  InstrumentIsEligibleToAcceptAnonymousOrders = 30,
  MinimumGuaranteedFillVolume = 31,
  MinimumGuaranteedFillStatus = 32,
  TradeAtSettlementTasEligibility = 33,
  TestInstrument = 34,
  DummyInstrument = 35,
  NegativeSettlementPriceEligibility = 36,
  NegativeStrikePriceEligibility = 37,
  UsStandardContractIndicator = 38,
  Text = 99
}

/*
*****************************************
* Refer to definition for SymbolSfx(65) *
*****************************************
*/
export enum DerivativeSymbolSfx {
  EucpWithLumpSumInterestRatherThanDiscountPrice = 'CD',
  WhenIssuedForASecurityToBeReissuedUnderAnOldCusipOrIsin = 'WI'
}

/*
************************************************
* Refer to definition for SecurityIDSoruce(22) *
************************************************
*/
export enum DerivativeSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
****************************************************
* Refer to definition for SecurityAltIDSource(456) *
****************************************************
*/
export enum DerivativeSecurityAltIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
****************************************
* The commission rate unit of measure. *
****************************************
*/
export enum CommUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

export enum DerivativeProduct {
  Agency = 1,
  Commodity = 2,
  Corporate = 3,
  Currency = 4,
  Equity = 5,
  Government = 6,
  Index = 7,
  Loan = 8,
  Moneymarket = 9,
  Mortgage = 10,
  Municipal = 11,
  Other = 12,
  Financing = 13
}

export enum DerivativeSecurityType {
  EuroSupranationalCoupons = 'EUSUPRA',
  CorporateBond = 'CORP',
  ForeignExchangeContract = 'FOR',
  CommonStock = 'CS',
  Repurchase = 'REPO',
  BradyBond = 'BRADY',
  TermLoan = 'TERM',
  BankersAcceptance = 'BA',
  AssetBackedSecurities = 'ABS',
  OtherAnticipationNotesBanGanEtc = 'AN',
  MutualFund = 'MF',
  FederalAgencyCoupon = 'FAC',
  CorporatePrivatePlacement = 'CPP',
  PreferredStock = 'PS',
  Forward = 'FORWARD',
  CanadianTreasuryNotes = 'CAN',
  RevolverLoan = 'RVLV',
  BankDepositoryNote = 'BDN',
  CanadianMortgageBonds = 'CMB',
  CertificateOfObligation = 'COFO',
  MultilegInstrument = 'MLEG',
  NonDeliverableForward = 'FXNDF',
  Cap = 'CAP',
  FederalAgencyDiscountNote = 'FADN',
  ConvertibleBond = 'CB',
  CreditDefaultSwap = 'CDS',
  BuySellback = 'BUYSELL',
  CanadianTreasuryBills = 'CTB',
  RevolverTermLoan = 'RVLVTRM',
  BankNotes = 'BN',
  CorpMortgageBackedSecurities = 'CMBS',
  CertificateOfParticipation = 'COFP',
  NoSecurityType = 'NONE',
  FxSpot = 'FXSPOT',
  UsTreasuryNoteDeprecatedValueUseTnote = 'UST',
  PrivateExportFunding = 'PEF',
  DualCurrency = 'DUAL',
  SecuritiesLoan = 'SECLOAN',
  EuroSovereigns = 'EUSOV',
  BridgeLoan = 'BRIDGE',
  BillOfExchanges = 'BOX',
  CollateralizedMortgageObligation = 'CMO',
  GeneralObligationBonds = 'GO',
  FxForward = 'FXFWD',
  Collar = 'CLLR',
  UsTreasuryBillDeprecatedValueUseTbill = 'USTB',
  UsdSupranationalCoupons = 'SUPRA',
  EuroCorporateBond = 'EUCORP',
  SecuritiesPledge = 'SECPLEDGE',
  CanadianProvincialBonds = 'PROV',
  LetterOfCredit = 'LOFC',
  CanadianMoneyMarkets = 'CAMM',
  IoetteMortgage = 'IET',
  MandatoryTender = 'MT',
  FxSwap = 'FXSWAP',
  CommoditySwap = 'CMDTYSWAP',
  EuroCorporateFloatingRateNotes = 'EUFRN',
  TreasuryBillNonUs = 'TB',
  SwingLineFacility = 'SWING',
  CertificateOfDeposit = 'CD',
  MortgageBackedSecurities = 'MBS',
  RevenueAnticipationNote = 'RAN',
  WildcardEntryForUseOnSecurityDefinitionRequest = '?',
  DeliveryVersusPledge = 'DVPLDG',
  Exotic = 'EXOTIC',
  UsCorporateFloatingRateNotes = 'FRN',
  OptionsOnCombo = 'OOC',
  UsTreasuryBond = 'TBOND',
  DebtorInPossession = 'DINP',
  CallLoans = 'CL',
  MortgageInterestOnly = 'MIO',
  RevenueBonds = 'REV',
  Cash = 'CASH',
  Floor = 'FLR',
  CollateralBasket = 'COLLBSKT',
  IndexedLinked = 'XLINKD',
  InterestStripFromAnyBondOrNote = 'TINT',
  Defaulted = 'DEFLTED',
  CommercialPaper = 'CP',
  MortgagePrincipalOnly = 'MPO',
  SpecialAssessment = 'SPCLA',
  ForwardRateAgreement = 'FRA',
  StructuredNotes = 'STRUCT',
  Future = 'FUT',
  UsTreasuryBill = 'TBILL',
  TreasuryInflationProtectedSecurities = 'TIPS',
  Withdrawn = 'WITHDRN',
  DepositNotes = 'DN',
  MortgagePrivatePlacement = 'MPP',
  SpecialObligation = 'SPCLO',
  YankeeCorporateBond = 'YANK',
  PrincipalStripOfACallableBondOrNote = 'TCAL',
  Replaced = 'REPLACD',
  EuroCertificateOfDeposit = 'EUCD',
  MiscellaneousPassThrough = 'MPT',
  SpecialTax = 'SPCLT',
  DerivativeForward = 'FWD',
  InterestRateSwap = 'IRS',
  PrincipalStripFromANonCallableBondOrNote = 'TPRN',
  Matured = 'MATURED',
  EuroCommercialPaper = 'EUCP',
  Pfandbriefe = 'PFAND',
  TaxAnticipationNote = 'TAN',
  TotalReturnSwap = 'TRS',
  UsTreasuryNote = 'TNOTE',
  AmendedRestated = 'AMENDED',
  LiquidityNote = 'LQN',
  ToBeAnnounced = 'TBA',
  TaxAllocation = 'TAXA',
  LoanLease = 'LOANLEASE',
  Retired = 'RETIRED',
  MediumTermNotes = 'MTN',
  TaxExemptCommercialPaper = 'TECP',
  OptionsOnFutures = 'OOF',
  Overnight = 'ONITE',
  TaxableMunicipalCp = 'TMCP',
  OptionsOnPhysicalUseNotRecommended = 'OOP',
  PromissoryNote = 'PN',
  ShortTermLoanNote = 'STN',
  TaxRevenueAnticipationNote = 'TRAN',
  Option = 'OPT',
  PlazosFijos = 'PZFJ',
  VariableRateDemandNote = 'VRDN',
  SecuredLiquidityNote = 'SLQN',
  Warrant = 'WAR',
  SpotForward = 'SPOTFWD',
  TimeDeposit = 'TD',
  SwapOption = 'SWAPTION',
  Transmission = 'XMISSION',
  TermLiquidityNote = 'TLQN',
  GeneralTypeForAContractBasedOnAnEstablishedIndex = 'INDEX',
  ExtendedCommNote = 'XCN',
  BondBasket = 'BDBSKT',
  YankeeCertificateOfDeposit = 'YCD',
  ContractForDifference = 'CFD',
  CorrelationSwap = 'CRLTNSWAP',
  DividendSwap = 'DVDNDSWAP',
  EquityBasket = 'EQBSKT',
  EquityForward = 'EQFWD',
  ReturnSwap = 'RTRNSWAP',
  VarianceSwap = 'VARSWAP'
}

export enum DerivativeInstrmtAssignmentMethod {
  ProRata = 'P',
  Random = 'R'
}

export enum DerivativeSecurityStatus {
  Active = '1',
  Inactive = '2',
  ActiveClosingOrdersOnly = '3',
  Expired = '4',
  Delisted = '5',
  KnockedOut = '6',
  KnockOutRevoked = '7',
  PendingExpiry = '8',
  Suspended = '9',
  Published = '10',
  PendingDeletion = '11'
}

export enum DerivativeUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

export enum DerivativeTimeUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

export enum DerivativeEventType {
  Put = 1,
  Call = 2,
  Tender = 3,
  SinkingFundCall = 4,
  Activation = 5,
  Inactivation = 6,
  LastEligibleTradeDate = 7,
  SwapStartDate = 8,
  SwapEndDate = 9,
  SwapRollDate = 10,
  SwapNextStartDate = 11,
  SwapNextRollDate = 12,
  FirstDeliveryDate = 13,
  LastDeliveryDate = 14,
  InitialInventoryDueDate = 15,
  FinalInventoryDueDate = 16,
  FirstIntentDate = 17,
  LastIntentDate = 18,
  PositionRemovalDate = 19,
  MinimumNotice = 20,
  DeliveryStartTime = 21,
  DeliveryEndTime = 22,
  FirstNoticeDate = 23,
  LastNoticeDate = 24,
  FirstExerciseDate = 25,
  RedemptionDate = 26,
  TradeContinuationEffectiveDate = 27,
  Other = 99
}

/*
*********************************************
* Refer to definition of PartyIDSource(447) *
*********************************************
*/
export enum DerivativeInstrumentPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
*****************************************
* REfer to definition of PartyRole(452) *
*****************************************
*/
export enum DerivativeInstrumentPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
***********************************************
* Refer to definition for PartySubIDType(803) *
***********************************************
*/
export enum DerivativeInstrumentPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
**********************************************
* Type of exercise of a derivatives security *
**********************************************
*/
export enum DerivativeExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
*********************************************************
* Unit of measure for the Maturity Month Year Increment *
*********************************************************
*/
export enum MaturityMonthYearIncrementUnits {
  Months = 0,
  Days = 1,
  Weeks = 2,
  Years = 3
}

/*
**********************************************************
* Format used to generate the MaturityMonthYear for each *
* option                                                 *
**********************************************************
*/
export enum MaturityMonthYearFormat {
  YearMonthOnlyDefault = 0,
  YearMonthDay = 1,
  YearMonthWeek = 2
}

/*
*****************************************
* Expiration Style for an option class: *
*****************************************
*/
export enum StrikeExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
****************************************************
* Describes the how the price limits are expressed *
****************************************************
*/
export enum SecondaryPriceLimitType {
  PriceDefault = 0,
  Ticks = 1,
  Percentage = 2
}

/*
*****************************************************
* Describes the how the price limits are expressed. *
*****************************************************
*/
export enum PriceLimitType {
  PriceDefault = 0,
  Ticks = 1,
  Percentage = 2
}

/*
***********************************************************
* Indicates execution instructions that are valid for the *
* specified market segment                                *
***********************************************************
*/
export enum ExecInstValue {
  StayOnOfferSide = '0',
  NotHeld = '1',
  Work = '2',
  GoAlong = '3',
  OverTheDay = '4',
  Held = '5',
  ParticipateDontInitiate = '6',
  StrictScale = '7',
  TryToScale = '8',
  StayOnBidSide = '9',
  NoCross = 'A',
  OkToCross = 'B',
  CallFirst = 'C',
  PercentOfVolume = 'D',
  DoNotIncreaseDni = 'E',
  DoNotReduceDnr = 'F',
  AllOrNoneAon = 'G',
  ReinstateOnSystemFailure = 'H',
  InstitutionsOnly = 'I',
  ReinstateOnTradingHalt = 'J',
  CancelOnTradingHalt = 'K',
  LastPegLastSale = 'L',
  MidPricePegMidpriceOfInsideQuote = 'M',
  NonNegotiable = 'N',
  OpeningPeg = 'O',
  MarketPeg = 'P',
  CancelOnSystemFailure = 'Q',
  PrimaryPeg = 'R',
  Suspend = 'S',
  FixedPegToLocalBestBidOrOfferAtTimeOfOrder = 'T',
  CustomerDisplayInstruction = 'U',
  NettingForForex = 'V',
  PegToVwap = 'W',
  TradeAlong = 'X',
  TryToStop = 'Y',
  CancelIfNotBest = 'Z',
  TrailingStopPeg = 'a',
  StrictLimit = 'b',
  IgnorePriceValidityChecks = 'c',
  PegToLimitPrice = 'd',
  WorkToTargetStrategy = 'e',
  IntermarketSweep = 'f',
  ExternalRoutingAllowed = 'g',
  ExternalRoutingNotAllowed = 'h',
  ImbalanceOnly = 'i',
  SingleExecutionRequestedForBlockTrade = 'j',
  BestExecution = 'k',
  SuspendOnSystemFailure = 'l',
  SuspendOnTradingHalt = 'm',
  ReinstateOnConnectionLoss = 'n',
  CancelOnConnectionLoss = 'o',
  SuspendOnConnectionLoss = 'p',
  Release = 'q',
  ExecuteAsDeltaNeutralUsingVolatilityProvided = 'r',
  ExecuteAsDurationNeutral = 's',
  ExecuteAsFxNeutral = 't',
  MinimumGuaranteedFillEligible = 'u',
  BypassNonDisplayedLiquidity = 'v',
  Lock = 'w',
  IgnoreNotionalValueChecks = 'x',
  TradeAtReferencePrice = 'y'
}

/*
***********************************************
* Refer to definition of InstrAttribType(871) *
***********************************************
*/
export enum DerivativeInstrAttribType {
  FlatSecuritiesPayInterestOnACurrentBasisButAreTradedWithoutInterest = 1,
  ZeroCoupon = 2,
  InterestBearingForEuroCommercialPaperWhenNotIssuedAtDiscount = 3,
  NoPeriodicPayments = 4,
  VariableRate = 5,
  LessFeeForPut = 6,
  SteppedCoupon = 7,
  CouponPeriodIfNotSemiAnnual = 8,
  WhenAndIfIssued = 9,
  OriginalIssueDiscount = 10,
  CallablePuttable = 11,
  EscrowedToMaturity = 12,
  EscrowedToRedemptionDateCallable = 13,
  PreRefunded = 14,
  InDefault = 15,
  Unrated = 16,
  Taxable = 17,
  Indexed = 18,
  SubjectToAlternativeMinimumTax = 19,
  OriginalIssueDiscountPrice = 20,
  CallableBelowMaturityValue = 21,
  CallableWithoutNoticeByMailToHolderUnlessRegistered = 22,
  PriceTickRulesForSecurity = 23,
  TradeTypeEligibilityDetailsForSecurity = 24,
  InstrumentDenominator = 25,
  InstrumentNumerator = 26,
  InstrumentPricePrecision = 27,
  InstrumentStrikePrice = 28,
  TradeableIndicator = 29,
  InstrumentIsEligibleToAcceptAnonymousOrders = 30,
  MinimumGuaranteedFillVolume = 31,
  MinimumGuaranteedFillStatus = 32,
  TradeAtSettlementTasEligibility = 33,
  TestInstrument = 34,
  DummyInstrument = 35,
  NegativeSettlementPriceEligibility = 36,
  NegativeStrikePriceEligibility = 37,
  UsStandardContractIndicator = 38,
  Text = 99
}

/*
****************************************************
* Refer to definition for PriceUnitOfMeasure(1191) *
****************************************************
*/
export enum DerivativePriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Settlement method for a contract or instrument. Additional *
* values may be used with bilateral agreement.               *
**************************************************************
*/
export enum DerivativeSettlMethod {
  CashSettlementRequired = 'C',
  PhysicalSettlementRequired = 'P',
  ElectionAtExercise = 'E'
}

/*
*************************************************
* Refer to definition of PriceQuoteMethod(1196) *
*************************************************
*/
export enum DerivativePriceQuoteMethod {
  StandardMoneyPerUnitOfAPhysical = 'STD',
  Index = 'INX',
  InterestRateIndex = 'INT',
  PercentOfPar = 'PCTPAR'
}

/*
*************************************************
* Refer to definition of ValuationMethod(1197). *
*************************************************
*/
export enum DerivativeValuationMethod {
  PremiumStyle = 'EQTY',
  FuturesStyleMarkToMarket = 'FUT',
  FuturesStyleWithAnAttachedCashAdjustment = 'FUTDA',
  CdsStyleCollateralizationOfMarketToMarketAndCoupon = 'CDS',
  CdsInDeliveryUseRecoveryRateToCalculateObligation = 'CDSD'
}

/*
************************************************************
* Indicates whether instruments are pre-listed only or can *
* also be defined via user request                         *
************************************************************
*/
export enum DerivativeListMethod {
  PreListedOnly = 0,
  UserRequested = 1
}

/*
****************************************************
* Indicates whether an Option is for a put or call *
****************************************************
*/
export enum DerivativePutOrCall {
  Put = 0,
  Call = 1
}

/*
**********************************************************
* If provided, then Instrument occurrence has explicitly *
* changed                                                *
**********************************************************
*/
export enum ListUpdateAction {
  Add = 'A',
  Delete = 'D',
  Modify = 'M',
  Snapshot = 'S'
}

/*
********************************************************
* Specifies the action taken for the specified trading *
* sessions.                                            *
********************************************************
*/
export enum TradSesUpdateAction {
  Add = 'A',
  Delete = 'D',
  Modify = 'M'
}

/*
***************************************************
* Type of Application Message Request being made. *
***************************************************
*/
export enum ApplReqType {
  RetransmissionOfApplicationMessagesForTheSpecifiedApplications = 0,
  SubscriptionToTheSpecifiedApplications = 1,
  RequestForTheLastApplLastSeqNumPublishedForTheSpecifiedApplications = 2,
  RequestValidSetOfApplications = 3,
  UnsubscribeToTheSpecifiedApplications = 4,
  CancelRetransmission = 5,
  CancelRetransmissionAndUnsubscribeToTheSpecifiedApplications = 6
}

/*
************************************************************
* Used to indicate the type of acknowledgement being sent. *
************************************************************
*/
export enum ApplResponseType {
  RequestSuccessfullyProcessed = 0,
  ApplicationDoesNotExist = 1,
  MessagesNotAvailable = 2
}

/*
**********************************************************
* Used to return an error code or text associated with a *
* response to an Application Request.                    *
**********************************************************
*/
export enum ApplResponseError {
  ApplicationDoesNotExist = 0,
  MessagesRequestedAreNotAvailable = 1,
  UserNotAuthorizedForApplication = 2
}

/*
**********************************************
* Put or call indicator of the leg security. *
* See PutOrCall(201).                        *
**********************************************
*/
export enum LegPutOrCall {
  Put = 0,
  Call = 1
}

/*
****************************************************************
* Identifies an event related to a TradSesStatus(340). An      *
* event occurs and is gone, it is not a state that applies for *
* a period of time.                                            *
****************************************************************
*/
export enum TradSesEvent {
  TradingResumesAfterHalt = 0,
  ChangeOfTradingSession = 1,
  ChangeOfTradingSubsession = 2,
  ChangeOfTradingStatus = 3
}

/*
******************************************
* Specifies the type of action requested *
******************************************
*/
export enum MassActionType {
  SuspendOrders = 1,
  ReleaseOrdersFromSuspension = 2,
  CancelOrders = 3
}

/*
*************************************************
* Specifies scope of Order Mass Action Request. *
*************************************************
*/
export enum MassActionScope {
  AllOrdersForASecurity = 1,
  AllOrdersForAnUnderlyingSecurity = 2,
  AllOrdersForAProduct = 3,
  AllOrdersForACfiCode = 4,
  AllOrdersForASecurityType = 5,
  AllOrdersForATradingSession = 6,
  AllOrders = 7,
  AllOrdersForAMarket = 8,
  AllOrdersForAMarketSegmentOrMultipleSegments = 9,
  AllOrdersForASecurityGroup = 10,
  CancelForSecurityIssuer = 11,
  CancelForIssuerOfUnderlyingSecurity = 12
}

/*
*************************************************************
* Specifies the action taken by counterparty order handling *
* system as a result of the action type indicated in        *
* MassActionType of the Order Mass Action Request.          *
*************************************************************
*/
export enum MassActionResponse {
  RejectedSeeMassActionRejectReason1376 = 0,
  Accepted = 1,
  Completed = 2
}

/*
*************************************************
* Reason Order Mass Action Request was rejected *
*************************************************
*/
export enum MassActionRejectReason {
  MassActionNotSupported = 0,
  InvalidOrUnknownSecurity = 1,
  InvalidOrUnknownUnderlyingSecurity = 2,
  InvalidOrUnknownProduct = 3,
  InvalidOrUnknownCfiCode = 4,
  InvalidOrUnknownSecurityType = 5,
  InvalidOrUnknownTradingSession = 6,
  InvalidOrUnknownMarket = 7,
  InvalidOrUnknownMarketSegment = 8,
  InvalidOrUnknownSecurityGroup = 9,
  InvalidOrUnknownSecurityIssuer = 10,
  InvalidOrUnknownIssuerOfUnderlyingSecurity = 11,
  Other = 99
}

/*
*************************************************************
* Specifies the type of multileg order. Defines whether the *
* security is pre-defined or user-defined. Note that        *
* MultilegModel(1377)=2(User-defined, Non-Securitized,      *
* Multileg) does not apply for Securities.                  *
*************************************************************
*/
export enum MultilegModel {
  PredefinedMultilegSecurity = 0,
  UserDefinedMultilegSecurity = 1,
  UserDefinedNonSecuritizedMultileg = 2
}

/*
***********************************************************
* Code to represent how the multileg price is to be       *
* interpreted when applied to the legs.                   *
* (See Volume : "Glossary" for further value definitions) *
***********************************************************
*/
export enum MultilegPriceMethod {
  NetPrice = 0,
  ReversedNetPrice = 1,
  YieldDifference = 2,
  Individual = 3,
  ContractWeightedAveragePrice = 4,
  MultipliedPrice = 5
}

/*
*******************************
* Refer to ExecInst(18)       *
* Same values as ExecInst(18) *
*******************************
*/
export enum LegExecInst {
  StayOnOfferSide = '0',
  NotHeld = '1',
  Work = '2',
  GoAlong = '3',
  OverTheDay = '4',
  Held = '5',
  ParticipateDontInitiate = '6',
  StrictScale = '7',
  TryToScale = '8',
  StayOnBidSide = '9',
  NoCross = 'A',
  OkToCross = 'B',
  CallFirst = 'C',
  PercentOfVolume = 'D',
  DoNotIncreaseDni = 'E',
  DoNotReduceDnr = 'F',
  AllOrNoneAon = 'G',
  ReinstateOnSystemFailure = 'H',
  InstitutionsOnly = 'I',
  ReinstateOnTradingHalt = 'J',
  CancelOnTradingHalt = 'K',
  LastPegLastSale = 'L',
  MidPricePegMidpriceOfInsideQuote = 'M',
  NonNegotiable = 'N',
  OpeningPeg = 'O',
  MarketPeg = 'P',
  CancelOnSystemFailure = 'Q',
  PrimaryPeg = 'R',
  Suspend = 'S',
  FixedPegToLocalBestBidOrOfferAtTimeOfOrder = 'T',
  CustomerDisplayInstruction = 'U',
  NettingForForex = 'V',
  PegToVwap = 'W',
  TradeAlong = 'X',
  TryToStop = 'Y',
  CancelIfNotBest = 'Z',
  TrailingStopPeg = 'a',
  StrictLimit = 'b',
  IgnorePriceValidityChecks = 'c',
  PegToLimitPrice = 'd',
  WorkToTargetStrategy = 'e',
  IntermarketSweep = 'f',
  ExternalRoutingAllowed = 'g',
  ExternalRoutingNotAllowed = 'h',
  ImbalanceOnly = 'i',
  SingleExecutionRequestedForBlockTrade = 'j',
  BestExecution = 'k',
  SuspendOnSystemFailure = 'l',
  SuspendOnTradingHalt = 'm',
  ReinstateOnConnectionLoss = 'n',
  CancelOnConnectionLoss = 'o',
  SuspendOnConnectionLoss = 'p',
  Release = 'q',
  ExecuteAsDeltaNeutralUsingVolatilityProvided = 'r',
  ExecuteAsDurationNeutral = 's',
  ExecuteAsFxNeutral = 't',
  MinimumGuaranteedFillEligible = 'u',
  BypassNonDisplayedLiquidity = 'v',
  Lock = 'w',
  IgnoreNotionalValueChecks = 'x',
  TradeAtReferencePrice = 'y'
}

/*
************************************
* Defines the type of contingency. *
************************************
*/
export enum ContingencyType {
  OneCancelsTheOtherOco = 1,
  OneTriggersTheOtherOto = 2,
  OneUpdatesTheOtherOuoAbsoluteQuantityReduction = 3,
  OneUpdatesTheOtherOuoProportionalQuantityReduction = 4,
  BidAndOffer = 5,
  BidAndOfferOco = 6
}

/*
****************************************************************
* Identifies the reason for rejection of a New Order List      *
* message. Note that OrdRejReason(103) is used if the          *
* rejection is based on properties of an individual order part *
* of the List.                                                 *
****************************************************************
*/
export enum ListRejectReason {
  BrokerExchangeOption = 0,
  ExchangeClosed = 2,
  TooLateToEnter = 4,
  UnknownOrder = 5,
  DuplicateOrderEGDupeClOrdId = 6,
  UnsupportedOrderCharacteristic = 11,
  Other = 99
}

/*
**********************************************************
* Identifies the type of party for trade reporting. Same *
* values as PartyRole(452).                              *
**********************************************************
*/
export enum TrdRepPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
**********************************************************
* Indicates if a trade should be reported via a market   *
* reporting service. The indicator governs all reporting *
* services of the recipient. Replaces                    *
* PublishTrdIndicator(852).                              *
**********************************************************
*/
export enum TradePublishIndicator {
  DoNotPublishTrade = 0,
  PublishTrade = 1,
  DeferredPublication = 2
}

/*
***************************************************************
* Specifies the action taken for the specified MarketID(1301) *
* + MarketSegmentID(1300).                                    *
***************************************************************
*/
export enum MarketUpdateAction {
  Add = 'A',
  Delete = 'D',
  Modify = 'M'
}

/*
***************************
* Status of a FIX session *
***************************
*/
export enum SessionStatus {
  SessionActive = 0,
  SessionPasswordChanged = 1,
  SessionPasswordDueToExpire = 2,
  NewSessionPasswordDoesNotComplyWithPolicy = 3,
  SessionLogoutComplete = 4,
  InvalidUsernameOrPassword = 5,
  AccountLocked = 6,
  LogonsAreNotAllowedAtThisTime = 7,
  PasswordExpired = 8,
  ReceivedMsgSeqNum34IsTooLow = 9,
  ReceivedNextExpectedMsgSeqNum789IsTooHigh = 10
}

/*
**********************************************
* Refer to definition of PartySubIDType(803) *
**********************************************
*/
export enum Nested4PartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*********************************************
* Refer to definition of PartyIDSource(447) *
*********************************************
*/
export enum Nested4PartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
*****************************************
* Refer to definition of PartyRole(452) *
*****************************************
*/
export enum Nested4PartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
**********************************************
* Type of exercise of a derivatives security *
**********************************************
*/
export enum UnderlyingExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
**********************************************
* Type of exercise of a derivatives security *
**********************************************
*/
export enum LegExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
****************************************************
* Refer to definition for PriceUnitOfMeasure(1191) *
****************************************************
*/
export enum LegPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
****************************************************
* Refer to definition for PriceUnitOfMeasure(1191) *
****************************************************
*/
export enum UnderlyingPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
******************
* Type of report *
******************
*/
export enum ApplReportType {
  ResetApplSeqNumToNewValueSpecifiedInApplNewSeqNum1399 = 0,
  ReportsThatTheLastMessageHasBeenSentForTheApplIDsReferToRefApplLastSeqNum1357ForTheApplicationSequenceNumberOfTheLastMessage = 1,
  HeartbeatMessageIndicatingThatApplicationIdentifiedByRefApplId1355IsStillAliveReferToRefApplLastSeqNum1357ForTheApplicationSequenceNumberOfThePreviousMessage = 2,
  ApplicationMessageReSendCompleted = 3
}

/*
********************************************************
* Time unit in which the OrderDelay(1428) is expressed *
********************************************************
*/
export enum OrderDelayUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
***********************************************************
* Identifies the type of venue where a trade was executed *
***********************************************************
*/
export enum VenueType {
  ElectronicExchange = 'E',
  Pit = 'P',
  ExPit = 'X',
  Clearinghouse = 'C',
  RegisteredMarket = 'R',
  OffMarket = 'O',
  CentralLimitOrderBook = 'B',
  QuoteDrivenMarket = 'Q',
  DarkOrderBook = 'D',
  AuctionDrivenMarket = 'A',
  QuoteNegotiation = 'N',
  VoiceNeotiation = 'V',
  HybridMarket = 'H'
}

/*
****************************************
* The reason for updating the RefOrdID *
****************************************
*/
export enum RefOrdIDReason {
  GtcFromPreviousDay = 0,
  PartialFillRemaining = 1,
  OrderChanged = 2
}

/*
***************************************************************
* The customer capacity for this trade at the time of the     *
* order/execution.                                            *
* Primarily used by futures exchanges to indicate the CTICode *
* (customer type indicator) as required by the US CFTC        *
* (Commodity Futures Trading Commission).                     *
***************************************************************
*/
export enum OrigCustOrderCapacity {
  MemberTradingForTheirOwnAccount = 1,
  ClearingFirmTradingForItsProprietaryAccount = 2,
  MemberTradingForAnotherMember = 3,
  AllOther = 4
}

/*
******************************
* Type of pricing model used *
******************************
*/
export enum ModelType {
  UtilityProvidedStandardModel = 0,
  ProprietaryUserSuppliedModel = 1
}

/*
****************************************************************
* Indicates the type of multiplier being applied to the        *
* contract. Can be optionally used to further define what unit *
* ContractMultiplier(tag 231) is expressed in.                 *
****************************************************************
*/
export enum ContractMultiplierUnit {
  Shares = 0,
  Hours = 1,
  Days = 2
}

/*
****************************************************************
* "Indicates the type of multiplier being applied to the       *
* contract. Can be optionally used to further define what unit *
* LegContractMultiplier(tag 614) is expressed in.              *
****************************************************************
*/
export enum LegContractMultiplierUnit {
  Shares = 0,
  Hours = 1,
  Days = 2
}

/*
*********************************************************
* Indicates the type of multiplier being applied to the *
* contract.                                             *
*********************************************************
*/
export enum UnderlyingContractMultiplierUnit {
  Shares = 0,
  Hours = 1,
  Days = 2
}

/*
****************************************************************
* Indicates the type of multiplier being applied to the        *
* contract. Can be optionally used to further define what unit *
* DerivativeContractMultiplier(tag 1266)is expressed in.       *
****************************************************************
*/
export enum DerivativeContractMultiplierUnit {
  Shares = 0,
  Hours = 1,
  Days = 2
}

/*
***************************************************************
* The industry standard flow schedule by which electricity or *
* natural gas is traded. Schedules exist by regions and       *
* on-peak and off-peak status, such as "Western Peak".        *
***************************************************************
*/
export enum FlowScheduleType {
  NercEasternOffPeak = 0,
  NercWesternOffPeak = 1,
  NercCalendarAllDaysInMonth = 2,
  NercEasternPeak = 3,
  NercWesternPeak = 4
}

/*
***************************************************************
* The industry standard flow schedule by which electricity or *
* natural gas is traded. Schedules exist by regions and       *
* on-peak and off-peak status, such as "Western Peak".        *
***************************************************************
*/
export enum LegFlowScheduleType {
  NercEasternOffPeak = 0,
  NercWesternOffPeak = 1,
  NercCalendarAllDaysInMonth = 2,
  NercEasternPeak = 3,
  NercWesternPeak = 4
}

/*
***************************************************************
* The industry standard flow schedule by which electricity or *
* natural gas is traded. Schedules exist by regions and       *
* on-peak and off-peak status, such as "Western Peak".        *
***************************************************************
*/
export enum UnderlyingFlowScheduleType {
  NercEasternOffPeak = 0,
  NercWesternOffPeak = 1,
  NercCalendarAllDaysInMonth = 2,
  NercEasternPeak = 3,
  NercWesternPeak = 4
}

/*
***************************************************************
* The industry standard flow schedule by which electricity or *
* natural gas is traded. Schedules exist by regions and       *
* on-peak and off-peak status, such as "Western Peak".        *
***************************************************************
*/
export enum DerivativeFlowScheduleType {
  NercEasternOffPeak = 0,
  NercWesternOffPeak = 1,
  NercCalendarAllDaysInMonth = 2,
  NercEasternPeak = 3,
  NercWesternPeak = 4
}

/*
**************************************************************
* Indicator to identify whether this fill was a result of a  *
* liquidity provider providing or liquidity taker taking the *
* liquidity. Applicable only for OrdStatus of Partial or     *
* Filled                                                     *
**************************************************************
*/
export enum FillLiquidityInd {
  AddedLiquidity = 1,
  RemovedLiquidity = 2,
  LiquidityRoutedOut = 3,
  Auction = 4,
  TriggeredStopOrder = 5,
  TriggeredContingencyOrder = 6,
  TriggeredMarketOrder = 7
}

/*
**************************************************************
* Indicator to identify whether this fill was a result of a  *
* liquidity provider providing or liquidity taker taking the *
* liquidity. Applicable only for OrdStatus of Partial or     *
* Filled.                                                    *
**************************************************************
*/
export enum SideLiquidityInd {
  AddedLiquidity = 1,
  RemovedLiquidity = 2,
  LiquidityRoutedOut = 3,
  Auction = 4,
  TriggeredStopOrder = 5,
  TriggeredContingencyOrder = 6,
  TriggeredMarketOrder = 7
}

/*
***********************************************************
* Identifies the source of rate information.              *
* For FX, the reference source to be used for the FX spot *
* rate.                                                   *
***********************************************************
*/
export enum RateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
***************************************************************
* Indicates whether the rate source specified is a primary or *
* secondary source.                                           *
***************************************************************
*/
export enum RateSourceType {
  Primary = 0,
  Secondary = 1
}

/*
***************************************************************
* A category of CDS credit event in which the underlying bond *
* experiences a restructuring.                                *
* Used to define a CDS instrument.                            *
***************************************************************
*/
export enum RestructuringType {
  FullRestructuring = 'FR',
  ModifiedRestructuring = 'MR',
  ModifiedModRestructuring = 'MM',
  NoRestructuringSpecified = 'XR'
}

/*
****************************************************************
* Specifies which issue (underlying bond) will receive payment *
* priority in the event of a default.                          *
* Used to define a CDS instrument.                             *
****************************************************************
*/
export enum Seniority {
  SeniorSecured = 'SD',
  Senior = 'SR',
  Subordinated = 'SB'
}

/*
*******************************
* See RestructuringType(1449) *
*******************************
*/
export enum UnderlyingRestructuringType {
  FullRestructuring = 'FR',
  ModifiedRestructuring = 'MR',
  ModifiedModRestructuring = 'MM',
  NoRestructuringSpecified = 'XR'
}

/*
***********************
* See Seniority(1450) *
***********************
*/
export enum UnderlyingSeniority {
  SeniorSecured = 'SD',
  Senior = 'SR',
  Subordinated = 'SB'
}

/*
***************************************************************
* PartyIDSource value within an target party repeating group. *
* Same values as PartyIDSource (447)                          *
***************************************************************
*/
export enum TargetPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
***********************************************************
* PartyRole value within an target party repeating group. *
* Same values as PartyRole (452)                          *
***********************************************************
*/
export enum TargetPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
**************************************
* Specifies a type of Security List. *
**************************************
*/
export enum SecurityListType {
  IndustryClassification = 1,
  TradingList = 2,
  MarketMarketSegmentList = 3,
  NewspaperList = 4
}

/*
****************************************************************
* Specifies a specific source for a SecurityListType. Relevant *
* when a certain type can be provided from various sources.    *
****************************************************************
*/
export enum SecurityListTypeSource {
  IcbIndustryClassificationBenchmarkPublishedByDowJonesAndFtseWwwIcbenchmarkCom = 1,
  NaicsNorthAmericanIndustryClassificationSystemReplacedSicStandardIndustryClassificationWwwCensusGovNaicsOrWwwNaicsCom = 2,
  GicsGlobalIndustryClassificationStandardPublishedByStandardsPoor = 3
}

/*
****************************
* Category of news mesage. *
****************************
*/
export enum NewsCategory {
  CompanyNews = 0,
  MarketplaceNews = 1,
  FinancialMarketNews = 2,
  TechnicalNews = 3,
  OtherNews = 99
}

/*
*********************************************************
* Type of reference to another News(35=B) message item. *
*********************************************************
*/
export enum NewsRefType {
  Replacement = 0,
  OtherLanguage = 1,
  Complimentary = 2,
  Withdrawal = 3
}

/*
****************************************************************
* Specifies how the strike price is determined at the point of *
* option exercise. The strike may be fixed throughout the life *
* of the option, set at expiration to the value of the         *
* underlying, set to the average value of the underlying , or  *
* set to the optimal value of the underlying.                  *
****************************************************************
*/
export enum StrikePriceDeterminationMethod {
  FixedStrikeDefaultIfNotSpecified = 1,
  StrikeSetAtExpirationToUnderlyingOrOtherValueLookbackFloating = 2,
  StrikeSetToAverageOfUnderlyingSettlementPriceAcrossTheLifeOfTheOption = 3,
  StrikeSetToOptimalValue = 4
}

/*
**************************************************************
* Specifies the boundary condition to be used for the strike *
* price relative to the underlying price at the point of     *
* option exercise.                                           *
**************************************************************
*/
export enum StrikePriceBoundaryMethod {
  LessThanUnderlyingPriceIsInTheMoneyItm = 1,
  LessThanOrEqualToTheUnderlyingPriceIsInTheMoneyItm = 2,
  EqualToTheUnderlyingPriceIsInTheMoneyItm = 3,
  GreaterThanOrEqualToUnderlyingPriceIsInTheMoneyItm = 4,
  GreaterThanUnderlyingIsInTheMoneyItm = 5
}

/*
****************************************************************
* Specifies how the underlying price is determined at the      *
* point of option exercise. The underlying price may be set to *
* the current settlement price, set to a special reference,    *
* set to the optimal value of the underlying during the        *
* defined period ("Look-back") or set to the average value of  *
* the underlying during the defined period ("Asian option").   *
****************************************************************
*/
export enum UnderlyingPriceDeterminationMethod {
  Regular = 1,
  SpecialReference = 2,
  OptimalValueLookback = 3,
  AverageValueAsianOption = 4
}

/*
*********************************************************
* Indicates the type of payout that will result from an *
* in-the-money option.                                  *
*********************************************************
*/
export enum OptPayoutType {
  Vanilla = 1,
  Capped = 2,
  Binary = 3
}

/*
*****************************************
* Identifies the type of complex event. *
*****************************************
*/
export enum ComplexEventType {
  Capped = 1,
  Trigger = 2,
  KnockInUp = 3,
  KnockInDown = 4,
  KnockOutUp = 5,
  KnockOutDown = 6,
  Underlying = 7,
  ResetBarrier = 8,
  RollingBarrier = 9,
  OneTouch = 10,
  NoTouch = 11,
  DoubleOneTouch = 12,
  DoubleNoTouch = 13,
  ForeignExchangeComposite = 14,
  ForeignExchangeQuanto = 15,
  ForeignExchangeCrossCurrency = 16,
  StrikeSpread = 17,
  CalendarSpread = 18,
  PriceObservationAsianOrLookback = 19,
  PassThrough = 20,
  StrikeSchedule = 21,
  EquityValuation = 22,
  DividendValuation = 23
}

/*
*************************************************************
* Specifies the boundary condition to be used for the event *
* price relative to the underlying price at the point the   *
* complex event outcome takes effect as determined by the   *
* ComplexEventPriceTimeType.                                *
*************************************************************
*/
export enum ComplexEventPriceBoundaryMethod {
  LessThanComplexEventPrice1486 = 1,
  LessThanOrEqualToComplexEventPrice1486 = 2,
  EqualToComplexEventPrice1486 = 3,
  GreaterThanOrEqualToComplexEventPrice1486 = 4,
  GreaterThanComplexEventPrice1486 = 5
}

/*
***************************************************************
* Specifies when the complex event outcome takes effect. The  *
* outcome of a complex event is a payout or barrier action as *
* specified by the ComplexEventType(1484).                    *
***************************************************************
*/
export enum ComplexEventPriceTimeType {
  Expiration = 1,
  ImmediateAtAnyTime = 2,
  SpecifiedDateTime = 3,
  Close = 4,
  Open = 5,
  OfficialSettlementPrice = 6,
  DerivativesClose = 7,
  AsSpecifiedInMasterConfirmation = 8
}

/*
***************************************************************
* Specifies the condition between complex events when more    *
* than one event is specified.                                *
* Multiple barrier events would use an "or" condition since   *
* only one can be effective at a given time. A set of digital *
* range events would use an "and" condition since both        *
* conditions must be in effect for a payout to result.        *
***************************************************************
*/
export enum ComplexEventCondition {
  And = 1,
  Or = 2
}

/*
**************************************
* Type of stream assignment request. *
**************************************
*/
export enum StreamAsgnReqType {
  StreamAssignmentForNewCustomerS = 1,
  StreamAssignmentForExistingCustomerS = 2
}

/*
*****************************************************
* Reason code for stream assignment request reject. *
*****************************************************
*/
export enum StreamAsgnRejReason {
  UnknownClient = 0,
  ExceedsMaximumSize = 1,
  UnknownOrInvalidCurrencyPair = 2,
  NoAvailableStream = 3,
  Other = 99
}

/*
****************************
* Type of acknowledgement. *
****************************
*/
export enum StreamAsgnAckType {
  AssignmentAccepted = 0,
  AssignmentRejected = 1
}

/*
******************************************************
* Identifies the type or role of party that has been *
* requested.                                         *
******************************************************
*/
export enum RequestedPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
****************************************************************
* Result of a request as identified by the appropriate request *
* ID field                                                     *
****************************************************************
*/
export enum RequestResult {
  ValidRequest = 0,
  InvalidOrUnsupportedRequest = 1,
  NoDataFoundThatMatchSelectionCriteria = 2,
  NotAuthorizedToRetrieveData = 3,
  DataTemporarilyUnavailable = 4,
  RequestForDataNotSupported = 5,
  OtherFurtherInformationInRejectText1328Field = 99
}

/*
*******************************************************
* Used to specify the type of the party relationship. *
*******************************************************
*/
export enum PartyRelationship {
  IsAlso = 0,
  ClearsFor = 1,
  ClearsThrough = 2,
  TradesFor = 3,
  TradesThrough = 4,
  Sponsors = 5,
  SponsoredThrough = 6,
  ProvidesGuaranteeFor = 7,
  IsGuaranteedBy = 8,
  MemberOf = 9,
  HasMembers = 10,
  ProvidesMarketplaceFor = 11,
  ParticipantOfMarketplace = 12,
  CarriesPositionsFor = 13,
  PostsTradesTo = 14,
  EntersTradesFor = 15,
  EntersTradesThrough = 16,
  ProvidesQuotesTo = 17,
  RequestsQuotesFrom = 18,
  InvestsFor = 19,
  InvestsThrough = 20,
  BrokersTradesFor = 21,
  BrokersTradesThrough = 22,
  ProvidesTradingServicesFor = 23,
  UsesTradingServicesOf = 24,
  ApprovesOf = 25,
  ApprovedBy = 26,
  ParentFirmFor = 27,
  SubsidiaryOf = 28,
  RegulatoryOwnerOf = 29,
  OwnedByRegulatory = 30,
  Controls = 31,
  IsControlledBy = 32,
  LegalTitledOwnerOf = 33,
  OwnedByLegalTitle = 34,
  BeneficialOwnerOf = 35,
  OwnedByBeneficial = 36,
  SettlesFor = 37,
  SettlesThrough = 38
}

/*
**************************************************************
* Identifies the source of the PartyDetailAltID(1517) value. *
**************************************************************
*/
export enum PartyDetailAltIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
********************************************
* Type of PartyDetailAltSubID(1520) value. *
********************************************
*/
export enum PartyDetailAltSubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
****************************************************************
* Used to indicate the status of the trade submission (not the *
* trade report)                                                *
****************************************************************
*/
export enum TrdAckStatus {
  Accepted = 0,
  Rejected = 1,
  Received = 2
}

/*
*************************************************************
* Used to specify the type of risk limit amount or position *
* limit quantity or margin requirement amounts.             *
*************************************************************
*/
export enum RiskLimitType {
  CreditLimit = 0,
  GrossLimit = 1,
  NetLimit = 2,
  Exposure = 3,
  LongLimit = 4,
  ShortLimit = 5,
  CashMargin = 6,
  AdditionalMargin = 7,
  TotalMargin = 8,
  LimitConsumed = 9,
  ClipSizeNotionalLimitPerTimePeriod = 10,
  MaximumNotionalOrderSize = 11,
  Dv01Pv01Limit = 12,
  Cs01Limit = 13,
  VolumeLimitPerTimePeriod = 14,
  VolumeFilledAsPercentOfOrderedVolumePerTimePeriod = 15,
  NotionalFilledAsPercentOfNotionalPerTimePeriod = 16,
  TransactionExecutionLimitPerTimePeriod = 17
}

/*
******************************************************
* Operator to perform on the instrument(s) specified *
******************************************************
*/
export enum InstrumentScopeOperator {
  Include = 1,
  Exclude = 2
}

/*
********************************************************
* Used to limit instrument scope to specified security *
* identifier source.                                   *
* See SecurityIDSource(22) field for description.      *
********************************************************
*/
export enum InstrumentScopeSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
**********************************************************
* Used to limit instrument scope to specified instrument *
* product category.                                      *
* See Product (460) field for description.               *
**********************************************************
*/
export enum InstrumentScopeProduct {
  Agency = 1,
  Commodity = 2,
  Corporate = 3,
  Currency = 4,
  Equity = 5,
  Government = 6,
  Index = 7,
  Loan = 8,
  Moneymarket = 9,
  Mortgage = 10,
  Municipal = 11,
  Other = 12,
  Financing = 13
}

/*
**************************************************************
* Used to limit instrument scope to specified security type. *
* See SecurityType(167) field for description).              *
**************************************************************
*/
export enum InstrumentScopeSecurityType {
  EuroSupranationalCoupons = 'EUSUPRA',
  CorporateBond = 'CORP',
  ForeignExchangeContract = 'FOR',
  CommonStock = 'CS',
  Repurchase = 'REPO',
  BradyBond = 'BRADY',
  TermLoan = 'TERM',
  BankersAcceptance = 'BA',
  AssetBackedSecurities = 'ABS',
  OtherAnticipationNotesBanGanEtc = 'AN',
  MutualFund = 'MF',
  FederalAgencyCoupon = 'FAC',
  CorporatePrivatePlacement = 'CPP',
  PreferredStock = 'PS',
  Forward = 'FORWARD',
  CanadianTreasuryNotes = 'CAN',
  RevolverLoan = 'RVLV',
  BankDepositoryNote = 'BDN',
  CanadianMortgageBonds = 'CMB',
  CertificateOfObligation = 'COFO',
  MultilegInstrument = 'MLEG',
  NonDeliverableForward = 'FXNDF',
  Cap = 'CAP',
  FederalAgencyDiscountNote = 'FADN',
  ConvertibleBond = 'CB',
  CreditDefaultSwap = 'CDS',
  BuySellback = 'BUYSELL',
  CanadianTreasuryBills = 'CTB',
  RevolverTermLoan = 'RVLVTRM',
  BankNotes = 'BN',
  CorpMortgageBackedSecurities = 'CMBS',
  CertificateOfParticipation = 'COFP',
  NoSecurityType = 'NONE',
  FxSpot = 'FXSPOT',
  UsTreasuryNoteDeprecatedValueUseTnote = 'UST',
  PrivateExportFunding = 'PEF',
  DualCurrency = 'DUAL',
  SecuritiesLoan = 'SECLOAN',
  EuroSovereigns = 'EUSOV',
  BridgeLoan = 'BRIDGE',
  BillOfExchanges = 'BOX',
  CollateralizedMortgageObligation = 'CMO',
  GeneralObligationBonds = 'GO',
  FxForward = 'FXFWD',
  Collar = 'CLLR',
  UsTreasuryBillDeprecatedValueUseTbill = 'USTB',
  UsdSupranationalCoupons = 'SUPRA',
  EuroCorporateBond = 'EUCORP',
  SecuritiesPledge = 'SECPLEDGE',
  CanadianProvincialBonds = 'PROV',
  LetterOfCredit = 'LOFC',
  CanadianMoneyMarkets = 'CAMM',
  IoetteMortgage = 'IET',
  MandatoryTender = 'MT',
  FxSwap = 'FXSWAP',
  CommoditySwap = 'CMDTYSWAP',
  EuroCorporateFloatingRateNotes = 'EUFRN',
  TreasuryBillNonUs = 'TB',
  SwingLineFacility = 'SWING',
  CertificateOfDeposit = 'CD',
  MortgageBackedSecurities = 'MBS',
  RevenueAnticipationNote = 'RAN',
  WildcardEntryForUseOnSecurityDefinitionRequest = '?',
  DeliveryVersusPledge = 'DVPLDG',
  Exotic = 'EXOTIC',
  UsCorporateFloatingRateNotes = 'FRN',
  OptionsOnCombo = 'OOC',
  UsTreasuryBond = 'TBOND',
  DebtorInPossession = 'DINP',
  CallLoans = 'CL',
  MortgageInterestOnly = 'MIO',
  RevenueBonds = 'REV',
  Cash = 'CASH',
  Floor = 'FLR',
  CollateralBasket = 'COLLBSKT',
  IndexedLinked = 'XLINKD',
  InterestStripFromAnyBondOrNote = 'TINT',
  Defaulted = 'DEFLTED',
  CommercialPaper = 'CP',
  MortgagePrincipalOnly = 'MPO',
  SpecialAssessment = 'SPCLA',
  ForwardRateAgreement = 'FRA',
  StructuredNotes = 'STRUCT',
  Future = 'FUT',
  UsTreasuryBill = 'TBILL',
  TreasuryInflationProtectedSecurities = 'TIPS',
  Withdrawn = 'WITHDRN',
  DepositNotes = 'DN',
  MortgagePrivatePlacement = 'MPP',
  SpecialObligation = 'SPCLO',
  YankeeCorporateBond = 'YANK',
  PrincipalStripOfACallableBondOrNote = 'TCAL',
  Replaced = 'REPLACD',
  EuroCertificateOfDeposit = 'EUCD',
  MiscellaneousPassThrough = 'MPT',
  SpecialTax = 'SPCLT',
  DerivativeForward = 'FWD',
  InterestRateSwap = 'IRS',
  PrincipalStripFromANonCallableBondOrNote = 'TPRN',
  Matured = 'MATURED',
  EuroCommercialPaper = 'EUCP',
  Pfandbriefe = 'PFAND',
  TaxAnticipationNote = 'TAN',
  TotalReturnSwap = 'TRS',
  UsTreasuryNote = 'TNOTE',
  AmendedRestated = 'AMENDED',
  LiquidityNote = 'LQN',
  ToBeAnnounced = 'TBA',
  TaxAllocation = 'TAXA',
  LoanLease = 'LOANLEASE',
  Retired = 'RETIRED',
  MediumTermNotes = 'MTN',
  TaxExemptCommercialPaper = 'TECP',
  OptionsOnFutures = 'OOF',
  Overnight = 'ONITE',
  TaxableMunicipalCp = 'TMCP',
  OptionsOnPhysicalUseNotRecommended = 'OOP',
  PromissoryNote = 'PN',
  ShortTermLoanNote = 'STN',
  TaxRevenueAnticipationNote = 'TRAN',
  Option = 'OPT',
  PlazosFijos = 'PZFJ',
  VariableRateDemandNote = 'VRDN',
  SecuredLiquidityNote = 'SLQN',
  Warrant = 'WAR',
  SpotForward = 'SPOTFWD',
  TimeDeposit = 'TD',
  SwapOption = 'SWAPTION',
  Transmission = 'XMISSION',
  TermLiquidityNote = 'TLQN',
  GeneralTypeForAContractBasedOnAnEstablishedIndex = 'INDEX',
  ExtendedCommNote = 'XCN',
  BondBasket = 'BDBSKT',
  YankeeCertificateOfDeposit = 'YCD',
  ContractForDifference = 'CFD',
  CorrelationSwap = 'CRLTNSWAP',
  DividendSwap = 'DVDNDSWAP',
  EquityBasket = 'EQBSKT',
  EquityForward = 'EQFWD',
  ReturnSwap = 'RTRNSWAP',
  VarianceSwap = 'VARSWAP'
}

/*
****************************************************
* Used to limit instrument scope to puts or calls. *
* See PutOrCall(201) field for description.        *
****************************************************
*/
export enum InstrumentScopePutOrCall {
  Put = 0,
  Call = 1
}

/*
****************************************************************
* Used to limit instrument scope to specified settlement type. *
* See SettlType(63) field for description.                     *
****************************************************************
*/
export enum InstrumentScopeSettlType {
  RegularFxSpotSettlementT1OrT2DependingOnCurrency = '0',
  CashTodT0 = '1',
  NextDayTomT1 = '2',
  T2 = '3',
  T3 = '4',
  T4 = '5',
  Future = '6',
  WhenAndIfIssued = '7',
  SellersOption = '8',
  T5 = '9',
  BrokenDate = 'B',
  FxSpotNextSettlementSpot1AkaNextDay = 'C'
}

/*
************************************************************
* Identifies the source of the RelatedPartyDetailID(1563). *
************************************************************
*/
export enum RelatedPartyDetailIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
*****************************************
* Identifies the type or role of the    *
* RelatedPartyDetailID(1563) specified. *
*****************************************
*/
export enum RelatedPartyDetailRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
************************************************
* Type of RelatedPartyDetailSubID(1567) value. *
************************************************
*/
export enum RelatedPartyDetailSubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
**************************************************************
* Identifies the source of the RelatedPartyDetailAltID(1570) *
* value.                                                     *
**************************************************************
*/
export enum RelatedPartyDetailAltIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
***************************************************
* Type of RelatedPartyDetailAltSubID(1573) value. *
***************************************************
*/
export enum RelatedPartyDetailAltSubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*********************************************
* The subclassification or subtype of swap. *
*********************************************
*/
export enum SwapSubClass {
  Amortizing = 'AMTZ',
  Compounding = 'COMP'
}

/*
**************************************************************
* Allows classification of instruments according to a set of *
* high level reasons. Classification reasons describe the    *
* classes in which the instrument participates.              *
**************************************************************
*/
export enum SecurityClassificationReason {
  Fee = 0,
  CreditControls = 1,
  Margin = 2,
  EntitlementEligibility = 3,
  MarketData = 4,
  AccountSelection = 5,
  DeliveryProcess = 6,
  Sector = 7
}

/*
***************************************************************
* Specifies the reason for an amount type when reported on a  *
* position. Useful when multiple instances of the same amount *
* type are reported.                                          *
***************************************************************
*/
export enum PosAmtReason {
  OptionsSettlement = 0,
  PendingErosionAdjustment = 1,
  FinalErosionAdjustment = 2,
  TearUpCouponAmount = 3,
  PriceAlignmentInterest = 4,
  DeliveryInvoiceCharges = 5,
  DeliveryStorageCharges = 6
}

/*
********************************
* Type of leg position amount. *
********************************
*/
export enum LegPosAmtType {
  CashAmountCorporateEvent = 'CASH',
  CashResidualAmount = 'CRES',
  FinalMarkToMarketAmount = 'FMTM',
  IncrementalMarkToMarket = 'IMTM',
  PremiumAmount = 'PREM',
  StartOfDayMarkToMarket = 'SMTM',
  TradeVariationAmount = 'TVAR',
  ValueAdjustedAmount = 'VADJ',
  SettlementValue = 'SETL',
  InitialTradeCouponAmount = 'ICPN',
  AccruedCouponAmount = 'ACPN',
  CouponAmount = 'CPN',
  IncrementalAccruedCoupon = 'IACPN',
  CollateralizedMarkToMarket = 'CMTM',
  IncrementalCollateralizedMarkToMarket = 'ICMTM',
  CompensationAmount = 'DLV',
  TotalBankedAmount = 'BANK',
  TotalCollateralizedAmount = 'COLAT',
  LongPairedSwapOrSwaptionNotionalValue = 'LSNV',
  ShortPairedSwapOrSwaptionNotionalValue = 'SSNV',
  StartOfDayAccruedCoupon = 'SACPN',
  NetPresentValue = 'NPV',
  StartOfDayNetPresentValue = 'SNPV',
  NetCashFlow = 'NCF',
  PresentValueOfAllFees = 'PVFEES',
  PresentValueOfOneBasisPoints = 'PV01',
  TheFiveYearEquivalentNotionalAmount = '5YREN',
  UndiscountedMarkToMarket = 'UMTM',
  MarkToModel = 'MTD',
  MarkToMarketVariance = 'VMTM',
  MarkToModelVariance = 'VMTD',
  UpfrontPayment = 'UPFRNT'
}

/*
***************************************************************
* Specifies the reason for an amount type when reported on a  *
* position. Useful when multiple instances of the same amount *
* type are reported.                                          *
***************************************************************
*/
export enum LegPosAmtReason {
  OptionsSettlement = 0,
  PendingErosionAdjustment = 1,
  FinalErosionAdjustment = 2,
  TearUpCouponAmount = 3,
  PriceAlignmentInterest = 4,
  DeliveryInvoiceCharges = 5,
  DeliveryStorageCharges = 6
}

/*
****************************************************************
* Type of quantity specified in LegQty field.                  *
* LegContractMultiplier (614) is required when LegQtyType = 1  *
* (Contracts). LegUnitOfMeasure (tag 999) and LegTimeUnit (tag *
* 1001) are required when LegQtyType = 2 (Units of Measure per *
* Time Unit). LegQtyType can be different for each leg.        *
****************************************************************
*/
export enum LegQtyType {
  UnitsSharesParCurrency = 0,
  Contracts = 1,
  UnitOfMeasurePerTimeUnit = 2
}

/*
****************************************************************
* Indicates to recipient whether trade is clearing at          *
* execution prices LastPx(tag 31) or alternate clearing prices *
* SideClearingTradePrice(tag 1597).                            *
****************************************************************
*/
export enum SideClearingTradePriceType {
  TradeClearingAtExecutionPrice = 0,
  TradeClearingAtAlternateClearingPrice = 1
}

/*
***********************************************************
* Identifies the reason  a security definition request is *
* being rejected.                                         *
***********************************************************
*/
export enum SecurityRejectReason {
  InvalidInstrumentRequested = 1,
  InstrumentAlreadyExists = 2,
  RequestTypeNotSupported = 3,
  SystemUnavailableForInstrumentCreation = 4,
  IneligibleInstrumentGroup = 5,
  InstrumentIdUnavailable = 6,
  InvalidOrMissingDataOnOptionLeg = 7,
  InvalidOrMissingDataOnFutureLeg = 8,
  InvalidOrMissingDataOnFxLeg = 10,
  InvalidLegPriceSpecified = 11,
  InvalidInstrumentStructureSpecified = 12
}

/*
*********************************************************
* Indicates whether a message was queued as a result of *
* throttling.                                           *
*********************************************************
*/
export enum ThrottleStatus {
  ThrottleLimitNotExceededNotQueued = 0,
  QueuedDueToThrottleLimitExceeded = 1
}

/*
*****************************************************
* Action to take should throttle limit be exceeded. *
*****************************************************
*/
export enum ThrottleAction {
  QueueInbound = 0,
  QueueOutbound = 1,
  Reject = 2,
  Disconnect = 3,
  Warning = 4
}

/*
*********************
* Type of throttle. *
*********************
*/
export enum ThrottleType {
  InboundRate = 0,
  OutstandingRequests = 1
}

/*
***************************************************************
* Units in which ThrottleTimeInterval is expressed. Uses same *
* enumerations as OrderDelayUnit(1429).                       *
***************************************************************
*/
export enum ThrottleTimeUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
*******************************************************
* The type of assignment being affected in the Stream *
* Assignment Report.                                  *
*******************************************************
*/
export enum StreamAsgnType {
  Assignment = 1,
  Rejected = 2,
  TerminateUnassign = 3
}

/*
*********************************************************
* The MsgType (35) of the FIX message being referenced. *
*********************************************************
*/
export enum ThrottleMsgType {
  Heartbeat = '0',
  TestRequest = '1',
  ResendRequest = '2',
  Reject = '3',
  SequenceReset = '4',
  Logout = '5',
  Ioi = '6',
  Advertisement = '7',
  ExecutionReport = '8',
  OrderCancelReject = '9',
  Logon = 'A',
  News = 'B',
  Email = 'C',
  NewOrderSingle = 'D',
  NewOrderList = 'E',
  OrderCancelRequest = 'F',
  OrderCancelReplaceRequest = 'G',
  OrderStatusRequest = 'H',
  AllocationInstruction = 'J',
  ListCancelRequest = 'K',
  ListExecute = 'L',
  ListStatusRequest = 'M',
  ListStatus = 'N',
  AllocationInstructionAck = 'P',
  DontKnowTrade = 'Q',
  QuoteRequest = 'R',
  Quote = 'S',
  SettlementInstructions = 'T',
  MarketDataRequest = 'V',
  MarketDataSnapshotFullRefresh = 'W',
  MarketDataIncrementalRefresh = 'X',
  MarketDataRequestReject = 'Y',
  QuoteCancel = 'Z',
  QuoteStatusRequest = 'a',
  MassQuoteAck = 'b',
  SecurityDefinitionRequest = 'c',
  SecurityDefinition = 'd',
  SecurityStatusRequest = 'e',
  SecurityStatus = 'f',
  TradingSessionStatusRequest = 'g',
  TradingSessionStatus = 'h',
  MassQuote = 'i',
  BusinessMessageReject = 'j',
  BidRequest = 'k',
  BidResponse = 'l',
  ListStrikePrice = 'm',
  XmLnonFix = 'n',
  RegistrationInstructions = 'o',
  RegistrationInstructionsResponse = 'p',
  OrderMassCancelRequest = 'q',
  OrderMassCancelReport = 'r',
  NewOrderCross = 's',
  CrossOrderCancelReplaceRequest = 't',
  CrossOrderCancelRequest = 'u',
  SecurityTypeRequest = 'v',
  SecurityTypes = 'w',
  SecurityListRequest = 'x',
  SecurityList = 'y',
  DerivativeSecurityListRequest = 'z',
  DerivativeSecurityList = 'AA',
  NewOrderMultileg = 'AB',
  MultilegOrderCancelReplace = 'AC',
  TradeCaptureReportRequest = 'AD',
  TradeCaptureReport = 'AE',
  OrderMassStatusRequest = 'AF',
  QuoteRequestReject = 'AG',
  RfqRequest = 'AH',
  QuoteStatusReport = 'AI',
  QuoteResponse = 'AJ',
  Confirmation = 'AK',
  PositionMaintenanceRequest = 'AL',
  PositionMaintenanceReport = 'AM',
  RequestForPositions = 'AN',
  RequestForPositionsAck = 'AO',
  PositionReport = 'AP',
  TradeCaptureReportRequestAck = 'AQ',
  TradeCaptureReportAck = 'AR',
  AllocationReport = 'AS',
  AllocationReportAck = 'AT',
  ConfirmationAck = 'AU',
  SettlementInstructionRequest = 'AV',
  AssignmentReport = 'AW',
  CollateralRequest = 'AX',
  CollateralAssignment = 'AY',
  CollateralResponse = 'AZ',
  CollateralReport = 'BA',
  CollateralInquiry = 'BB',
  NetworkCounterpartySystemStatusRequest = 'BC',
  NetworkCounterpartySystemStatusResponse = 'BD',
  UserRequest = 'BE',
  UserResponse = 'BF',
  CollateralInquiryAck = 'BG',
  ConfirmationRequest = 'BH',
  ContraryIntentionReport = 'BO',
  SecurityDefinitionUpdateReport = 'BP',
  SecurityListUpdateReport = 'BK',
  AdjustedPositionReport = 'BL',
  AllocationInstructionAlert = 'BM',
  ExecutionAck = 'BN',
  TradingSessionList = 'BJ',
  TradingSessionListRequest = 'BI',
  SettlementObligationReport = 'BQ',
  DerivativeSecurityListUpdateReport = 'BR',
  TradingSessionListUpdateReport = 'BS',
  MarketDefinitionRequest = 'BT',
  MarketDefinition = 'BU',
  MarketDefinitionUpdateReport = 'BV',
  ApplicationMessageRequest = 'BW',
  ApplicationMessageRequestAck = 'BX',
  ApplicationMessageReport = 'BY',
  OrderMassActionReport = 'BZ',
  OrderMassActionRequest = 'CA',
  UserNotification = 'CB',
  StreamAssignmentRequest = 'CC',
  StreamAssignmentReport = 'CD',
  StreamAssignmentReportAck = 'CE',
  PartyDetailsListRequest = 'CF',
  PartyDetailsListReport = 'CG',
  MarginRequirementInquiry = 'CH',
  MarginRequirementInquiryAck = 'CI',
  MarginRequirementReport = 'CJ',
  PartyDetailsListUpdateReport = 'CK',
  PartyRiskLimitsRequest = 'CL',
  PartyRiskLimitsReport = 'CM',
  SecurityMassStatusRequest = 'CN',
  SecurityMassStatus = 'CO',
  AccountSummaryReport = 'CQ',
  PartyRiskLimitsUpdateReport = 'CR',
  PartyRiskLimitsDefinitionRequest = 'CS',
  PartyRiskLimitsDefinitionRequestAck = 'CT',
  PartyEntitlementsRequest = 'CU',
  PartyEntitlementsReport = 'CV',
  QuoteAck = 'CW',
  PartyDetailsDefinitionRequest = 'CX',
  PartyDetailsDefinitionRequestAck = 'CY',
  PartyEntitlementsUpdateReport = 'CZ',
  PartyEntitlementsDefinitionRequest = 'DA',
  PartyEntitlementsDefinitionRequestAck = 'DB',
  TradeMatchReport = 'DC',
  TradeMatchReportAck = 'DD',
  PartyRiskLimitsReportAck = 'DE',
  PartyRiskLimitCheckRequest = 'DF',
  PartyRiskLimitCheckRequestAck = 'DG',
  PartyActionRequest = 'DH',
  PartyActionReport = 'DI',
  MassOrder = 'DJ',
  MassOrderAck = 'DK',
  PositionTransferInstruction = 'DL',
  PositionTransferInstructionAck = 'DM',
  PositionTransferReport = 'DN',
  MarketDataStatisticsRequest = 'DO',
  MarketDataStatisticsReport = 'DP',
  CollateralReportAck = 'DQ',
  MarketDataReport = 'DR',
  CrossRequest = 'DS',
  CrossRequestAck = 'DT'
}

/*
***************************************
* Matching Instruction for the order. *
***************************************
*/
export enum MatchInst {
  Match = 1,
  DoNotMatch = 2
}

/*
**************************************************************
* Defines the scope of TriggerAction(1101) when it is set to *
* "cancel" (3).                                              *
**************************************************************
*/
export enum TriggerScope {
  ThisOrderDefault = 0,
  OtherOrderUseRefId = 1,
  AllOtherOrdersForTheGivenSecurity = 2,
  AllOtherOrdersForTheGivenSecurityAndPrice = 3,
  AllOtherOrdersForTheGivenSecurityAndSide = 4,
  AllOtherOrdersForTheGivenSecurityPriceAndSide = 5
}

/*
****************************************************
* Identifies the type of limit amount expressed in *
* LastLimitAmt(1632) and LimitAmtRemaining(1633).  *
****************************************************
*/
export enum LimitAmtType {
  CreditLimit = 0,
  GrossPositionLimit = 1,
  NetPositionLimit = 2,
  RiskExposureLimit = 3,
  LongPositionLimit = 4,
  ShortPositionLimit = 5
}

/*
********************************************************
* Qualifier for MarginRequirementInquiry to identify a *
* specific report.                                     *
********************************************************
*/
export enum MarginReqmtInqQualifier {
  Summary = 0,
  Detail = 1,
  ExcessDeficit = 2,
  NetPosition = 3
}

/*
************************************
* Type of MarginRequirementReport. *
************************************
*/
export enum MarginReqmtRptType {
  Summary = 0,
  Detail = 1,
  ExcessDeficit = 2
}

/*
***************************************
* Status of MarginRequirementInquiry. *
***************************************
*/
export enum MarginReqmtInqStatus {
  Accepted = 0,
  AcceptedWithWarnings = 1,
  Completed = 2,
  CompletedWithWarnings = 3,
  Rejected = 4
}

/*
************************************************************
* Result returned in response to MarginRequirementInquiry. *
************************************************************
*/
export enum MarginReqmtInqResult {
  SuccessfulDefault = 0,
  InvalidOrUnknownInstrument = 1,
  InvalidOrUnknownMarginClass = 2,
  InvalidParties = 3,
  InvalidTransportTypeRequested = 4,
  InvalidDestinationRequested = 5,
  NoMarginRequirementFound = 6,
  MarginRequirementInquiryQualifierNotSupported = 7,
  UnauthorizedForMarginRequirementInquiry = 8,
  OtherFurtherInformationInText58Field = 99
}

/*
******************************************************
* Type of margin requirement amount being specified. *
******************************************************
*/
export enum MarginAmtType {
  AdditionalMargin = 1,
  AdjustedMargin = 2,
  UnadjustedMargin = 3,
  BinaryAddOnAmount = 4,
  CashBalanceAmount = 5,
  ConcentrationMargin = 6,
  CoreMargin = 7,
  DeliveryMargin = 8,
  DiscretionaryMargin = 9,
  FuturesSpreadMargin = 10,
  InitialMargin = 11,
  LiquidatingMargin = 12,
  MarginCallAmount = 13,
  MarginDeficitAmountShortfall = 14,
  MarginExcessAmountSurplus = 15,
  OptionPremiumAmount = 16,
  PremiumMargin = 17,
  ReserveMargin = 18,
  SecurityCollateralAmount = 19,
  StressTestAddOnAmount = 20,
  SuperMargin = 21,
  TotalMargin = 22,
  VariationMargin = 23,
  SecondaryVariationMargin = 24,
  RolledUpMarginDeficit = 25,
  SpreadResponseMargin = 26,
  SystemicRiskMargin = 27,
  CurveRiskMargin = 28,
  IndexSpreadRiskMargin = 29,
  SectorRiskMargin = 30,
  JumpToDefaultRiskMargin = 31,
  BasisRiskMargin = 32,
  InterestRateRiskMargin = 33,
  JumpToHealthRiskMargin = 34,
  OtherRiskMargin = 35
}

/*
***************************************
* The type of instrument relationship *
***************************************
*/
export enum RelatedInstrumentType {
  HedgesForInstrument = 1,
  Underlier = 2,
  EquityEquivalent = 3,
  NearestExchangeTradedContract = 4,
  RetailEquivalentOfWholesaleInstrument = 5,
  Leg = 6
}

/*
**************************************************************
* Identifies class or source of the RelatedSecurityID (1650) *
* value.                                                     *
**************************************************************
*/
export enum RelatedSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
*****************************************************
* Indicates market maker participation in security. *
*****************************************************
*/
export enum MarketMakerActivity {
  NoParticipation = 0,
  BuyParticipation = 1,
  SellParticipation = 2,
  BothBuyAndSellParticipation = 3
}

/*
***************************************************************
* Identifies the source of the RequestingPartyID(1658) value. *
***************************************************************
*/
export enum RequestingPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
**************************************************************
* Identifies the type or role of the RequestingPartyID(1658) *
* specified.                                                 *
**************************************************************
*/
export enum RequestingPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*********************************************
* Type of RequestingPartySubID(1662) value. *
*********************************************
*/
export enum RequestingPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*****************************************************
* Indicates the status of the party identified with *
* PartyDetailID(1691).                              *
*****************************************************
*/
export enum PartyDetailStatus {
  ActiveDefaultIfNotSpecified = 0,
  Suspended = 1,
  Halted = 2
}

/*
*************************************************
* Qualifies the value of PartyDetailRole(1693). *
*************************************************
*/
export enum PartyDetailRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
*************************************************
* Qualifies the value of RelatedPartyRole(1565) *
*************************************************
*/
export enum RelatedPartyDetailRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
**********************************************************
* Identifies the trading status applicable to a group of *
* instruments.                                           *
**********************************************************
*/
export enum SecurityMassTradingStatus {
  OpeningDelay = 1,
  TradingHalt = 2,
  Resume = 3,
  NoOpenNoResume = 4,
  PriceIndication = 5,
  TradingRangeIndication = 6,
  MarketImbalanceBuy = 7,
  MarketImbalanceSell = 8,
  MarketOnCloseImbalanceBuy = 9,
  MarketOnCloseImbalanceSell = 10,
  NoMarketImbalance = 12,
  NoMarketOnCloseImbalance = 13,
  ItsPreOpening = 14,
  NewPriceIndication = 15,
  TradeDisseminationTime = 16,
  ReadyToTradeStartOfSession = 17,
  NotAvailableForTradingEndOfSession = 18,
  NotTradedOnThisMarket = 19,
  UnknownOrInvalid = 20,
  PreOpen = 21,
  OpeningRotation = 22,
  FastMarket = 23,
  PreCrossSystemIsInAPreCrossStateAllowingMarketToRespondToEitherSideOfCross = 24,
  CrossSystemHasCrossedAPercentageOfTheOrdersAndAllowsMarketToRespondPriorToCrossingRemainingPortion = 25,
  PostClose = 26,
  NoCancel = 27
}

/*
***********************************************************
* Identifies an event related to the mass trading status. *
***********************************************************
*/
export enum SecurityMassTradingEvent {
  OrderImbalanceAuctionIsExtended = 1,
  TradingResumesAfterHalt = 2,
  PriceVolatilityInterruption = 3,
  ChangeOfTradingSession = 4,
  ChangeOfTradingSubsession = 5,
  ChangeOfSecurityTradingStatus = 6,
  ChangeOfBookType = 7,
  ChangeOfMarketDepth = 8,
  CorporateAction = 9
}

/*
***************************************************************
* Denotes the reason for the Opening Delay or Trading halt of *
* a group of securities.                                      *
***************************************************************
*/
export enum MassHaltReason {
  NewsDissemination = 0,
  OrderInflux = 1,
  OrderImbalance = 2,
  AdditionalInformation = 3,
  NewsPending = 4,
  EquipmentChangeover = 5
}

/*
**************************************************************
* Identifies the trading status applicable to the instrument *
* in the market data message.                                *
**************************************************************
*/
export enum MDSecurityTradingStatus {
  OpeningDelay = 1,
  TradingHalt = 2,
  Resume = 3,
  NoOpenNoResume = 4,
  PriceIndication = 5,
  TradingRangeIndication = 6,
  MarketImbalanceBuy = 7,
  MarketImbalanceSell = 8,
  MarketOnCloseImbalanceBuy = 9,
  MarketOnCloseImbalanceSell = 10,
  NoMarketImbalance = 12,
  NoMarketOnCloseImbalance = 13,
  ItsPreOpening = 14,
  NewPriceIndication = 15,
  TradeDisseminationTime = 16,
  ReadyToTradeStartOfSession = 17,
  NotAvailableForTradingEndOfSession = 18,
  NotTradedOnThisMarket = 19,
  UnknownOrInvalid = 20,
  PreOpen = 21,
  OpeningRotation = 22,
  FastMarket = 23,
  PreCrossSystemIsInAPreCrossStateAllowingMarketToRespondToEitherSideOfCross = 24,
  CrossSystemHasCrossedAPercentageOfTheOrdersAndAllowsMarketToRespondPriorToCrossingRemainingPortion = 25,
  PostClose = 26,
  NoCancel = 27
}

/*
*************************************************************
* Denotes the reason for the Opening Delay or Trading Halt. *
*************************************************************
*/
export enum MDHaltReason {
  NewsDissemination = 0,
  OrderInflux = 1,
  OrderImbalance = 2,
  AdditionalInformation = 3,
  NewsPending = 4,
  EquipmentChangeover = 5
}

/*
**************************************************************
* Describes action recipient should take if a throttle limit *
* were exceeded.                                             *
**************************************************************
*/
export enum ThrottleInst {
  RejectIfThrottleLimitExceeded = 0,
  QueueIfThrottleLimitExceeded = 1
}

/*
********************************************************
* Indicates whether a message decrements the number of *
* outstanding requests, e.g. one where ThrottleType =  *
* Outstanding Requests.                                *
********************************************************
*/
export enum ThrottleCountIndicator {
  OutstandingRequestsUnchanged = 0,
  OutstandingRequestsDecreased = 1
}

/*
**************************************************************
* Indicates whether a restriction applies to short selling a *
* security.                                                  *
**************************************************************
*/
export enum ShortSaleRestriction {
  NoRestrictions = 0,
  SecurityIsNotShortable = 1,
  SecurityNotShortableAtOrBelowTheBestBid = 2,
  SecurityIsNotShortableWithoutPreBorrow = 3
}

/*
**************************************************************
* Indicates the reason a short sale order is exempted from   *
* applicable regulation (e.g. Reg SHO addendum (b)(1) in the *
* U.S.).                                                     *
**************************************************************
*/
export enum ShortSaleExemptionReason {
  ExemptionReasonUnknown = 0,
  IncomeSellShortExempt = 1,
  AboveNationalBestBidBrokerDealerProvision = 2,
  DelayedDelivery = 3,
  OddLot = 4,
  DomesticArbitrage = 5,
  InternationalArbitrage = 6,
  UnderwriterOrSyndicateDistribution = 7,
  RisklessPrincipal = 8,
  Vwap = 9
}

/*
**************************************************************
* Indicates the reason a short sale is exempted from         *
* applicable regulation (e.g. Reg SHO addendum (b)(1) in the *
* U.S.)                                                      *
**************************************************************
*/
export enum LegShortSaleExemptionReason {
  ExemptionReasonUnknown = 0,
  IncomeSellShortExempt = 1,
  AboveNationalBestBidBrokerDealerProvision = 2,
  DelayedDelivery = 3,
  OddLot = 4,
  DomesticArbitrage = 5,
  InternationalArbitrage = 6,
  UnderwriterOrSyndicateDistribution = 7,
  RisklessPrincipal = 8,
  Vwap = 9
}

/*
**************************************************************
* Indicates the reason a short sale is exempted from         *
* applicable regulation (e.g. Reg SHO addendum (b)(1) in the *
* U.S.)                                                      *
**************************************************************
*/
export enum SideShortSaleExemptionReason {
  ExemptionReasonUnknown = 0,
  IncomeSellShortExempt = 1,
  AboveNationalBestBidBrokerDealerProvision = 2,
  DelayedDelivery = 3,
  OddLot = 4,
  DomesticArbitrage = 5,
  InternationalArbitrage = 6,
  UnderwriterOrSyndicateDistribution = 7,
  RisklessPrincipal = 8,
  Vwap = 9
}

/*
*******************************************************
* Source of the identifier of the PartyDetailID(1691) *
* specified.                                          *
*******************************************************
*/
export enum PartyDetailIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
******************************************************
* Identifies the type or role of PartyDetailID(1691) *
* specified.                                         *
******************************************************
*/
export enum PartyDetailRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*****************************************
* Type of PartyDetailSubID(1695) value. *
*****************************************
*/
export enum PartyDetailSubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*************************************************************
* Used to express the unit of measure (UOM) of the price if *
* different from the contract.                              *
*************************************************************
*/
export enum StrikeUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* Identifies the origin of the order. *
***************************************
*/
export enum OrderOrigination {
  OrderReceivedFromACustomer = 1,
  OrderReceivedFromWithinTheFirm = 2,
  OrderReceivedFromAnotherBrokerDealer = 3,
  OrderReceivedFromACustomerOrOriginatedWithTheFirm = 4,
  OrderReceivedFromADirectAccessOrSponsoredAccessCustomer = 5
}

/*
************************************************************
* An indicator to override the normal procedure to roll up *
* allocations for the same take-up firm.                   *
************************************************************
*/
export enum AllocationRollupInstruction {
  RollUp = 0,
  DoNotRollUp = 1
}

/*
****************************************************
* Identifies the status of a reversal transaction. *
****************************************************
*/
export enum AllocReversalStatus {
  Completed = 0,
  Refused = 1,
  Cancelled = 2
}

/*
*******************************************************
* Type of reference obligation for credit derivatives *
* contracts.                                          *
*******************************************************
*/
export enum ObligationType {
  Bond = '0',
  ConvertibleBond = '1',
  Mortgage = '2',
  Loan = '3'
}

/*
**************************************************
* Method used for negotiation of contract price. *
**************************************************
*/
export enum TradePriceNegotiationMethod {
  PercentOfPar = 0,
  DealSpread = 1,
  UpfrontPoints = 2,
  UpfrontAmount = 3,
  PercentOfParAndUpfrontAmount = 4,
  DealSpreadAndUpfrontAmount = 5,
  UpfrontPointsAndUpfrontAmount = 6
}

/*
*************************************************************
* Type of price used to determine upfront payment for swaps *
* contracts.                                                *
*************************************************************
*/
export enum UpfrontPriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  FixedAmountAbsoluteValue = 3
}

/*
***********************************
* Type of risk limit information. *
***********************************
*/
export enum RiskLimitRequestType {
  DefinitionsDefault = 1,
  Utilization = 2,
  DefinitionsAndUtilization = 3
}

/*
********************************************
* Result of risk limit definition request. *
********************************************
*/
export enum RiskLimitRequestResult {
  SuccessfulDefault = 0,
  InvalidPartyIes = 1,
  InvalidRelatedPartyIes = 2,
  InvalidRiskLimitTypeS = 3,
  InvalidRiskLimitIdS = 4,
  InvalidRiskLimitAmountS = 5,
  InvalidRiskWarningLevelActionS = 6,
  InvalidRiskInstrumentScopeS = 7,
  RiskLimitActionsNotSupported = 8,
  WarningLevelsNotSupported = 9,
  WarningLevelActionsNotSupported = 10,
  RiskInstrumentScopeNotSupported = 11,
  RiskLimitNotApprovedForPartyIes = 12,
  RiskLimitAlreadyDefinedForPartyIes = 13,
  InstrumentNotApprovedForPartyIes = 14,
  NotAuthorized = 98,
  Other = 99
}

/*
********************************************
* Status of risk limit definition request. *
********************************************
*/
export enum RiskLimitRequestStatus {
  Accepted = 0,
  AcceptedWithChanges = 1,
  Rejected = 2,
  AcceptancePending = 3
}

/*
**************************************************
* Status of risk limit definition for one party. *
**************************************************
*/
export enum RiskLimitStatus {
  Accepted = 0,
  AcceptedWithChanges = 1,
  Rejected = 2
}

/*
**************************************************
* Result of risk limit definition for one party. *
**************************************************
*/
export enum RiskLimitResult {
  SuccessfulDefault = 0,
  InvalidPartyIes = 1,
  InvalidRelatedPartyIes = 2,
  InvalidRiskLimitTypeS = 3,
  InvalidRiskLimitIdS = 4,
  InvalidRiskLimitAmountS = 5,
  InvalidRiskWarningLevelActionS = 6,
  InvalidRiskInstrumentScopeS = 7,
  RiskLimitActionsNotSupported = 8,
  WarningLevelsNotSupported = 9,
  WarningLevelActionsNotSupported = 10,
  RiskInstrumentScopeNotSupported = 11,
  RiskLimitNotApprovedForPartyIes = 12,
  RiskLimitAlreadyDefinedForPartyIes = 13,
  InstrumentNotApprovedForPartyIes = 14,
  NotAuthorized = 98,
  Other = 99
}

/*
****************************************************************
* Identifies the action to take or risk model to assume should *
* risk limit be exceeded or breached for the specified party.  *
****************************************************************
*/
export enum RiskLimitAction {
  QueueInbound = 0,
  QueueOutbound = 1,
  Reject = 2,
  Disconnect = 3,
  Warning = 4,
  PingCreditCheckModelWithRevalidation = 5,
  PingCreditCheckModelWithoutRevalidation = 6,
  PushCreditCheckModelWithRevalidation = 7,
  PushCreditCheckModelWithoutRevalidation = 8,
  Suspend = 9,
  HaltTrading = 10
}

/*
****************************************************
* Action to take should warning level be exceeded. *
****************************************************
*/
export enum RiskWarningLevelAction {
  QueueInbound = 0,
  QueueOutbound = 1,
  Reject = 2,
  Disconnect = 3,
  Warning = 4,
  PingCreditCheckModelWithRevalidation = 5,
  PingCreditCheckModelWithoutRevalidation = 6,
  PushCreditCheckModelWithRevalidation = 7,
  PushCreditCheckModelWithoutRevalidation = 8,
  Suspend = 9,
  HaltTrading = 10
}

/*
************************
* Type of entitlement. *
************************
*/
export enum EntitlementType {
  Trade = 0,
  MakeMarkets = 1,
  HoldPositions = 2,
  PerformGiveUps = 3,
  SubmitIndicationsOfInterestIoIs = 4,
  SubscribeToMarketData = 5,
  ShortWithPreBorrow = 6,
  SubmitQuoteRequests = 7,
  RespondToQuoteRequests = 8
}

/*
******************************************
* Datatype of the entitlement attribute. *
******************************************
*/
export enum EntitlementAttribDatatype {
  Int = 1,
  Length = 2,
  NumInGroup = 3,
  SeqNum = 4,
  TagNum = 5,
  Float = 6,
  Qty = 7,
  Price = 8,
  PriceOffset = 9,
  Amt = 10,
  Percentage = 11,
  Char = 12,
  Boolean = 13,
  String = 14,
  MultipleCharValue = 15,
  Currency = 16,
  Exchange = 17,
  MonthYear = 18,
  UtcTimestamp = 19,
  UtcTimeOnly = 20,
  LocalMktDate = 21,
  UtcDateOnly = 22,
  Data = 23,
  MultipleStringValue = 24,
  Country = 25,
  Language = 26,
  TzTimeOnly = 27,
  TzTimestamp = 28,
  Tenor = 29,
  DayOfMonth = 30,
  XmlData = 31,
  Pattern = 32,
  Reserved100Plus = 33,
  Reserved1000Plus = 34,
  Reserved4000Plus = 35
}

/*
***********************************************************
* Indicates how control of trading session and subsession *
* transitions are performed.                              *
***********************************************************
*/
export enum TradSesControl {
  AutomaticDefault = 0,
  Manual = 1
}

/*
******************************************************
* Define the type of trade volume applicable for the *
* MinTradeVol(562) and MaxTradeVol(1140)             *
******************************************************
*/
export enum TradeVolType {
  NumberOfUnitsEGShareParCurrencyContractsDefault = 0,
  NumberOfRoundLots = 1
}

/*
*************************************************************
* The type of event affecting an order. The last event type *
* within the OrderEventGrp component indicates the          *
* ExecType(150) value resulting from the series of events   *
* (ExecType(150) values are shown in brackets).             *
*************************************************************
*/
export enum OrderEventType {
  Added0New = 1,
  Modified5Replaced = 2,
  Deleted4Canceled = 3,
  PartiallyFilledFTrade = 4,
  FilledFTrade = 5,
  Suspended9Suspended = 6,
  ReleasedNReleased = 7,
  RestatedDRestated = 8,
  LockedMLocked = 9,
  TriggeredLTriggeredOrActivatedBySystem = 10,
  ActivatedLTriggeredOrActivatedBySystem = 11
}

/*
******************************************
* Action that caused the event to occur. *
******************************************
*/
export enum OrderEventReason {
  AddOrderRequest = 1,
  ModifyOrderRequest = 2,
  DeleteOrderRequest = 3,
  OrderEnteredOutOfBand = 4,
  OrderModifiedOutOfBand = 5,
  OrderDeletedOutOfBand = 6,
  OrderActivatedOrTriggered = 7,
  OrderExpired = 8,
  ReserveOrderRefreshed = 9,
  AwayMarketBetter = 10,
  CorporateAction = 11,
  StartOfDay = 12,
  EndOfDay = 13
}

/*
**************************************************************
* Indicator to identify whether this fill was a result of a  *
* liquidity provider providing or liquidity taker taking the *
* liquidity. Applicable only for OrderEventType(1796) values *
* of 4(Partially Filled) or 5(Filled).                       *
**************************************************************
*/
export enum OrderEventLiquidityIndicator {
  AddedLiquidity = 1,
  RemovedLiquidity = 2,
  LiquidityRoutedOut = 3,
  Auction = 4,
  TriggeredStopOrder = 5,
  TriggeredContingencyOrder = 6,
  TriggeredMarketOrder = 7
}

/*
**************************
* Type of auction order. *
**************************
*/
export enum AuctionType {
  None = 0,
  BlockOrderAuction = 1,
  DirectedOrderAuction = 2,
  ExposureOrderAuction = 3,
  FlashOrderAuction = 4,
  FacilitationOrderAuction = 5,
  SolicitationOrderAuction = 6,
  PriceImprovementMechanismPim = 7,
  DirectedOrderPriceImprovementMechanismPim = 8
}

/*
****************************************************************
* Instruction related to system generated auctions, e.g. flash *
* order auctions.                                              *
****************************************************************
*/
export enum AuctionInstruction {
  AutomaticAuctionPermittedDefault = 0,
  AutomaticAuctionNotPermitted = 1
}

/*
*************************************************************
* Indicates whether an order is locked and for what reason. *
*************************************************************
*/
export enum LockType {
  NotLocked = 0,
  AwayMarketBetter = 1,
  ThreeTickLocked = 2,
  LockedByMarketMaker = 3,
  DirectedOrderLock = 4,
  MultilegLock = 5,
  MarketOrderLock = 6,
  PreAssignmentLock = 7
}

/*
*************************************************************
* Instruction to define conditions under which to release a *
* locked order or parts of it.                              *
*************************************************************
*/
export enum ReleaseInstruction {
  IntermarketSweepOrderIso = 1,
  NoAwayMarketBetterCheck = 2
}

/*
**************************************
* Information subject to disclosure. *
**************************************
*/
export enum DisclosureType {
  Volume = 1,
  Price = 2,
  Side = 3,
  Aon = 4,
  General = 5,
  ClearingAccount = 6,
  CmtaAccount = 7
}

/*
***************************************************************
* Instruction to disclose information or to use default value *
* of the receiver.                                            *
***************************************************************
*/
export enum DisclosureInstruction {
  No = 0,
  Yes = 1,
  UseDefaultSetting = 2
}

/*
***************************************************************
* Designates the capacity in which the order is submitted for *
* trading by the market participant.                          *
***************************************************************
*/
export enum TradingCapacity {
  Customer = 1,
  CustomerProfessional = 2,
  BrokerDealer = 3,
  CustomerBrokerDealer = 4,
  Principal = 5,
  MarketMaker = 6,
  AwayMarketMaker = 7,
  SystematicInternaliser = 8
}

/*
*************************************************************
* Designates the account type to be used for the order when *
* submitted to clearing.                                    *
*************************************************************
*/
export enum ClearingAccountType {
  Customer = 1,
  Firm = 2,
  MarketMaker = 3
}

/*
****************************************************************
* Designates the capacity in which the order will be submitted *
* to clearing.                                                 *
****************************************************************
*/
export enum LegClearingAccountType {
  Customer = 1,
  Firm = 2,
  MarketMaker = 3
}

/*
**************************************************
* Qualifies the value of TargetPartyRole (1464). *
**************************************************
*/
export enum TargetPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
***************************************************************
* Source for the price of a related entity, e.g. price of the *
* underlying instrument in an Underlying Price Contingency    *
* (UPC) order. Can be used together with RelatedHighPrice     *
* (1819) and/or RelatedLowPrice (1820).                       *
***************************************************************
*/
export enum RelatedPriceSource {
  NbbNationalBestBid = 1,
  NboNationalBestOffer = 2
}

/*
*************************************************************
* Indicates how the minimum quantity should be applied when *
* executing the order.                                      *
*************************************************************
*/
export enum MinQtyMethod {
  OnceAppliesOnlyToFirstExecution = 1,
  MultipleAppliesToEveryExecution = 2
}

/*
***************************************************************
* Indicates whether order has been triggered during its       *
* lifetime. Applies to cases where original information, e.g. *
* OrdType(40), is modified when the order is triggered.       *
***************************************************************
*/
export enum Triggered {
  NotTriggeredDefault = 0,
  Triggered = 1,
  StopOrderTriggered = 2,
  OneCancelsTheOtherOcoOrderTriggered = 3,
  OneTriggersTheOtherOtoOrderTriggered = 4,
  OneUpdatesTheOtherOuoOrderTriggered = 5
}

/*
****************************************
* Time unit associated with the event. *
****************************************
*/
export enum EventTimeUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Indicates whether the trade or position being reported was *
* cleared through a clearing organization.                   *
**************************************************************
*/
export enum ClearedIndicator {
  NotCleared = 0,
  Cleared = 1,
  Submitted = 2,
  Rejected = 3
}

/*
****************************************************************
* Additional information related to the pricing of a commodity *
* swaps position, specifically an indicator referring to the   *
* position type.                                               *
****************************************************************
*/
export enum ContractRefPosType {
  TwoComponentIntercommoditySpread = 0,
  IndexOrBasket = 1,
  TwoComponentLocationalBasis = 2,
  Other = 99
}

/*
***************************************************
* Used to describe the ownership of the position. *
***************************************************
*/
export enum PositionCapacity {
  Principal = 0,
  Agent = 1,
  Customer = 2,
  Counterparty = 3
}

/*
***************************************************************
* Indicates the unit of measure of the position quantity when *
* not expressed in contracts.                                 *
***************************************************************
*/
export enum PosQtyUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
****************************************************************
* Price conditions in effect at the time of the trade.         *
* Multiple price conditions can be in effect at the same time. *
* Price conditions are usually required to be reported in      *
* markets that have regulations on price execution at a market *
* or national best bid or offer, and the trade price differs   *
* from the best bid or offer.                                  *
****************************************************************
*/
export enum TradePriceCondition {
  SpecialCumDividendCd = 0,
  SpecialCumRightsCr = 1,
  SpecialExDividendXd = 2,
  SpecialExRightsXr = 3,
  SpecialCumCouponCc = 4,
  SpecialCumCapitalRepaymentsCp = 5,
  SpecialExCouponXc = 6,
  SpecialExCapitalRepaymentsXp = 7,
  CashSettlementCs = 8,
  SpecialCumBonusCb = 9,
  SpecialPriceSp = 10,
  SpecialExBonusXb = 11,
  GuaranteedDeliveryGd = 12,
  SpecialDividend = 13,
  PriceImprovement = 14,
  NonPriceFormingTrade = 15,
  TradeExemptedFromTradingObligation = 16,
  PriceIsPending = 17,
  PriceIsNotApplicable = 18
}

/*
*******************************************************
* Identifies the status of an allocation when using a *
* pre-clear workflow.                                 *
*******************************************************
*/
export enum TradeAllocStatus {
  PendingClear = 0,
  Claimed = 1,
  Cleared = 2,
  Rejected = 3
}

/*
***********************************************************
* Indicates the type of trade quantity in TradeQty(1843). *
***********************************************************
*/
export enum TradeQtyType {
  ClearedQuantity = 0,
  LongSideClaimedQuantity = 1,
  ShortSideClaimedQuantity = 2,
  LongSideRejectedQuantity = 3,
  ShortSideRejectedQuantity = 4,
  PendingQuantity = 5,
  TransactionQuantity = 6,
  RemainingTradeQuantity = 7,
  PreviousRemainingTradeQuantity = 8
}

/*
**********************************************************
* Type of the amount associated with a trade allocation. *
**********************************************************
*/
export enum TradeAllocAmtType {
  CashAmountCorporateEvent = 'CASH',
  CashResidualAmount = 'CRES',
  FinalMarkToMarketAmount = 'FMTM',
  IncrementalMarkToMarket = 'IMTM',
  PremiumAmount = 'PREM',
  StartOfDayMarkToMarket = 'SMTM',
  TradeVariationAmount = 'TVAR',
  ValueAdjustedAmount = 'VADJ',
  SettlementValue = 'SETL',
  InitialTradeCouponAmount = 'ICPN',
  AccruedCouponAmount = 'ACPN',
  CouponAmount = 'CPN',
  IncrementalAccruedCoupon = 'IACPN',
  CollateralizedMarkToMarket = 'CMTM',
  IncrementalCollateralizedMarkToMarket = 'ICMTM',
  CompensationAmount = 'DLV',
  TotalBankedAmount = 'BANK',
  TotalCollateralizedAmount = 'COLAT',
  LongPairedSwapOrSwaptionNotionalValue = 'LSNV',
  ShortPairedSwapOrSwaptionNotionalValue = 'SSNV',
  StartOfDayAccruedCoupon = 'SACPN',
  NetPresentValue = 'NPV',
  StartOfDayNetPresentValue = 'SNPV',
  NetCashFlow = 'NCF',
  PresentValueOfAllFees = 'PVFEES',
  PresentValueOfOneBasisPoints = 'PV01',
  TheFiveYearEquivalentNotionalAmount = '5YREN',
  UndiscountedMarkToMarket = 'UMTM',
  MarkToModel = 'MTD',
  MarkToMarketVariance = 'VMTM',
  MarkToModelVariance = 'VMTD',
  UpfrontPayment = 'UPFRNT'
}

/*
************************************************************
* Instruction on how to add a trade to an allocation group *
* when it is being given-up.                               *
************************************************************
*/
export enum TradeAllocGroupInstruction {
  AddToAnExistingAllocationGroupIfOneExists = 0,
  DoNotAddTheTradeToAnAllocationGroup = 1
}

/*
**********************************************************
* Indicates the trade is a result of an offset or onset. *
**********************************************************
*/
export enum OffsetInstruction {
  Offset = 0,
  Onset = 1
}

/*
***************************************************************
* Specifies the reason for an amount type when reported on an *
* allocation. Useful when multiple instances of the same      *
* amount type are reported.                                   *
***************************************************************
*/
export enum TradeAllocAmtReason {
  OptionsSettlement = 0,
  PendingErosionAdjustment = 1,
  FinalErosionAdjustment = 2,
  TearUpCouponAmount = 3,
  PriceAlignmentInterest = 4,
  DeliveryInvoiceCharges = 5,
  DeliveryStorageCharges = 6
}

/*
****************************************************************
* Used to indicate whether a trade or a sub-allocation should  *
* be allocated at the trade price (e.g. no average pricing),   *
* or whether it should be grouped with other                   *
* trades/sub-allocations and allocated at the average price of *
* the group.                                                   *
****************************************************************
*/
export enum SideAvgPxIndicator {
  NoAveragePricing = 0,
  TradeIsPartOfTheAveragePriceGroupIdentifiedByTheSideAvgPxGroupId1854 = 1,
  LastTradeIsTheAveragePriceGroupIdentifiedByTheSideAvgPxGroupId1854 = 2
}

/*
***********************************************
* Describes the source of the identifier that *
* RelatedTradeID(1856) represents.            *
***********************************************
*/
export enum RelatedTradeIDSource {
  NonFixSource = 0,
  TradeId = 1,
  SecondaryTradeId = 2,
  TradeReportId = 3,
  FirmTradeId = 4,
  SecondaryFirmTradeId = 5,
  RegulatoryTradeId = 6
}

/*
***********************************************
* Describes the source of the identifier that *
* RelatedPositionID(1862) represents.         *
***********************************************
*/
export enum RelatedPositionIDSource {
  PositionMaintenanceReportIdPosMaintRptId721 = 1,
  PositionTransferIdTransferId2437 = 2,
  PositionEntityIdPositionId2618 = 3
}

/*
****************************************************************
* Acknowledgement status of a Quote(35=S) or QuoteCancel(35=Z) *
* message submission.                                          *
****************************************************************
*/
export enum QuoteAckStatus {
  ReceivedNotYetProcessed = 0,
  Accepted = 1,
  Rejected = 2
}

/*
********************************
* Type of value to be checked. *
********************************
*/
export enum ValueCheckType {
  PriceCheck = 1,
  NotionalValueCheck = 2
}

/*
****************************************************
* Action to be taken for the ValueCheckType(1869). *
****************************************************
*/
export enum ValueCheckAction {
  DoNotCheck = 0,
  Check = 1,
  BestEffort = 2
}

/*
*******************************************
* Result party detail definition request. *
*******************************************
*/
export enum PartyDetailRequestResult {
  SuccessfulDefault = 0,
  InvalidPartyIes = 1,
  InvalidRelatedPartyIes = 2,
  InvalidPartyStatusEs = 3,
  NotAuthorized = 98,
  Other = 99
}

/*
***********************************************
* Status of party details definition request. *
***********************************************
*/
export enum PartyDetailRequestStatus {
  Accepted = 0,
  AcceptedWithChanges = 1,
  Rejected = 2,
  AcceptancePending = 3
}

/*
****************************************************
* Status of party detail definition for one party. *
****************************************************
*/
export enum PartyDetailDefinitionStatus {
  Accepted = 0,
  AcceptedWithChanges = 1,
  Rejected = 2
}

/*
****************************************************
* Result of party detail definition for one party. *
****************************************************
*/
export enum PartyDetailDefinitionResult {
  SuccessfulDefault = 0,
  InvalidPartyIes = 1,
  InvalidRelatedPartyIes = 2,
  InvalidPartyStatusEs = 3,
  NotAuthorized = 98,
  Other = 99
}

/*
********************************************
* Result of risk limit definition request. *
********************************************
*/
export enum EntitlementRequestResult {
  SuccessfulDefault = 0,
  InvalidPartyIes = 1,
  InvalidRelatedPartyIes = 2,
  InvalidEntitlementTypeS = 3,
  InvalidEntitlementIdSRefIdS = 4,
  InvalidEntitlementAttributeS = 5,
  InvalidInstrumentScopeS = 6,
  InvalidMarketSegmentScopeS = 7,
  InvalidStartDate = 8,
  InvalidEndDate = 9,
  InstrumentScopeNotSupported = 10,
  MarketSegmentScopeNotSupported = 11,
  EntitlementNotApprovedForPartyIes = 12,
  EntitlementAlreadyDefinedForPartyIes = 13,
  InstrumentNotApprovedForPartyIes = 14,
  NotAuthorized = 98,
  Other = 99
}

/*
****************************************************
* Status of party entitlements definition request. *
****************************************************
*/
export enum EntitlementRequestStatus {
  Accepted = 0,
  AcceptedWithChanges = 1,
  Rejected = 2,
  AcceptancePending = 3
}

/*
***************************************************
* Status of entitlement definition for one party. *
***************************************************
*/
export enum EntitlementStatus {
  Accepted = 0,
  AcceptedWithChanges = 1,
  Rejected = 2,
  Pending = 3,
  Requested = 4,
  Deferred = 5
}

/*
***************************************************
* Result of entitlement definition for one party. *
***************************************************
*/
export enum EntitlementResult {
  SuccessfulDefault = 0,
  InvalidPartyIes = 1,
  InvalidRelatedPartyIes = 2,
  InvalidEntitlementTypeS = 3,
  InvalidEntitlementIdSRefIdS = 4,
  InvalidEntitlementAttributeS = 5,
  InvalidInstrumentScopeS = 6,
  InvalidMarketSegmentScopeS = 7,
  InvalidStartDate = 8,
  InvalidEndDate = 9,
  InstrumentScopeNotSupported = 10,
  MarketSegmentScopeNotSupported = 11,
  EntitlementNotApprovedForPartyIes = 12,
  EntitlementAlreadyDefinedForPartyIes = 13,
  InstrumentNotApprovedForPartyIes = 14,
  NotAuthorized = 98,
  Other = 99
}

/*
***************************************************************
* Used to express the unit of measure of the settlement price *
* if different from the contract.                             *
***************************************************************
*/
export enum SettlPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
*********************************************************
* Used to indicate the status of the trade match report *
* submission.                                           *
*********************************************************
*/
export enum TradeMatchAckStatus {
  ReceivedNotYetProcessed = 0,
  Accepted = 1,
  Rejected = 2
}

/*
**********************************************************
* Reason the trade match report submission was rejected. *
**********************************************************
*/
export enum TradeMatchRejectReason {
  Successful = 0,
  InvalidPartyInformation = 1,
  UnknownInstrument = 2,
  NotAuthorizedToReportTrades = 3,
  InvalidTradeType = 4,
  Other = 99
}

/*
*************************************************************
* Identifies the type of venue where the trade was executed *
* for the side.                                             *
*************************************************************
*/
export enum SideVenueType {
  ElectronicExchange = 'E',
  Pit = 'P',
  ExPit = 'X',
  Clearinghouse = 'C',
  RegisteredMarket = 'R',
  OffMarket = 'O',
  CentralLimitOrderBook = 'B',
  QuoteDrivenMarket = 'Q',
  DarkOrderBook = 'D',
  AuctionDrivenMarket = 'A',
  QuoteNegotiation = 'N',
  VoiceNeotiation = 'V',
  HybridMarket = 'H'
}

/*
****************************************************************
* Identifies the event which caused origination of the         *
* identifier in RegulatoryTradeID(1903). When more than one    *
* event is the cause, use the higher enumeration value.  For   *
* example, if the identifier is originated due to an allocated *
* trade which was cleared and reported, use the enumeration    *
* value 2 (Clearing).                                          *
****************************************************************
*/
export enum RegulatoryTradeIDEvent {
  InitialBlockTrade = 0,
  Allocation = 1,
  Clearing = 2,
  Compression = 3,
  Novation = 4,
  Termination = 5,
  PostTradeValuation = 6
}

/*
***************************************************************
* Specifies the type of trade identifier provided in          *
* RegulatoryTradeID(1903).                                    *
* Contextual hierarchy of events for the same trade or        *
* transaction maybe captured through use of the different     *
* RegulatoryTradeIDType(1906) values using multiple instances *
* of the repeating group as needed for regulatory reporting.  *
***************************************************************
*/
export enum RegulatoryTradeIDType {
  Current = 0,
  Previous = 1,
  Block = 2,
  Related = 3,
  ClearedBlockTrade = 4,
  TradingVenueTransactionIdentifier = 5
}

/*
***************************************************************
* Identifies the event which caused the origination of the    *
* identifier in AllocRegulatoryTradeID(1909).  When more than *
* one event is the cause, use the higher enumeration value.   *
* For example, if the identifier is originated due to an      *
* allocated trade which was cleared and reported, use the     *
* enumeration value 2(Clearing).                              *
***************************************************************
*/
export enum AllocRegulatoryTradeIDEvent {
  InitialBlockTrade = 0,
  Allocation = 1,
  Clearing = 2,
  Compression = 3,
  Novation = 4,
  Termination = 5,
  PostTradeValuation = 6
}

/*
***********************************************************
* Specifies the type of trade identifier provided in      *
* AllocRegulatoryTradeID(1909), within the context of the *
* hierarchy of trade events.                              *
***********************************************************
*/
export enum AllocRegulatoryTradeIDType {
  Current = 0,
  Previous = 1,
  Block = 2,
  Related = 3,
  ClearedBlockTrade = 4,
  TradingVenueTransactionIdentifier = 5
}

/*
***************************************************************
* Time unit in which the ExposureDuration(1629) is expressed. *
***************************************************************
*/
export enum ExposureDurationUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
*********************************************************
* Describes the format of the PriceMovementValue(1921). *
*********************************************************
*/
export enum PriceMovementType {
  Amount = 0,
  Percentage = 1
}

/*
************************************************************
* Specifies the party's or parties' intention to clear the *
* trade.                                                   *
************************************************************
*/
export enum ClearingIntention {
  DoNotIntendToClear = 0,
  IntendToClear = 1
}

/*
************************************************************
* Specifies the eligibility of this trade for clearing and *
* central counterparty processing.                         *
************************************************************
*/
export enum TradeClearingInstruction {
  ProcessNormally = 0,
  ExcludeFromAllNetting = 1,
  BilateralNettingOnly = 2,
  ExClearing = 3,
  SpecialTrade = 4,
  MultilateralNetting = 5,
  ClearAgainstCentralCounterparty = 6,
  ExcludeFromCentralCounterparty = 7,
  ManualModePrePostingAndOrPreGiveup = 8,
  AutomaticPostingModeTradePostingToThePositionAccountNumberSpecified = 9,
  AutomaticGiveUpModeTradeGiveUpToTheGiveUpDestinationNumberSpecified = 10,
  QualifiedServiceRepresentativeQsr = 11,
  CustomerTrade = 12,
  SelfClearing = 13,
  BuyIn = 14
}

/*
****************************************
* Specifies how a trade was confirmed. *
****************************************
*/
export enum ConfirmationMethod {
  NonElectronic = 0,
  Electronic = 1,
  Unconfirmed = 2
}

/*
*******************************************
* Indication of how a trade was verified. *
*******************************************
*/
export enum VerificationMethod {
  NonElectronic = 0,
  Electronic = 1
}

/*
****************************************************************
* Specifies whether a party to a swap is using an exception to *
* a clearing requirement. In the US, one such clearing         *
* requirement is CFTC's rule pursuant to CEA Section 2(h)(1).  *
****************************************************************
*/
export enum ClearingRequirementException {
  NoException = 0,
  Exception = 1,
  EndUserException = 2,
  InterAffiliateException = 3,
  TreasuryAffiliateException = 4,
  CooperativeException = 5
}

/*
****************************************************************
* Used to specify whether the principal is paying or receiving *
* the fixed rate in an interest rate swap.                     *
****************************************************************
*/
export enum IRSDirection {
  PrincipalIsPayingFixedRate = 'PAY',
  PrincipalIsReceivingFixedRate = 'RCV',
  SwapIsFloatFloatOrFixedFixed = 'NA'
}

/*
******************************
* Type of regulatory report. *
******************************
*/
export enum RegulatoryReportType {
  RealTimeRt = 0,
  PrimaryEconomicTermsPet = 1,
  Snapshot = 2,
  Confirmation = 3,
  CombinationOfRtAndPet = 4,
  CombinationOfPetAndConfirmation = 5,
  CombinationOfRtPetAndConfirmation = 6,
  PostTradeValuation = 7,
  Verification = 8,
  PostTradeEvent = 9,
  PostTradeEventRtReportable = 10,
  LimitedDetailsTrade = 11,
  DailyAggregatedTrade = 12,
  VolumeOmissionTrade = 13,
  FourWeeksAggregationTrade = 14,
  IndefiniteAggregationTrade = 15,
  VolumeOmissionTradeEligibleForSubsequentAggregatedEnrichment = 16,
  FullDetailsTradeOfLimitedDetailsTrade = 17,
  FullDetailsOfDailyAggregatedTrade = 18,
  FullDetailsOfVolumeOmissionTrade = 19,
  FullDetailsOfFourWeeksAggregationTrade = 20,
  FullDetailsInAggregatedFormOfVolumeOmissionTradeEligibleForSubsequentAggregatedEnrichment = 21
}

/*
**********************************************
* Specifies how the trade is collateralized. *
**********************************************
*/
export enum TradeCollateralization {
  Uncollateralized = 0,
  PartiallyCollateralized = 1,
  OneWayCollaterallization = 2,
  FullyCollateralized = 3
}

/*
****************************************************************
* Specifies the post-execution trade continuation or lifecycle *
* event. Additional values may be used by mutual agreement of  *
* the counterparties.                                          *
****************************************************************
*/
export enum TradeContinuation {
  Novation = 0,
  PartialNovation = 1,
  TradeUnwind = 2,
  PartialTradeUnwind = 3,
  Exercise = 4,
  CompressionNetting = 5,
  FullNetting = 6,
  PartialNetting = 7,
  Amendment = 8,
  Increase = 9,
  CreditEvent = 10,
  StrategicRestructuring = 11,
  SuccessionEventReorganization = 12,
  SuccessionEventRenaming = 13,
  Porting = 14,
  Withdrawal = 15,
  Void = 16,
  AccountTransfer = 17,
  GiveUp = 18,
  TakeUp = 19,
  AveragePricing = 20,
  Reversal = 21,
  AllocationTradePosting = 22,
  Cascade = 23,
  Delivery = 24,
  OptionAssignment = 25,
  Expiration = 26,
  Maturity = 27,
  EqualPositionAdjustment = 28,
  UnequalPositionAdjustment = 29,
  Correction = 30,
  OtherPriceFormingContinuationData = 99
}

/*
*********************************************************
* The broad asset category for assessing risk exposure. *
*********************************************************
*/
export enum AssetClass {
  InterestRate = 1,
  Currency = 2,
  Credit = 3,
  Equity = 4,
  Commodity = 5,
  Other = 6,
  Cash = 7,
  Debt = 8,
  Fund = 9,
  LoanFacility = 10
}

/*
***************************************************
* The subcategory description of the asset class. *
***************************************************
*/
export enum AssetSubClass {
  SingleCurrency = 1,
  CrossCurrency = 2,
  BasketForMultiCurrency = 3,
  SingleName = 4,
  CreditIndex = 5,
  IndexTranche = 6,
  CreditBasket = 7,
  Exotic = 8,
  Common = 9,
  Preferred = 10,
  EquityIndex = 11,
  EquityBasket = 12,
  Metals = 13,
  Bullion = 14,
  Energy = 15,
  CommodityIndex = 16,
  Agricultural = 17,
  Environmental = 18,
  Freight = 19,
  Government = 20,
  Agency = 21,
  Corporate = 22,
  Financing = 23,
  MoneyMarket = 24,
  Mortgage = 25,
  Municipal = 26,
  MutualFund = 27,
  CollectiveInvestmentVehicle = 28,
  InvestmentProgram = 29,
  SpecializedAccountProgram = 30,
  TermLoan = 31,
  BridgeLoan = 32,
  LetterOfCredit = 33
}

/*
****************************************************************
* The classification or type of swap. Additional values may be *
* used by mutual agreement of the counterparties.              *
****************************************************************
*/
export enum SwapClass {
  BasisSwap = 'BS',
  IndexSwap = 'IX',
  BroadBasedSecuritySwap = 'BB',
  BasketSwap = 'SK'
}

/*
****************************
* Coupon type of the bond. *
****************************
*/
export enum CouponType {
  Zero = 0,
  FixedRate = 1,
  FloatingRate = 2,
  Structured = 3
}

/*
****************************************************************
* Time unit associated with the frequency of the bond's coupon *
* payment.                                                     *
****************************************************************
*/
export enum CouponFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The day count convention used in interest calculations for a *
* bond or an interest bearing security.  Absence of this field *
* for a bond or an interest bearing security transaction       *
* implies a "flat" trade, i.e. no accrued interest determined  *
* at time of the transaction.                                  *
****************************************************************
*/
export enum CouponDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
*******************************************
* Identifies class or source of the       *
* ConvertibleBondEquityID(1951) value.    *
* 100+ are reserved for private security. *
*******************************************
*/
export enum ConvertibleBondEquityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
********************************************************
* Indicates the seniority level of the lien in a loan. *
********************************************************
*/
export enum LienSeniority {
  Unknown = 0,
  FirstLien = 1,
  SecondLien = 2,
  ThirdLien = 3
}

/*
*************************************************************
* Specifies the type of loan when the credit default swap's *
* reference obligation is a loan.                           *
*************************************************************
*/
export enum LoanFacility {
  BridgeLoan = 0,
  LetterOfCredit = 1,
  RevolvingLoan = 2,
  SwinglineFunding = 3,
  TermLoan = 4,
  TradeClaim = 5
}

/*
***************************************************************
* Specifies the type of reference entity for first-to-default *
* CDS basket contracts.                                       *
***************************************************************
*/
export enum ReferenceEntityType {
  Asian = 1,
  AustralianAndNewZealand = 2,
  EuropeanEmergingMarkets = 3,
  Japanese = 4,
  NorthAmericanHighYield = 5,
  NorthAmericanInsurance = 6,
  NorthAmericanInvestmentGrade = 7,
  Singaporean = 8,
  WesternEuropean = 9,
  WesternEuropeanInsurance = 10
}

/*
*************************************************************
* Identifies the event which caused origination of the      *
* identifier in SideRegulatoryTradeID(1972). When more than *
* one event is the cause, use the higher enumeration value. *
* For example, if the identifier is originated due to an    *
* allocated trade which was cleared and reported, use the   *
* enumeration value 2 (Clearing).                           *
*************************************************************
*/
export enum SideRegulatoryTradeIDEvent {
  InitialBlockTrade = 0,
  Allocation = 1,
  Clearing = 2,
  Compression = 3,
  Novation = 4,
  Termination = 5,
  PostTradeValuation = 6
}

/*
**********************************************************
* Specifies the type of trade identifier provided in     *
* SideRegulatoryTradeID(1972), within the context of the *
* hierarchy of trade events.                             *
**********************************************************
*/
export enum SideRegulatoryTradeIDType {
  Current = 0,
  Previous = 1,
  Block = 2,
  Related = 3,
  ClearedBlockTrade = 4,
  TradingVenueTransactionIdentifier = 5
}

/*
**************************************************************
* The broad asset category for assessing risk exposure for a *
* multi-asset trade.                                         *
**************************************************************
*/
export enum SecondaryAssetClass {
  InterestRate = 1,
  Currency = 2,
  Credit = 3,
  Equity = 4,
  Commodity = 5,
  Other = 6,
  Cash = 7,
  Debt = 8,
  Fund = 9,
  LoanFacility = 10
}

/*
****************************************************************
* An indication of the general description of the asset class. *
****************************************************************
*/
export enum SecondaryAssetSubClass {
  SingleCurrency = 1,
  CrossCurrency = 2,
  BasketForMultiCurrency = 3,
  SingleName = 4,
  CreditIndex = 5,
  IndexTranche = 6,
  CreditBasket = 7,
  Exotic = 8,
  Common = 9,
  Preferred = 10,
  EquityIndex = 11,
  EquityBasket = 12,
  Metals = 13,
  Bullion = 14,
  Energy = 15,
  CommodityIndex = 16,
  Agricultural = 17,
  Environmental = 18,
  Freight = 19,
  Government = 20,
  Agency = 21,
  Corporate = 22,
  Financing = 23,
  MoneyMarket = 24,
  Mortgage = 25,
  Municipal = 26,
  MutualFund = 27,
  CollectiveInvestmentVehicle = 28,
  InvestmentProgram = 29,
  SpecializedAccountProgram = 30,
  TermLoan = 31,
  BridgeLoan = 32,
  LetterOfCredit = 33
}

/*
****************************************************
* Indication that a block trade will be allocated. *
****************************************************
*/
export enum BlockTrdAllocIndicator {
  BlockToBeAllocated = 0,
  BlockNotToBeAllocated = 1,
  AllocatedTrade = 2
}

/*
****************************************
* Code to represent the type of event. *
****************************************
*/
export enum UnderlyingEventType {
  Put = 1,
  Call = 2,
  Tender = 3,
  SinkingFundCall = 4,
  Activation = 5,
  Inactivation = 6,
  LastEligibleTradeDate = 7,
  SwapStartDate = 8,
  SwapEndDate = 9,
  SwapRollDate = 10,
  SwapNextStartDate = 11,
  SwapNextRollDate = 12,
  FirstDeliveryDate = 13,
  LastDeliveryDate = 14,
  InitialInventoryDueDate = 15,
  FinalInventoryDueDate = 16,
  FirstIntentDate = 17,
  LastIntentDate = 18,
  PositionRemovalDate = 19,
  MinimumNotice = 20,
  DeliveryStartTime = 21,
  DeliveryEndTime = 22,
  FirstNoticeDate = 23,
  LastNoticeDate = 24,
  FirstExerciseDate = 25,
  RedemptionDate = 26,
  TradeContinuationEffectiveDate = 27,
  Other = 99
}

/*
*****************************************************
* Specifies the coupon type of the underlying bond. *
*****************************************************
*/
export enum UnderlyingCouponType {
  Zero = 0,
  FixedRate = 1,
  FloatingRate = 2,
  Structured = 3
}

/*
****************************************************************
* Time unit associated with the frequency of the bond's coupon *
* payment.                                                     *
****************************************************************
*/
export enum UnderlyingCouponFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The day count convention used in interest calculations for a *
* bond or an interest bearing security.                        *
****************************************************************
*/
export enum UnderlyingCouponDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***************************************
* Identifies the source scheme of the *
* UnderlyingObligationID(1994).       *
***************************************
*/
export enum UnderlyingObligationIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
**********************************************************
* Identifies the source of the UnderlyingEquityID(1996). *
**********************************************************
*/
export enum UnderlyingEquityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
********************************************************
* Indicates the seniority level of the lien in a loan. *
********************************************************
*/
export enum UnderlyingLienSeniority {
  Unknown = 0,
  FirstLien = 1,
  SecondLien = 2,
  ThirdLien = 3
}

/*
*************************************************************
* Specifies the type of loan when the credit default swap's *
* reference obligation is a loan.                           *
*************************************************************
*/
export enum UnderlyingLoanFacility {
  BridgeLoan = 0,
  LetterOfCredit = 1,
  RevolvingLoan = 2,
  SwinglineFunding = 3,
  TermLoan = 4,
  TradeClaim = 5
}

/*
***************************************************************
* Specifies the type of reference entity for first-to-default *
* CDS basket contracts.                                       *
***************************************************************
*/
export enum UnderlyingReferenceEntityType {
  Asian = 1,
  AustralianAndNewZealand = 2,
  EuropeanEmergingMarkets = 3,
  Japanese = 4,
  NorthAmericanHighYield = 5,
  NorthAmericanInsurance = 6,
  NorthAmericanInvestmentGrade = 7,
  Singaporean = 8,
  WesternEuropean = 9,
  WesternEuropeanInsurance = 10
}

/*
***********************************************
* Method under which assignment was conducted *
***********************************************
*/
export enum UnderlyingAssignmentMethod {
  ProRata = 'P',
  Random = 'R'
}

/*
*********************************************
* Gives the current state of the instrument *
*********************************************
*/
export enum UnderlyingSecurityStatus {
  Active = '1',
  Inactive = '2',
  ActiveClosingOrdersOnly = '3',
  Expired = '4',
  Delisted = '5',
  KnockedOut = '6',
  KnockOutRevoked = '7',
  PendingExpiry = '8',
  Suspended = '9',
  Published = '10',
  PendingDeletion = '11'
}

/*
*******************************************************
* Type of reference obligation for credit derivatives *
* contracts.                                          *
*******************************************************
*/
export enum UnderlyingObligationType {
  Bond = '0',
  ConvertibleBond = '1',
  Mortgage = '2',
  Loan = '3'
}

/*
*********************************************************
* The broad asset category for assessing risk exposure. *
*********************************************************
*/
export enum UnderlyingAssetClass {
  InterestRate = 1,
  Currency = 2,
  Credit = 3,
  Equity = 4,
  Commodity = 5,
  Other = 6,
  Cash = 7,
  Debt = 8,
  Fund = 9,
  LoanFacility = 10
}

/*
****************************************************************
* An indication of the general description of the asset class. *
****************************************************************
*/
export enum UnderlyingAssetSubClass {
  SingleCurrency = 1,
  CrossCurrency = 2,
  BasketForMultiCurrency = 3,
  SingleName = 4,
  CreditIndex = 5,
  IndexTranche = 6,
  CreditBasket = 7,
  Exotic = 8,
  Common = 9,
  Preferred = 10,
  EquityIndex = 11,
  EquityBasket = 12,
  Metals = 13,
  Bullion = 14,
  Energy = 15,
  CommodityIndex = 16,
  Agricultural = 17,
  Environmental = 18,
  Freight = 19,
  Government = 20,
  Agency = 21,
  Corporate = 22,
  Financing = 23,
  MoneyMarket = 24,
  Mortgage = 25,
  Municipal = 26,
  MutualFund = 27,
  CollectiveInvestmentVehicle = 28,
  InvestmentProgram = 29,
  SpecializedAccountProgram = 30,
  TermLoan = 31,
  BridgeLoan = 32,
  LetterOfCredit = 33
}

/*
****************************************************************
* The type or classification of swap. Additional values may be *
* used by mutual agreement of the counterparties.              *
****************************************************************
*/
export enum UnderlyingSwapClass {
  BasisSwap = 'BS',
  IndexSwap = 'IX',
  BroadBasedSecuritySwap = 'BB',
  BasketSwap = 'SK'
}

/*
****************************************************************
* Specifies how the strike price is determined at the point of *
* option exercise. The strike may be fixed throughout the life *
* of the option, set at expiration to the value of the         *
* underlying, set to the average value of the underlying , or  *
* set to the optimal value of the underlying.                  *
****************************************************************
*/
export enum UnderlyingStrikePriceDeterminationMethod {
  FixedStrikeDefaultIfNotSpecified = 1,
  StrikeSetAtExpirationToUnderlyingOrOtherValueLookbackFloating = 2,
  StrikeSetToAverageOfUnderlyingSettlementPriceAcrossTheLifeOfTheOption = 3,
  StrikeSetToOptimalValue = 4
}

/*
**************************************************************
* Specifies the boundary condition to be used for the strike *
* price relative to the underlying price at the point of     *
* option exercise.                                           *
**************************************************************
*/
export enum UnderlyingStrikePriceBoundaryMethod {
  LessThanUnderlyingPriceIsInTheMoneyItm = 1,
  LessThanOrEqualToTheUnderlyingPriceIsInTheMoneyItm = 2,
  EqualToTheUnderlyingPriceIsInTheMoneyItm = 3,
  GreaterThanOrEqualToUnderlyingPriceIsInTheMoneyItm = 4,
  GreaterThanUnderlyingIsInTheMoneyItm = 5
}

/*
*********************************************************
* Indicates the type of payout that will result from an *
* in-the-money option.                                  *
*********************************************************
*/
export enum UnderlyingOptPayoutType {
  Vanilla = 1,
  Capped = 2,
  Binary = 3
}

/*
*******************************
* Method for price quotation. *
*******************************
*/
export enum UnderlyingPriceQuoteMethod {
  StandardMoneyPerUnitOfAPhysical = 'STD',
  Index = 'INX',
  InterestRateIndex = 'INT',
  PercentOfPar = 'PCTPAR'
}

/*
********************************************
* Indicates type of valuation method used. *
********************************************
*/
export enum UnderlyingValuationMethod {
  PremiumStyle = 'EQTY',
  FuturesStyleMarkToMarket = 'FUT',
  FuturesStyleWithAnAttachedCashAdjustment = 'FUTDA',
  CdsStyleCollateralizationOfMarketToMarketAndCoupon = 'CDS',
  CdsInDeliveryUseRecoveryRateToCalculateObligation = 'CDSD'
}

/*
****************************************************************
* Indicates whether the instruments are pre-listed only or can *
* also be defined via user request.                            *
****************************************************************
*/
export enum UnderlyingListMethod {
  PreListedOnly = 0,
  UserRequested = 1
}

/*
**************************************************************
* Indicates whether a restriction applies to short selling a *
* security.                                                  *
**************************************************************
*/
export enum UnderlyingShortSaleRestriction {
  NoRestrictions = 0,
  SecurityIsNotShortable = 1,
  SecurityNotShortableAtOrBelowTheBestBid = 2,
  SecurityIsNotShortableWithoutPreBorrow = 3
}

/*
*****************************************
* Identifies the type of complex event. *
*****************************************
*/
export enum UnderlyingComplexEventType {
  Capped = 1,
  Trigger = 2,
  KnockInUp = 3,
  KnockInDown = 4,
  KnockOutUp = 5,
  KnockOutDown = 6,
  Underlying = 7,
  ResetBarrier = 8,
  RollingBarrier = 9,
  OneTouch = 10,
  NoTouch = 11,
  DoubleOneTouch = 12,
  DoubleNoTouch = 13,
  ForeignExchangeComposite = 14,
  ForeignExchangeQuanto = 15,
  ForeignExchangeCrossCurrency = 16,
  StrikeSpread = 17,
  CalendarSpread = 18,
  PriceObservationAsianOrLookback = 19,
  PassThrough = 20,
  StrikeSchedule = 21,
  EquityValuation = 22,
  DividendValuation = 23
}

/*
****************************************************************
* Specifies the boundary condition to be used for the event    *
* price relative to the UnderlyingComplexEventPrice(2048) at   *
* the point the complex event outcome takes effect as          *
* determined by the UnderlyingComplexEventPriceTimeType(2051). *
****************************************************************
*/
export enum UnderlyingComplexEventPriceBoundaryMethod {
  LessThanComplexEventPrice1486 = 1,
  LessThanOrEqualToComplexEventPrice1486 = 2,
  EqualToComplexEventPrice1486 = 3,
  GreaterThanOrEqualToComplexEventPrice1486 = 4,
  GreaterThanComplexEventPrice1486 = 5
}

/*
***************************************************************
* Specifies when the complex event outcome takes effect. The  *
* outcome of a complex event is a payout or barrier action as *
* specified by the UnderlyingComplexEventType(2046).          *
***************************************************************
*/
export enum UnderlyingComplexEventPriceTimeType {
  Expiration = 1,
  ImmediateAtAnyTime = 2,
  SpecifiedDateTime = 3,
  Close = 4,
  Open = 5,
  OfficialSettlementPrice = 6,
  DerivativesClose = 7,
  AsSpecifiedInMasterConfirmation = 8
}

/*
***************************************************************
* Specifies the condition between complex events when more    *
* than one event is specified.                                *
*                                                             *
* Multiple barrier events would use an "or" condition since   *
* only one can be effective at a given time. A set of digital *
* range events would use an "and" condition since both        *
* conditions must be in effect for a payout to result.        *
***************************************************************
*/
export enum UnderlyingComplexEventCondition {
  And = 1,
  Or = 2
}

/*
****************************************
* Code to represent the type of event. *
****************************************
*/
export enum LegEventType {
  Put = 1,
  Call = 2,
  Tender = 3,
  SinkingFundCall = 4,
  Activation = 5,
  Inactivation = 6,
  LastEligibleTradeDate = 7,
  SwapStartDate = 8,
  SwapEndDate = 9,
  SwapRollDate = 10,
  SwapNextStartDate = 11,
  SwapNextRollDate = 12,
  FirstDeliveryDate = 13,
  LastDeliveryDate = 14,
  InitialInventoryDueDate = 15,
  FinalInventoryDueDate = 16,
  FirstIntentDate = 17,
  LastIntentDate = 18,
  PositionRemovalDate = 19,
  MinimumNotice = 20,
  DeliveryStartTime = 21,
  DeliveryEndTime = 22,
  FirstNoticeDate = 23,
  LastNoticeDate = 24,
  FirstExerciseDate = 25,
  RedemptionDate = 26,
  TradeContinuationEffectiveDate = 27,
  Other = 99
}

/*
****************************************
* Time unit associated with the event. *
****************************************
*/
export enum LegEventTimeUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************************
* The broad asset category for assessing risk exposure. *
*********************************************************
*/
export enum LegAssetClass {
  InterestRate = 1,
  Currency = 2,
  Credit = 3,
  Equity = 4,
  Commodity = 5,
  Other = 6,
  Cash = 7,
  Debt = 8,
  Fund = 9,
  LoanFacility = 10
}

/*
***********************************************************
* The general subcategory description of the asset class. *
***********************************************************
*/
export enum LegAssetSubClass {
  SingleCurrency = 1,
  CrossCurrency = 2,
  BasketForMultiCurrency = 3,
  SingleName = 4,
  CreditIndex = 5,
  IndexTranche = 6,
  CreditBasket = 7,
  Exotic = 8,
  Common = 9,
  Preferred = 10,
  EquityIndex = 11,
  EquityBasket = 12,
  Metals = 13,
  Bullion = 14,
  Energy = 15,
  CommodityIndex = 16,
  Agricultural = 17,
  Environmental = 18,
  Freight = 19,
  Government = 20,
  Agency = 21,
  Corporate = 22,
  Financing = 23,
  MoneyMarket = 24,
  Mortgage = 25,
  Municipal = 26,
  MutualFund = 27,
  CollectiveInvestmentVehicle = 28,
  InvestmentProgram = 29,
  SpecializedAccountProgram = 30,
  TermLoan = 31,
  BridgeLoan = 32,
  LetterOfCredit = 33
}

/*
**************
* Swap type. *
**************
*/
export enum LegSwapClass {
  BasisSwap = 'BS',
  IndexSwap = 'IX',
  BroadBasedSecuritySwap = 'BB',
  BasketSwap = 'SK'
}

/*
**************************************************************
* The broad asset category for assessing risk exposure for a *
* multi-asset trade.                                         *
**************************************************************
*/
export enum LegSecondaryAssetClass {
  InterestRate = 1,
  Currency = 2,
  Credit = 3,
  Equity = 4,
  Commodity = 5,
  Other = 6,
  Cash = 7,
  Debt = 8,
  Fund = 9,
  LoanFacility = 10
}

/*
****************************************************************
* An indication of the general description of the asset class. *
****************************************************************
*/
export enum LegSecondaryAssetSubClass {
  SingleCurrency = 1,
  CrossCurrency = 2,
  BasketForMultiCurrency = 3,
  SingleName = 4,
  CreditIndex = 5,
  IndexTranche = 6,
  CreditBasket = 7,
  Exotic = 8,
  Common = 9,
  Preferred = 10,
  EquityIndex = 11,
  EquityBasket = 12,
  Metals = 13,
  Bullion = 14,
  Energy = 15,
  CommodityIndex = 16,
  Agricultural = 17,
  Environmental = 18,
  Freight = 19,
  Government = 20,
  Agency = 21,
  Corporate = 22,
  Financing = 23,
  MoneyMarket = 24,
  Mortgage = 25,
  Municipal = 26,
  MutualFund = 27,
  CollectiveInvestmentVehicle = 28,
  InvestmentProgram = 29,
  SpecializedAccountProgram = 30,
  TermLoan = 31,
  BridgeLoan = 32,
  LetterOfCredit = 33
}

/*
**************************************************************
* The broad asset category for assessing risk exposure for a *
* multi-asset trade.                                         *
**************************************************************
*/
export enum UnderlyingSecondaryAssetClass {
  InterestRate = 1,
  Currency = 2,
  Credit = 3,
  Equity = 4,
  Commodity = 5,
  Other = 6,
  Cash = 7,
  Debt = 8,
  Fund = 9,
  LoanFacility = 10
}

/*
****************************************************************
* An indication of the general description of the asset class. *
****************************************************************
*/
export enum UnderlyingSecondaryAssetSubClass {
  SingleCurrency = 1,
  CrossCurrency = 2,
  BasketForMultiCurrency = 3,
  SingleName = 4,
  CreditIndex = 5,
  IndexTranche = 6,
  CreditBasket = 7,
  Exotic = 8,
  Common = 9,
  Preferred = 10,
  EquityIndex = 11,
  EquityBasket = 12,
  Metals = 13,
  Bullion = 14,
  Energy = 15,
  CommodityIndex = 16,
  Agricultural = 17,
  Environmental = 18,
  Freight = 19,
  Government = 20,
  Agency = 21,
  Corporate = 22,
  Financing = 23,
  MoneyMarket = 24,
  Mortgage = 25,
  Municipal = 26,
  MutualFund = 27,
  CollectiveInvestmentVehicle = 28,
  InvestmentProgram = 29,
  SpecializedAccountProgram = 30,
  TermLoan = 31,
  BridgeLoan = 32,
  LetterOfCredit = 33
}

/*
************************************************************
* Specifies whether or not MarginAmtFXRate(2088) should be *
* multipled or divided.                                    *
************************************************************
*/
export enum MarginAmtFXRateCalc {
  Divide = 'D',
  Multiply = 'M'
}

/*
*************************************************************
* Specifies whether or not CollateralFXRate(2090) should be *
* multipled or divided.                                     *
*************************************************************
*/
export enum CollateralFXRateCalc {
  Divide = 'D',
  Multiply = 'M'
}

/*
*************************************************************
* Specifies whether or not PayCollectFXRate(2094) should be *
* multipled or divided.                                     *
*************************************************************
*/
export enum PayCollectFXRateCalc {
  Divide = 'D',
  Multiply = 'M'
}

/*
***********************************************************
* Specifies whether or not PositionFXRate(2097) should be *
* multipled or divided.                                   *
***********************************************************
*/
export enum PositionFXRateCalc {
  Divide = 'D',
  Multiply = 'M'
}

/*
************************************************
* The encoding type of the content provided in *
* EncodedAttachment(2112).                     *
************************************************
*/
export enum AttachmentEncodingType {
  Base64Encoding = 0,
  UnencodedBinaryContent = 1
}

/*
************************************************
* Specifies the negotiation method to be used. *
************************************************
*/
export enum NegotiationMethod {
  AutoSpot = 0,
  NegotiatedSpot = 1,
  TheSpotPriceForTheReferenceOrBenchmarkSecurityIsToBeNegotiatedViaPhoneOrVoice = 2
}

/*
*******************************
* Trade side of payout payer. *
*******************************
*/
export enum ComplexOptPayoutPaySide {
  Buy = 1,
  Sell = 2
}

/*
**********************************
* Trade side of payout receiver. *
**********************************
*/
export enum ComplexOptPayoutReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
******************************************
* Specifies when the payout is to occur. *
******************************************
*/
export enum ComplexOptPayoutTime {
  Close = 0,
  Open = 1,
  OfficialSettlement = 2,
  ValuationTime = 3,
  ExchangeSettlementTime = 4,
  DerivativesClose = 5,
  AsSpecifiedInMasterConfirmation = 6
}

/*
***********************************************
* For foreign exchange Quanto option feature. *
***********************************************
*/
export enum ComplexEventQuoteBasis {
  Currency1PerCurrency2 = 0,
  Currency2PerCurrency1 = 1
}

/*
*******************************************
* Used to identify the calculation agent. *
*******************************************
*/
export enum ComplexEventCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***************************************************************
* The notifying party is the party that notifies the other    *
* party when a credit event has occurred by means of a credit *
* event notice. If more than one party is referenced as being *
* the notifying party then either party may notify the other  *
* of a credit event occurring.                                *
***************************************************************
*/
export enum ComplexEventCreditEventNotifyingParty {
  SellerNotifies = 0,
  BuyerNotifies = 1,
  SellerOrBuyerNotifies = 2
}

/*
*****************************************
* Specifies the type of trade strategy. *
*****************************************
*/
export enum StrategyType {
  Straddle = 'STD',
  Strangle = 'STG',
  Butterfly = 'BF',
  Condor = 'CNDR',
  CallableInversibleSnowball = 'CISN',
  Other = 'OTHER'
}

/*
***************************************************************
* Specifies the consequences of bullion settlement disruption *
* events.                                                     *
***************************************************************
*/
export enum SettlDisruptionProvision {
  Negotiation = 1,
  CancellationAndPayment = 2
}

/*
******************************************************
* Specifies the rounding direction if not overridden *
* elsewhere.                                         *
******************************************************
*/
export enum InstrumentRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
**************************************************************
* Specifies the method under which assignment was conducted. *
**************************************************************
*/
export enum LegInstrmtAssignmentMethod {
  ProRata = 'P',
  Random = 'R'
}

/*
**********************************************************
* Used for derivatives. Denotes the current state of the *
* InstrumentLeg.                                         *
**********************************************************
*/
export enum LegSecurityStatus {
  Active = '1',
  Inactive = '2',
  ActiveClosingOrdersOnly = '3',
  Expired = '4',
  Delisted = '5',
  KnockedOut = '6',
  KnockOutRevoked = '7',
  PendingExpiry = '8',
  Suspended = '9',
  Published = '10',
  PendingDeletion = '11'
}

/*
***************************************************************
* A category of CDS credit event in which the underlying bond *
* experiences a restructuring.                                *
* Used to define a CDS instrument.                            *
***************************************************************
*/
export enum LegRestructuringType {
  FullRestructuring = 'FR',
  ModifiedRestructuring = 'MR',
  ModifiedModRestructuring = 'MM',
  NoRestructuringSpecified = 'XR'
}

/*
****************************************************************
* Specifies which issue (underlying bond) will receive payment *
* priority in the event of a default.                          *
* Used to define a CDS instrument.                             *
****************************************************************
*/
export enum LegSeniority {
  SeniorSecured = 'SD',
  Senior = 'SR',
  Subordinated = 'SB'
}

/*
*******************************************************
* Type of reference obligation for credit derivatives *
* contracts.                                          *
*******************************************************
*/
export enum LegObligationType {
  Bond = '0',
  ConvertibleBond = '1',
  Mortgage = '2',
  Loan = '3'
}

/*
*********************************************
* The subclassification or subtype of swap. *
*********************************************
*/
export enum LegSwapSubClass {
  Amortizing = 'AMTZ',
  Compounding = 'COMP'
}

/*
******************************************
* Specifies the coupon type of the bond. *
******************************************
*/
export enum LegCouponType {
  Zero = 0,
  FixedRate = 1,
  FloatingRate = 2,
  Structured = 3
}

/*
****************************************************************
* Time unit associated with the frequency of the bond's coupon *
* payment.                                                     *
****************************************************************
*/
export enum LegCouponFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The day count convention used in interest calculations for a *
* bond or an interest bearing security.                        *
****************************************************************
*/
export enum LegCouponDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***************************************************
* Identifies class or source of the               *
* LegConvertibleBondEquitySecurityID(2166) value. *
***************************************************
*/
export enum LegConvertibleBondEquityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
********************************************************
* Indicates the seniority level of the lien in a loan. *
********************************************************
*/
export enum LegLienSeniority {
  Unknown = 0,
  FirstLien = 1,
  SecondLien = 2,
  ThirdLien = 3
}

/*
*************************************************************
* Specifies the type of loan when the credit default swap's *
* reference obligation is a loan.                           *
*************************************************************
*/
export enum LegLoanFacility {
  BridgeLoan = 0,
  LetterOfCredit = 1,
  RevolvingLoan = 2,
  SwinglineFunding = 3,
  TermLoan = 4,
  TradeClaim = 5
}

/*
***************************************************************
* Specifies the type of reference entity for first-to-default *
* CDS basket contracts.                                       *
***************************************************************
*/
export enum LegReferenceEntityType {
  Asian = 1,
  AustralianAndNewZealand = 2,
  EuropeanEmergingMarkets = 3,
  Japanese = 4,
  NorthAmericanHighYield = 5,
  NorthAmericanInsurance = 6,
  NorthAmericanInvestmentGrade = 7,
  Singaporean = 8,
  WesternEuropean = 9,
  WesternEuropeanInsurance = 10
}

/*
*************************************************************
* Used to express the unit of measure (UOM) of the price if *
* different from the contract.                              *
*************************************************************
*/
export enum LegStrikeUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
****************************************************************
* Specifies how the strike price is determined at the point of *
* option exercise. The strike may be fixed throughout the life *
* of the option, set at expiration to the value of the         *
* underlying, set to the average value of the underlying , or  *
* set to the optimal value of the underlying.                  *
****************************************************************
*/
export enum LegStrikePriceDeterminationMethod {
  FixedStrikeDefaultIfNotSpecified = 1,
  StrikeSetAtExpirationToUnderlyingOrOtherValueLookbackFloating = 2,
  StrikeSetToAverageOfUnderlyingSettlementPriceAcrossTheLifeOfTheOption = 3,
  StrikeSetToOptimalValue = 4
}

/*
**************************************************************
* Specifies the boundary condition to be used for the strike *
* price relative to the underlying price at the point of     *
* option exercise.                                           *
**************************************************************
*/
export enum LegStrikePriceBoundaryMethod {
  LessThanUnderlyingPriceIsInTheMoneyItm = 1,
  LessThanOrEqualToTheUnderlyingPriceIsInTheMoneyItm = 2,
  EqualToTheUnderlyingPriceIsInTheMoneyItm = 3,
  GreaterThanOrEqualToUnderlyingPriceIsInTheMoneyItm = 4,
  GreaterThanUnderlyingIsInTheMoneyItm = 5
}

/*
****************************************************************
* Specifies how the underlying price is determined at the      *
* point of option exercise. The underlying price may be set to *
* the current settlement price, set to a special reference,    *
* set to the optimal value of the underlying during the        *
* defined period ("Look-back") or set to the average value of  *
* the underlying during the defined period ("Asian option").   *
****************************************************************
*/
export enum LegUnderlyingPriceDeterminationMethod {
  Regular = 1,
  SpecialReference = 2,
  OptimalValueLookback = 3,
  AverageValueAsianOption = 4
}

/*
**************************************************************
* Settlement method for a contract or instrument. Additional *
* values may be used with bilateral agreement.               *
**************************************************************
*/
export enum LegSettlMethod {
  CashSettlementRequired = 'C',
  PhysicalSettlementRequired = 'P',
  ElectionAtExercise = 'E'
}

/*
*********************************************************
* Indicates the type of payout that will result from an *
* in-the-money option.                                  *
*********************************************************
*/
export enum LegOptPayoutType {
  Vanilla = 1,
  Capped = 2,
  Binary = 3
}

/*
*********************************************
* Specifies the method for price quotation. *
*********************************************
*/
export enum LegPriceQuoteMethod {
  StandardMoneyPerUnitOfAPhysical = 'STD',
  Index = 'INX',
  InterestRateIndex = 'INT',
  PercentOfPar = 'PCTPAR'
}

/*
***************************************************
* Specifies the type of valuation method applied. *
***************************************************
*/
export enum LegValuationMethod {
  PremiumStyle = 'EQTY',
  FuturesStyleMarkToMarket = 'FUT',
  FuturesStyleWithAnAttachedCashAdjustment = 'FUTDA',
  CdsStyleCollateralizationOfMarketToMarketAndCoupon = 'CDS',
  CdsInDeliveryUseRecoveryRateToCalculateObligation = 'CDSD'
}

/*
************************************************************
* Indicates whether instruments are pre-listed only or can *
* also be defined via user request.                        *
************************************************************
*/
export enum LegListMethod {
  PreListedOnly = 0,
  UserRequested = 1
}

/*
*********************************************************
* The program under which a commercial paper is issued. *
*********************************************************
*/
export enum LegCPProgram {
  E3A3 = 1,
  E42 = 2,
  E3A2 = 3,
  E3A33C7 = 4,
  E3A4 = 5,
  E3A5 = 6,
  E3A7 = 7,
  E3C7 = 8,
  Other = 99
}

/*
**************************************************************
* Indicates whether a restriction applies to short selling a *
* security.                                                  *
**************************************************************
*/
export enum LegShortSaleRestriction {
  NoRestrictions = 0,
  SecurityIsNotShortable = 1,
  SecurityNotShortableAtOrBelowTheBestBid = 2,
  SecurityIsNotShortableWithoutPreBorrow = 3
}

/*
****************************************************************
* Indicates the broad product or asset classification.  May be *
* used to provide grouping for the product taxonomy            *
* (Product(460), SecurityType(167), etc.) and/or the risk      *
* taxonomy (AssetClass(1938), AssetSubClass(1939),             *
* AssetType(1940), etc.).                                      *
****************************************************************
*/
export enum AssetGroup {
  Financials = 1,
  Commodities = 2,
  AlternativeInvestments = 3
}

/*
*****************************************
* Specifies the type of trade strategy. *
*****************************************
*/
export enum LegStrategyType {
  Straddle = 'STD',
  Strangle = 'STG',
  Butterfly = 'BF',
  Condor = 'CNDR',
  CallableInversibleSnowball = 'CISN',
  Other = 'OTHER'
}

/*
***************************************************************
* Specifies the consequences of bullion settlement disruption *
* events.                                                     *
***************************************************************
*/
export enum LegSettlDisruptionProvision {
  Negotiation = 1,
  CancellationAndPayment = 2
}

/*
******************************************************
* Specifies the rounding direction if not overridden *
* elsewhere.                                         *
******************************************************
*/
export enum LegInstrumentRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
*****************************************
* Identifies the type of complex event. *
*****************************************
*/
export enum LegComplexEventType {
  Capped = 1,
  Trigger = 2,
  KnockInUp = 3,
  KnockInDown = 4,
  KnockOutUp = 5,
  KnockOutDown = 6,
  Underlying = 7,
  ResetBarrier = 8,
  RollingBarrier = 9,
  OneTouch = 10,
  NoTouch = 11,
  DoubleOneTouch = 12,
  DoubleNoTouch = 13,
  ForeignExchangeComposite = 14,
  ForeignExchangeQuanto = 15,
  ForeignExchangeCrossCurrency = 16,
  StrikeSpread = 17,
  CalendarSpread = 18,
  PriceObservationAsianOrLookback = 19,
  PassThrough = 20,
  StrikeSchedule = 21,
  EquityValuation = 22,
  DividendValuation = 23
}

/*
*******************************
* Trade side of payout payer. *
*******************************
*/
export enum LegComplexOptPayoutPaySide {
  Buy = 1,
  Sell = 2
}

/*
**********************************
* Trade side of payout receiver. *
**********************************
*/
export enum LegComplexOptPayoutReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
******************************************
* Specifies when the payout is to occur. *
******************************************
*/
export enum LegComplexOptPayoutTime {
  Close = 0,
  Open = 1,
  OfficialSettlement = 2,
  ValuationTime = 3,
  ExchangeSettlementTime = 4,
  DerivativesClose = 5,
  AsSpecifiedInMasterConfirmation = 6
}

/*
**************************************************************
* Specifies the boundary condition to be used for the event  *
* price relative to the complex event price at the point the *
* complex event outcome takes effect as determined by the    *
* LegComplexEventPriceTimeType(2231).                        *
**************************************************************
*/
export enum LegComplexEventPriceBoundaryMethod {
  LessThanComplexEventPrice1486 = 1,
  LessThanOrEqualToComplexEventPrice1486 = 2,
  EqualToComplexEventPrice1486 = 3,
  GreaterThanOrEqualToComplexEventPrice1486 = 4,
  GreaterThanComplexEventPrice1486 = 5
}

/*
***************************************************************
* Specifies when the complex event outcome takes effect. The  *
* outcome of a complex event is a payout or barrier action as *
* specified by the LegComplexEventType(2219).                 *
***************************************************************
*/
export enum LegComplexEventPriceTimeType {
  Expiration = 1,
  ImmediateAtAnyTime = 2,
  SpecifiedDateTime = 3,
  Close = 4,
  Open = 5,
  OfficialSettlementPrice = 6,
  DerivativesClose = 7,
  AsSpecifiedInMasterConfirmation = 8
}

/*
***************************************************************
* Specifies the condition between complex events when more    *
* than one event is specified.                                *
* Multiple barrier events would use an "or" condition since   *
* only one can be effective at a given time. A set of digital *
* range events would use an "and" condition since both        *
* conditions must be in effect for a payout to result.        *
***************************************************************
*/
export enum LegComplexEventCondition {
  And = 1,
  Or = 2
}

/*
***********************************************
* For foreign exchange Quanto option feature. *
***********************************************
*/
export enum LegComplexEventQuoteBasis {
  Currency1PerCurrency2 = 0,
  Currency2PerCurrency1 = 1
}

/*
*******************************************
* Used to identify the calculation agent. *
*******************************************
*/
export enum LegComplexEventCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***************************************************************
* The notifying party is the party that notifies the other    *
* party when a credit event has occurred by means of a credit *
* event notice. If more than one party is referenced as being *
* the notifying party then either party may notify the other  *
* of a credit event occurring.                                *
***************************************************************
*/
export enum LegComplexEventCreditEventNotifyingParty {
  SellerNotifies = 0,
  BuyerNotifies = 1,
  SellerOrBuyerNotifies = 2
}

/*
***************************************************
* Used to identify source of instrument party id. *
***************************************************
*/
export enum LegInstrumentPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
*****************************************************
* Used to identify the role of instrument party id. *
*****************************************************
*/
export enum LegInstrumentPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*************************************************
* Type of LegInstrumentPartySubID (2259) value. *
*************************************************
*/
export enum LegInstrumentPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*******************************
* Trade side of payout payer. *
*******************************
*/
export enum UnderlyingComplexOptPayoutPaySide {
  Buy = 1,
  Sell = 2
}

/*
**********************************
* Trade side of payout receiver. *
**********************************
*/
export enum UnderlyingComplexOptPayoutReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
*****************************************
* The time when the payout is to occur. *
*****************************************
*/
export enum UnderlyingComplexOptPayoutTime {
  Close = 0,
  Open = 1,
  OfficialSettlement = 2,
  ValuationTime = 3,
  ExchangeSettlementTime = 4,
  DerivativesClose = 5,
  AsSpecifiedInMasterConfirmation = 6
}

/*
*************************************************
* Specifies the currency pairing for the quote. *
*************************************************
*/
export enum UnderlyingComplexEventQuoteBasis {
  Currency1PerCurrency2 = 0,
  Currency2PerCurrency1 = 1
}

/*
*******************************************
* Used to identify the calculation agent. *
*******************************************
*/
export enum UnderlyingComplexEventCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***************************************************************
* The notifying party is the party that notifies the other    *
* party when a credit event has occurred by means of a credit *
* event notice. If more than one party is referenced as being *
* the notifying party then either party may notify the other  *
* of a credit event occurring.                                *
***************************************************************
*/
export enum UnderlyingComplexEventCreditEventNotifyingParty {
  SellerNotifies = 0,
  BuyerNotifies = 1,
  SellerOrBuyerNotifies = 2
}

/*
*********************************************
* The subclassification or subtype of swap. *
*********************************************
*/
export enum UnderlyingSwapSubClass {
  Amortizing = 'AMTZ',
  Compounding = 'COMP'
}

/*
*************************************************************
* Used to express the unit of measure (UOM) of the price if *
* different from the contract.                              *
*************************************************************
*/
export enum UnderlyingStrikeUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
*****************************************
* Specifies the type of trade strategy. *
*****************************************
*/
export enum UnderlyingStrategyType {
  Straddle = 'STD',
  Strangle = 'STG',
  Butterfly = 'BF',
  Condor = 'CNDR',
  CallableInversibleSnowball = 'CISN',
  Other = 'OTHER'
}

/*
***************************************************************
* Specifies the consequences of settlement disruption events. *
***************************************************************
*/
export enum UnderlyingSettlDisruptionProvision {
  Negotiation = 1,
  CancellationAndPayment = 2
}

/*
******************************************************
* Specifies the rounding direction if not overridden *
* elsewhere.                                         *
******************************************************
*/
export enum UnderlyingInstrumentRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
********************************
* Status of risk limit report. *
********************************
*/
export enum RiskLimitReportStatus {
  Accepted = 0,
  Rejected = 1
}

/*
****************************************************************
* The reason for rejecting the PartyRiskLimitsReport(35=CM) or *
* PartyRiskLimitsUpdateReport(35=CR).                          *
****************************************************************
*/
export enum RiskLimitReportRejectReason {
  UnknownRiskLimitReportId1667 = 0,
  UnknownParty = 1,
  Other = 99
}

/*
**********************************************************
* Specifies the transaction type of the risk limit check *
* request.                                               *
**********************************************************
*/
export enum RiskLimitCheckTransType {
  New = 0,
  Cancel = 1,
  Replace = 2
}

/*
**********************************************
* Specifies the type of limit check message. *
**********************************************
*/
export enum RiskLimitCheckType {
  Submit = 0,
  LimitConsumed = 1
}

/*
*************************************************************
* Specifies the type of limit amount check being requested. *
*************************************************************
*/
export enum RiskLimitCheckRequestType {
  AllOrNoneDefaultIfNotSpecified = 0,
  Partial = 1
}

/*
*********************************************************
* Indicates the status of the risk limit check request. *
*********************************************************
*/
export enum RiskLimitCheckRequestStatus {
  Approved = 0,
  PartiallyApproved = 1,
  Rejected = 2,
  ApprovalPending = 3,
  Cancelled = 4
}

/*
*********************************************
* Result of the credit limit check request. *
*********************************************
*/
export enum RiskLimitCheckRequestResult {
  SuccessfulDefault = 0,
  InvalidParty = 1,
  RequestedAmountExceedsCreditLimit = 2,
  RequestedAmountExceedsClipSizeLimit = 3,
  RequestExceedsMaximumNotionalOrderAmount = 4,
  Other = 99
}

/*
***********************************************************
* Specifies the type of action to take or was taken for a *
* given party.                                            *
***********************************************************
*/
export enum PartyActionType {
  Suspend = 0,
  HaltTrading = 1,
  Reinstate = 2
}

/*
**********************************************************
* Specifies the action taken as a result of the          *
* PartyActionType(2239) of the PartyActionRequest(35=DH) *
* message.                                               *
**********************************************************
*/
export enum PartyActionResponse {
  Accepted = 0,
  Completed = 1,
  Rejected = 2
}

/*
**********************************************************
* Specifies the reason the PartyActionRequest(35=DH) was *
* rejected.                                              *
**********************************************************
*/
export enum PartyActionRejectReason {
  InvalidPartyOrParties = 0,
  UnknownRequestingParty = 1,
  NotAuthorized = 98,
  Other = 99
}

/*
******************************************************
* Specifies which type of identifier is specified in *
* RefRiskLimitCheckID(2334) field.                   *
******************************************************
*/
export enum RefRiskLimitCheckIDType {
  RiskLimitRequestId1666 = 0,
  RiskLimitCheckId2319 = 1,
  OutOfBandIdentifier = 3
}

/*
**********************************************************
* Unit of time in which RiskLimitVelocityPeriod(2336) is *
* expressed.                                             *
**********************************************************
*/
export enum RiskLimitVelocityUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
*****************************************************
* Qualifies the value of RequestingPartyRole(1660). *
*****************************************************
*/
export enum RequestingPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
**************************************************************
* Specifies the type of credit limit check model workflow to *
* apply for the specified party                              *
**************************************************************
*/
export enum RiskLimitCheckModelType {
  NoneDefaultIfNotSpecified = 0,
  PlusOneModel = 1,
  PingModel = 2,
  PushModel = 3
}

/*
***************************************************************
* Indicates the status of the risk limit check performed on a *
* trade.                                                      *
***************************************************************
*/
export enum RiskLimitCheckStatus {
  Accepted = 0,
  Rejected = 1,
  ClaimRequired = 2,
  PreDefinedLimitCheckSucceeded = 3,
  PreDefinedLimitCheckFailed = 4,
  PreDefinedAutoAcceptRuleInvoked = 5,
  PreDefinedAutoRejectRuleInvoked = 6,
  AcceptedByClearingFirm = 7,
  RejectedByClearingFirm = 8,
  Pending = 9,
  AcceptedByCreditHub = 10,
  RejectedByCreditHub = 11,
  PendingCreditHubCheck = 12,
  AcceptedByExecutionVenue = 13,
  RejectedByExecutionVenue = 14
}

/*
*************************************************************
* Indicates the status of the risk limit check performed on *
* the side of a trade.                                      *
*************************************************************
*/
export enum SideRiskLimitCheckStatus {
  Accepted = 0,
  Rejected = 1,
  ClaimRequired = 2,
  PreDefinedLimitCheckSucceeded = 3,
  PreDefinedLimitCheckFailed = 4,
  PreDefinedAutoAcceptRuleInvoked = 5,
  PreDefinedAutoRejectRuleInvoked = 6,
  AcceptedByClearingFirm = 7,
  RejectedByClearingFirm = 8,
  Pending = 9,
  AcceptedByCreditHub = 10,
  RejectedByCreditHub = 11,
  PendingCreditHubCheck = 12,
  AcceptedByExecutionVenue = 13,
  RejectedByExecutionVenue = 14
}

/*
*****************************************************
* Specifies the regulatory mandate or rule that the *
* transaction complies with.                        *
*****************************************************
*/
export enum RegulatoryTransactionType {
  NoneDefaultIfNotSpecified = 0,
  SwapExecutionFacilitySefRequiredTransaction = 1,
  SwapExecutionFacilitySefPermittedTransaction = 2
}

/*
****************************************************************
* Indicates the broad product or asset classification.  May be *
* used to provide grouping for the product taxonomy            *
* (Product(460), SecurityType(167), etc.) and/or the risk      *
* taxonomy (AssetClass(1938), AssetSubClass(1939),             *
* AssetType(1940), etc.).                                      *
****************************************************************
*/
export enum LegAssetGroup {
  Financials = 1,
  Commodities = 2,
  AlternativeInvestments = 3
}

/*
******************************************
* The status of risk limits for a party. *
******************************************
*/
export enum PartyRiskLimitStatus {
  Disabled = 0,
  Enabled = 1
}

/*
*******************************************************
* Indicates whether the trade price was adjusted for  *
* compensation (i.e. includes a mark-up, mark-down or *
* commission) in the price paid.                      *
*******************************************************
*/
export enum RemunerationIndicator {
  NoRemunerationPaid = 0,
  RemunerationPaid = 1
}

/*
********************************************************
* Indicates action that triggered the Position Report. *
********************************************************
*/
export enum PosReportAction {
  New = 1,
  Replace = 2,
  Cancel = 3,
  Reverse = 4
}

/*
************************************************************
* Specifies whether LastPx(31) [TradeCaptureReport] or     *
* SettlPrice(730) [PositionReport] should be multiplied or *
* divided.                                                 *
************************************************************
*/
export enum SettlPriceFxRateCalc {
  Multiply = 'M',
  Divide = 'D'
}

/*
************************************************************
* The type of identification taxonomy used to identify the *
* security.                                                *
************************************************************
*/
export enum TaxonomyType {
  IsinOrAlternateInstrumentIdentifierPlusCfi = 'I',
  InterimTaxonomy = 'E'
}

/*
********************************************************
* Used to further qualify the value of PartyRole(452). *
********************************************************
*/
export enum PartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************
* Used to further qualify the value of *
* DerivativeInstrumentPartyRole(1295). *
****************************************
*/
export enum DerivativeInstrumentPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************
* Used to further qualify the value of *
* InstrumentPartyRole(1051).           *
****************************************
*/
export enum InstrumentPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************
* Used to further qualify the value of *
* LegInstrumentPartyRole(2257).        *
****************************************
*/
export enum LegInstrumentPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************
* Used to further qualify the value of *
* LegProvisionPartyRole(40536).        *
****************************************
*/
export enum LegProvisionPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
***************************************************************
* Used to further qualify the value of Nested2PartyRole(759). *
***************************************************************
*/
export enum Nested2PartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
***************************************************************
* Used to further qualify the value of Nested3PartyRole(951). *
***************************************************************
*/
export enum Nested3PartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************************************
* Used to further qualify the value of Nested4PartyRole(1417). *
****************************************************************
*/
export enum Nested4PartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
**************************************************************
* Used to further qualify the value of NestedPartyRole(538). *
**************************************************************
*/
export enum NestedPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************
* Used to further qualify the value of *
* ProvisionPartyRole(40177).           *
****************************************
*/
export enum ProvisionPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************
* Used to further qualify the value of *
* RequestedPartyRole(1509).            *
****************************************
*/
export enum RequestedPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
***************************************************************
* Indicates the contingency attribute for a trade in an asset *
* class that may be contingent on the clearing of a           *
* corresponding paired trade (for example Exchange for        *
* Physical (EFP), Exchange for Swap (EFS), Exchange for       *
* Related (EFR) or Exchange for Option (EFO), collectively    *
* called EFRPs). Once the paired trade clears or fails to     *
* clear, the related trade (the trade which carries this      *
* attribute) ceases to exist.                                 *
***************************************************************
*/
export enum TradeContingency {
  DoesNotApplyDefaultIfNotSpecified = 0,
  ContingentTrade = 1,
  NonContingentTrade = 2
}

/*
*************************************************************
* Used to further qualify the value of RootPartyRole(1119). *
*************************************************************
*/
export enum RootPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
*************************************************************
* Used to further qualify the value of SettlPartyRole(784). *
*************************************************************
*/
export enum SettlPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************
* Used to further qualify the value of *
* UnderlyingInstrumentPartyRole(1061). *
****************************************
*/
export enum UnderlyingInstrumentPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
******************************************************
* Specifies which type of identifier is specified in *
* AllocRefRiskLimitCheckID(2392) field.              *
******************************************************
*/
export enum AllocRefRiskLimitCheckIDType {
  RiskLimitRequestId1666 = 0,
  RiskLimitCheckId2319 = 1,
  OutOfBandIdentifier = 3
}

/*
*********************************************
* Indicates the scope of the limit by role. *
*********************************************
*/
export enum LimitRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
****************************************************************
* Specifies the scope to which the RegulatoryTradeID(1903)     *
* applies.  Used when a trade must be assigned more than one   *
* identifier, e.g. one for the clearing member and another for *
* the client on a cleared trade as with the principal model in *
* Europe.                                                      *
****************************************************************
*/
export enum RegulatoryTradeIDScope {
  ClearingMember = 1,
  Client = 2
}

/*
****************************************************************
* Specifies the scope to which the SideRegulatoryTradeID(1972) *
* applies.  Used when a trade must be assigned more than one   *
* identifier, e.g. one for the clearing member and another for *
* the client on a cleared trade as with the principal model in *
* Europe.                                                      *
****************************************************************
*/
export enum SideRegulatoryTradeIDScope {
  ClearingMember = 1,
  Client = 2
}

/*
***************************************************************
* Specifies the scope to which the                            *
* AllocRegulatoryTradeID(1909) applies.  Used when a trade    *
* must be assigned more than one identifier, e.g. one for the *
* clearing member and another for the client on a cleared     *
* trade as with the principal model in Europe.                *
***************************************************************
*/
export enum AllocRegulatoryTradeIDScope {
  ClearingMember = 1,
  Client = 2
}

/*
******************************************
* Subtype of an entitlement specified in *
* EntitlementType(1775).                 *
******************************************
*/
export enum EntitlementSubType {
  OrderEntry = 1,
  HitLift = 2,
  ViewIndicativePrices = 3,
  ViewExecutablePrices = 4,
  SingleQuote = 5,
  StreamingQuotes = 6,
  SingleBroker = 7,
  MultiBrokers = 8
}

/*
********************
* Quote model type *
********************
*/
export enum QuoteModelType {
  QuoteEntry = 1,
  QuoteModification = 2
}

/*
***********************************************************
* Specifies how the transaction was executed, e.g. via an *
* automated execution platform or other method.           *
***********************************************************
*/
export enum ExecMethod {
  UndefinedUnspecifiedDefaultWhenNotSpecified = 0,
  Manual = 1,
  Automated = 2,
  VoiceBrokered = 3
}

/*
***************************************************************
* Identifies class or source of the RelatedToSecurityID(2413) *
* value.                                                      *
***************************************************************
*/
export enum RelatedToSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
*********************************
* Status of mass order request. *
*********************************
*/
export enum MassOrderRequestStatus {
  Accepted = 1,
  AcceptedWithAdditionalEvents = 2,
  Rejected = 3
}

/*
*****************************************
* Request result of mass order request. *
*****************************************
*/
export enum MassOrderRequestResult {
  Successful = 0,
  ResponseLevelNotSupported = 1,
  InvalidMarket = 2,
  InvalidMarketSegment = 3,
  Other = 99
}

/*
***************************************************************
* The level of response requested from receiver of mass order *
* messages. A default value should be bilaterally agreed.     *
***************************************************************
*/
export enum OrderResponseLevel {
  NoAcknowledgement = 0,
  MinimumAcknowledgement = 1,
  AcknowledgeEachOrder = 2,
  SummaryAcknowledgement = 3
}

/*
*********************************************************
* Specifies the action to be taken for the given order. *
*********************************************************
*/
export enum OrderEntryAction {
  Add = '1',
  Modify = '2',
  DeleteCancel = '3',
  Suspend = '4',
  Release = '5'
}

/*
***************************************************************
* The initiating event when an ExecutionReport(35=8) is sent. *
***************************************************************
*/
export enum ExecTypeReason {
  OrderAddedUponRequest = 1,
  OrderReplacedUponRequest = 2,
  OrderCancelledUponRequest = 3,
  UnsolicitedOrderCancellation = 4,
  NonRestingOrderAddedUponRequest = 5,
  OrderReplacedWithNonRestingOrderUponRequest = 6,
  TriggerOrderReplacedUponRequest = 7,
  SuspendedOrderReplacedUponRequest = 8,
  SuspendedOrderCanceledUponRequest = 9,
  OrderCancellationPending = 10,
  PendingCancellationExecuted = 11,
  RestingOrderTriggered = 12,
  SuspendedOrderActivated = 13,
  ActiveOrderSuspended = 14,
  OrderExpired = 15
}

/*
*****************************************
* Type of TargetPartySubID(2434) value. *
*****************************************
*/
export enum TargetPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
***********************************************
* Indicates the type of transfer transaction. *
***********************************************
*/
export enum TransferTransType {
  New = 0,
  Replace = 1,
  Cancel = 2
}

/*
*******************************************
* Indicates the type of transfer request. *
*******************************************
*/
export enum TransferType {
  RequestTransfer = 0,
  AcceptTransfer = 1,
  DeclineTransfer = 2
}

/*
***********************************
* Indicates the type of transfer. *
***********************************
*/
export enum TransferScope {
  InterFirmTransfer = 0,
  IntraFirmTransfer = 1,
  ClearingMemberTradeAssignment = 2
}

/*
***************************
* Status of the transfer. *
***************************
*/
export enum TransferStatus {
  Received = 0,
  RejectedByIntermediary = 1,
  AcceptPending = 2,
  Accepted = 3,
  Declined = 4,
  Cancelled = 5
}

/*
*************************************************
* Reason the transfer instruction was rejected. *
*************************************************
*/
export enum TransferRejectReason {
  Success = 0,
  InvalidParty = 1,
  UnknownInstrument = 2,
  NotAuthorizedToSubmitTransfers = 3,
  UnknownPosition = 4,
  Other = 99
}

/*
******************************************
* Indicates the type of transfer report. *
******************************************
*/
export enum TransferReportType {
  Submit = 0,
  Alleged = 1
}

/*
***************************************************************
* Side of aggressive order or quote resulting in match event. *
***************************************************************
*/
export enum AggressorSide {
  Buy = '1',
  Sell = '2',
  BuyMinus = '3',
  SellPlus = '4',
  SellShort = '5',
  SellShortExempt = '6',
  Undisclosed = '7',
  CrossOrdersWhereCounterpartyIsAnExchangeValidForAllMessagesExceptIoIs = '8',
  CrossShort = '9',
  CrossShortExempt = 'A',
  AsDefinedForUseWithMultilegInstruments = 'B',
  OppositeForUseWithMultilegInstruments = 'C',
  SubscribeEGCiv = 'D',
  RedeemEGCiv = 'E',
  LendFinancingIdentifiesDirectionOfCollateral = 'F',
  BorrowFinancingIdentifiesDirectionOfCollateral = 'G',
  SellUndisclosed = 'H'
}

/*
****************************
* Type of statistic value. *
****************************
*/
export enum MDStatisticType {
  Count = 1,
  AverageVolume = 2,
  TotalVolume = 3,
  Distribution = 4,
  Ratio = 5,
  Liquidity = 6,
  VolumeWeightedAveragePriceVwap = 7,
  Volatility = 8,
  Duration = 9,
  Tick = 10,
  AverageTurnover = 11,
  TotalTurnover = 12,
  High = 13,
  Low = 14,
  Midpoint = 15,
  First = 16,
  Last = 17,
  Final = 18,
  ExchangeBest = 19,
  ExchangeBestWithVolume = 20,
  ConsolidatedBest = 21,
  ConsolidatedBestWithVolume = 22,
  TimeWeightedAveragePriceTwap = 23
}

/*
**********************************************
* Entities used as basis for the statistics. *
**********************************************
*/
export enum MDStatisticScope {
  BidPrices = 1,
  OfferPrices = 2,
  BidDepth = 3,
  OfferDepth = 4,
  Orders = 5,
  Quotes = 6,
  OrdersAndQuotes = 7,
  Trades = 8,
  TradePrices = 9,
  AuctionPrices = 10,
  OpeningPrices = 11,
  ClosingPrices = 12,
  SettlementPrices = 13,
  UnderlyingPrices = 14,
  OpenInterest = 15,
  IndexValues = 16,
  MarginRates = 17
}

/*
**************************************************************
* Sub-scope of the statistics to further reduce the entities *
* used as basis for the statistics.                          *
**************************************************************
*/
export enum MDStatisticSubScope {
  Visible = 1,
  Hidden = 2,
  Indicative = 3,
  Tradeable = 4,
  Passive = 5,
  MarketConsensus = 6
}

/*
***********************************************************
* Scope details of the statistics to reduce the number of *
* events being used as basis for the statistics.          *
***********************************************************
*/
export enum MDStatisticScopeType {
  EntryRate = 1,
  ModificationRate = 2,
  CancelRate = 3,
  DownwardMove = 4,
  UpwardMove = 5
}

/*
***************************************************
* Time unit for MDStatisticFrequencyPeriod(2460). *
***************************************************
*/
export enum MDStatisticFrequencyUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
***********************************************
* Time unit for MDStatisticDelayPeriod(2462). *
***********************************************
*/
export enum MDStatisticDelayUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
********************************************************
* Type of interval over which statistic is calculated. *
********************************************************
*/
export enum MDStatisticIntervalType {
  SlidingWindow = 1,
  SlidingWindowPeak = 2,
  FixedDateRange = 3,
  FixedTimeRange = 4,
  CurrentTimeUnit = 5,
  PreviousTimeUnit = 6,
  MaximumRange = 7,
  MaximumRangeUpToPreviousTimeUnit = 8
}

/*
************************************************
* Time unit for MDStatisticIntervalType(2464). *
************************************************
*/
export enum MDStatisticIntervalTypeUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
**************************************************
* Time unit for MDStatisticIntervalPeriod(2466). *
**************************************************
*/
export enum MDStatisticIntervalUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
************************************
* Ratios between various entities. *
************************************
*/
export enum MDStatisticRatioType {
  BuyersToSellers = 1,
  UpticksToDownticks = 2,
  MarketMakerToNonMarketMaker = 3,
  AutomatedToNonAutomated = 4,
  OrdersToTrades = 5,
  QuotesToTrades = 6,
  OrdersAndQuotesToTrades = 7
}

/*
**************************************************************
* Result returned in response to MarketDataStatisticsRequest *
* (35=DO).                                                   *
**************************************************************
*/
export enum MDStatisticRequestResult {
  SuccessfulDefault = 0,
  InvalidOrUnknownMarket = 1,
  InvalidOrUnknownMarketSegment = 2,
  InvalidOrUnknownSecurityList = 3,
  InvalidOrUnknownInstrumentS = 4,
  InvalidParties = 5,
  TradeDateOutOfSupportedRange = 6,
  StatisticTypeNotSupported = 7,
  ScopeOrSubScopeNotSupported = 8,
  ScopeTypeNotSupported = 9,
  MarketDepthNotSupported = 10,
  FrequencyNotSupported = 11,
  StatisticIntervalNotSupported = 12,
  StatisticDateRangeNotSupported = 13,
  StatisticTimeRangeNotSupported = 14,
  RatioTypeNotSupported = 15,
  InvalidOrUnknownTradeInputSource = 16,
  InvalidOrUnknownTradingSession = 17,
  UnauthorizedForStatisticRequest = 18,
  OtherFurtherInformationInText58Field = 99
}

/*
********************************************************
* Status for a statistic to indicate its availability. *
********************************************************
*/
export enum MDStatisticStatus {
  ActiveDefault = 1,
  InactiveNotDisseminated = 2
}

/*
******************************
* Type of statistical value. *
******************************
*/
export enum MDStatisticValueType {
  Absolute = 1,
  Percentage = 2
}

/*
***************************************
* Unit of time for statistical value. *
***************************************
*/
export enum MDStatisticValueUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
***************************************************************
* Indicates the status of the risk limit check performed on a *
* trade for this allocation instance.                         *
***************************************************************
*/
export enum AllocRiskLimitCheckStatus {
  Accepted = 0,
  Rejected = 1,
  ClaimRequired = 2,
  PreDefinedLimitCheckSucceeded = 3,
  PreDefinedLimitCheckFailed = 4,
  PreDefinedAutoAcceptRuleInvoked = 5,
  PreDefinedAutoRejectRuleInvoked = 6,
  AcceptedByClearingFirm = 7,
  RejectedByClearingFirm = 8,
  Pending = 9,
  AcceptedByCreditHub = 10,
  RejectedByCreditHub = 11,
  PendingCreditHubCheck = 12,
  AcceptedByExecutionVenue = 13,
  RejectedByExecutionVenue = 14
}

/*
***********************************************************
* Reject reason code for rejecting the collateral report. *
***********************************************************
*/
export enum CollRptRejectReason {
  UnknownTradeOrTransaction = 0,
  UnknownOrInvalidInstrument = 1,
  UnknownOrInvalidCounterparty = 2,
  UnknownOrInvalidPosition = 3,
  UnacceptableOrInvalidTypeOfCollateral = 4,
  Other = 99
}

/*
****************************************
* The status of the collateral report. *
****************************************
*/
export enum CollRptStatus {
  AcceptedSuccessfullyProcessed = 0,
  ReceivedNotYetProcessed = 1,
  Rejected = 2
}

/*
****************************************************************
* Indicates the broad product or asset classification.  May be *
* used to provide grouping for the product taxonomy            *
* (Product(460), SecurityType(167), etc.) and/or the risk      *
* taxonomy (AssetClass(1938), AssetSubClass(1939),             *
* AssetType(1940), etc.).                                      *
****************************************************************
*/
export enum UnderlyingAssetGroup {
  Financials = 1,
  Commodities = 2,
  AlternativeInvestments = 3
}

/*
**********************************
* Identifies type of settlement. *
**********************************
*/
export enum LegDeliveryType {
  VersusPaymentDeliverIfSellOrReceiveIfBuyVsAgainstPayment = 0,
  FreeDeliverIfSellOrReceiveIfBuyFree = 1,
  TriParty = 2,
  HoldInCustody = 3
}

/*
**********************************
* Type of financing termination. *
**********************************
*/
export enum LegTerminationType {
  Overnight = 1,
  Term = 2,
  Flexible = 3,
  Open = 4
}

/*
***************************************************************
* Indicates whether the order or quote was crossed with       *
* another order or quote having the same context, e.g. having *
* accounts with a common ownership.                           *
***************************************************************
*/
export enum CrossedIndicator {
  NoCross = 0,
  CrossRejected = 1,
  CrossAccepted = 2
}

/*
**********************************************************
* Used between parties to convey trade reporting status. *
**********************************************************
*/
export enum TradeReportingIndicator {
  TradeHasNotYetBeenReported = 0,
  TradeHasBeenReportedByATradingVenueAsAnOnBookTrade = 1,
  TradeHasBeenReportedAsASystematicInternaliserSellerTrade = 2,
  TradeHasBeenReportedAsASystematicInternaliserBuyerTrade = 3,
  TradeHasBeenReportedAsANonSystematicInternaliserSellerTrade = 4,
  TradeHasBeenReportedUnderASubDelegationArrangementByAnInvestmentFirmToAReportingFacilityEGApaOnBehalfOfAnotherInvestmentFirm = 5
}

/*
**********************************************************
* Indicates the type of relative value measurement being *
* specified.                                             *
**********************************************************
*/
export enum RelativeValueType {
  AssetSwapSpread = 1,
  OvernightIndexedSwapSpread = 2,
  ZeroVolatilitySpread = 3,
  DiscountMargin = 4,
  InterpolatedSpread = 5,
  OptionAdjustedSpread = 6,
  GSpread = 7,
  CdsBasis = 8,
  CdsInterpolatedBasis = 9
}

/*
*********************************************
* Specifies the side of the relative value. *
*********************************************
*/
export enum RelativeValueSide {
  Bid = 1,
  Mid = 2,
  Offer = 3
}

/*
********************************************
* Technical event within market data feed. *
********************************************
*/
export enum MDReportEvent {
  StartOfInstrumentReferenceData = 1,
  EndOfInstrumentReferenceData = 2,
  StartOfOffMarketTrades = 3,
  EndOfOffMarketTrades = 4,
  StartOfOrderBookTrades = 5,
  EndOfOrderBookTrades = 6,
  StartOfOpenInterest = 7,
  EndOfOpenInterest = 8,
  StartOfSettlementPrices = 9,
  EndOfSettlementPrices = 10,
  StartOfStatisticsReferenceData = 11,
  EndOfStatisticsReferenceData = 12,
  StartOfStatistics = 13,
  EndOfStatistics = 14
}

/*
*****************************
* Status of market segment. *
*****************************
*/
export enum MarketSegmentStatus {
  Active = 1,
  Inactive = 2,
  Published = 3
}

/*
************************************************
* Used to classify the type of market segment. *
************************************************
*/
export enum MarketSegmentType {
  Pool = 1,
  Retail = 2,
  Wholesale = 3
}

/*
*******************************************************
* Used to further categorize market segments within a *
* MarketSegmentType(2543).                            *
*******************************************************
*/
export enum MarketSegmentSubType {
  InterProductSpread = 1
}

/*
*************************************************************
* Type of relationship between two or more market segments. *
*************************************************************
*/
export enum MarketSegmentRelationship {
  MarketSegmentPoolMember = 1,
  RetailSegment = 2,
  WholesaleSegment = 3
}

/*
******************************************************
* Indicates whether single sided quotes are allowed. *
******************************************************
*/
export enum QuoteSideIndicator {
  SingleSidedQuotesAreNotAllowed = 'N',
  SingleSidedQuotesAreAllowed = 'Y'
}

/*
**********************************************************
* The time unit associated with the time interval of the *
* netting of market data in a price depth feed.          *
**********************************************************
*/
export enum MarketDepthTimeIntervalUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
***************************************************************
* The time unit associated with the time interval between two *
* cycles of the same market data in cyclic data recovery      *
* feeds.                                                      *
***************************************************************
*/
export enum MDRecoveryTimeIntervalUnit {
  SecondsDefaultIfNotSpecified = 0,
  TenthsOfASecond = 1,
  HundredthsOfASecond = 2,
  Milliseconds = 3,
  Microseconds = 4,
  Nanoseconds = 5,
  Minutes = 10,
  Hours = 11,
  Days = 12,
  Weeks = 13,
  Months = 14,
  Years = 15
}

/*
******************************************************
* Specifies the kind of priority given to customers. *
******************************************************
*/
export enum CustomerPriority {
  NoPriority = 0,
  UnconditionalPriority = 1
}

/*
**********************************************************
* Specifies a suitable settlement sub-method for a given *
* settlement method.                                     *
**********************************************************
*/
export enum SettlSubMethod {
  Shares = 1,
  Derivatives = 2,
  PaymentVsPayment = 3,
  Notional = 4,
  Cascade = 5,
  Repurchase = 6,
  Other = 99
}

/*
**********************************************
* Relative identification of a business day. *
**********************************************
*/
export enum BusinessDayType {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************
* Specifies how the calculation will be made. *
***********************************************
*/
export enum CalculationMethod {
  AutomaticDefault = 0,
  Manual = 1
}

/*
********************************
* The type of order attribute. *
********************************
*/
export enum OrderAttributeType {
  AggregatedOrder = 0,
  PendingAllocation = 1,
  LiquidityProvisionActivityOrder = 2,
  RiskReductionOrder = 3,
  AlgorithmicOrder = 4,
  SystemicInternaliserOrder = 5,
  AllExecutionsForTheOrderAreToBeSubmittedToAnApa = 6,
  OrderExecutionInstructedByClient = 7,
  LargeInScale = 8,
  Hidden = 9
}

/*
**************************************************************
* Specifies the fallback provisions for the hedging party in *
* the determination of the final settlement price.           *
**************************************************************
*/
export enum ComplexEventPVFinalPriceElectionFallback {
  Close = 0,
  HedgeElection = 1
}

/*
******************************************************
* The quote side from which the index price is to be *
* determined.                                        *
******************************************************
*/
export enum StrikeIndexQuote {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
***************************************************************
* Defines how adjustments will be made to the contract should *
* one or more of the extraordinary events occur.              *
***************************************************************
*/
export enum ExtraordinaryEventAdjustmentMethod {
  CalculationAgent = 0,
  OptionsExchange = 1
}

/*
******************************************************
* The quote side from which the index price is to be *
* determined.                                        *
******************************************************
*/
export enum LegStrikeIndexQuote {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
***************************************************************
* Defines how adjustments will be made to the contract should *
* one or more of the extraordinary events occur.              *
***************************************************************
*/
export enum LegExtraordinaryEventAdjustmentMethod {
  CalculationAgent = 0,
  OptionsExchange = 1
}

/*
**************************************************************
* Specifies the fallback provisions for the hedging party in *
* the determination of the final settlement price            *
**************************************************************
*/
export enum LegComplexEventPVFinalPriceElectionFallback {
  Close = 0,
  HedgeElection = 1
}

/*
**************************************************************
* Specifies the fallback provisions for the hedging party in *
* the determination of the final settlement price            *
**************************************************************
*/
export enum UnderlyingComplexEventPVFinalPriceElectionFallback {
  Close = 0,
  HedgeElection = 1
}

/*
**************************************************************
* Specifies the conditions that govern the adjustment to the *
* number of units of the return swap.                        *
**************************************************************
*/
export enum UnderlyingNotionalAdjustments {
  Execution = 0,
  PortfolioRebalancing = 1,
  Standrd = 2
}

/*
**********************************************************
* Identifies the source of the UnderlyingFutureID(2620). *
**********************************************************
*/
export enum UnderlyingFutureIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
******************************************************
* The quote side from which the index price is to be *
* determined.                                        *
******************************************************
*/
export enum UnderlyingStrikeIndexQuote {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
***************************************************************
* Defines how adjustments will be made to the contract should *
* one or more of the extraordinary events occur.              *
***************************************************************
*/
export enum UnderlyingExtraordinaryEventAdjustmentMethod {
  CalculationAgent = 0,
  OptionsExchange = 1
}

/*
*******************************************************
* The type of value in CurrentCollateralAmount(1704). *
*******************************************************
*/
export enum CollateralAmountType {
  MarketValuationTheDefault = 0,
  PortfolioValueBeforeProcessingPledgeRequest = 1,
  ValueConfirmedAsLockedUpForProcessingAPledgeRequest = 2,
  CreditValueOfCollateralAtCcpProcessingAPledgeRequest = 3,
  AdditionalCollateralValue = 4
}

/*
***********************************************************
* Indicates what type of commission is being expressed in *
* CommissionAmount(2640).                                 *
***********************************************************
*/
export enum CommissionAmountType {
  Unspecified = 0,
  Acceptance = 1,
  Broker = 2,
  ClearingBroker = 3,
  Retail = 4,
  SalesCommission = 5,
  LocalCommission = 6
}

/*
*****************************************************
* Specifies the basis or unit used to calculate the *
* commission.                                       *
*****************************************************
*/
export enum CommissionBasis {
  AmountPerUnit = '1',
  Percent = '2',
  Absolute = '3',
  PercentageWaivedCashDiscountBasis = '4',
  PercentageWaivedEnhancedUnitsBasis = '5',
  PointsPerBondOrContract = '6',
  BasisPoints = '7',
  AmountPerContract = '8'
}

/*
****************************************
* The commission rate unit of measure. *
****************************************
*/
export enum CommissionUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***********************************************************
* Indicates what type of commission is being expressed in *
* AllocCommissionAmount(2654).                            *
***********************************************************
*/
export enum AllocCommissionAmountType {
  Unspecified = 0,
  Acceptance = 1,
  Broker = 2,
  ClearingBroker = 3,
  Retail = 4,
  SalesCommission = 5,
  LocalCommission = 6
}

/*
*****************************************************
* Specifies the basis or unit used to calculate the *
* commission.                                       *
*****************************************************
*/
export enum AllocCommissionBasis {
  AmountPerUnit = '1',
  Percent = '2',
  Absolute = '3',
  PercentageWaivedCashDiscountBasis = '4',
  PercentageWaivedEnhancedUnitsBasis = '5',
  PointsPerBondOrContract = '6',
  BasisPoints = '7',
  AmountPerContract = '8'
}

/*
****************************************
* The commission rate unit of measure. *
****************************************
*/
export enum AllocCommissionUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
****************************************************************
* Indicates that the order or trade originates from a computer *
* program or algorithm requiring little-to-no human            *
* intervention.                                                *
****************************************************************
*/
export enum AlgorithmicTradeIndicator {
  NonAlgorithmicTrade = 0,
  AlgorithmicTrade = 1
}

/*
****************************************************************
* Specifies the type of regulatory trade publication.          *
* Additional reasons for the publication type may be specified *
* in TrdRegPublicationReason(2670).                            *
****************************************************************
*/
export enum TrdRegPublicationType {
  PreTradeTransparencyWaiver = 0,
  PostTradeDeferral = 1,
  ExemptFromPublication = 2
}

/*
*************************************************************
* Additional reason for trade publication type specified in *
* TrdRegPublicationType(2669).                              *
* Reasons may be specific to regulatory trade publication   *
* rules.                                                    *
*************************************************************
*/
export enum TrdRegPublicationReason {
  NoPrecedingOrderInBookAsTransactionPriceSetWithinAverageSpreadOfALiquidInstrument = 0,
  NoPrecedingOrderInBookAsTransactionPriceDependsOnSystemSetReferencePriceForAnIlliquidInstrument = 1,
  NoPrecedingOrderInBookAsTransactionPriceIsForTransactionSubjectToConditionsOtherThanCurrentMarketPrice = 2,
  NoPublicPriceForPrecedingOrderAsPublicReferencePriceWasUsedForMatchingOrders = 3,
  NoPublicPriceQuotedAsInstrumentIsIlliquid = 4,
  NoPublicPriceQuotedBySystematicInternaliserAsOrderIsAboveStandardMarketSize = 5,
  DeferralDueToLargeInScale = 6,
  DeferralDueToIlliquidInstrument = 7,
  DeferralDueToSizeSpecific = 8,
  NoPublicPriceAndOrSizeQuotedAsTransactionIsLargeInScale = 9,
  NoPublicPriceAndOrSizeQuotedDueToOrderBeingHidden = 10,
  ExemptedDueToSecuritiesFinancingTransaction = 11,
  ExemptedDueToEuropeanSystemOfCentralBanksEscbPolicyTransaction = 12
}

/*
**********************************************************
* Used between parties to convey trade reporting status. *
**********************************************************
*/
export enum SideTradeReportingIndicator {
  TradeHasNotYetBeenReported = 0,
  TradeHasBeenReportedByATradingVenueAsAnOnBookTrade = 1,
  TradeHasBeenReportedAsASystematicInternaliserSellerTrade = 2,
  TradeHasBeenReportedAsASystematicInternaliserBuyerTrade = 3,
  TradeHasBeenReportedAsANonSystematicInternaliserSellerTrade = 4,
  TradeHasBeenReportedUnderASubDelegationArrangementByAnInvestmentFirmToAReportingFacilityEGApaOnBehalfOfAnotherInvestmentFirm = 5
}

/*
*****************************************
* Reason for submission of mass action. *
*****************************************
*/
export enum MassActionReason {
  NoSpecialReasonDefault = 0,
  TradingRiskControl = 1,
  ClearingRiskControl = 2,
  MarketMakerProtection = 3,
  StopTrading = 4,
  EmergencyAction = 5,
  SessionLossOrLogout = 6,
  DuplicateLogin = 7,
  ProductNotTraded = 8,
  InstrumentNotTraded = 9,
  ComplexInstrumentDeleted = 10,
  CircuitBreakerActivated = 11,
  Other = 99
}

/*
****************************************************************
* Reason for order being unaffected by mass action even though *
* it belongs to the orders covered by MassActionScope(1374).   *
****************************************************************
*/
export enum NotAffectedReason {
  OrderSuspended = 0,
  InstrumentSuspended = 1
}

/*
********************************************************
* Change of ownership of an order to a specific party. *
********************************************************
*/
export enum OrderOwnershipIndicator {
  NoChangeOfOwnershipDefault = 0,
  ChangeOfOwnershipToExecutingParty = 1,
  ChangeOfOwnershipToEnteringParty = 2,
  ChangeOfOwnershipToSpecifiedParty = 3
}

/*
**************************************************************
* Specifies an option instrument's "in the money" condition. *
**************************************************************
*/
export enum InTheMoneyCondition {
  StandardInTheMoney = 0,
  AtTheMoneyIsInTheMoney = 1,
  AtTheMoneyCallIsInTheMoney = 2,
  AtTheMoneyPutIsInTheMoney = 3
}

/*
****************************************************************
* Specifies an option instrument's "in the money" condition in *
* general terms.                                               *
****************************************************************
*/
export enum LegInTheMoneyCondition {
  StandardInTheMoney = 0,
  AtTheMoneyIsInTheMoney = 1,
  AtTheMoneyCallIsInTheMoney = 2,
  AtTheMoneyPutIsInTheMoney = 3
}

/*
****************************************************************
* Specifies an option instrument's "in the money" condition in *
* general terms.                                               *
****************************************************************
*/
export enum UnderlyingInTheMoneyCondition {
  StandardInTheMoney = 0,
  AtTheMoneyIsInTheMoney = 1,
  AtTheMoneyCallIsInTheMoney = 2,
  AtTheMoneyPutIsInTheMoney = 3
}

/*
****************************************************************
* Specifies an option instrument's "in the money" condition in *
* general terms.                                               *
****************************************************************
*/
export enum DerivativeInTheMoneyCondition {
  StandardInTheMoney = 0,
  AtTheMoneyIsInTheMoney = 1,
  AtTheMoneyCallIsInTheMoney = 2,
  AtTheMoneyPutIsInTheMoney = 3
}

/*
*******************************************************
* The type of value in CurrentCollateralAmount(1704). *
*******************************************************
*/
export enum SideCollateralAmountType {
  MarketValuationTheDefault = 0,
  PortfolioValueBeforeProcessingPledgeRequest = 1,
  ValueConfirmedAsLockedUpForProcessingAPledgeRequest = 2,
  CreditValueOfCollateralAtCcpProcessingAPledgeRequest = 3,
  AdditionalCollateralValue = 4
}

/*
**************************************************************
* Specifies whether or not SideCollateralFXRate(2696) should *
* be multiplied or divided.                                  *
**************************************************************
*/
export enum SideCollateralFXRateCalc {
  Divide = 'D',
  Multiply = 'M'
}

/*
***************************************************************
* Identifies the type of execution destination for the order. *
***************************************************************
*/
export enum ExDestinationType {
  NoRestriction = 0,
  CanBeTradedOnlyOnATradingVenue = 1,
  CanBeTradedOnlyOnASystematicInternaliserSi = 2,
  CanBeTradedOnATradingVenueOrSystematicInternaliserSi = 3
}

/*
**********************************************
* Identifies the source scheme of the        *
* AdditionalTermBondSecurityID(40001) value. *
**********************************************
*/
export enum AdditionalTermBondSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
***********************************************************
* Specifies the bond's payment priority in the event of a *
* default.                                                *
***********************************************************
*/
export enum AdditionalTermBondSeniority {
  SeniorSecured = 'SD',
  Senior = 'SR',
  Subordinated = 'SB'
}

/*
****************************
* Coupon type of the bond. *
****************************
*/
export enum AdditionalTermBondCouponType {
  Zero = 0,
  FixedRate = 1,
  FloatingRate = 2,
  Structured = 3
}

/*
****************************************************************
* Time unit associated with the frequency of the bond's coupon *
* payment.                                                     *
****************************************************************
*/
export enum AdditionalTermBondCouponFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The day count convention used in interest calculations for a *
* bond or an interest bearing security.                        *
****************************************************************
*/
export enum AdditionalTermBondDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***********************************************************
* The type of quote used to determine the cash settlement *
* price.                                                  *
***********************************************************
*/
export enum CashSettlQuoteMethod {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
****************************************************************
* The ISDA defined methodology for determining the final price *
* of the reference obligation for purposes of cash settlement. *
****************************************************************
*/
export enum CashSettlValuationMethod {
  Market = 0,
  Highest = 1,
  AverageMarket = 2,
  AverageHighest = 3,
  BlendedMarket = 4,
  BlendedHighest = 5,
  AverageBlendedMarket = 6,
  AverageBlendedHighest = 7
}

/*
************************
* Type of swap stream. *
************************
*/
export enum StreamType {
  PaymentCashSettlement = 0,
  PhysicalDelivery = 1
}

/*
********************************************
* The side of the party paying the stream. *
********************************************
*/
export enum StreamPaySide {
  Buy = 1,
  Sell = 2
}

/*
***********************************************
* The side of the party receiving the stream. *
***********************************************
*/
export enum StreamReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
**************************************************************
* The business day convention used to adjust the underlying  *
* instrument's stream's effective, or relative effective,    *
* date. Used only to override the business day convention    *
* specified in the UnderlyingDateAdjustment component within *
* the UnderlyingInstrument component.                        *
**************************************************************
*/
export enum UnderlyingStreamEffectiveDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*********************************************************
* Time unit associated with the relative effective date *
* offset.                                               *
*********************************************************
*/
export enum UnderlyingStreamEffectiveDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************************
* Specifies the day type of the relative effective date *
* offset.                                               *
*********************************************************
*/
export enum UnderlyingStreamEffectiveDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the instrument's *
* stream's termination, or relative termination, date. Used   *
* only to override the business day convention specified in   *
* the DateAdjustment component within the Instrument          *
* component.                                                  *
***************************************************************
*/
export enum StreamTerminationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the relative termination date *
* offset.                                                 *
***********************************************************
*/
export enum StreamTerminationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the relative termination date *
* offset.                                                 *
***********************************************************
*/
export enum StreamTerminationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The business day convention used to adjust calculation     *
* periods. Used only to override the business day convention *
* specified in the DateAdjustment component within the       *
* Instrument component.                                      *
**************************************************************
*/
export enum StreamCalculationPeriodBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* The business day convention used to adjust the instrument's *
* stream's first calculation period start date. Used only to  *
* override the business day convention specified in the       *
* DateAdjustment component within the Instrument component.   *
***************************************************************
*/
export enum StreamFirstPeriodStartDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the frequency at which calculation *
* period end dates occur.                                      *
****************************************************************
*/
export enum StreamCalculationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of end dates. It *
* is used in conjunction with a specified frequency. Used only *
* to override the roll convention specified in the             *
* DateAdjustment component within the Instrument component.    *
****************************************************************
*/
export enum StreamCalculationRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
**************************************************
* Identifies the source of the rate information. *
**************************************************
*/
export enum LegPaymentStreamNonDeliverableSettlRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
*****************************************************
* Used to identify the settlement rate postponement *
* calculation agent.                                *
*****************************************************
*/
export enum SettlRatePostponementCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***********************
* Type of provisions. *
***********************
*/
export enum ProvisionType {
  MandatoryEarlyTermination = 0,
  OptionalEarlyTermination = 1,
  Cancelable = 2,
  Extendible = 3,
  MutualEarlyTermination = 4
}

/*
***************************************************************
* The business day convention used to adjust the instrument's *
* provision's dates. Used only to override the business day   *
* convention specified in the DateAdjustment component within *
* the Instrument component.                                   *
***************************************************************
*/
export enum ProvisionDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the provision's tenor period. *
***********************************************************
*/
export enum ProvisionDateTenorUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Used to identify the calculation agent.  The calculation    *
* agent may be identified in ProvisionCalculationAgent(40098) *
* or in the ProvisionParties component.                       *
***************************************************************
*/
export enum ProvisionCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***********************************************************
* If optional early termination is not available to both  *
* parties then this component identifies the buyer of the *
* option through its side of the trade.                   *
***********************************************************
*/
export enum ProvisionOptionSinglePartyBuyerSide {
  Buy = 1,
  Sell = 2
}

/*
************************************************************
* If optional early termination is not available to both   *
* parties then this component identifies the seller of the *
* option through its side of the trade.                    *
************************************************************
*/
export enum ProvisionOptionSinglePartySellerSide {
  Buy = 1,
  Sell = 2
}

/*
*****************************************************
* The instrument provision options exercise style. *
*****************************************************
*/
export enum ProvisionOptionExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
***************************************************************
* An ISDA defined cash settlement method used for the         *
* determination of the applicable cash settlement amount. The *
* method is defined in the 2006 ISDA Definitions, Section     *
* 18.3. Cash Settlement Methods, paragraph (e).               *
***************************************************************
*/
export enum ProvisionCashSettlMethod {
  CashPrice = 0,
  CashPriceAlternate = 1,
  ParYieldCurveAdjusted = 2,
  ZeroCouponYieldCurveAdjusted = 3,
  ParYieldCurveUnadjusted = 4,
  CrossCurrency = 5,
  CollateralizedPrice = 6
}

/*
********************************************
* Identifies the type of quote to be used. *
********************************************
*/
export enum ProvisionCashSettlQuoteType {
  Bid = 0,
  Mid = 1,
  Offer = 2,
  ExercisingPartyPays = 3
}

/*
***********************************************
* Identifies the source of quote information. *
***********************************************
*/
export enum ProvisionCashSettlQuoteSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
***************************************************************
* The cash settlement valuation date adjustment business day  *
* convention. Used only to override the business day          *
* convention specified in the DateAdjustment component within *
* the Instrument component.                                   *
***************************************************************
*/
export enum ProvisionCashSettlValueDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative cash settlement value *
* date offset.                                                 *
****************************************************************
*/
export enum ProvisionCashSettlValueDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the provision's relative cash *
* settlement value date offset.                           *
***********************************************************
*/
export enum ProvisionCashSettlValueDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the instrument's *
* provision's option exercise date. Used only to override the *
* business day convention specified in the DateAdjustment     *
* component within the Instrument component.                  *
***************************************************************
*/
export enum ProvisionOptionExerciseBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the interval to the first (and *
* possibly only) exercise date in the exercise period.     *
************************************************************
*/
export enum ProvisionOptionExerciseEarliestDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Time unit associated with the frequency of subsequent        *
* exercise dates in the exercise period following the earliest *
* exercise date.                                               *
****************************************************************
*/
export enum ProvisionOptionExerciseFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* Time unit associated with the relative option exercise start *
* date offset.                                                 *
****************************************************************
*/
export enum ProvisionOptionExerciseStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* exercise start date offset.                               *
*************************************************************
*/
export enum ProvisionOptionExerciseStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum ProvisionOptionExerciseFixedDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
***************************************************************
* The business day convention used to adjust the instrument's *
* provision's option expiration date. Used only to override   *
* the business day convention specified in the DateAdjustment *
* component within the Instrument component.                  *
***************************************************************
*/
export enum ProvisionOptionExpirationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the relative option expiration *
* date offset.                                             *
************************************************************
*/
export enum ProvisionOptionExpirationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* expiration date offset.                                   *
*************************************************************
*/
export enum ProvisionOptionExpirationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the instrument's *
* provision's option underlying date. Used only to override   *
* the business day convention specified in the DateAdjustment *
* component within the Instrument component.                  *
***************************************************************
*/
export enum ProvisionOptionRelevantUnderlyingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative option relevant *
* underlying date offset.                                *
**********************************************************
*/
export enum ProvisionOptionRelevantUnderlyingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* relevant underlying date offset.                          *
*************************************************************
*/
export enum ProvisionOptionRelevantUnderlyingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the provisional  *
* cash settlement payment's termination or relative           *
* termination date.  Used only to override the business day   *
* convention specified in the DateAdjustment component within *
* the Instrument component.                                   *
***************************************************************
*/
export enum ProvisionCashSettlPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative cash settlement *
* payment date offset.                                   *
**********************************************************
*/
export enum ProvisionCashSettlPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the provision's relative cash *
* settlement payment date offset.                         *
***********************************************************
*/
export enum ProvisionCashSettlPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum ProvisionCashSettlPaymentDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*************************************************************
* Identifies class or source of the ProvisionPartyID(40175) *
* value.                                                    *
*************************************************************
*/
export enum ProvisionPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
**********************************************************
* Identifies the type or role of ProvisionPartyID(40175) *
* specified.                                             *
**********************************************************
*/
export enum ProvisionPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*******************************************
* The type of ProvisionPartySubID(40179). *
*******************************************
*/
export enum ProvisionPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
*****************************************************
* Time unit associated with protection term events. *
*****************************************************
*/
export enum ProtectionTermEventUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Day type for events that specify a period and unit. *
*******************************************************
*/
export enum ProtectionTermEventDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************************************
* Protection term event qualifier.  Used to further qualify *
* ProtectionTermEventType(40192).                           *
*************************************************************
*/
export enum ProtectionTermEventQualifier {
  RetructuringMultipleHoldingObligations = 'H',
  RestructuringMultipleCreditEventNotices = 'E',
  FloatingRateInterestShortfall = 'C'
}

/*
********************
* Type of payment. *
********************
*/
export enum PaymentType {
  Brokerage = 0,
  UpfrontFee = 1,
  IndependentAmountCollateral = 2,
  PrincipalExchange = 3,
  NovationTermination = 4,
  EarlyTerminationProvision = 5,
  CancelableProvision = 6,
  ExtendibleProvision = 7,
  CapRateProvision = 8,
  FloorRateProvision = 9,
  OptionPremium = 10,
  SettlementPayment = 11,
  CashSettlement = 12,
  Other = 99
}

/*
*********************************************
* The side of the party paying the payment. *
*********************************************
*/
export enum PaymentPaySide {
  Buy = 1,
  Sell = 2
}

/*
************************************************
* The side of the party receiving the payment. *
************************************************
*/
export enum PaymentReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
****************************************************************
* The business day convention used to adjust the payment date. *
* Used only to override the business day convention specified  *
* in the DateAdjustment component within the Instrument        *
* component.                                                   *
****************************************************************
*/
export enum PaymentBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*****************************
* Payment settlement style. *
*****************************
*/
export enum PaymentSettlStyle {
  Standard = 0,
  Net = 1,
  StandardAndNet = 2
}

/*
****************************************************************
* Identifies the class or source of PaymentSettlPartyID(40234) *
* value (e.g. BIC).                                            *
****************************************************************
*/
export enum PaymentSettlPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
***************************************************************
* Identifies the role of PaymentSettlPartyID(40234) (e.g. the *
* beneficiary's bank or depository institution).              *
***************************************************************
*/
export enum PaymentSettlPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
********************************************************
* Qualifies the value of PaymentSettlPartyRole(40236). *
********************************************************
*/
export enum PaymentSettlPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
****************************************************
* The type of PaymentSettlPartySubID(40239) value. *
****************************************************
*/
export enum PaymentSettlPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
************************
* Type of swap stream. *
************************
*/
export enum LegStreamType {
  PaymentCashSettlement = 0,
  PhysicalDelivery = 1
}

/*
********************************************
* The side of the party paying the stream. *
********************************************
*/
export enum LegStreamPaySide {
  Buy = 1,
  Sell = 2
}

/*
***********************************************
* The side of the party receiving the stream. *
***********************************************
*/
export enum LegStreamReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
***************************************************************
* The business day convention used to adjust the instrument   *
* leg's stream's effective date or relative effective date.   *
* Used only to override the business day convention specified *
* in the LegDateAdjustment component within the InstrumentLeg *
* component.                                                  *
***************************************************************
*/
export enum LegStreamEffectiveDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*********************************************************
* Time unit associated with the relative effective date *
* offset.                                               *
*********************************************************
*/
export enum LegStreamEffectiveDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************************
* Specifies the day type of the relative effective date *
* offset.                                               *
*********************************************************
*/
export enum LegStreamEffectiveDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the instrument   *
* leg's stream's termination, or relative termination, date.  *
* Used only to override the business day convention specified *
* in the LegDateAdjustment component within the InstrumentLeg *
* component.                                                  *
***************************************************************
*/
export enum LegStreamTerminationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the relative termination date *
* offset.                                                 *
***********************************************************
*/
export enum LegStreamTerminationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the relative termination date *
* offset.                                                 *
***********************************************************
*/
export enum LegStreamTerminationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust calculation      *
* periods.  Used only to override the business day convention *
* specified in the LegDateAdjustment component within the     *
* InstrumentLeg component.                                    *
***************************************************************
*/
export enum LegStreamCalculationPeriodBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*************************************************************
* The business day convention used to adjust the instrument *
* leg's stream's first calculation period start date. Used  *
* only to override the business day convention specified in *
* the LegDateAdjustment component within the InstrumentLeg  *
* component.                                                *
*************************************************************
*/
export enum LegStreamFirstPeriodStartDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the frequency at which calculation *
* period end dates occur.                                      *
****************************************************************
*/
export enum LegStreamCalculationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of end dates. It *
* is used in conjunction with a specified frequency.  Used     *
* only to override the roll convention specified in the        *
* LegDateAdjustment component within the InstrumentLeg         *
* component.                                                   *
****************************************************************
*/
export enum LegStreamCalculationRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
****************************************************************
* Identifies the type of payment stream applicable to the swap *
* stream associated with the instrument leg.                   *
****************************************************************
*/
export enum LegPaymentStreamType {
  PeriodicDefault = 0,
  Initial = 1,
  Single = 2,
  Dividend = 3,
  Interest = 4,
  DividendReturn = 5,
  PriceReturn = 6,
  TotalReturn = 7,
  Variance = 8,
  Correlation = 9
}

/*
*******************************************************
* The day count convention used in the payment stream *
* calculations.                                       *
*******************************************************
*/
export enum LegPaymentStreamDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
*********************************************************
* The method of calculating discounted payment amounts. *
*********************************************************
*/
export enum LegPaymentStreamDiscountType {
  Standard = 0,
  ForwardRateAgreementFra = 1
}

/*
*******************************************
* The day count convention applied to the *
* LegPaymentStreamDiscountRate(40286).    *
*******************************************
*/
export enum LegPaymentStreamDiscountRateDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***********************
* Compounding method. *
***********************
*/
export enum LegPaymentStreamCompoundingMethod {
  None = 0,
  Flat = 1,
  Straight = 2,
  SpreadExclusive = 3
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* stream's payment date. Used only to override the business   *
* day convention specified in the LegDateAdjustment component *
* within the InstrumentLeg component.                         *
***************************************************************
*/
export enum LegPaymentStreamPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
********************************************************
* Time unit associated with the frequency of payments. *
********************************************************
*/
export enum LegPaymentStreamPaymentFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of end dates. It *
* is used in conjunction with a specified frequency.  Used     *
* only to override the roll convention specified in the        *
* LegDateAdjustment component within the InstrumentLeg         *
* component.                                                   *
****************************************************************
*/
export enum LegPaymentStreamPaymentRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
***************************************************************
* Time unit associated with the relative payment date offset. *
***************************************************************
*/
export enum LegPaymentStreamPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative payment date offset. *
***************************************************************
*/
export enum LegPaymentStreamPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* stream's reset date. Used only to override the business day *
* convention specified in the LegDateAdjustment component     *
* within the InstrumentLeg component.                         *
***************************************************************
*/
export enum LegPaymentStreamResetDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************
* Time unit associated with frequency of resets. *
**************************************************
*/
export enum LegPaymentStreamResetFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
**********************************************************
* Used to specify the day of the week in which the reset *
* occurs for payments that reset on a weekly basis.      *
**********************************************************
*/
export enum LegPaymentStreamResetWeeklyRollConvention {
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
**************************************************************
* The business day convention used to adjust the payment     *
* stream's initial fixing date. Used only to override the    *
* business day convention specified in the LegDateAdjustment *
* component within the InstrumentLeg component.              *
**************************************************************
*/
export enum LegPaymentStreamInitialFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative initial fixing date *
* offset.                                                    *
**************************************************************
*/
export enum LegPaymentStreamInitialFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative initial fixing date *
* offset.                                                    *
**************************************************************
*/
export enum LegPaymentStreamInitialFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* The business day convention used to adjust the payment       *
* stream's fixing date. Used only to override the business day *
* convention specified in the LegDateAdjustment component      *
* within the InstrumentLeg component.                          *
****************************************************************
*/
export enum LegPaymentStreamFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative fixing date offset. *
**************************************************************
*/
export enum LegPaymentStreamFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative fixing date offset. *
**************************************************************
*/
export enum LegPaymentStreamFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Time unit associated with the relative rate cut-off date *
* offset.                                                  *
************************************************************
*/
export enum LegPaymentStreamRateCutoffDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative rate cut-off date *
* offset.                                                  *
************************************************************
*/
export enum LegPaymentStreamRateCutoffDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*********************************************************
* The source of the payment stream floating rate index. *
*********************************************************
*/
export enum LegPaymentStreamRateIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
****************************************************************
* Time unit associated with the payment stream's floating rate *
* index curve period.                                          *
****************************************************************
*/
export enum LegPaymentStreamRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum LegPaymentStreamRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum LegPaymentStreamRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum LegPaymentStreamCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum LegPaymentStreamCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum LegPaymentStreamFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum LegPaymentStreamFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
*************************************
* Specifies the rounding direction. *
*************************************
*/
export enum LegPaymentStreamFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
**************************************************************
* When averaging is applicable, used to specify whether a    *
* weighted or unweighted average method of calculation is to *
* be used.                                                   *
**************************************************************
*/
export enum LegPaymentStreamAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* The specification of any provisions for calculating payment *
* obligations when a floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum LegPaymentStreamNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
*******************************************************
* Time unit associated with the inflation lag period. *
*******************************************************
*/
export enum LegPaymentStreamInflationLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************
* The inflation lag period day type. *
**************************************
*/
export enum LegPaymentStreamInflationLagDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The method used when calculating the inflation index level *
* from multiple points. The most common is linear method.    *
**************************************************************
*/
export enum LegPaymentStreamInflationInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
*****************************************
* The inflation index reference source. *
*****************************************
*/
export enum LegPaymentStreamInflationIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
**************************************************************
* The method of Forward Rate Agreement (FRA) discounting, if *
* any, that will apply.                                      *
**************************************************************
*/
export enum LegPaymentStreamFRADiscounting {
  None = 0,
  InternationalSwapsAndDerivativesAssociationIsda = 1,
  AustralianFinancialMarketsAssociationAfma = 2
}

/*
************************************************************
* The business day convention used to adjust the payment   *
* stream's fixing date for the non-deliverable settlement  *
* terms. Used only to override the business day convention *
* specified in the LegDateAdjustment component within the  *
* InstrumentLeg component.                                 *
************************************************************
*/
export enum LegPaymentStreamNonDeliverableFixingDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative non-deliverable *
* fixing date offset.                                    *
**********************************************************
*/
export enum LegPaymentStreamNonDeliverableFixingDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative non-deliverable *
* fixing date offset.                                    *
**********************************************************
*/
export enum LegPaymentStreamNonDeliverableFixingDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum LegSettlRateFallbackRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum LegNonDeliverableFixingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum PaymentStreamNonDeliverableSettlRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum SettlRateFallbackRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
***********************************
* Specifies the type of schedule. *
***********************************
*/
export enum LegPaymentScheduleType {
  Notional = 0,
  CashFlow = 1,
  FxLinkedNotional = 2,
  FixedRate = 3,
  FutureValueNotional = 4,
  KnownAmount = 5,
  FloatingRateMultiplier = 6,
  Spread = 7,
  CapRate = 8,
  FloorRate = 9,
  NonDeliverableSettlementPaymentDates = 10,
  NonDeliverableSettlementCalculationDates = 11,
  NonDeliverableFixingDates = 12,
  SettlementPeriodNotional = 13,
  SettlementPeriodPrice = 14,
  CalculationPeriod = 15,
  DividendAccrualRateMultiplier = 16,
  DividendAccrualRateSpread = 17,
  DividendAccrualCapRate = 18,
  DividendAccrualFloorRate = 19,
  CompoundingRateMultiplier = 20,
  CompoundingRateSpread = 21,
  CompoundingCapRate = 22,
  CompoundingFloorRate = 23
}

/*
**************************************************
* Indicates to which stub this schedule applies. *
**************************************************
*/
export enum LegPaymentScheduleStubType {
  Initial = 0,
  Final = 1,
  CompoundingInitial = 2,
  CompoundingFinal = 3
}

/*
***************************************************
* The side of the party paying the step schedule. *
***************************************************
*/
export enum LegPaymentSchedulePaySide {
  Buy = 1,
  Sell = 2
}

/*
******************************************************
* The side of the party receiving the step schedule. *
******************************************************
*/
export enum LegPaymentScheduleReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
****************************************************************
* Identifies whether the rate spread is applied to a long or a *
* short position.                                              *
****************************************************************
*/
export enum LegPaymentScheduleRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
**********************************************************
* Specifies the yield calculation treatment for the step *
* schedule.                                              *
**********************************************************
*/
export enum LegPaymentScheduleRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************
* Time unit associated with the step frequency. *
*************************************************
*/
export enum LegPaymentScheduleStepFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* Specifies whether the LegPaymentScheduleStepRate(40393) or   *
* LegPaymentScheduleStepOffsetValue(40392) should be applied   *
* to the initial notional or the previous notional in order to *
* calculate the notional step change amount.                   *
****************************************************************
*/
export enum LegPaymentScheduleStepRelativeTo {
  Initial = 0,
  Previous = 1
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* schedule's fixing date. Used only to override the business  *
* day convention specified in the LegDateAdjustment component *
* within the InstrumentLeg component.                         *
***************************************************************
*/
export enum LegPaymentScheduleFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative fixing date offset. *
**************************************************************
*/
export enum LegPaymentScheduleFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative fixing date offset. *
**************************************************************
*/
export enum LegPaymentScheduleFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* schedule's interim exchange date. Used only to override the *
* business day convention specified in the LegDateAdjustment  *
* component within the InstrumentLeg component.               *
***************************************************************
*/
export enum LegPaymentScheduleInterimExchangeDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative interim exchange date *
* offset.                                                      *
****************************************************************
*/
export enum LegPaymentScheduleInterimExchangeDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative interim exchange date *
* offset.                                                      *
****************************************************************
*/
export enum LegPaymentScheduleInterimExchangeDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum LegPaymentScheduleRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
*********************
* Rate source type. *
*********************
*/
export enum LegPaymentScheduleRateSourceType {
  Primary = 0,
  Secondary = 1
}

/*
**************
* Stub type. *
**************
*/
export enum LegPaymentStubType {
  Initial = 0,
  Final = 1,
  CompoundingInitial = 2,
  CompoundingFinal = 3
}

/*
**************************************************************
* Optional indication whether stub is shorter or longer than *
* the regular swap period.                                   *
**************************************************************
*/
export enum LegPaymentStubLength {
  Short = 0,
  Long = 1
}

/*
************************************************
* The source for the stub floating rate index. *
************************************************
*/
export enum LegPaymentStubIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
******************************************************
* Time unit associated with the floating rate index. *
******************************************************
*/
export enum LegPaymentStubIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Identifies whether the rate spread is applied to a long or a *
* short position.                                              *
****************************************************************
*/
export enum LegPaymentStubIndexRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
**********************************************************
* Specifies the yield calculation treatment for the stub *
* index.                                                 *
**********************************************************
*/
export enum LegPaymentStubIndexRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum LegPaymentStubIndexCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum LegPaymentStubIndexCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum LegPaymentStubIndexFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum LegPaymentStubIndexFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
*******************************************************
* The source for the second stub floating rate index. *
*******************************************************
*/
export enum LegPaymentStubIndex2Source {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
**************************************************************
* Secondary time unit associated with the stub floating rate *
* index curve.                                               *
**************************************************************
*/
export enum LegPaymentStubIndex2CurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Identifies whether the rate spread is applied to a long or a *
* short position.                                              *
****************************************************************
*/
export enum LegPaymentStubIndex2RateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the second *
* stub index.                                              *
************************************************************
*/
export enum LegPaymentStubIndex2RateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
***********************
* Type of provisions. *
***********************
*/
export enum LegProvisionType {
  MandatoryEarlyTermination = 0,
  OptionalEarlyTermination = 1,
  Cancelable = 2,
  Extendible = 3,
  MutualEarlyTermination = 4
}

/*
***************************************************************
* The business day convention used to adjust the instrument   *
* leg's provision's date. Used only to override the business  *
* day convention specified in the LegDateAdjustment component *
* within the InstrumentLeg component.                         *
***************************************************************
*/
export enum LegProvisionDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* Time unit associated with the leg provision's tenor period. *
***************************************************************
*/
export enum LegProvisionDateTenorUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Used to identify the calculation agent.  The calculation *
* agent may be identified in                               *
* LegProvisionCalculationAgent(40456) or in the            *
* ProvisionParties component.                              *
************************************************************
*/
export enum LegProvisionCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***********************************************************
* If optional early termination is not available to both  *
* parties then this component identifies the buyer of the *
* option through its side of the trade.                   *
***********************************************************
*/
export enum LegProvisionOptionSinglePartyBuyerSide {
  Buy = 1,
  Sell = 2
}

/*
************************************************************
* If optional early termination is not available to both   *
* parties then this component identifies the seller of the *
* option through its side of the trade.                    *
************************************************************
*/
export enum LegProvisionOptionSinglePartySellerSide {
  Buy = 1,
  Sell = 2
}

/*
***************************************************
* The instrument provision option exercise style. *
***************************************************
*/
export enum LegProvisionOptionExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
***************************************************************
* An ISDA defined cash settlement method used for the         *
* determination of the applicable cash settlement amount. The *
* method is defined in the 2006 ISDA Definitions, Section     *
* 18.3. Cash Settlement Methods, paragraph (e).               *
***************************************************************
*/
export enum LegProvisionCashSettlMethod {
  CashPrice = 0,
  CashPriceAlternate = 1,
  ParYieldCurveAdjusted = 2,
  ZeroCouponYieldCurveAdjusted = 3,
  ParYieldCurveUnadjusted = 4,
  CrossCurrency = 5,
  CollateralizedPrice = 6
}

/*
********************************************
* Identifies the type of quote to be used. *
********************************************
*/
export enum LegProvisionCashSettlQuoteType {
  Bid = 0,
  Mid = 1,
  Offer = 2,
  ExercisingPartyPays = 3
}

/*
***********************************************
* Identifies the source of quote information. *
***********************************************
*/
export enum LegProvisionCashSettlQuoteSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum LegProvisionCashSettlPaymentDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*************************************************************
* The business day convention used to adjust the instrument *
* leg's provision's option exercise date. Used only to      *
* override the business day convention specified in the     *
* LegDateAdjustment component within the InstrumentLeg      *
* component.                                                *
*************************************************************
*/
export enum LegProvisionOptionExerciseBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the interval to the first (and *
* possibly only) exercise date in the exercise period.     *
************************************************************
*/
export enum LegProvisionOptionExerciseEarliestDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Time unit associated with subsequent exercise dates in the *
* exercise period following the earliest exercise date.      *
**************************************************************
*/
export enum LegProvisionOptionExerciseFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* Time unit associated with the relative option exercise start *
* date offset.                                                 *
****************************************************************
*/
export enum LegProvisionOptionExerciseStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* exercise start date offset.                               *
*************************************************************
*/
export enum LegProvisionOptionExerciseStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum LegProvisionOptionExerciseFixedDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*************************************************************
* The business day convention used to adjust the instrument *
* leg's provision's option expiration date. Used only to    *
* override the business day convention specified in the     *
* LegDateAdjustment component within the InstrumentLeg      *
* component.                                                *
*************************************************************
*/
export enum LegProvisionOptionExpirationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the relative option expiration *
* date offset.                                             *
************************************************************
*/
export enum LegProvisionOptionExpirationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* expiration date offset.                                   *
*************************************************************
*/
export enum LegProvisionOptionExpirationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* The business day convention used to adjust the instrument    *
* leg's provision's option relevant underlying date. Used only *
* to override the business day convention specified in the     *
* LegDateAdjustment component within the InstrumentLeg         *
* component.                                                   *
****************************************************************
*/
export enum LegProvisionOptionRelevantUnderlyingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative option relevant *
* underlying date offset.                                *
**********************************************************
*/
export enum LegProvisionOptionRelevantUnderlyingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* relevant underlying date offset.                          *
*************************************************************
*/
export enum LegProvisionOptionRelevantUnderlyingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The business day convention used to adjust the provisional *
* cash settlement payment's termination, or relative         *
* termination, date. Used only to override the business day  *
* convention specified in the LegDateAdjustment component    *
* within the InstrumentLeg component.                        *
**************************************************************
*/
export enum LegProvisionCashSettlPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative cash settlement *
* payment date offset.                                   *
**********************************************************
*/
export enum LegProvisionCashSettlPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the provision's relative cash *
* settlement payment date offset.                         *
***********************************************************
*/
export enum LegProvisionCashSettlPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The business day convention used to adjust the provision's *
* cash settlement valuation date. Used only to override the  *
* business day convention specified in the LegDateAdjustment *
* component within the InstrumentLeg component.              *
**************************************************************
*/
export enum LegProvisionCashSettlValueDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative cash settlement value *
* date offset.                                                 *
****************************************************************
*/
export enum LegProvisionCashSettlValueDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the provision's relative cash *
* settlement value date offset.                           *
***********************************************************
*/
export enum LegProvisionCashSettlValueDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************
* Identifies the class or source of *
* LegProvisionPartyID(40534).       *
*************************************
*/
export enum LegProvisionPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
*************************************************************
* Identifies the type or role of LegProvisionPartyID(40534) *
* specified.                                                *
*************************************************************
*/
export enum LegProvisionPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
****************************************************
* The type of LegProvisionPartySubID(40538) value. *
****************************************************
*/
export enum LegProvisionPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
************************
* Type of swap stream. *
************************
*/
export enum UnderlyingStreamType {
  PaymentCashSettlement = 0,
  PhysicalDelivery = 1
}

/*
********************************************
* The side of the party paying the stream. *
********************************************
*/
export enum UnderlyingStreamPaySide {
  Buy = 1,
  Sell = 2
}

/*
***********************************************
* The side of the party receiving the stream. *
***********************************************
*/
export enum UnderlyingStreamReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
***************************************************************
* The business day convention used to adjust the underlying   *
* instrument's stream's termination, or relative termination, *
* date. Used only to override the business day convention     *
* specified in the UnderlyingDateAdjustment component within  *
* the UnderlyingInstrument component.                         *
***************************************************************
*/
export enum UnderlyingStreamTerminationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the relative termination date *
* offset.                                                 *
***********************************************************
*/
export enum UnderlyingStreamTerminationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the relative termination date *
* offset.                                                 *
***********************************************************
*/
export enum UnderlyingStreamTerminationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The business day convention used to adjust the calculation *
* periods. Used only to override the business day convention *
* specified in the UnderlyingDateAdjustment component within *
* the UnderlyingInstrument component.                        *
**************************************************************
*/
export enum UnderlyingStreamCalculationPeriodBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* The business day convention used to adjust the underlying   *
* instrument's stream's first calculation period start date.  *
* Used only to override the business day convention specified *
* in the UnderlyingDateAdjustment component within the        *
* UnderlyingInstrument component.                             *
***************************************************************
*/
export enum UnderlyingStreamFirstPeriodStartDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the frequency at which calculation *
* period end dates occur.                                      *
****************************************************************
*/
export enum UnderlyingStreamCalculationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of end dates. It *
* is used in conjunction with a specified frequency. Used only *
* to override the roll convention specified in the             *
* UnderlyingDateAdjustment component within the                *
* UnderlyingInstrument component.                              *
****************************************************************
*/
export enum UnderlyingStreamCalculationRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
****************************************************************
* Identifies the type of payment stream applicable to the swap *
* stream associated with the underlying instrument.            *
****************************************************************
*/
export enum UnderlyingPaymentStreamType {
  PeriodicDefault = 0,
  Initial = 1,
  Single = 2,
  Dividend = 3,
  Interest = 4,
  DividendReturn = 5,
  PriceReturn = 6,
  TotalReturn = 7,
  Variance = 8,
  Correlation = 9
}

/*
*******************************************************
* The day count convention used in the payment stream *
* calculations.                                       *
*******************************************************
*/
export enum UnderlyingPaymentStreamDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
********************************************************
* The method of calculating discounted payment amounts *
********************************************************
*/
export enum UnderlyingPaymentStreamDiscountType {
  Standard = 0,
  ForwardRateAgreementFra = 1
}

/*
***********************************************
* The day count convention applied to the     *
* UnderlyingPaymentStreamDiscountRate(40575). *
***********************************************
*/
export enum UnderlyingPaymentStreamDiscountRateDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***********************
* Compounding Method. *
***********************
*/
export enum UnderlyingPaymentStreamCompoundingMethod {
  None = 0,
  Flat = 1,
  Straight = 2,
  SpreadExclusive = 3
}

/*
*************************************************************
* The business day convention used to adjust the payment    *
* stream's payment date. Used only to override the business *
* day convention specified in the UnderlyingDateAdjustment  *
* component within the UnderlyingInstrument component.      *
*************************************************************
*/
export enum UnderlyingPaymentStreamPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
********************************************************
* Time unit associated with the frequency of payments. *
********************************************************
*/
export enum UnderlyingPaymentStreamPaymentFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of end dates. It *
* is used in conjunction with a specified frequency. Used only *
* to override the roll convention specified in the             *
* UnderlyingDateAdjustment component within the                *
* UnderlyingInstrument component.                              *
****************************************************************
*/
export enum UnderlyingPaymentStreamPaymentRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
***************************************************************
* Time unit associated with the relative payment date offset. *
***************************************************************
*/
export enum UnderlyingPaymentStreamPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative payment date offset. *
***************************************************************
*/
export enum UnderlyingPaymentStreamPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* stream's reset date. Used only to override the business day *
* convention specified in the UnderlyingDateAdjustment        *
* component within the UnderlyingInstrument component.        *
***************************************************************
*/
export enum UnderlyingPaymentStreamResetDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************
* Time unit associated with frequency of resets. *
**************************************************
*/
export enum UnderlyingPaymentStreamResetFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
**********************************************************
* Used to specify the day of the week in which the reset *
* occurs for payments that reset on a weekly basis.      *
**********************************************************
*/
export enum UnderlyingPaymentStreamResetWeeklyRollConvention {
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
***********************************************************
* The business day convention used to adjust the payment  *
* stream's initial fixing date. Used only to override the *
* business day convention specified in the                *
* UnderlyingDateAdjustment component within the           *
* UnderlyingInstrument component.                         *
***********************************************************
*/
export enum UnderlyingPaymentStreamInitialFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative initial fixing date *
* offset.                                                    *
**************************************************************
*/
export enum UnderlyingPaymentStreamInitialFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative initial fixing date *
* offset.                                                    *
**************************************************************
*/
export enum UnderlyingPaymentStreamInitialFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* The business day convention used to adjust the payment       *
* stream's fixing date. Used only to override the business day *
* convention specified in the UnderlyingDateAdjustment         *
* component within the UnderlyingInstrument component.         *
****************************************************************
*/
export enum UnderlyingPaymentStreamFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative fixing date offset. *
**************************************************************
*/
export enum UnderlyingPaymentStreamFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative fixing date offset. *
**************************************************************
*/
export enum UnderlyingPaymentStreamFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Time unit associated with the relative rate cut-off date *
* offset.                                                  *
************************************************************
*/
export enum UnderlyingPaymentStreamRateCutoffDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative rate cut-off date *
* offset.                                                  *
************************************************************
*/
export enum UnderlyingPaymentStreamRateCutoffDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*********************************************************
* The source of the payment stream floating rate index. *
*********************************************************
*/
export enum UnderlyingPaymentStreamRateIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
*********************************************************
* Time unit associated with the underlying instruments *
* floating rate index.                                  *
*********************************************************
*/
export enum UnderlyingPaymentStreamRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
********************************************
* Identifies a short or long spread value. *
********************************************
*/
export enum UnderlyingPaymentStreamRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum UnderlyingPaymentStreamRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum UnderlyingPaymentStreamCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum UnderlyingPaymentStreamCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum UnderlyingPaymentStreamFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum UnderlyingPaymentStreamFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
*************************************
* Specifies the rounding direction. *
*************************************
*/
export enum UnderlyingPaymentStreamFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
****************************************************************
* When rate averaging is applicable, used to specify whether a *
* weighted or unweighted average calculation method is to be   *
* used.                                                        *
****************************************************************
*/
export enum UnderlyingPaymentStreamAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* The specification of any provisions for calculating payment *
* obligations when a floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum UnderlyingPaymentStreamNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
*******************************************************
* Time unit associated with the inflation lag period. *
*******************************************************
*/
export enum UnderlyingPaymentStreamInflationLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************
* The inflation lag period day type. *
**************************************
*/
export enum UnderlyingPaymentStreamInflationLagDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The method used when calculating the Inflation Index Level *
* from multiple points - the most common is Linear.          *
**************************************************************
*/
export enum UnderlyingPaymentStreamInflationInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
*****************************************
* The inflation index reference source. *
*****************************************
*/
export enum UnderlyingPaymentStreamInflationIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
**************************************************************
* The method of Forward Rate Agreement (FRA) discounting, if *
* any, that will apply.                                      *
**************************************************************
*/
export enum UnderlyingPaymentStreamFRADiscounting {
  None = 0,
  InternationalSwapsAndDerivativesAssociationIsda = 1,
  AustralianFinancialMarketsAssociationAfma = 2
}

/*
*************************************************************
* The business day convention used to adjust the payment    *
* stream's fixing date for the non-deliverable terms. Used  *
* only to override the business day convention specified in *
* the UnderlyingDateAdjustment component within the         *
* UnderlyingInstrument component.                           *
*************************************************************
*/
export enum UnderlyingPaymentStreamNonDeliverableFixingDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative non-deliverable *
* fixing date offset.                                    *
**********************************************************
*/
export enum UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative non-deliverable *
* fixing date offset.                                    *
**********************************************************
*/
export enum UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum UnderlyingNonDeliverableFixingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum UnderlyingPaymentStreamNonDeliverableSettlRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
*****************************************************
* Used to identify the settlement rate postponement *
* calculation agent.                                *
*****************************************************
*/
export enum UnderlyingSettlRatePostponementCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
*********************
* Type of schedule. *
*********************
*/
export enum UnderlyingPaymentScheduleType {
  Notional = 0,
  CashFlow = 1,
  FxLinkedNotional = 2,
  FixedRate = 3,
  FutureValueNotional = 4,
  KnownAmount = 5,
  FloatingRateMultiplier = 6,
  Spread = 7,
  CapRate = 8,
  FloorRate = 9,
  NonDeliverableSettlementPaymentDates = 10,
  NonDeliverableSettlementCalculationDates = 11,
  NonDeliverableFixingDates = 12,
  SettlementPeriodNotional = 13,
  SettlementPeriodPrice = 14,
  CalculationPeriod = 15,
  DividendAccrualRateMultiplier = 16,
  DividendAccrualRateSpread = 17,
  DividendAccrualCapRate = 18,
  DividendAccrualFloorRate = 19,
  CompoundingRateMultiplier = 20,
  CompoundingRateSpread = 21,
  CompoundingCapRate = 22,
  CompoundingFloorRate = 23
}

/*
**************************************************
* Indicates to which stub this schedule applies. *
**************************************************
*/
export enum UnderlyingPaymentScheduleStubType {
  Initial = 0,
  Final = 1,
  CompoundingInitial = 2,
  CompoundingFinal = 3
}

/*
***************************************************
* The side of the party paying the step schedule. *
***************************************************
*/
export enum UnderlyingPaymentSchedulePaySide {
  Buy = 1,
  Sell = 2
}

/*
******************************************************
* The side of the party receiving the step schedule. *
******************************************************
*/
export enum UnderlyingPaymentScheduleReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum UnderlyingPaymentScheduleRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
**********************************************************
* Specifies the yield calculation treatment for the step *
* schedule.                                              *
**********************************************************
*/
export enum UnderlyingPaymentScheduleRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************
* Time unit associated with the step frequency. *
*************************************************
*/
export enum UnderlyingPaymentScheduleStepFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
***************************************************************
* Specifies whether the                                       *
* UnderlyingPaymentScheduleStepRate(40683) or                 *
* UnderlyingPaymentScheduleStepOffsetValue(40682) should be   *
* applied to the initial notional or the previous notional in *
* order to calculate the notional step change amount.         *
***************************************************************
*/
export enum UnderlyingPaymentScheduleStepRelativeTo {
  Initial = 0,
  Previous = 1
}

/*
**************************************************************
* The business day convention used to adjust the payment     *
* schedule's fixing date. Used only to override the business *
* day convention specified in the UnderlyingDateAdjustment   *
* component within the UnderlyingInstrument component.       *
**************************************************************
*/
export enum UnderlyingPaymentScheduleFixingDateBusinessDayCnvtn {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative fixing date offset. *
**************************************************************
*/
export enum UnderlyingPaymentScheduleFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative fixing date offset. *
**************************************************************
*/
export enum UnderlyingPaymentScheduleFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* schedule's interim exchange date. Used only to override the *
* business day convention specified in the                    *
* UnderlyingDateAdjustment component within the               *
* UnderlyingInstrument component.                             *
***************************************************************
*/
export enum UnderlyingPaymentScheduleInterimExchangeDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative interim exchange date *
* offset.                                                      *
****************************************************************
*/
export enum UnderlyingPaymentScheduleInterimExchangeDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative interim exchange date *
* offset.                                                      *
****************************************************************
*/
export enum UnderlyingPaymentScheduleInterimExchangeDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum UnderlyingPaymentScheduleRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
*********************
* Rate source type. *
*********************
*/
export enum UnderlyingPaymentScheduleRateSourceType {
  Primary = 0,
  Secondary = 1
}

/*
**************
* Stub type. *
**************
*/
export enum UnderlyingPaymentStubType {
  Initial = 0,
  Final = 1,
  CompoundingInitial = 2,
  CompoundingFinal = 3
}

/*
**************************************************************
* Optional indication whether stub is shorter or longer than *
* the regular swap period.                                   *
**************************************************************
*/
export enum UnderlyingPaymentStubLength {
  Short = 0,
  Long = 1
}

/*
************************************************************
* The source for the underlying payment stub floating rate *
* index.                                                   *
************************************************************
*/
export enum UnderlyingPaymentStubIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
*********************************************************
* Time unit associated with the underlying payment stub *
* floating rate index.                                  *
*********************************************************
*/
export enum UnderlyingPaymentStubIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum UnderlyingPaymentStubIndexRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
**********************************************************
* Specifies the yield calculation treatment for the stub *
* index.                                                 *
**********************************************************
*/
export enum UnderlyingPaymentStubIndexRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum UnderlyingPaymentStubIndexCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum UnderlyingPaymentStubIndexCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum UnderlyingPaymentStubIndexFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum UnderlyingPaymentStubIndexFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
******************************************************
* The source of the second stub floating rate index. *
******************************************************
*/
export enum UnderlyingPaymentStubIndex2Source {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
**************************************************************
* Secondary time unit associated with the stub floating rate *
* index curve.                                               *
**************************************************************
*/
export enum UnderlyingPaymentStubIndex2CurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum UnderlyingPaymentStubIndex2RateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the second *
* stub index.                                              *
************************************************************
*/
export enum UnderlyingPaymentStubIndex2RateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Identifies the type of payment stream associated with the *
* swap.                                                     *
*************************************************************
*/
export enum PaymentStreamType {
  PeriodicDefault = 0,
  Initial = 1,
  Single = 2,
  Dividend = 3,
  Interest = 4,
  DividendReturn = 5,
  PriceReturn = 6,
  TotalReturn = 7,
  Variance = 8,
  Correlation = 9
}

/*
*******************************************************
* The day count convention used in the payment stream *
* calculations.                                       *
*******************************************************
*/
export enum PaymentStreamDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
********************************************************
* The method of calculating discounted payment amounts *
********************************************************
*/
export enum PaymentStreamDiscountType {
  Standard = 0,
  ForwardRateAgreementFra = 1
}

/*
*******************************************
* The day count convention applied to the *
* PaymentStreamDiscountRate(40745).       *
*******************************************
*/
export enum PaymentStreamDiscountRateDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***********************
* Compounding method. *
***********************
*/
export enum PaymentStreamCompoundingMethod {
  None = 0,
  Flat = 1,
  Straight = 2,
  SpreadExclusive = 3
}

/*
*************************************************************
* The business day convention used to adjust the payment    *
* stream's payment date. Used only to override the business *
* day convention specified in the DateAdjustment component  *
* within the Instrument component.                          *
*************************************************************
*/
export enum PaymentStreamPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
********************************************************
* Time unit associated with the frequency of payments. *
********************************************************
*/
export enum PaymentStreamPaymentFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of end dates. It *
* is used in conjunction with a specified frequency. Used only *
* to override the roll convention specified in the             *
* DateAdjustment component within the Instrument component.    *
****************************************************************
*/
export enum PaymentStreamPaymentRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
*************************************************************
* Time unit multiplier for the relative initial fixing date *
* offset.                                                   *
*************************************************************
*/
export enum PaymentStreamPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* stream's reset date. Used only to override the business day *
* convention specified in the DateAdjustment component within *
* the Instrument component.                                   *
***************************************************************
*/
export enum PaymentStreamResetDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
******************************************************
* Time unit associated with the frequency of resets. *
******************************************************
*/
export enum PaymentStreamResetFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
**********************************************************
* Used to specify the day of the week in which the reset *
* occurs for payments that reset on a weekly basis.      *
**********************************************************
*/
export enum PaymentStreamResetWeeklyRollConvention {
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
***********************************************************
* The business day convention used to adjust the payment  *
* stream's initial fixing date. Used only to override the *
* business day convention specified in the DateAdjustment *
* component within the Instrument component.              *
***********************************************************
*/
export enum PaymentStreamInitialFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative initial fixing date *
* offset.                                                    *
**************************************************************
*/
export enum PaymentStreamInitialFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative initial fixing date *
* offset.                                                    *
**************************************************************
*/
export enum PaymentStreamInitialFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* The business day convention used to adjust the payment       *
* stream's fixing date. Used only to override the business day *
* convention specified in the DateAdjustment component within  *
* the Instrument component.                                    *
****************************************************************
*/
export enum PaymentStreamFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative fixing date offset. *
**************************************************************
*/
export enum PaymentStreamFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative fixing date offset. *
**************************************************************
*/
export enum PaymentStreamFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Time unit associated with the relative rate cut-off date *
* offset.                                                  *
************************************************************
*/
export enum PaymentStreamRateCutoffDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative rate cut-off date *
* offset.                                                  *
************************************************************
*/
export enum PaymentStreamRateCutoffDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*********************************************************
* The source of the payment stream floating rate index. *
*********************************************************
*/
export enum PaymentStreamRateIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
******************************************************
* Time unit associated with the floating rate index. *
******************************************************
*/
export enum PaymentStreamRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum PaymentStreamRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum PaymentStreamRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum PaymentStreamCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum PaymentStreamCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum PaymentStreamFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum PaymentStreamFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
*************************************
* Specifies the rounding direction. *
*************************************
*/
export enum PaymentStreamFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
****************************************************************
* When rate averaging is applicable, used to specify whether a *
* weighted or unweighted average calculation method is to be   *
* used.                                                        *
****************************************************************
*/
export enum PaymentStreamAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* The specification of any provisions for calculating payment *
* obligations when a floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum PaymentStreamNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
*******************************************************
* Time unit associated with the inflation lag period. *
*******************************************************
*/
export enum PaymentStreamInflationLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************
* The inflation lag period day type. *
**************************************
*/
export enum PaymentStreamInflationLagDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The method used when calculating the Inflation Index Level *
* from multiple points - the most common is Linear.          *
**************************************************************
*/
export enum PaymentStreamInflationInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
*****************************************
* The inflation index reference source. *
*****************************************
*/
export enum PaymentStreamInflationIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
**************************************************************
* The method of Forward Rate Agreement (FRA) discounting, if *
* any, that will apply.                                      *
**************************************************************
*/
export enum PaymentStreamFRADiscounting {
  None = 0,
  InternationalSwapsAndDerivativesAssociationIsda = 1,
  AustralianFinancialMarketsAssociationAfma = 2
}

/*
************************************************************
* The business day convention used to adjust the payment   *
* stream's fixing date for the non-deliverable settlement  *
* terms. Used only to override the business day convention *
* specified in the DateAdjustment component within the     *
* Instrument component                                     *
************************************************************
*/
export enum PaymentStreamNonDeliverableFixingDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative non-deliverable *
* fixing date offset.                                    *
**********************************************************
*/
export enum PaymentStreamNonDeliverableFixingDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative non-deliverable *
* fixing date offset.                                    *
**********************************************************
*/
export enum PaymentStreamNonDeliverableFixingDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum NonDeliverableFixingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*********************
* Type of schedule. *
*********************
*/
export enum PaymentScheduleType {
  Notional = 0,
  CashFlow = 1,
  FxLinkedNotional = 2,
  FixedRate = 3,
  FutureValueNotional = 4,
  KnownAmount = 5,
  FloatingRateMultiplier = 6,
  Spread = 7,
  CapRate = 8,
  FloorRate = 9,
  NonDeliverableSettlementPaymentDates = 10,
  NonDeliverableSettlementCalculationDates = 11,
  NonDeliverableFixingDates = 12,
  SettlementPeriodNotional = 13,
  SettlementPeriodPrice = 14,
  CalculationPeriod = 15,
  DividendAccrualRateMultiplier = 16,
  DividendAccrualRateSpread = 17,
  DividendAccrualCapRate = 18,
  DividendAccrualFloorRate = 19,
  CompoundingRateMultiplier = 20,
  CompoundingRateSpread = 21,
  CompoundingCapRate = 22,
  CompoundingFloorRate = 23
}

/*
**************************************************
* Indicates to which stub this schedule applies. *
**************************************************
*/
export enum PaymentScheduleStubType {
  Initial = 0,
  Final = 1,
  CompoundingInitial = 2,
  CompoundingFinal = 3
}

/*
***************************************************
* The side of the party paying the step schedule. *
***************************************************
*/
export enum PaymentSchedulePaySide {
  Buy = 1,
  Sell = 2
}

/*
*******************************************************
* The side of the party receiving the stepf schedule. *
*******************************************************
*/
export enum PaymentScheduleReceiveSide {
  Buy = 1,
  Sell = 2
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum PaymentScheduleRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
**********************************************************
* Specifies the yield calculation treatment for the step *
* schedule.                                              *
**********************************************************
*/
export enum PaymentScheduleRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************
* Time unit associated with the step frequency. *
*************************************************
*/
export enum PaymentScheduleStepFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
**************************************************************
* Specifies whether the PaymentScheduleStepRate(40847) or    *
* PaymentScheduleStepOffsetValue(40846) should be applied to *
* the initial notional or the previous notional in order to  *
* calculate the notional step change amount.                 *
**************************************************************
*/
export enum PaymentScheduleStepRelativeTo {
  Initial = 0,
  Previous = 1
}

/*
**************************************************************
* The business day convention used to adjust the payment     *
* schedule's fixing date. Used only to override the business *
* day convention specified in the DateAdjustment component   *
* within the Instrument component.                           *
**************************************************************
*/
export enum PaymentScheduleFixingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative fixing date offset. *
**************************************************************
*/
export enum PaymentScheduleFixingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative fixing date offset. *
**************************************************************
*/
export enum PaymentScheduleFixingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* schedule's interim exchange date. Used only to override the *
* business day convention specified in the DateAdjustment     *
* component within the Instrument component.                  *
***************************************************************
*/
export enum PaymentScheduleInterimExchangeDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative interim exchange date *
* offset.                                                      *
****************************************************************
*/
export enum PaymentScheduleInterimExchangeDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative interim exchange date *
* offset.                                                      *
****************************************************************
*/
export enum PaymentScheduleInterimExchangeDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum PaymentScheduleRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
*********************
* Rate source type. *
*********************
*/
export enum PaymentScheduleRateSourceType {
  Primary = 0,
  Secondary = 1
}

/*
**************
* Stub type. *
**************
*/
export enum PaymentStubType {
  Initial = 0,
  Final = 1,
  CompoundingInitial = 2,
  CompoundingFinal = 3
}

/*
**************************************************************
* Optional indication whether stub is shorter or longer than *
* the regular swap period.                                   *
**************************************************************
*/
export enum PaymentStubLength {
  Short = 0,
  Long = 1
}

/*
***********************************************
* The source of the stub floating rate index. *
***********************************************
*/
export enum PaymentStubIndexSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
***********************************************************
* Time unit associated with the stub floating rate index. *
***********************************************************
*/
export enum PaymentStubIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum PaymentStubIndexRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
*************************************************************
* Specifies the yield calculation treatment for the payment *
* stub index.                                               *
*************************************************************
*/
export enum PaymentStubIndexRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum PaymentStubIndexCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum PaymentStubIndexCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum PaymentStubIndexFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum PaymentStubIndexFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
******************************************************
* The source of the second stub floating rate index. *
******************************************************
*/
export enum PaymentStubIndex2Source {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
**************************************************************
* Secondary time unit associated with the stub floating rate *
* index curve.                                               *
**************************************************************
*/
export enum PaymentStubIndex2CurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum PaymentStubIndex2RateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the second *
* stub index.                                              *
************************************************************
*/
export enum PaymentStubIndex2RateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum UnderlyingSettlRateFallbackRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
*****************************************************
* Used to identify the settlement rate postponement *
* calculation agent.                                *
*****************************************************
*/
export enum LegSettlRatePostponementCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***************************************************************
* The business day convention used to adjust the instrument's *
* stream's effective, or relative effective, date. Used only  *
* to override the business day convention specified in the    *
* DateAdjustment component within the Instrument component.   *
***************************************************************
*/
export enum StreamEffectiveDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*********************************************************
* Time unit associated with the relative effective date *
* offset.                                               *
*********************************************************
*/
export enum StreamEffectiveDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************************
* Specifies the day type of the relative effective date *
* offset.                                               *
*********************************************************
*/
export enum StreamEffectiveDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************
* Used to further qualify the value of *
* UnderlyingProvisionPartyRole(42176). *
****************************************
*/
export enum UnderlyingProvisionPartyRoleQualifier {
  Agency = 0,
  Principal = 1,
  RisklessPrincipal = 2,
  GeneralClearingMember = 3,
  IndividualClearingMember = 4,
  PreferredMarketMaker = 5,
  DirectedMarketMaker = 6,
  Bank = 7,
  Hub = 8,
  PrimaryTradeRepository = 9,
  OriginalTradeRepository = 10,
  AdditionalInternationalTradeRepository = 11,
  AdditionalDomesticTradeRepository = 12,
  RelatedExchange = 13,
  OptionsExchange = 14,
  SpecifiedExchange = 15,
  ConstituentExchange = 16,
  ExemptFromTradeReporting = 17,
  Current = 18,
  New = 19,
  DesignatedSponsor = 20,
  Specialist = 21,
  Algorithm = 22,
  FirmOrLegalEntity = 23,
  NaturalPerson = 24,
  RegularTrader = 25,
  HeadTrader = 26,
  Supervisor = 27
}

/*
********************************************************
* Specifies the type of price for PaymentPrice(40218). *
********************************************************
*/
export enum PaymentPriceType {
  PercentageIEPercentOfParOftenCalledDollarPriceForFixedIncome = 1,
  PerUnitIEPerShareOrContract = 2,
  FixedAmountAbsoluteValue = 3,
  DiscountPercentagePointsBelowPar = 4,
  PremiumPercentagePointsOverPar = 5,
  SpreadBasisPointsSpread = 6,
  TedPrice = 7,
  TedYield = 8,
  Yield = 9,
  FixedCabinetTradePricePrimarilyForListedFuturesAndOptions = 10,
  VariableCabinetTradePricePrimarilyForListedFuturesAndOptions = 11,
  PriceSpread = 12,
  ProductTicksInHalves = 13,
  ProductTicksInFourths = 14,
  ProductTicksInEighths = 15,
  ProductTicksInSixteenths = 16,
  ProductTicksInThirtySeconds = 17,
  ProductTicksInSixtyFourths = 18,
  ProductTicksInOneTwentyEighths = 19,
  NormalRateRepresentationEGFxRate = 20,
  InverseRateRepresentationEGFxRate = 21,
  BasisPoints = 22,
  UpFrontPoints = 23,
  InterestRate = 24,
  PercentageOfNotional = 25
}

/*
***************************************************************
* Specifies the day type of the relative payment date offset. *
***************************************************************
*/
export enum PaymentStreamPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************************************
* The business day convention used for adjusting dates. The *
* value defined here applies to all adjustable dates in the *
* instrument unless specifically overridden.                *
*************************************************************
*/
export enum BusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* The convention for determining a sequence of dates. It is    *
* used in conjunction with a specified frequency. The value    *
* defined here applies to all adjustable dates in the          *
* instrument unless specifically overridden. Additional values *
* may be used by mutual agreement of the counterparties.       *
****************************************************************
*/
export enum DateRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
*************************************************************
* The business day convention used for adjusting dates. The *
* value defined here applies to all adjustable dates in the *
* instrument leg unless specifically overridden.            *
*************************************************************
*/
export enum LegBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*************************************************************
* The convention for determining a sequence of dates. It is *
* used in conjunction with a specified frequency. The value *
* defined here applies to all adjustable dates in the       *
* instrument leg unless specifically overridden.            *
*************************************************************
*/
export enum LegDateRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
*************************************************************
* The business day convention used for adjusting dates. The *
* value defined here applies to all adjustable dates in the *
* underlying instrument unless specifically overridden.     *
*************************************************************
*/
export enum UnderlyingBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*************************************************************
* The convention for determining a sequence of dates. It is *
* used in conjunction with a specified frequency. The value *
* defined here applies to all adjustable dates in the       *
* underlying instrument unless specifically overridden.     *
*************************************************************
*/
export enum UnderlyingDateRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
************************************************************
* Used to further clarify the value of PaymentType(40213). *
************************************************************
*/
export enum PaymentSubType {
  InitialPrincipalExchange = 0,
  IntermediatePrincipalExchange = 1,
  FinalPrincipalExchange = 2,
  PrepaidPremiumForward = 3,
  PostpaidPremiumForward = 4,
  VariablePremiumForward = 5,
  FixedPremiumForward = 6,
  SwapPremium = 7,
  ConditionalPrincipalExchangeOnExercise = 8
}

/*
****************************************************
* Time unit associated with complex credit events. *
****************************************************
*/
export enum ComplexEventCreditEventUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************************
* Specifies the day type for the complex credit events. *
*********************************************************
*/
export enum ComplexEventCreditEventDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Specifies a complex event qualifier. Used to further qualify *
* ComplexEventCreditEventType(40998).                          *
****************************************************************
*/
export enum ComplexEventCreditEventQualifier {
  RetructuringMultipleHoldingObligations = 'H',
  RestructuringMultipleCreditEventNotices = 'E',
  FloatingRateInterestShortfall = 'C'
}

/*
******************************
* Specifies the period type. *
******************************
*/
export enum ComplexEventPeriodType {
  AsianOut = 0,
  AsianIn = 1,
  BarrierCap = 2,
  BarrierFloor = 3,
  KnockOut = 4,
  KnockIn = 5
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum ComplexEventRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
***************************************************************
* Indicates whether the rate source specified is a primary or *
* secondary source.                                           *
***************************************************************
*/
export enum ComplexEventRateSourceType {
  Primary = 0,
  Secondary = 1
}

/*
*******************************************************
* Time unit associated with the relative date offset. *
*******************************************************
*/
export enum ComplexEventDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Specifies the day type of the relative date offset. *
*******************************************************
*/
export enum ComplexEventDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* The business day convention used to adjust the complex event *
* date. Used only to override the business day convention      *
* specified in the DateAdjustment component within the         *
* Instrument component.                                        *
****************************************************************
*/
export enum ComplexEventDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the schedule date frequency. *
**********************************************************
*/
export enum ComplexEventScheduleFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* The convention for determining the sequence of dates.  It is *
* used in conjunction with a specified frequency.  Used only   *
* to override the roll convention defined in the               *
* DateAdjustment component in Instrument.                      *
****************************************************************
*/
export enum ComplexEventScheduleRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
********************************************
* Specifies the type of delivery schedule. *
********************************************
*/
export enum DeliveryScheduleType {
  Notional = 0,
  Delivery = 1,
  PhysicalSettlementPeriod = 2
}

/*
**********************************************************
* Specifies the delivery quantity unit of measure (UOM). *
**********************************************************
*/
export enum DeliveryScheduleNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* The frequency of notional delivery. *
***************************************
*/
export enum DeliveryScheduleNotionalCommodityFrequency {
  Term = 0,
  PerBusinessDay = 1,
  PerCalculationPeriod = 2,
  PerSettlementPeriod = 3,
  PerCalendarDay = 4,
  PerHour = 5,
  PerMonth = 6
}

/*
**********************************************************
* Specifies the tolerance value's unit of measure (UOM). *
**********************************************************
*/
export enum DeliveryScheduleToleranceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* Specifies the tolerance value type. *
***************************************
*/
export enum DeliveryScheduleToleranceType {
  Absolute = 0,
  Percentage = 1
}

/*
***********************************************
* Specifies the commodity delivery flow type. *
***********************************************
*/
export enum DeliveryScheduleSettlFlowType {
  AllTimes = 0,
  OnPeak = 1,
  OffPeak = 2,
  Base = 3,
  BlockHours = 4,
  Other = 5
}

/*
*************************************************************
* Indicates whether holidays are included in the settlement *
* periods. Required for electricity contracts.              *
*************************************************************
*/
export enum DeliveryScheduleSettlHolidaysProcessingInstruction {
  DoNotIncludeHolidays = 0,
  IncludeHolidays = 1
}

/*
****************************************************
* Specifies the day or group of days for delivery. *
****************************************************
*/
export enum DeliveryScheduleSettlDay {
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7,
  AllWeekdays = 8,
  AllDays = 9,
  AllWeekends = 10
}

/*
***********************************************************
* Specifies the format of the delivery start and end time *
* values.                                                 *
***********************************************************
*/
export enum DeliveryScheduleSettlTimeType {
  HourOfTheDay = 0,
  HhMmTimeFormat = 1
}

/*
******************************************
* Specifies the type of delivery stream. *
******************************************
*/
export enum DeliveryStreamType {
  PeriodicDefaultIfNotSpecified = 0,
  Initial = 1,
  Single = 2
}

/*
***************************************************************
* Specifies under what conditions the buyer and seller should *
* be excused of their delivery obligations.                   *
***************************************************************
*/
export enum DeliveryStreamDeliveryRestriction {
  Firm = 1,
  InterruptableOrNonFirm = 2,
  ForceMajeure = 3,
  SystemFirm = 4,
  UnitFirm = 5
}

/*
*****************************************************
* The trade side value of the party responsible for *
* electricity delivery contingency.                 *
*****************************************************
*/
export enum DeliveryStreamDeliveryContingentPartySide {
  Buyer = 0,
  Seller = 1
}

/*
**********************************************
* Specifies the condition of title transfer. *
**********************************************
*/
export enum DeliveryStreamTitleTransferCondition {
  TransfersWithRiskOfLoss = 0,
  DoesNotTransferWithRiskOfLoss = 1
}

/*
**********************************************************
* Specifies the tolerance value's unit of measure (UOM). *
**********************************************************
*/
export enum DeliveryStreamToleranceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* Specifies the tolerance value type. *
***************************************
*/
export enum DeliveryStreamToleranceType {
  Absolute = 0,
  Percentage = 1
}

/*
*********************************************************
* Indicates whether the tolerance is at the seller's or *
* buyer's option.                                       *
*********************************************************
*/
export enum DeliveryStreamToleranceOptionSide {
  Buyer = 1,
  Seller = 2
}

/*
**************************************************************
* A reference to the party able to choose whether the gas is *
* delivered for a particular period as found in a swing or   *
* interruptible contract.                                    *
**************************************************************
*/
export enum DeliveryStreamElectingPartySide {
  Buyer = 0,
  Seller = 1
}

/*
*************************************************
* The consequences of market disruption events. *
*************************************************
*/
export enum MarketDisruptionProvision {
  NotApplicable = 0,
  Applicable = 1,
  AsSpecifiedInMasterAgreement = 2,
  AsSpecifiedInConfirmation = 3
}

/*
****************************************************
* Specifies the location of the fallback provision *
* documentation.                                   *
****************************************************
*/
export enum MarketDisruptionFallbackProvision {
  AsSpecifiedInMasterAgreement = 0,
  AsSpecifiedInConfirmation = 1
}

/*
******************************************
* The type of reference price underlier. *
******************************************
*/
export enum MarketDisruptionFallbackUnderlierType {
  Basket = 0,
  Bond = 1,
  Cash = 2,
  Commodity = 3,
  ConvertibleBond = 4,
  Equity = 5,
  ExchangeTradedFund = 6,
  Future = 7,
  Index = 8,
  Loan = 9,
  Mortgage = 10,
  MutualFund = 11
}

/*
********************************************************
* Specifies the class or source scheme of the security *
* identifier.                                          *
********************************************************
*/
export enum MarketDisruptionFallbackUnderlierSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
************************************************************
* Indicates whether follow-up confirmation of exercise     *
* (written or electronic) is required following telephonic *
* notice by the buyer to the seller or seller's agent.     *
************************************************************
*/
export enum ExerciseConfirmationMethod {
  NotRequired = 0,
  NonElectronic = 1,
  Electronic = 2,
  UnknownAtTimeOfReport = 3
}

/*
***************************************************************
* The business day convention used to adjust the option       *
* exercise dates. Used only to override the business day      *
* convention specified in the DateAdjustment component within *
* the Instrument component.                                   *
***************************************************************
*/
export enum OptionExerciseBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Specifies the day type of the relative earliest option *
* exercise date offset.                                  *
**********************************************************
*/
export enum OptionExerciseEarliestDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Time unit associated with the relative earliest exercise *
* date offset.                                             *
************************************************************
*/
export enum OptionExerciseEarliestDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Time unit associated with the frequency of exercise dates. *
**************************************************************
*/
export enum OptionExerciseFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Time unit associated with the relative exercise start date *
* offset.                                                    *
**************************************************************
*/
export enum OptionExerciseStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative option exercise start *
* date offset.                                                 *
****************************************************************
*/
export enum OptionExerciseStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* Specifies the type of date. When specified it applies not   *
* only to the current date but to all subsequent dates in the *
* group until overridden with a new type.                     *
***************************************************************
*/
export enum OptionExerciseDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
***********************************************************
* The business day convention used to adjust the option   *
* exercise expiration dates. Used only to override the    *
* business day convention specified in the DateAdjustment *
* component within the Instrument component.              *
***********************************************************
*/
export enum OptionExerciseExpirationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative exercise expiration *
* date offset.                                               *
**************************************************************
*/
export enum OptionExerciseExpirationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Time unit associated with the frequency of exercise *
* expiration dates.                                   *
*******************************************************
*/
export enum OptionExerciseExpirationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* The convention for determining the sequence of exercise      *
* expiration dates. It is used in conjunction with a specified *
* frequency. Used only to override the roll convention defined *
* in the DateAdjustment component in Instrument.               *
****************************************************************
*/
export enum OptionExerciseExpirationRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
**********************************************************
* Specifies the day type of the relative option exercise *
* expiration date offset.                                *
**********************************************************
*/
export enum OptionExerciseExpirationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Specifies the type of option exercise expiration date. When  *
* specified it applies not only to the current date but to all *
* subsequent dates in the group until overridden with a new    *
* type.                                                        *
****************************************************************
*/
export enum OptionExerciseExpirationDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
************************************************************
* Used to express the unit of measure (UOM) of the payment *
* amount if not in the currency of the trade.              *
************************************************************
*/
export enum PaymentUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************************************
* Time unit associated with the relative payment date offset. *
***************************************************************
*/
export enum PaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative payment date offset. *
***************************************************************
*/
export enum PaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*******************************
* Forward start premium type. *
*******************************
*/
export enum PaymentForwardStartType {
  Prepaid = 0,
  PostPaid = 1,
  Variable = 2,
  Fixed = 3
}

/*
********************************************************
* The day of the week on which fixing will take place. *
********************************************************
*/
export enum PaymentScheduleFixingDayOfWeek {
  EveryDayTheDefaultIfNotSpecified = 0,
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7
}

/*
********************************************
* The schedule rate unit of measure (UOM). *
********************************************
*/
export enum PaymentScheduleRateUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Identifies whether the rate spread is an absolute value to *
* be added to the index rate or a percentage of the index    *
* rate.                                                      *
**************************************************************
*/
export enum PaymentScheduleRateSpreadType {
  Absolute = 0,
  Percentage = 1
}

/*
******************************************************
* The settlement period price unit of measure (UOM). *
******************************************************
*/
export enum PaymentScheduleSettlPeriodPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
********************************************
* The schedule step unit of measure (UOM). *
********************************************
*/
export enum PaymentScheduleStepUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************
* The distribution of fixing days. *
************************************
*/
export enum PaymentScheduleFixingDayDistribution {
  All = 0,
  First = 1,
  Last = 2,
  Penultimate = 3
}

/*
******************************************************
* Time unit associated with the fixing lag duration. *
******************************************************
*/
export enum PaymentScheduleFixingLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Time unit associated with the relative first observation *
* date offset.                                             *
************************************************************
*/
export enum PaymentScheduleFixingFirstObservationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the fixed payment amount unit of measure (UOM). *
*************************************************************
*/
export enum PaymentStreamFixedAmountUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************************************
* Secondary time unit associated with the payment stream's *
* floating rate index curve.                               *
************************************************************
*/
export enum PaymentStreamRateIndex2CurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
******************************************************
* The unit of measure (UOM) of the rate index level. *
******************************************************
*/
export enum PaymentStreamRateIndexUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***********************************************************
* Specifies how weather index units are to be calculated. *
***********************************************************
*/
export enum PaymentStreamSettlLevel {
  Average = 0,
  Maximum = 1,
  Minimum = 2,
  Cumulative = 3
}

/*
**********************************************************
* The unit of measure (UOM) of the rate reference level. *
**********************************************************
*/
export enum PaymentStreamReferenceLevelUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**********************************************************
* Species the unit of measure (UOM) of the floating rate *
* spread.                                                *
**********************************************************
*/
export enum PaymentStreamRateSpreadUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Identifies whether the rate spread is an absolute value to *
* be added to the index rate or a percentage of the index    *
* rate.                                                      *
**************************************************************
*/
export enum PaymentStreamRateSpreadType {
  Absolute = 0,
  Percentage = 1
}

/*
***********************************************************
* Time unit associated with the calculation lag duration. *
***********************************************************
*/
export enum PaymentStreamCalculationLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Time unit associated with the relative first observation *
* date offset.                                             *
************************************************************
*/
export enum PaymentStreamFirstObservationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************
* Specifies the commodity pricing day type. *
*********************************************
*/
export enum PaymentStreamPricingDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************
* The distribution of pricing days. *
*************************************
*/
export enum PaymentStreamPricingDayDistribution {
  All = 0,
  First = 1,
  Last = 2,
  Penultimate = 3
}

/*
**************************************************************
* The business day convention used to adjust the payent      *
* stream's pricing dates. Used only to override the business *
* day convention specified in the DateAdjustment component   *
* within the Instrument component.                           *
**************************************************************
*/
export enum PaymentStreamPricingBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Specifies the type of payment date. When specified it      *
* applies not only to the current date but to all subsequent *
* dates in the group until overridden with a new type.       *
**************************************************************
*/
export enum PaymentStreamPaymentDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**************************************************************
* Specifies the type of pricing date. When specified it      *
* applies not only to the current date but to all subsequent *
* dates in the group until overridden with a new type.       *
**************************************************************
*/
export enum PaymentStreamPricingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*****************************************************
* The day of the week on which pricing takes place. *
*****************************************************
*/
export enum PaymentStreamPricingDayOfWeek {
  EveryDayTheDefaultIfNotSpecified = 0,
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7
}

/*
****************************************************************
* The business day convention used to adjust pricing or fixing *
* dates. Used only to override the business day convention     *
* defined in the DateAdjustment component within the           *
* Instrument component.                                        *
****************************************************************
*/
export enum PricingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Specifies the type of fixed calculation period date. When    *
* specified it applies not only to the current date but to all *
* subsequent dates in the group until overridden with a new    *
* type.                                                        *
****************************************************************
*/
export enum StreamCalculationPeriodDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**********************************************************
* Time unit associated with the length of time after the *
* publication of the data when corrections can be made.  *
**********************************************************
*/
export enum StreamCalculationCorrectionUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************
* Identifies the class or source of the         *
* StreamCommoditySecurityIDSource(41253) value. *
*************************************************
*/
export enum StreamCommoditySecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
*****************************************************
* The unit of measure (UOM) of the commodity asset. *
*****************************************************
*/
export enum StreamCommodityUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
********************************************************
* Time unit associated with the nearby settlement day. *
********************************************************
*/
export enum StreamCommodityNearbySettlDayUnit {
  Week = 'Wk',
  Month = 'Mo'
}

/*
***************************************************************
* The business day convention used to adjust the commodity    *
* delivery date. Used only to override the business day       *
* convention specified in the DateAdjustment component within *
* the Instrument component.                                   *
***************************************************************
*/
export enum StreamCommoditySettlDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* Time unit associated with the commodity delivery date roll. *
***************************************************************
*/
export enum StreamCommoditySettlDateRollUnit {
  Day = 'D'
}

/*
***************************************************
* Specifies the commodity delivery roll day type. *
***************************************************
*/
export enum StreamCommoditySettlDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***********************************
* Type of data source identifier. *
***********************************
*/
export enum StreamCommodityDataSourceIDType {
  City4CharacterBusinessCenterCode = 0,
  AirportIataStandard = 1,
  WeatherStationWbanWeatherBureauArmyNavy = 2,
  WeatherIndexWmoWorldMeteorologicalOrganization = 3
}

/*
****************************************************
* Specifies the day or group of days for delivery. *
****************************************************
*/
export enum StreamCommoditySettlDay {
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7,
  AllWeekdays = 8,
  AllDays = 9,
  AllWeekends = 10
}

/*
***********************************************
* Specifies the commodity delivery flow type. *
***********************************************
*/
export enum StreamCommoditySettlFlowType {
  AllTimes = 0,
  OnPeak = 1,
  OffPeak = 2,
  Base = 3,
  BlockHours = 4,
  Other = 5
}

/*
****************************************************************
* Specifies the unit of measure (UOM) of the delivery quantity *
* associated with this settlement period.                      *
****************************************************************
*/
export enum StreamCommoditySettlPeriodNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Time unit associated with the settlement period frequency. *
**************************************************************
*/
export enum StreamCommoditySettlPeriodFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the settlement period price unit of measure (UOM). *
****************************************************************
*/
export enum StreamCommoditySettlPeriodPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
*************************************************************
* Indicates whether holidays are included in the settlement *
* periods. Required for electricity contracts.              *
*************************************************************
*/
export enum StreamCommoditySettlHolidaysProcessingInstruction {
  DoNotIncludeHolidays = 0,
  IncludeHolidays = 1
}

/*
********************************************************
* Time unit associated with the swap stream's notional *
* frequency.                                           *
********************************************************
*/
export enum StreamNotionalFrequencyUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
************************************************************
* The commodity's notional or quantity delivery frequency. *
************************************************************
*/
export enum StreamNotionalCommodityFrequency {
  Term = 0,
  PerBusinessDay = 1,
  PerCalculationPeriod = 2,
  PerSettlementPeriod = 3,
  PerCalendarDay = 4,
  PerHour = 5,
  PerMonth = 6
}

/*
**********************************************************
* Specifies the delivery stream quantity unit of measure *
* (UOM).                                                 *
**********************************************************
*/
export enum StreamNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Specifies the unit of measure (UOM) for the total notional *
* or delivery quantity over the term of the contract.        *
**************************************************************
*/
export enum StreamTotalNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
*************************************************
* Identifies the source scheme of the           *
* LegAdditionalTermBondSecurityID(41317) value. *
*************************************************
*/
export enum LegAdditionalTermBondSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
***********************************************************
* Specifies the bond's payment priority in the event of a *
* default.                                                *
***********************************************************
*/
export enum LegAdditionalTermBondSeniority {
  SeniorSecured = 'SD',
  Senior = 'SR',
  Subordinated = 'SB'
}

/*
******************************************
* Specifies the coupon type of the bond. *
******************************************
*/
export enum LegAdditionalTermBondCouponType {
  Zero = 0,
  FixedRate = 1,
  FloatingRate = 2,
  Structured = 3
}

/*
****************************************************************
* Time unit associated with the frequency of the bond's coupon *
* payment.                                                     *
****************************************************************
*/
export enum LegAdditionalTermBondCouponFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The day count convention used in interest calculations for a *
* bond or an interest bearing security.                        *
****************************************************************
*/
export enum LegAdditionalTermBondDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***********************************************************
* The type of quote used to determine the cash settlement *
* price.                                                  *
***********************************************************
*/
export enum LegCashSettlQuoteMethod {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
****************************************************************
* The ISDA defined methodology for determining the final price *
* of the reference obligation for purposes of cash settlement. *
****************************************************************
*/
export enum LegCashSettlValuationMethod {
  Market = 0,
  Highest = 1,
  AverageMarket = 2,
  AverageHighest = 3,
  BlendedMarket = 4,
  BlendedHighest = 5,
  AverageBlendedMarket = 6,
  AverageBlendedHighest = 7
}

/*
****************************************************
* Time unit associated with complex credit events. *
****************************************************
*/
export enum LegComplexEventCreditEventUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************************
* Specifies the day type for the complex credit events. *
*********************************************************
*/
export enum LegComplexEventCreditEventDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Specifies a complex event qualifier. Used to further qualify *
* LegComplexEventCreditEventType(41367).                       *
****************************************************************
*/
export enum LegComplexEventCreditEventQualifier {
  RetructuringMultipleHoldingObligations = 'H',
  RestructuringMultipleCreditEventNotices = 'E',
  FloatingRateInterestShortfall = 'C'
}

/*
******************************
* Specifies the period type. *
******************************
*/
export enum LegComplexEventPeriodType {
  AsianOut = 0,
  AsianIn = 1,
  BarrierCap = 2,
  BarrierFloor = 3,
  KnockOut = 4,
  KnockIn = 5
}

/*
***********************************************************
* Identifies the source of rate information.              *
* For FX, the reference source to be used for the FX spot *
* rate.                                                   *
***********************************************************
*/
export enum LegComplexEventRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
***************************************************************
* Indicates whether the rate source specified is a primary or *
* secondary source.                                           *
***************************************************************
*/
export enum LegComplexEventRateSourceType {
  Primary = 0,
  Secondary = 1
}

/*
*******************************************************
* Time unit associated with the relative date offset. *
*******************************************************
*/
export enum LegComplexEventDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Specifies the day type of the relative date offset. *
*******************************************************
*/
export enum LegComplexEventDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the event date.  *
* Used only to override the business day convention specified *
* in the LegDateAdjustment component within the InstrumentLeg *
* component.                                                  *
***************************************************************
*/
export enum LegComplexEventDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the schedule date frequency. *
**********************************************************
*/
export enum LegComplexEventScheduleFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* The convention for determining the sequence of dates. It is  *
* used in conjunction with a specified frequency. Used only to *
* override the roll convention defined in the                  *
* LegDateAdjustment component in InstrumentLeg.                *
****************************************************************
*/
export enum LegComplexEventScheduleRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
********************************************
* Specifies the type of delivery schedule. *
********************************************
*/
export enum LegDeliveryScheduleType {
  Notional = 0,
  Delivery = 1,
  PhysicalSettlementPeriod = 2
}

/*
**********************************************************
* Specifies the delivery quantity unit of measure (UOM). *
**********************************************************
*/
export enum LegDeliveryScheduleNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* The frequency of notional delivery. *
***************************************
*/
export enum LegDeliveryScheduleNotionalCommodityFrequency {
  Term = 0,
  PerBusinessDay = 1,
  PerCalculationPeriod = 2,
  PerSettlementPeriod = 3,
  PerCalendarDay = 4,
  PerHour = 5,
  PerMonth = 6
}

/*
**********************************************************
* Specifies the tolerance value's unit of measure (UOM). *
**********************************************************
*/
export enum LegDeliveryScheduleToleranceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* Specifies the tolerance value type. *
***************************************
*/
export enum LegDeliveryScheduleToleranceType {
  Absolute = 0,
  Percentage = 1
}

/*
*************************************
* Specifies the delivery flow type. *
*************************************
*/
export enum LegDeliveryScheduleSettlFlowType {
  AllTimes = 0,
  OnPeak = 1,
  OffPeak = 2,
  Base = 3,
  BlockHours = 4,
  Other = 5
}

/*
*************************************************************
* Indicates whether holidays are included in the settlement *
* periods. Required for electricity contracts.              *
*************************************************************
*/
export enum LegDeliveryScheduleSettlHolidaysProcessingInstruction {
  DoNotIncludeHolidays = 0,
  IncludeHolidays = 1
}

/*
****************************************************
* Specifies the day or group of days for delivery. *
****************************************************
*/
export enum LegDeliveryScheduleSettlDay {
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7,
  AllWeekdays = 8,
  AllDays = 9,
  AllWeekends = 10
}

/*
***********************************************************
* Specifies the format of the delivery start and end time *
* values.                                                 *
***********************************************************
*/
export enum LegDeliveryScheduleSettlTimeType {
  HourOfTheDay = 0,
  HhMmTimeFormat = 1
}

/*
******************************************
* Specifies the type of delivery stream. *
******************************************
*/
export enum LegDeliveryStreamType {
  PeriodicDefaultIfNotSpecified = 0,
  Initial = 1,
  Single = 2
}

/*
***************************************************************
* Specifies under what conditions the buyer and seller should *
* be excused of their delivery obligations.                   *
***************************************************************
*/
export enum LegDeliveryStreamDeliveryRestriction {
  Firm = 1,
  InterruptableOrNonFirm = 2,
  ForceMajeure = 3,
  SystemFirm = 4,
  UnitFirm = 5
}

/*
*****************************************************
* The trade side value of the party responsible for *
* electricity delivery contingency.                 *
*****************************************************
*/
export enum LegDeliveryStreamDeliveryContingentPartySide {
  Buyer = 0,
  Seller = 1
}

/*
**********************************************
* Specifies the condition of title transfer. *
**********************************************
*/
export enum LegDeliveryStreamTitleTransferCondition {
  TransfersWithRiskOfLoss = 0,
  DoesNotTransferWithRiskOfLoss = 1
}

/*
**********************************************************
* Specifies the tolerance value's unit of measure (UOM). *
**********************************************************
*/
export enum LegDeliveryStreamToleranceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* Specifies the tolerance value type. *
***************************************
*/
export enum LegDeliveryStreamToleranceType {
  Absolute = 0,
  Percentage = 1
}

/*
*********************************************************
* Indicates whether the tolerance is at the seller's or *
* buyer's option.                                       *
*********************************************************
*/
export enum LegDeliveryStreamToleranceOptionSide {
  Buyer = 1,
  Seller = 2
}

/*
**************************************************************
* A reference to the party able to choose whether the gas is *
* delivered for a particular period e.g. a swing or          *
* interruptible contract.                                    *
**************************************************************
*/
export enum LegDeliveryStreamElectingPartySide {
  Buyer = 0,
  Seller = 1
}

/*
*************************************************
* The consequences of market disruption events. *
*************************************************
*/
export enum LegMarketDisruptionProvision {
  NotApplicable = 0,
  Applicable = 1,
  AsSpecifiedInMasterAgreement = 2,
  AsSpecifiedInConfirmation = 3
}

/*
****************************************************
* Specifies the location of the fallback provision *
* documentation.                                   *
****************************************************
*/
export enum LegMarketDisruptionFallbackProvision {
  AsSpecifiedInMasterAgreement = 0,
  AsSpecifiedInConfirmation = 1
}

/*
******************************************
* The type of reference price underlier. *
******************************************
*/
export enum LegMarketDisruptionFallbackUnderlierType {
  Basket = 0,
  Bond = 1,
  Cash = 2,
  Commodity = 3,
  ConvertibleBond = 4,
  Equity = 5,
  ExchangeTradedFund = 6,
  Future = 7,
  Index = 8,
  Loan = 9,
  Mortgage = 10,
  MutualFund = 11
}

/*
********************************************************
* Specifies the class or source scheme of the security *
* identifier.                                          *
********************************************************
*/
export enum LegMarketDisruptionFallbackUnderlierSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
************************************************************
* Indicates whether follow-up confirmation of exercise     *
* (written or electronic) is required following telephonic *
* notice by the buyer to the seller or seller's agent.     *
************************************************************
*/
export enum LegExerciseConfirmationMethod {
  NotRequired = 0,
  NonElectronic = 1,
  Electronic = 2,
  UnknownAtTimeOfReport = 3
}

/*
***********************************************************
* The business day convention used to adjust the option   *
* exercise dates. Used only to override the business day  *
* convention specified in the LegDateAdjustment component *
* within the InstrumentLeg component.                     *
***********************************************************
*/
export enum LegOptionExerciseBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Specifies the day type of the relative earliest exercise *
* date offset.                                             *
************************************************************
*/
export enum LegOptionExerciseEarliestDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Time unit associated with the relative earliest exercise *
* date offset.                                             *
************************************************************
*/
export enum LegOptionExerciseEarliestDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Time unit associated with the frequency of exercise dates. *
**************************************************************
*/
export enum LegOptionExerciseFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Time unit associated with the relative exercise start date *
* offset.                                                    *
**************************************************************
*/
export enum LegOptionExerciseStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative option exercise start *
* date offset.                                                 *
****************************************************************
*/
export enum LegOptionExerciseStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Specifies the type of option exercise date. When specified *
* it applies not only to the current date but to all         *
* subsequent dates in the group until overridden with a new  *
* type.                                                      *
**************************************************************
*/
export enum LegOptionExerciseDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**************************************************************
* The business day convention used to adjust the option      *
* exercise expiration dates. Used only to override the       *
* business day convention specified in the LegDateAdjustment *
* component within the InstrumentLeg component.              *
**************************************************************
*/
export enum LegOptionExerciseExpirationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative exercise expiration *
* date offset.                                               *
**************************************************************
*/
export enum LegOptionExerciseExpirationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Time unit associated with the frequency of exercise *
* expiration dates.                                   *
*******************************************************
*/
export enum LegOptionExerciseExpirationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* The convention for determining the sequence of exercise      *
* expiration dates. It is used in conjunction with a specified *
* frequency. Used only to override the roll convention defined *
* in the LegDateAdjustment component in InstrumentLeg.         *
****************************************************************
*/
export enum LegOptionExerciseExpirationRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
**********************************************************
* Specifies the day type of the relative option exercise *
* expiration date offset.                                *
**********************************************************
*/
export enum LegOptionExerciseExpirationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Specifies the type of option exercise expiration date. When  *
* specified it applies not only to the current date but to all *
* subsequent dates in the group until overridden with a new    *
* type.                                                        *
****************************************************************
*/
export enum LegOptionExerciseExpirationDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
****************************************************
* The day of the week on which fixing takes place. *
****************************************************
*/
export enum LegPaymentScheduleFixingDayOfWeek {
  EveryDayTheDefaultIfNotSpecified = 0,
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7
}

/*
********************************************
* The schedule rate unit of measure (UOM). *
********************************************
*/
export enum LegPaymentScheduleRateUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Identifies whether the rate spread is an absolute value to *
* be added to the index rate or a percentage of the index    *
* rate.                                                      *
**************************************************************
*/
export enum LegPaymentScheduleRateSpreadType {
  Absolute = 0,
  Percentage = 1
}

/*
******************************************************
* The settlement period price unit of measure (UOM). *
******************************************************
*/
export enum LegPaymentScheduleSettlPeriodPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
********************************************
* The schedule step unit of measure (UOM). *
********************************************
*/
export enum LegPaymentScheduleStepUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************
* The distribution of fixing days. *
************************************
*/
export enum LegPaymentScheduleFixingDayDistribution {
  All = 0,
  First = 1,
  Last = 2,
  Penultimate = 3
}

/*
******************************************************
* Time unit associated with the fixing lag duration. *
******************************************************
*/
export enum LegPaymentScheduleFixingLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Time unit associated with the relative first observation *
* date offset.                                             *
************************************************************
*/
export enum LegPaymentScheduleFixingFirstObservationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************
* The fixed payment amount unit of measure (UOM). *
***************************************************
*/
export enum LegPaymentStreamFixedAmountUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************************************
* Secondary time unit associated with the payment stream's *
* floating rate index curve.                               *
************************************************************
*/
export enum LegPaymentStreamRateIndex2CurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
******************************************************
* The unit of measure (UOM) of the rate index level. *
******************************************************
*/
export enum LegPaymentStreamRateIndexUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***********************************************************
* Specifies how weather index units are to be calculated. *
***********************************************************
*/
export enum LegPaymentStreamSettlLevel {
  Average = 0,
  Maximum = 1,
  Minimum = 2,
  Cumulative = 3
}

/*
**********************************************************
* The unit of measure (UOM) of the rate reference level. *
**********************************************************
*/
export enum LegPaymentStreamReferenceLevelUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************************************
* Specifies the unit of measure (UOM) of the floating rate *
* spread.                                                  *
************************************************************
*/
export enum LegPaymentStreamRateSpreadUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Identifies whether the rate spread is an absolute value to *
* be added to the index rate or a percentage of the index    *
* rate.                                                      *
**************************************************************
*/
export enum LegPaymentStreamRateSpreadType {
  Absolute = 0,
  Percentage = 1
}

/*
***********************************************************
* Time unit associated with the calculation lag duration. *
***********************************************************
*/
export enum LegPaymentStreamCalculationLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Time unit associated with the relative first observation *
* date offset.                                             *
************************************************************
*/
export enum LegPaymentStreamFirstObservationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************
* Specifies the commodity pricing day type. *
*********************************************
*/
export enum LegPaymentStreamPricingDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************
* The distribution of pricing days. *
*************************************
*/
export enum LegPaymentStreamPricingDayDistribution {
  All = 0,
  First = 1,
  Last = 2,
  Penultimate = 3
}

/*
***************************************************************
* The business day convention used to adjust the payment      *
* stream's pricing dates. Used only to override the business  *
* day convention specified in the LegDateAdjustment component *
* within the InstrumentLeg component.                         *
***************************************************************
*/
export enum LegPaymentStreamPricingBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Specifies the format of the commodities settlement start and *
* end times.                                                   *
****************************************************************
*/
export enum StreamCommoditySettlTimeType {
  HourOfTheDay = 0,
  HhMmTimeFormat = 1
}

/*
**************************************************************
* Specifies the type of payment date. When specified it      *
* applies not only to the current date but to all subsequent *
* dates in the group until overridden with a new type.       *
**************************************************************
*/
export enum LegPaymentStreamPaymentDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**************************************************************
* Specifies the type of pricing date. When specified it      *
* applies not only to the current date but to all subsequent *
* dates in the group until overridden with a new type.       *
**************************************************************
*/
export enum LegPaymentStreamPricingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
******************************************************
* The day of the week on which pricing takes place.. *
******************************************************
*/
export enum LegPaymentStreamPricingDayOfWeek {
  EveryDayTheDefaultIfNotSpecified = 0,
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7
}

/*
*************************************************************
* The business day convention used to adjust the pricing or *
* fixing date. Used only to override the business day       *
* convention specified in the LegDateAdjustment component   *
* within the InstrumentLeg component.                       *
*************************************************************
*/
export enum LegPricingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*****************************************************
* Time unit associated with protection term events. *
*****************************************************
*/
export enum LegProtectionTermEventUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
******************************************************
* Specifies the day type for protection term events. *
******************************************************
*/
export enum LegProtectionTermEventDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************************
* Specifies the protection term event qualifier. Used to *
* further qualify LegProtectionTermEventType(41626).     *
**********************************************************
*/
export enum LegProtectionTermEventQualifier {
  RetructuringMultipleHoldingObligations = 'H',
  RestructuringMultipleCreditEventNotices = 'E',
  FloatingRateInterestShortfall = 'C'
}

/*
****************************************************************
* Specifies the type of fixed calculation period date. When    *
* specified it applies not only to the current date but to all *
* subsequent dates in the group until overridden with a new    *
* type.                                                        *
****************************************************************
*/
export enum LegStreamCalculationPeriodDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**********************************************************
* Time unit associated with the length of time after the *
* publication of the data when corrections can be made.  *
**********************************************************
*/
export enum LegStreamCalculationCorrectionUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************
* Identifies the class or source of the            *
* LegStreamCommoditySecurityIDSource(41650) value. *
****************************************************
*/
export enum LegStreamCommoditySecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
*****************************************************
* The unit of measure (UOM) of the commodity asset. *
*****************************************************
*/
export enum LegStreamCommodityUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
********************************************************
* Time unit associated with the nearby settlement day. *
********************************************************
*/
export enum LegStreamCommodityNearbySettlDayUnit {
  Week = 'Wk',
  Month = 'Mo'
}

/*
************************************************************
* The business day convention used to adjust the commodity *
* delivery date. Used only to override the business day    *
* convention specified in the LegDateAdjustment component  *
* within the InstrumentLeg component.                      *
************************************************************
*/
export enum LegStreamCommoditySettlDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* Time unit associated with the commodity delivery date roll. *
***************************************************************
*/
export enum LegStreamCommoditySettlDateRollUnit {
  Day = 'D'
}

/*
***************************************************
* Specifies the commodity delivery roll day type. *
***************************************************
*/
export enum LegStreamCommoditySettlDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************************
* Specifies the type of data source identifier. *
*************************************************
*/
export enum LegStreamCommodityDataSourceIDType {
  City4CharacterBusinessCenterCode = 0,
  AirportIataStandard = 1,
  WeatherStationWbanWeatherBureauArmyNavy = 2,
  WeatherIndexWmoWorldMeteorologicalOrganization = 3
}

/*
****************************************************
* Specifies the day or group of days for delivery. *
****************************************************
*/
export enum LegStreamCommoditySettlDay {
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7,
  AllWeekdays = 8,
  AllDays = 9,
  AllWeekends = 10
}

/*
***********************************************
* Specifies the commodity delivery flow type. *
***********************************************
*/
export enum LegStreamCommoditySettlFlowType {
  AllTimes = 0,
  OnPeak = 1,
  OffPeak = 2,
  Base = 3,
  BlockHours = 4,
  Other = 5
}

/*
****************************************************************
* Specifies the unit of measure (UOM) of the delivery quantity *
* associated with this settlement period.                      *
****************************************************************
*/
export enum LegStreamCommoditySettlPeriodNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Time unit associated with the settlement period frequency. *
**************************************************************
*/
export enum LegStreamCommoditySettlPeriodFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
******************************************************
* The settlement period price unit of measure (UOM). *
******************************************************
*/
export enum LegStreamCommoditySettlPeriodPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
*************************************************************
* Indicates whether holidays are included in the settlement *
* periods. Required for electricity contracts.              *
*************************************************************
*/
export enum LegStreamCommoditySettlHolidaysProcessingInstruction {
  DoNotIncludeHolidays = 0,
  IncludeHolidays = 1
}

/*
********************************************************
* Identifies the source scheme of the                  *
* UnderlyingAdditionalTermBondSecurityID(41341) value. *
********************************************************
*/
export enum UnderlyingAdditionalTermBondSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
********************************************************
* Time unit associated with the swap stream's notional *
* frequency.                                           *
********************************************************
*/
export enum LegStreamNotionalFrequencyUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
************************************************************
* The commodity's notional or quantity delivery frequency. *
************************************************************
*/
export enum LegStreamNotionalCommodityFrequency {
  Term = 0,
  PerBusinessDay = 1,
  PerCalculationPeriod = 2,
  PerSettlementPeriod = 3,
  PerCalendarDay = 4,
  PerHour = 5,
  PerMonth = 6
}

/*
**********************************************************
* Specifies the delivery quantity unit of measure (UOM). *
**********************************************************
*/
export enum LegStreamNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Specifies the unit of measure (UOM) for the total notional *
* or delivery quantity over the term of the contract.        *
**************************************************************
*/
export enum LegStreamTotalNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
****************************************************
* Time unit associated with complex credit events. *
****************************************************
*/
export enum UnderlyingComplexEventCreditEventUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************************
* Specifies the day type for the complex credit events. *
*********************************************************
*/
export enum UnderlyingComplexEventCreditEventDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Specifies a complex event qualifier. Used to further qualify *
* UnderlyingComplexEventCreditEventType(41717).                *
****************************************************************
*/
export enum UnderlyingComplexEventCreditEventQualifier {
  RetructuringMultipleHoldingObligations = 'H',
  RestructuringMultipleCreditEventNotices = 'E',
  FloatingRateInterestShortfall = 'C'
}

/*
******************************
* Specifies the period type. *
******************************
*/
export enum UnderlyingComplexEventPeriodType {
  AsianOut = 0,
  AsianIn = 1,
  BarrierCap = 2,
  BarrierFloor = 3,
  KnockOut = 4,
  KnockIn = 5
}

/*
**********************************************
* Identifies the source of rate information. *
**********************************************
*/
export enum UnderlyingComplexEventRateSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
***************************************************************
* Indicates whether the rate source specified is a primary or *
* secondary source.                                           *
***************************************************************
*/
export enum UnderlyingComplexEventRateSourceType {
  Primary = 0,
  Secondary = 1
}

/*
*******************************************************
* Time unit associated with the relative date offset. *
*******************************************************
*/
export enum UnderlyingComplexEventDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Specifies the day type of the relative date offset. *
*******************************************************
*/
export enum UnderlyingComplexEventDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convention used to adjust the event date.  *
* Used only to override the business day convention specified *
* in the UnderlyingDateAdjustment component within the        *
* UnderlyingInstrument component.                             *
***************************************************************
*/
export enum UnderlyingComplexEventDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the schedule date frequency. *
**********************************************************
*/
export enum UnderlyingComplexEventScheduleFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* The convention for determining the sequence of dates. It is  *
* used in conjunction with a specified frequency. Used only to *
* override the roll convention defined in the                  *
* UnderlyingDateAdjustment component in UnderlyingInstrument.  *
****************************************************************
*/
export enum UnderlyingComplexEventScheduleRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
********************************************
* Specifies the type of delivery schedule. *
********************************************
*/
export enum UnderlyingDeliveryScheduleType {
  Notional = 0,
  Delivery = 1,
  PhysicalSettlementPeriod = 2
}

/*
**********************************************************
* Specifies the delivery quantity unit of measure (UOM). *
**********************************************************
*/
export enum UnderlyingDeliveryScheduleNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* The frequency of notional delivery. *
***************************************
*/
export enum UnderlyingDeliveryScheduleNotionalCommodityFrequency {
  Term = 0,
  PerBusinessDay = 1,
  PerCalculationPeriod = 2,
  PerSettlementPeriod = 3,
  PerCalendarDay = 4,
  PerHour = 5,
  PerMonth = 6
}

/*
**********************************************************
* Specifies the tolerance value's unit of measure (UOM). *
**********************************************************
*/
export enum UnderlyingDeliveryScheduleToleranceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* Specifies the tolerance value type. *
***************************************
*/
export enum UnderlyingDeliveryScheduleToleranceType {
  Absolute = 0,
  Percentage = 1
}

/*
*************************************
* Specifies the delivery flow type. *
*************************************
*/
export enum UnderlyingDeliveryScheduleSettlFlowType {
  AllTimes = 0,
  OnPeak = 1,
  OffPeak = 2,
  Base = 3,
  BlockHours = 4,
  Other = 5
}

/*
*************************************************************
* Indicates whether holidays are included in the settlement *
* periods. Required for electricity contracts.              *
*************************************************************
*/
export enum UnderlyingDeliveryScheduleSettlHolidaysProcessingInstruction {
  DoNotIncludeHolidays = 0,
  IncludeHolidays = 1
}

/*
****************************************************
* Specifies the day or group of days for delivery. *
****************************************************
*/
export enum UnderlyingDeliveryScheduleSettlDay {
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7,
  AllWeekdays = 8,
  AllDays = 9,
  AllWeekends = 10
}

/*
***********************************************************
* Specifies the format of the delivery start and end time *
* values.                                                 *
***********************************************************
*/
export enum UnderlyingDeliveryScheduleSettlTimeType {
  HourOfTheDay = 0,
  HhMmTimeFormat = 1
}

/*
******************************************
* Specifies the type of delivery stream. *
******************************************
*/
export enum UnderlyingDeliveryStreamType {
  PeriodicDefaultIfNotSpecified = 0,
  Initial = 1,
  Single = 2
}

/*
***************************************************************
* Specifies under what conditions the buyer and seller should *
* be excused of their delivery obligations.                   *
***************************************************************
*/
export enum UnderlyingDeliveryStreamDeliveryRestriction {
  Firm = 1,
  InterruptableOrNonFirm = 2,
  ForceMajeure = 3,
  SystemFirm = 4,
  UnitFirm = 5
}

/*
*****************************************************
* The trade side value of the party responsible for *
* electricity delivery contingency.                 *
*****************************************************
*/
export enum UnderlyingDeliveryStreamDeliveryContingentPartySide {
  Buyer = 0,
  Seller = 1
}

/*
*******************************************
* Specifies the title transfer condition. *
*******************************************
*/
export enum UnderlyingDeliveryStreamTitleTransferCondition {
  TransfersWithRiskOfLoss = 0,
  DoesNotTransferWithRiskOfLoss = 1
}

/*
**********************************************************
* Specifies the tolerance value's unit of measure (UOM). *
**********************************************************
*/
export enum UnderlyingDeliveryStreamToleranceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***************************************
* Specifies the tolerance value type. *
***************************************
*/
export enum UnderlyingDeliveryStreamToleranceType {
  Absolute = 0,
  Percentage = 1
}

/*
*********************************************************
* Indicates whether the tolerance is at the seller's or *
* buyer's option.                                       *
*********************************************************
*/
export enum UnderlyingDeliveryStreamToleranceOptionSide {
  Buyer = 1,
  Seller = 2
}

/*
**************************************************************
* A reference to the party able to choose whether the gas is *
* delivered for a particular period e.g. a swing or          *
* interruptible contract.                                    *
**************************************************************
*/
export enum UnderlyingDeliveryStreamElectingPartySide {
  Buyer = 0,
  Seller = 1
}

/*
************************************************************
* Indicates whether follow-up confirmation of exercise     *
* (written or electronic) is required following telephonic *
* notice by the buyer to the seller or seller's agent.     *
************************************************************
*/
export enum UnderlyingExerciseConfirmationMethod {
  NotRequired = 0,
  NonElectronic = 1,
  Electronic = 2,
  UnknownAtTimeOfReport = 3
}

/*
**********************************************************
* The business day convention used to adjust the option  *
* exercise dates. Used only to override the business day *
* convention specified in the UnderlyingDateAdjustment   *
* component within the UnderlyingInstrument component.   *
**********************************************************
*/
export enum UnderlyingOptionExerciseBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Specifies the day type of the relative earliest exercise *
* date offset.                                             *
************************************************************
*/
export enum UnderlyingOptionExerciseEarliestDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Time unit associated with the relative earliest exercise *
* date offset.                                             *
************************************************************
*/
export enum UnderlyingOptionExerciseEarliestDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Time unit associated with the frequency of exercise dates. *
**************************************************************
*/
export enum UnderlyingOptionExerciseFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Time unit associated with the relative exercise start date *
* offset.                                                    *
**************************************************************
*/
export enum UnderlyingOptionExerciseStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative option exercise start *
* date offset.                                                 *
****************************************************************
*/
export enum UnderlyingOptionExerciseStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Specifies the type of option exercise date. When specified *
* it applies not only to the current date but to all         *
* subsequent dates in the group until overridden with a new  *
* type.                                                      *
**************************************************************
*/
export enum UnderlyingOptionExerciseDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*********************************************************
* The business day convention used to adjust the option *
* exercise expiration dates. Used only to override the  *
* business day convention specified in the              *
* UnderlyingDateAdjustment component within the         *
* UnderlyingInstrument component.                       *
*********************************************************
*/
export enum UnderlyingOptionExerciseExpirationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Time unit associated with the relative exercise expiration *
* date offset.                                               *
**************************************************************
*/
export enum UnderlyingOptionExerciseExpirationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Time unit associated with the frequency of exercise *
* expiration dates.                                   *
*******************************************************
*/
export enum UnderlyingOptionExerciseExpirationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* The convention for determining the sequence of exercise      *
* expiration dates. It is used in conjunction with a specified *
* frequency. Used only to override the roll convention defined *
* in the UnderlyingDateAdjustment component in                 *
* UnderlyingInstrument.                                        *
****************************************************************
*/
export enum UnderlyingOptionExerciseExpirationRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
**********************************************************
* Specifies the day type of the relative option exercise *
* expiration date offset.                                *
**********************************************************
*/
export enum UnderlyingOptionExerciseExpirationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Specifies the type of option exercise expiration date. When  *
* specified it applies not only to the current date but to all *
* subsequent dates in the group until overridden with a new    *
* type.                                                        *
****************************************************************
*/
export enum UnderlyingOptionExerciseExpirationDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*************************************************
* The consequences of market disruption events. *
*************************************************
*/
export enum UnderlyingMarketDisruptionProvision {
  NotApplicable = 0,
  Applicable = 1,
  AsSpecifiedInMasterAgreement = 2,
  AsSpecifiedInConfirmation = 3
}

/*
****************************************************
* Specifies the location of the fallback provision *
* documentation.                                   *
****************************************************
*/
export enum UnderlyingMarketDisruptionFallbackProvision {
  AsSpecifiedInMasterAgreement = 0,
  AsSpecifiedInConfirmation = 1
}

/*
******************************************
* The type of reference price underlier. *
******************************************
*/
export enum UnderlyingMarketDisruptionFallbackUnderlierType {
  Basket = 0,
  Bond = 1,
  Cash = 2,
  Commodity = 3,
  ConvertibleBond = 4,
  Equity = 5,
  ExchangeTradedFund = 6,
  Future = 7,
  Index = 8,
  Loan = 9,
  Mortgage = 10,
  MutualFund = 11
}

/*
********************************************************
* Specifies the class or source scheme of the security *
* identifier.                                          *
********************************************************
*/
export enum UnderlyingMarketDisruptionFallbackUnderlierSecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
****************************************************
* The day of the week on which fixing takes place. *
****************************************************
*/
export enum UnderlyingPaymentScheduleFixingDayOfWeek {
  EveryDayTheDefaultIfNotSpecified = 0,
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7
}

/*
********************************************
* The schedule rate unit of measure (UOM). *
********************************************
*/
export enum UnderlyingPaymentScheduleRateUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
****************************************************************
* Specifies whether the rate spread is an absolute value to be *
* added to the index rate or a percentage of the index rate.   *
****************************************************************
*/
export enum UnderlyingPaymentScheduleRateSpreadType {
  Absolute = 0,
  Percentage = 1
}

/*
******************************************************
* The settlement period price unit of measure (UOM). *
******************************************************
*/
export enum UnderlyingPaymentScheduleSettlPeriodPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
********************************************
* The schedule step unit of measure (UOM). *
********************************************
*/
export enum UnderlyingPaymentScheduleStepUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************
* The distribution of fixing days. *
************************************
*/
export enum UnderlyingPaymentScheduleFixingDayDistribution {
  All = 0,
  First = 1,
  Last = 2,
  Penultimate = 3
}

/*
******************************************************
* Time unit associated with the fixing lag duration. *
******************************************************
*/
export enum UnderlyingPaymentScheduleFixingLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Time unit associated with the relative first observation *
* date offset.                                             *
************************************************************
*/
export enum UnderlyingPaymentScheduleFixingFirstObservationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************
* Fixed payment amount unit of measure (UOM). *
***********************************************
*/
export enum UnderlyingPaymentStreamFixedAmountUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************************************
* Secondary time unit associated with the payment streams *
* floating rate index curve.                               *
************************************************************
*/
export enum UnderlyingPaymentStreamRateIndex2CurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
******************************************************
* The unit of measure (UOM) of the rate index level. *
******************************************************
*/
export enum UnderlyingPaymentStreamRateIndexUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***********************************************************
* Specifies how weather index units are to be calculated. *
***********************************************************
*/
export enum UnderlyingPaymentStreamSettlLevel {
  Average = 0,
  Maximum = 1,
  Minimum = 2,
  Cumulative = 3
}

/*
**********************************************************
* The unit of measure (UOM) of the rate reference level. *
**********************************************************
*/
export enum UnderlyingPaymentStreamReferenceLevelUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
************************************************************
* Specifies the unit of measure (UOM) of the floating rate *
* spread.                                                  *
************************************************************
*/
export enum UnderlyingPaymentStreamRateSpreadUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Identifies whether the rate spread is an absolute value to *
* be added to the index rate or a percentage of the index    *
* rate.                                                      *
**************************************************************
*/
export enum UnderlyingPaymentStreamRateSpreadType {
  Absolute = 0,
  Percentage = 1
}

/*
***********************************************************
* Time unit associated with the calculation lag duration. *
***********************************************************
*/
export enum UnderlyingPaymentStreamCalculationLagUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Time unit associated with the relative first observation *
* date offset.                                             *
************************************************************
*/
export enum UnderlyingPaymentStreamFirstObservationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*********************************************
* Specifies the commodity pricing day type. *
*********************************************
*/
export enum UnderlyingPaymentStreamPricingDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************
* The distribution of pricing days. *
*************************************
*/
export enum UnderlyingPaymentStreamPricingDayDistribution {
  All = 0,
  First = 1,
  Last = 2,
  Penultimate = 3
}

/*
**************************************************************
* The business day convention used to adjust the payment     *
* stream's pricing dates. Used only to override the business *
* day convention specified in the UnderlyingDateAdjustment   *
* component within the UnderlyingInstrument component.       *
**************************************************************
*/
export enum UnderlyingPaymentStreamPricingBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Specifies the format of the commodity settlement start and *
* end times.                                                 *
**************************************************************
*/
export enum LegStreamCommoditySettlTimeType {
  HourOfTheDay = 0,
  HhMmTimeFormat = 1
}

/*
**************************************************************
* Specifies the format of the commodity settlement start and *
* end times.                                                 *
**************************************************************
*/
export enum UnderlyingStreamCommoditySettlTimeType {
  HourOfTheDay = 0,
  HhMmTimeFormat = 1
}

/*
**************************************************************
* Specifies the type of payment date. When specified it      *
* applies not only to the current date but to all subsequent *
* dates in the group until overridden with a new type.       *
**************************************************************
*/
export enum UnderlyingPaymentStreamPaymentDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**************************************************************
* Specifies the type of pricing date. When specified it      *
* applies not only to the current date but to all subsequent *
* dates in the group until overridden with a new type.       *
**************************************************************
*/
export enum UnderlyingPaymentStreamPricingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
*****************************************************
* The day of the week on which pricing takes place. *
*****************************************************
*/
export enum UnderlyingPaymentStreamPricingDayOfWeek {
  EveryDayTheDefaultIfNotSpecified = 0,
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7
}

/*
*************************************************************
* The business day convention used to adjust the pricing or *
* fixing date. Used only to override the business day       *
* convention specified in the UnderlyingDateAdjustment      *
* component within the UnderlyingInstrument component.      *
*************************************************************
*/
export enum UnderlyingPricingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Specifies the type of fixed calculation period date. When    *
* specified it applies not only to the current date but to all *
* subsequent dates in the group until overridden with a new    *
* type.                                                        *
****************************************************************
*/
export enum UnderlyingStreamCalculationPeriodDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**********************************************************
* Time unit associated with the length of time after the *
* publication of the data when corrections can be made.  *
**********************************************************
*/
export enum UnderlyingStreamCalculationCorrectionUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Identifies the class or source of the                   *
* UnderlyingStreamCommoditySecurityIDSource(41966) value. *
***********************************************************
*/
export enum UnderlyingStreamCommoditySecurityIDSource {
  Cusip = '1',
  Sedol = '2',
  Quik = '3',
  IsinNumber = '4',
  RicCode = '5',
  IsoCurrencyCode = '6',
  IsoCountryCode = '7',
  ExchangeSymbol = '8',
  ConsolidatedTapeAssociationCtaSymbolSiacCtsCqsLineFormat = '9',
  BloombergSymbol = 'A',
  Wertpapier = 'B',
  Dutch = 'C',
  Valoren = 'D',
  Sicovam = 'E',
  Belgian = 'F',
  CommonClearstreamAndEuroclear = 'G',
  ClearingHouseClearingOrganization = 'H',
  IsdaFpMlProductSpecificationXmlInSecurityXml1185 = 'I',
  OptionPriceReportingAuthority = 'J',
  IsdaFpMlProductUrlUrlInSecurityId48 = 'K',
  LetterOfCredit = 'L',
  MarketplaceAssignedIdentifier = 'M',
  MarkitRedEntityClip = 'N',
  MarkitRedPairClip = 'P',
  CftcCommodityCode = 'Q',
  IsdaCommodityReferencePrice = 'R',
  FinancialInstrumentGlobalIdentifier = 'S',
  LegalEntityIdentifier = 'T',
  Synthetic = 'U',
  FidessaInstrumentMnemonicFim = 'V'
}

/*
*****************************************************
* The unit of measure (UOM) of the commodity asset. *
*****************************************************
*/
export enum UnderlyingStreamCommodityUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
********************************************************
* Time unit associated with the nearby settlement day. *
********************************************************
*/
export enum UnderlyingStreamCommodityNearbySettlDayUnit {
  Week = 'Wk',
  Month = 'Mo'
}

/*
************************************************************
* The business day convention used to adjust the commodity *
* delivery date. Used only to override the business day    *
* convention specified in the UnderlyingDateAdjustment     *
* component within the UnderlyingInstrument component.     *
************************************************************
*/
export enum UnderlyingStreamCommoditySettlDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* Time unit associated with the commodity delivery date roll. *
***************************************************************
*/
export enum UnderlyingStreamCommoditySettlDateRollUnit {
  Day = 'D'
}

/*
***************************************************
* Specifies the commodity delivery roll day type. *
***************************************************
*/
export enum UnderlyingStreamCommoditySettlDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*************************************************
* Specifies the type of data source identifier. *
*************************************************
*/
export enum UnderlyingStreamCommodityDataSourceIDType {
  City4CharacterBusinessCenterCode = 0,
  AirportIataStandard = 1,
  WeatherStationWbanWeatherBureauArmyNavy = 2,
  WeatherIndexWmoWorldMeteorologicalOrganization = 3
}

/*
****************************************************
* Specifies the day or group of days for delivery. *
****************************************************
*/
export enum UnderlyingStreamCommoditySettlDay {
  Monday = 1,
  Tuesday = 2,
  Wednesday = 3,
  Thursday = 4,
  Friday = 5,
  Saturday = 6,
  Sunday = 7,
  AllWeekdays = 8,
  AllDays = 9,
  AllWeekends = 10
}

/*
***********************************************
* Specifies the commodity delivery flow type. *
***********************************************
*/
export enum UnderlyingStreamCommoditySettlFlowType {
  AllTimes = 0,
  OnPeak = 1,
  OffPeak = 2,
  Base = 3,
  BlockHours = 4,
  Other = 5
}

/*
****************************************************************
* Specifies the unit of measure (UOM) of the delivery quantity *
* associated with this settlement period.                      *
****************************************************************
*/
export enum UnderlyingStreamCommoditySettlPeriodNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Time unit associated with the settlement period frequency. *
**************************************************************
*/
export enum UnderlyingStreamCommoditySettlPeriodFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the settlement period price unit of measure (UOM). *
****************************************************************
*/
export enum UnderlyingStreamCommoditySettlPeriodPriceUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
*************************************************************
* Indicates whether holidays are included in the settlement *
* periods. Required for electricity contracts.              *
*************************************************************
*/
export enum UnderlyingStreamCommoditySettlHolidaysProcessingInstruction {
  DoNotIncludeHolidays = 0,
  IncludeHolidays = 1
}

/*
********************************************************
* Time unit associated with the swap stream's notional *
* frequency.                                           *
********************************************************
*/
export enum UnderlyingStreamNotionalFrequencyUnit {
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Quarter = 'Q'
}

/*
************************************************************
* The commodity's notional or quantity delivery frequency. *
************************************************************
*/
export enum UnderlyingStreamNotionalCommodityFrequency {
  Term = 0,
  PerBusinessDay = 1,
  PerCalculationPeriod = 2,
  PerSettlementPeriod = 3,
  PerCalendarDay = 4,
  PerHour = 5,
  PerMonth = 6
}

/*
**********************************************************
* Specifies the delivery quantity unit of measure (UOM). *
**********************************************************
*/
export enum UnderlyingStreamNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
**************************************************************
* Specifies the unit of measure (UOM) for the total notional *
* or delivery quantity over the term of the contract.        *
**************************************************************
*/
export enum UnderlyingStreamTotalNotionalUnitOfMeasure {
  BillionCubicFeet = 'Bcf',
  Allowances = 'Alw',
  Barrels = 'Bbl',
  CubicMeters = 'CBM',
  BoardFeet = 'BDFT',
  Gigajoules = 'GJ',
  Bushels = 'Bu',
  KilowattHours = 'kWh',
  OneMillionBtu = 'MMBtu',
  AmountOfCurrency = 'Ccy',
  MegawattHours = 'MWh',
  CoolingDegreeDay = 'CDD',
  CertifiedEmissionsReduction = 'CER',
  Therms = 'thm',
  CriticalPrecipitationDay = 'CPD',
  ClimateReserveTonnes = 'CRT',
  HundredweightUs = 'cwt',
  Days = 'day',
  DryMetricTons = 'dt',
  EnvironmentalAllowanceCertificates = 'EnvAllwnc',
  EnvironmentalCredit = 'EnvCrd',
  EnvironmentalOffset = 'EnvOfst',
  Grams = 'g',
  Gallons = 'Gal',
  GrossTons = 'GT',
  HeatingDegreeDay = 'HDD',
  IndexPoint = 'IPNT',
  Kilograms = 'kg',
  Kiloliters = 'kL',
  KilowattYear = 'kW-a',
  KilowattDay = 'kW-d',
  KilowattHour = 'kW-h',
  KilowattMonth = 'kW-M',
  KilowattMinuteElectricalCapacity = 'kW-min ',
  Liters = 'L',
  Pounds = 'lbs',
  MegawattYear = 'MW-a',
  MegawattDay = 'MW-d',
  MegawattHour = 'MW-h',
  MegawattMonth = 'MW-M',
  MegawattMinute = 'MW-min',
  TroyOunces = 'oz_tr',
  PrincipalWithRelationToDebtInstrument = 'PRINC',
  MetricTons = 't',
  TonsUs = 'tn',
  MillionBarrels = 'MMbbl',
  UsDollars = 'USD'
}

/*
***********************************************************
* Specifies the bond's payment priority in the event of a *
* default.                                                *
***********************************************************
*/
export enum UnderlyingAdditionalTermBondSeniority {
  SeniorSecured = 'SD',
  Senior = 'SR',
  Subordinated = 'SB'
}

/*
****************************
* Coupon type of the bond. *
****************************
*/
export enum UnderlyingAdditionalTermBondCouponType {
  Zero = 0,
  FixedRate = 1,
  FloatingRate = 2,
  Structured = 3
}

/*
****************************************************************
* Time unit associated with the frequency of the bond's coupon *
* payment.                                                     *
****************************************************************
*/
export enum UnderlyingAdditionalTermBondCouponFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The day count convention used in interest calculations for a *
* bond or an interest bearing security.                        *
****************************************************************
*/
export enum UnderlyingAdditionalTermBondDayCount {
  E11 = 0,
  E3036030U360OrBondBasis = 1,
  E30360Sia = 2,
  E30360M = 3,
  E30E360EurobondBasis = 4,
  E30E360Isda = 5,
  Act360 = 6,
  Act365Fixed = 7,
  ActActAfb = 8,
  ActActIcma = 9,
  ActActIcsmaUltimo = 10,
  ActActIsda = 11,
  Bus252 = 12,
  E30E360 = 13,
  Act365L = 14,
  Nl365 = 15,
  Nl360 = 16,
  Act364 = 17
}

/*
***********************************************************
* The type of quote used to determine the cash settlement *
* price.                                                  *
***********************************************************
*/
export enum UnderlyingCashSettlQuoteMethod {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
****************************************************************
* The ISDA defined methodology for determining the final price *
* of the reference obligation for purposes of cash settlement. *
****************************************************************
*/
export enum UnderlyingCashSettlValuationMethod {
  Market = 0,
  Highest = 1,
  AverageMarket = 2,
  AverageHighest = 3,
  BlendedMarket = 4,
  BlendedHighest = 5,
  AverageBlendedMarket = 6,
  AverageBlendedHighest = 7
}

/*
*****************************************************
* Time unit associated with protection term events. *
*****************************************************
*/
export enum UnderlyingProtectionTermEventUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*******************************************************
* Day type for events that specify a period and unit. *
*******************************************************
*/
export enum UnderlyingProtectionTermEventDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Protection term event qualifier. Used to further qualify *
* UnderlyingProtectionTermEventType(43078).                *
************************************************************
*/
export enum UnderlyingProtectionTermEventQualifier {
  RetructuringMultipleHoldingObligations = 'H',
  RestructuringMultipleCreditEventNotices = 'E',
  FloatingRateInterestShortfall = 'C'
}

/*
**************************************************************
* The business day convention used to adjust the provisional *
* cash settlement payment's termination, or relative         *
* termination, date.  Used only to override the business day *
* convention specified in the UnderlyingDateAdjustment       *
* component within the UnderlyingInstrument component.       *
**************************************************************
*/
export enum UnderlyingProvisionCashSettlPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative cash settlement *
* payment date offset.                                   *
**********************************************************
*/
export enum UnderlyingProvisionCashSettlPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the provision's relative cash *
* settlement payment date offset.                         *
***********************************************************
*/
export enum UnderlyingProvisionCashSettlPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum UnderlyingProvisionCashSettlPaymentDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
***********************************************
* Identifies the source of quote information. *
***********************************************
*/
export enum UnderlyingProvisionCashSettlQuoteSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  Other = 99
}

/*
********************************************************
* The business day convention used to adjust the cash  *
* settlement valuation date. Used only to override the *
* business day convention specified in the             *
* UnderlyingDateAdjustment component within the        *
* UnderlyingInstrument component.                      *
********************************************************
*/
export enum UnderlyingProvisionCashSettlValueDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative cash settlement value *
* date offset.                                                 *
****************************************************************
*/
export enum UnderlyingProvisionCashSettlValueDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the provision's relative cash *
* settlement value date offset.                           *
***********************************************************
*/
export enum UnderlyingProvisionCashSettlValueDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Specifies the type of date (e.g. adjusted for holidays). *
************************************************************
*/
export enum UnderlyingProvisionOptionExerciseFixedDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
***************************************************************
* The business day convention used to adjust the underlying   *
* instrument's provision's option exercise date. Used only to *
* override the business day convention specified in the       *
* UnderlyingDateAdjustment component within the               *
* UnderlyingInstrument component.                             *
***************************************************************
*/
export enum UnderlyingProvisionOptionExerciseBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the interval to the first (and *
* possibly only) exercise date in the exercise period.     *
************************************************************
*/
export enum UnderlyingProvisionOptionExerciseEarliestDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Time unit associated with the frequency of subsequent        *
* exercise dates in the exercise period following the earliest *
* exercise date.                                               *
****************************************************************
*/
export enum UnderlyingProvisionOptionExerciseFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* Time unit associated with the relative option exercise start *
* date offset.                                                 *
****************************************************************
*/
export enum UnderlyingProvisionOptionExerciseStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* exercise start date offset.                               *
*************************************************************
*/
export enum UnderlyingProvisionOptionExerciseStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* The business day convention used to adjust the underlying  *
* instrument's provision's option expiration date. Used only *
* to override the business day convention specified in the   *
* UnderlyingDateAdjustment component within the              *
* UnderlyingInstrument component.                            *
**************************************************************
*/
export enum UnderlyingProvisionOptionExpirationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the relative option expiration *
* date offset.                                             *
************************************************************
*/
export enum UnderlyingProvisionOptionExpirationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* expiration date offset.                                   *
*************************************************************
*/
export enum UnderlyingProvisionOptionExpirationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* The business day convnetion used to adjust the underlying   *
* instrument provision's option underlying date. Used only to *
* override the business day convention specified in the       *
* UnderlyingDateAdjustment component within the               *
* UnderlyingInstrument component.                             *
***************************************************************
*/
export enum UnderlyingProvisionOptionRelevantUnderlyingDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative option relevant *
* underlying date offset.                                *
**********************************************************
*/
export enum UnderlyingProvisionOptionRelevantUnderlyingDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
*************************************************************
* Specifies the day type of the provision's relative option *
* relevant underlying date offset.                          *
*************************************************************
*/
export enum UnderlyingProvisionOptionRelevantUnderlyingDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************
* Type of provision. *
**********************
*/
export enum UnderlyingProvisionType {
  MandatoryEarlyTermination = 0,
  OptionalEarlyTermination = 1,
  Cancelable = 2,
  Extendible = 3,
  MutualEarlyTermination = 4
}

/*
*************************************************************
* The business day convention used to adjust the underlying *
* instrument's provision's date. Used only to override the  *
* business day convention specified in the                  *
* UnderlyingDateAdjustment component within the             *
* UnderlyingInstrument component.                           *
*************************************************************
*/
export enum UnderlyingProvisionDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the provision's tenor period. *
***********************************************************
*/
export enum UnderlyingProvisionDateTenorUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Used to identify the calculation agent.  The calculation *
* agent may be identified in                               *
* UnderlyingProvisionCalculationAgent(42156) or in the     *
* underlying provision parties component.                  *
************************************************************
*/
export enum UnderlyingProvisionCalculationAgent {
  ExercisingParty = 0,
  NonExercisingParty = 1,
  AsSpecifiedInTheMasterAgreement = 2,
  AsSpecifiedInTheStandardTermsSupplement = 3
}

/*
***********************************************************
* If optional early termination is not available to both  *
* parties then this component identifies the buyer of the *
* option through its side of the trade.                   *
***********************************************************
*/
export enum UnderlyingProvisionOptionSinglePartyBuyerSide {
  Buy = 1,
  Sell = 2
}

/*
************************************************************
* If optional early termination is not available to both   *
* parties then this component identifies the seller of the *
* option through its side of the trade.                    *
************************************************************
*/
export enum UnderlyingProvisionOptionSinglePartySellerSide {
  Buy = 1,
  Sell = 2
}

/*
**********************************************
* The instrument provision's exercise style. *
**********************************************
*/
export enum UnderlyingProvisionOptionExerciseStyle {
  European = 0,
  American = 1,
  Bermuda = 2,
  Other = 99
}

/*
***************************************************************
* An ISDA defined cash settlement method used for the         *
* determination of the applicable cash settlement amount. The *
* method is defined in the 2006 ISDA Definitions, Section     *
* 18.3. Cash Settlement Methods, paragraph (e).               *
***************************************************************
*/
export enum UnderlyingProvisionCashSettlMethod {
  CashPrice = 0,
  CashPriceAlternate = 1,
  ParYieldCurveAdjusted = 2,
  ZeroCouponYieldCurveAdjusted = 3,
  ParYieldCurveUnadjusted = 4,
  CrossCurrency = 5,
  CollateralizedPrice = 6
}

/*
********************************************
* Identifies the type of quote to be used. *
********************************************
*/
export enum UnderlyingProvisionCashSettlQuoteType {
  Bid = 0,
  Mid = 1,
  Offer = 2,
  ExercisingPartyPays = 3
}

/*
********************************************
* Identifies the class or source of the    *
* UnderlyingProvisionPartyID(42174) value. *
********************************************
*/
export enum UnderlyingProvisionPartyIDSource {
  KoreanInvestorId = '1',
  TaiwaneseQualifiedForeignInvestorIdQfiiFid = '2',
  TaiwaneseTradingAcct = '3',
  MalaysianCentralDepositoryMcdNumber = '4',
  ChineseInvestorId = '5',
  UkNationalInsuranceOrPensionNumber = '6',
  UsSocialSecurityNumber = '7',
  UsEmployerOrTaxIdNumber = '8',
  AustralianBusinessNumber = '9',
  DirectedBrokerThreeCharacterAcronymAsDefinedInIsitcEtcBestPracticeGuidelinesDocument = 'I',
  BicBankIdentificationCodeSwiftManagedCodeIso9362SeeAppendix6B = 'B',
  GenerallyAcceptedMarketParticipantIdentifierEGNasdMnemonic = 'C',
  ProprietaryCustomCode = 'D',
  IsoCountryCode = 'E',
  AustralianTaxFileNumber = 'A',
  SettlementEntityLocationNoteIfLocalMarketSettlementUseEIsoCountryCodeSeeAppendix6GForValidValues = 'F',
  MicIso10383MarketIdentificerCodeSeeAppendix6C = 'G',
  TaxId = 'J',
  CsdParticipantMemberCodeEGEuroclearDtcCrestOrKassenvereinNumber = 'H',
  AustralianCompanyNumber = 'K',
  AustralianRegisteredBodyNumber = 'L',
  CftcReportingFirmIdentifier = 'M',
  LegalEntityIdentifierIso17442Lei = 'N',
  InterimIdentifier = 'O',
  ShortCodeIdentifier = 'P',
  NationalIdOfNaturalPerson = 'Q'
}

/*
************************************************
* Identifies the type or role of               *
* UnderlyingProvisionPartyID(42174) specified. *
************************************************
*/
export enum UnderlyingProvisionPartyRole {
  ExecutingFirmFormerlyFix42ExecBroker = 1,
  BrokerOfCreditFormerlyFix42BrokerOfCredit = 2,
  ClientIdFormerlyFix42ClientId = 3,
  ClearingFirmFormerlyFix42ClearingFirm = 4,
  InvestorId = 5,
  IntroducingFirm = 6,
  EnteringFirm = 7,
  LocateLendingFirmForShortSales = 8,
  FundManagerClientIdForCiv = 9,
  SettlementLocationFormerlyFix42SettlLocation = 10,
  OrderOriginationTraderAssociatedWithOrderOriginationFirmIETraderWhoInitiatesSubmitsTheOrder = 11,
  ExecutingTraderAssociatedWithExecutingFirmActuallyExecutes = 12,
  OrderOriginationFirmEGBuySideFirm = 13,
  GiveupClearingFirmFirmToWhichTradeIsGivenUp = 14,
  CorrespondantClearingFirm = 15,
  ExecutingSystem = 16,
  ContraFirm = 17,
  ContraClearingFirm = 18,
  SponsoringFirm = 19,
  UnderlyingContraFirm = 20,
  ClearingOrganization = 21,
  Exchange = 22,
  CustomerAccount = 24,
  CorrespondentClearingOrganization = 25,
  CorrespondentBroker = 26,
  BuyerSellerReceiverDeliverer = 27,
  Custodian = 28,
  Intermediary = 29,
  Agent = 30,
  SubCustodian = 31,
  Beneficiary = 32,
  InterestedParty = 33,
  RegulatoryBody = 34,
  LiquidityProvider = 35,
  EnteringTrader = 36,
  ContraTrader = 37,
  PositionAccount = 38,
  ContraInvestorId = 39,
  TransferToFirm = 40,
  ContraPositionAccount = 41,
  ContraExchange = 42,
  InternalCarryAccount = 43,
  OrderEntryOperatorId = 44,
  SecondaryAccountNumber = 45,
  ForeignFirm = 46,
  ThirdPartyAllocationFirm = 47,
  ClaimingAccount = 48,
  AssetManager = 49,
  PledgorAccount = 50,
  PledgeeAccount = 51,
  LargeTraderReportableAccount = 52,
  TraderMnemonic = 53,
  SenderLocation = 54,
  SessionId = 55,
  AcceptableCounterparty = 56,
  UnacceptableCounterparty = 57,
  EnteringUnit = 58,
  ExecutingUnit = 59,
  IntroducingBroker = 60,
  QuoteOriginator = 61,
  ReportOriginator = 62,
  SystematicInternaliserSi = 63,
  MultilateralTradingFacilityMtf = 64,
  RegulatedMarketRm = 65,
  MarketMaker = 66,
  InvestmentFirm = 67,
  HostCompetentAuthorityHostCa = 68,
  HomeCompetentAuthorityHomeCa = 69,
  CompetentAuthorityOfTheMostRelevantMarketInTermsOfLiquidityCal = 70,
  CompetentAuthorityOfTheTransactionExecutionVenueCatv = 71,
  ReportingIntermediaryMediumVendorViaWhichReportHasBeenPublished = 72,
  ExecutionVenue = 73,
  MarketDataEntryOriginator = 74,
  LocationId = 75,
  DeskId = 76,
  MarketDataMarket = 77,
  AllocationEntity = 78,
  PrimeBrokerProvidingGeneralTradeServices = 79,
  StepOutFirmPrimeBroker = 80,
  BrokerCientId = 81,
  CentralRegistrationDepositoryCrd = 82,
  ClearingAccount = 83,
  AcceptableSettlingCounterparty = 84,
  UnacceptableSettlingCounterparty = 85,
  ClsMemberBank = 86,
  InConcertGroup = 87,
  InConcertControllingEntity = 88,
  LargePositionsReportingAccount = 89,
  SettlementFirm = 90,
  SettlementAccount = 91,
  ReportingMarketCenter = 92,
  RelatedReportingMarketCenter = 93,
  AwayMarket = 94,
  GiveUpTradingFirm = 95,
  TakeUpTradingFirm = 96,
  GiveUpClearingFirm = 97,
  TakeUpClearingFirm = 98,
  OriginatingMarket = 99,
  MarginAccount = 100,
  CollateralAssetAccount = 101,
  DataRepository = 102,
  CalculationAgent = 103,
  SenderOfExerciseNotice = 104,
  ReceiverOfExerciseNotice = 105,
  RateReferenceBank = 106,
  Correspondent = 107,
  BeneficiarysBankOrDepositoryInstitution = 109,
  Borrower = 110,
  PrimaryObligator = 111,
  Guarantor = 112,
  ExcludedReferenceEntity = 113,
  DeterminingParty = 114,
  HedgingParty = 115,
  ReportingEntity = 116,
  SalesPerson = 117,
  Operator = 118,
  CentralSecuritiesDepositoryCsd = 119,
  InternationalCentralSecuritiesDepositoryIcsd = 120,
  TradingSubAccount = 121,
  InvestmentDecisionMaker = 122
}

/*
*****************************************************
* The type of UnderlyingProvisionPartySubID(42178). *
*****************************************************
*/
export enum UnderlyingProvisionPartySubIDType {
  Firm = 1,
  Person = 2,
  System = 3,
  Application = 4,
  FullLegalNameOfFirm = 5,
  PostalAddress = 6,
  PhoneNumber = 7,
  EmailAddress = 8,
  ContactName = 9,
  SecuritiesAccountNumberForSettlementInstructions = 10,
  RegistrationNumberForSettlementInstructionsAndConfirmations = 11,
  RegisteredAddressForConfirmationPurposes = 12,
  RegulatoryStatusForConfirmationPurposes = 13,
  RegistrationNameForSettlementInstructions = 14,
  CashAccountNumberForSettlementInstructions = 15,
  Bic = 16,
  CsdParticipantMemberCode = 17,
  RegisteredAddress = 18,
  FundAccountName = 19,
  TelexNumber = 20,
  FaxNumber = 21,
  SecuritiesAccountName = 22,
  CashAccountName = 23,
  Department = 24,
  LocationDesk = 25,
  PositionAccountType = 26,
  SecurityLocateId = 27,
  MarketMaker = 28,
  EligibleCounterparty = 29,
  ProfessionalClient = 30,
  Location = 31,
  ExecutionVenue = 32,
  CurrencyDeliveryIdentifier = 33,
  AddressCity = 34,
  AddressStateProvince = 35,
  AddressPostalCode = 36,
  AddressStreet = 37,
  AddressCountryIsoCountryCode = 38,
  IsoCountryCode = 39,
  MarketSegment = 40,
  CustomerAccountType = 41,
  OmnibusAccount = 42,
  FundsSegregationType = 43,
  GuaranteeFund = 44,
  SwapDealer = 45,
  MajorParticipant = 46,
  FinancialEntity = 47,
  USPerson = 48,
  ReportingEntityIndicator = 49,
  ElectedClearingRequirementException = 50,
  BusinessCenter = 51,
  ReferenceText = 52,
  ShortMarkingExemptAccount = 53,
  ParentFirmIdentifier = 54,
  ParentFirmName = 55,
  DealIdentifier = 56,
  SystemTradeIdentifier = 57,
  SystemTradeSubIdentifier = 58,
  FuturesCommissionMerchantFcmCode = 59,
  DeliveryTerminalCustomerAccountCode = 60,
  VoluntaryReportingEntity = 61,
  ReportingObligationJurisdiction = 62,
  VoluntaryReportingJurisdiction = 63,
  CompanyActivities = 64,
  EuropeanEconomicAreaDomiciled = 65,
  ContractLinkedToCommercialOrTreasuryFinancingForThisCounterparty = 66,
  ContractAboveClearingThresholdForThisCounterparty = 67,
  VoluntaryReportingParty = 68,
  EndUser = 69,
  LocationOrJurisdiction = 70,
  DerivativesDealer = 71,
  Domicile = 72,
  ExemptFromRecognition = 73,
  Payer = 74,
  Receiver = 75,
  SystematicInternaliserSi = 76
}

/*
***************************************
* Identifies the class or source of   *
* DeliveryStreamDeliveryPoint(41062). *
***************************************
*/
export enum DeliveryStreamDeliveryPointSource {
  Proprietary = 0,
  EnergyIdentificationCodeEic = 1
}

/*
******************************************
* Identifies the class or source of      *
* LegDeliveryStreamDeliveryPoint(41433). *
******************************************
*/
export enum LegDeliveryStreamDeliveryPointSource {
  Proprietary = 0,
  EnergyIdentificationCodeEic = 1
}

/*
*************************************************
* Identifies the class or source of             *
* UnderlyingDeliveryStreamDeliveryPoint(41781). *
*************************************************
*/
export enum UnderlyingDeliveryStreamDeliveryPointSource {
  Proprietary = 0,
  EnergyIdentificationCodeEic = 1
}

/*
****************************************************************
* The business day convention used to adjust the cash          *
* settlement provision's date. Used only to override the       *
* business day convention defined in the Instrument component. *
****************************************************************
*/
export enum CashSettlDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* Time unit associated with the relative cash settlement date *
* offset.                                                     *
***************************************************************
*/
export enum CashSettlDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative cash settlement date *
* offset.                                                     *
***************************************************************
*/
export enum CashSettlDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************************
* The default election for determining settlement price. *
**********************************************************
*/
export enum CashSettlPriceDefault {
  Close = 0,
  Hedge = 1
}

/*
****************************************************************
* Time unit associated with the dividend accrual floating rate *
* index curve period.                                          *
****************************************************************
*/
export enum DividendFloatingRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum DividendFloatingRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum DividendFloatingRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum DividendCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum DividendCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum DividendFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum DividendFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
*******************************************************
* Specifies the rounding direction of the final rate. *
*******************************************************
*/
export enum DividendFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
**************************************************************
* When averaging is applicable, used to specify whether a    *
* weighted or unweighted average method of calculation is to *
* be used.                                                   *
**************************************************************
*/
export enum DividendAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* The specification of any provisions for calculating payment *
* obligations when a floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum DividendNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
***************************************************************
* Time unit associated with the relative accrual payment date *
* offset.                                                     *
***************************************************************
*/
export enum DividendAccrualPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative accrual payment date *
* offset.                                                     *
***************************************************************
*/
export enum DividendAccrualPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Accrual payment date adjustment business day convention. *
************************************************************
*/
export enum DividendAccrualPaymeentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
********************************************************
* Defines the contract event which the receiver of the *
* derivative is entitled to the dividend.              *
********************************************************
*/
export enum DividendEntitlementEvent {
  ExDate = 0,
  RecordDate = 1
}

/*
*************************************************************
* Indicates how the gross cash dividend amount per share is *
* determined.                                               *
*************************************************************
*/
export enum DividendAmountType {
  RecordAmount = 0,
  ExAmount = 1,
  PaidAmount = 2,
  AsSpecifiedInMasterConfirmation = 3
}

/*
***************************************************************
* Reference to the party through its side in the trade who    *
* makes the determination whether dividends are extraordinary *
* in relation to normal levels.                               *
***************************************************************
*/
export enum ExtraordinaryDividendPartySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***********************************************************
* Indicates how the extraordinary gross cash dividend per *
* share is determined.                                    *
***********************************************************
*/
export enum ExtraordinaryDividendAmountType {
  RecordAmount = 0,
  ExAmount = 1,
  PaidAmount = 2,
  AsSpecifiedInMasterConfirmation = 3
}

/*
********************************************************
* The compounding method to be used when more than one *
* dividend period contributes to a single payment.     *
********************************************************
*/
export enum DividendCompoundingMethod {
  None = 0,
  Flat = 1,
  Straight = 2,
  SpreadExclusive = 3
}

/*
************************************************
* Defines the treatment of non-cash dividends. *
************************************************
*/
export enum NonCashDividendTreatment {
  PotentialAdjustmentEvent = 0,
  CashEquivalent = 1
}

/*
*****************************************************
* Defines how the composition of dividends is to be *
* determined.                                       *
*****************************************************
*/
export enum DividendComposition {
  EquityAmountReceiverElection = 0,
  CalculationAgentElection = 1
}

/*
**********************************************************
* Time unit associated with the relative FX trigger date *
* offset.                                                *
**********************************************************
*/
export enum DividendFXTriggerDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative FX trigger date *
* offset.                                                *
**********************************************************
*/
export enum DividendFXTriggerDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* The business day convention used for the FX trigger date *
* adjustment.                                              *
************************************************************
*/
export enum DividendFXTriggerDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
******************************************************
* The dividend period dates business day convention. *
******************************************************
*/
export enum DividendPeriodBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative dividend period *
* valuation date offset.                                 *
**********************************************************
*/
export enum DividendPeriodValuationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative dividend period *
* valuation date offset.                                 *
**********************************************************
*/
export enum DividendPeriodValuationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************************
* Time unit associated with the relative dividend period *
* payment date offset.                                   *
**********************************************************
*/
export enum DividendPeriodPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative dividend period *
* payment date offset.                                   *
**********************************************************
*/
export enum DividendPeriodPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***********************************************************
* The business day convention used to adjust the cash     *
* settlement provision's date.  Used only to override the *
* business day convention defined in the InstrumentLeg    *
* component.                                              *
***********************************************************
*/
export enum LegCashSettlDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* Time unit associated with the relative cash settlement date *
* offset.                                                     *
***************************************************************
*/
export enum LegCashSettlDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative cash settlement date *
* offset.                                                     *
***************************************************************
*/
export enum LegCashSettlDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************************
* The default election for determining settlement price. *
**********************************************************
*/
export enum LegCashSettlPriceDefault {
  Close = 0,
  Hedge = 1
}

/*
****************************************************************
* Time unit associated with the dividend accrual floating rate *
* index curve period.                                          *
****************************************************************
*/
export enum LegDividendFloatingRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum LegDividendFloatingRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum LegDividendFloatingRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum LegDividendCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum LegDividendCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum LegDividendFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum LegDividendFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
*******************************************************
* Specifies the rounding direction of the final rate. *
*******************************************************
*/
export enum LegDividendFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
**************************************************************
* When averaging is applicable, used to specify whether a    *
* weighted or unweighted average method of calculation is to *
* be used.                                                   *
**************************************************************
*/
export enum LegDividendAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* The specification of any provisions for calculating payment *
* obligations when a floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum LegDividendNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
***************************************************************
* Time unit associated with the relative accrual payment date *
* offset.                                                     *
***************************************************************
*/
export enum LegDividendAccrualPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative accrual payment date *
* offset.                                                     *
***************************************************************
*/
export enum LegDividendAccrualPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Accrual payment date adjustment business day convention. *
************************************************************
*/
export enum LegDividendAccrualPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
********************************************************
* Defines the contract event which the receiver of the *
* derivative is entitled to the dividend.              *
********************************************************
*/
export enum LegDividendEntitlementEvent {
  ExDate = 0,
  RecordDate = 1
}

/*
*************************************************************
* Indicates how the gross cash dividend amount per share is *
* determined.                                               *
*************************************************************
*/
export enum LegDividendAmountType {
  RecordAmount = 0,
  ExAmount = 1,
  PaidAmount = 2,
  AsSpecifiedInMasterConfirmation = 3
}

/*
***************************************************************
* Reference to the party through its side in the trade who    *
* makes the determination whether dividends are extraordinary *
* in relation to normal levels.                               *
***************************************************************
*/
export enum LegExtraordinaryDividendPartySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***********************************************************
* Indicates how the extraordinary gross cash dividend per *
* share is determined.                                    *
***********************************************************
*/
export enum LegExtraordinaryDividendAmountType {
  RecordAmount = 0,
  ExAmount = 1,
  PaidAmount = 2,
  AsSpecifiedInMasterConfirmation = 3
}

/*
********************************************************
* The compounding method to be used when more than one *
* dividend period contributes to a single payment.     *
********************************************************
*/
export enum LegDividendCompoundingMethod {
  None = 0,
  Flat = 1,
  Straight = 2,
  SpreadExclusive = 3
}

/*
************************************************
* Defines the treatment of non-cash dividends. *
************************************************
*/
export enum LegNonCashDividendTreatment {
  PotentialAdjustmentEvent = 0,
  CashEquivalent = 1
}

/*
*****************************************************
* Defines how the composition of dividends is to be *
* determined.                                       *
*****************************************************
*/
export enum LegDividendComposition {
  EquityAmountReceiverElection = 0,
  CalculationAgentElection = 1
}

/*
**********************************************************
* Time unit associated with the relative FX trigger date *
* offset.                                                *
**********************************************************
*/
export enum LegDividendFXTriggerDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative FX trigger date *
* offset.                                                *
**********************************************************
*/
export enum LegDividendFXTriggerDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* The business day convention used for the FX trigger date *
* adjustment.                                              *
************************************************************
*/
export enum LegDividendFXTriggerDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
******************************************************
* The dividend period dates business day convention. *
******************************************************
*/
export enum LegDividendPeriodBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative dividend period *
* valuation date offset.                                 *
**********************************************************
*/
export enum LegDividendPeriodValuationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative dividend period *
* valuation date offset.                                 *
**********************************************************
*/
export enum LegDividendPeriodValuationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************************
* Time unit associated with the relative dividend period *
* payment date offset.                                   *
**********************************************************
*/
export enum LegDividendPeriodPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative dividend period *
* payment date offset.                                   *
**********************************************************
*/
export enum LegDividendPeriodPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***********************************************************
* Side value of the party electing the settlement method. *
***********************************************************
*/
export enum LegSettlMethodElectingPartySide {
  Buy = 1,
  Sell = 2
}

/*
**************************************************************
* The quote side of the benchmark to be used for calculating *
* the "make whole" amount.                                   *
**************************************************************
*/
export enum LegMakeWholeBenchmarkQuote {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
*************************************************************
* The method used when calculating the "make whole" amount. *
* The most common is linear method.                         *
*************************************************************
*/
export enum LegMakeWholeInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
***********************************************************
* The method used when calculating the index rate from    *
* multiple points on the curve. The most common is linear *
* method.                                                 *
***********************************************************
*/
export enum LegPaymentStreamInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
*************************************************
* Defines applicable periods for interpolation. *
*************************************************
*/
export enum LegPaymentStreamInterpolationPeriod {
  Initial = 0,
  InitialAndFinal = 1,
  Final = 2,
  AnyPeriod = 3
}

/*
********************************************************
* Specifies the type of payment compounding date (e.g. *
* adjusted for holidays).                              *
********************************************************
*/
export enum LegPaymentStreamCompoundingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**************************************************
* The compounding dates business day convention. *
**************************************************
*/
export enum LegPaymentStreamCompoundingDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the relative compounding date *
* offset.                                                 *
***********************************************************
*/
export enum LegPaymentStreamCompoundingDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the relative compounding date *
* offset.                                                 *
***********************************************************
*/
export enum LegPaymentStreamCompoundingDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the frequency at which compounding *
* dates occur.                                                 *
****************************************************************
*/
export enum LegPaymentStreamCompoundingFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of compounding   *
* dates. It is used in conjunction with a specified frequency. *
****************************************************************
*/
export enum LegPaymentStreamCompoundingRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
***************************************************************
* Time unit associated with the relative compounding end date *
* offset.                                                     *
***************************************************************
*/
export enum LegPaymentStreamCompoundingEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative compounding end date *
* offset.                                                     *
***************************************************************
*/
export enum LegPaymentStreamCompoundingEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Time unit associated with the payment stream's compounding *
* floating rate index curve period.                          *
**************************************************************
*/
export enum LegPaymentStreamCompoundingRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum LegPaymentStreamCompoundingRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum LegPaymentStreamCompoundingRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the compounding cap rate option *
* through its trade side.                                   *
*************************************************************
*/
export enum LegPaymentStreamCompoundingCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the compounding cap rate option *
* through its trade side.                                    *
**************************************************************
*/
export enum LegPaymentStreamCompoundingCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the compounding floor rate option *
* through its trade side.                                     *
***************************************************************
*/
export enum LegPaymentStreamCompoundingFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum LegPaymentStreamCompoundingFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
********************************************************
* Specifies the rounding direction for the compounding *
* floating rate.                                       *
********************************************************
*/
export enum LegPaymentStreamCompoundingFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
***************************************************************
* Specifies the averaging method when compounding floating    *
* rate averaging is applicable (e.g. weighted or unweighted). *
***************************************************************
*/
export enum LegPaymentStreamCompoundingAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* Specifies the method for calculating payment obligations    *
* when a compounding floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum LegPaymentStreamCompoundingNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
************************************************************
* Time unit associated with the relative compounding start *
* date offset.                                             *
************************************************************
*/
export enum LegPaymentStreamCompoundingStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative compounding start *
* date offset.                                             *
************************************************************
*/
export enum LegPaymentStreamCompoundingStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Time unit associated with the relative final price payment *
* date offset.                                               *
**************************************************************
*/
export enum LegPaymentStreamFinalPricePaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative final price payment *
* date offset.                                               *
**************************************************************
*/
export enum LegPaymentStreamFinalPricePaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
********************************************************
* Specifies the type of fixing date (e.g. adjusted for *
* holidays).                                           *
********************************************************
*/
export enum LegPaymentStreamFixingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
****************************************************************
* Specifies the day type of the initial price observation date *
* offset.                                                      *
****************************************************************
*/
export enum LegPaymentStreamFirstObservationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
********************************************************
* For a variance swap specifies how                    *
* LegPaymentStreamLinkStrikePrice(42472) is expressed. *
********************************************************
*/
export enum LegPaymentStreamLinkStrikePriceType {
  Volatility = 0,
  Variance = 1
}

/*
********************************************************
* Indicates which price to use to satisfy the boundary *
* condition.                                           *
********************************************************
*/
export enum LegPaymentStreamRealizedVarianceMethod {
  Previous = 0,
  Last = 1,
  Both = 2
}

/*
**********************************************
* The stub end date business day convention. *
**********************************************
*/
export enum LegPaymentStubEndDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative stub end date offset. *
****************************************************************
*/
export enum LegPaymentStubEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative stub end date offset. *
****************************************************************
*/
export enum LegPaymentStubEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************
* The stub start date business day convention. *
************************************************
*/
export enum LegPaymentStubStartDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative stub start date *
* offset.                                                *
**********************************************************
*/
export enum LegPaymentStubStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative stub start date *
* offset.                                                *
**********************************************************
*/
export enum LegPaymentStubStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************
* Type of fee elected for the break provision. *
************************************************
*/
export enum LegProvisionBreakFeeElection {
  FlatFee = 0,
  AmortizedFee = 1,
  FundingFee = 2,
  FlatFeeAndFundingFee = 3,
  AmortizedFeeAndFundingFee = 4
}

/*
**************************************************************
* Specifies the valuation type applicable to the return rate *
* date.                                                      *
**************************************************************
*/
export enum LegReturnRateDateMode {
  PriceValuation = 0,
  DividendValuation = 1
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* date offset.                                                 *
****************************************************************
*/
export enum LegReturnRateValuationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* date offset.                                                 *
****************************************************************
*/
export enum LegReturnRateValuationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* start date offset.                                           *
****************************************************************
*/
export enum LegReturnRateValuationStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* start date offset.                                           *
****************************************************************
*/
export enum LegReturnRateValuationStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* end date offset.                                             *
****************************************************************
*/
export enum LegReturnRateValuationEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* end date offset.                                             *
****************************************************************
*/
export enum LegReturnRateValuationEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the frequency at which return rate *
* valuation dates occur.                                       *
****************************************************************
*/
export enum LegReturnRateValuationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
***************************************************************
* The convention for determining the sequence of return rate  *
* valuation dates. It is used in conjunction with a specified *
* frequency.                                                  *
***************************************************************
*/
export enum LegReturnRateValuationFrequencyRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
************************************************************
* The return rate valuation dates business day convention. *
************************************************************
*/
export enum LegReturnRateValuationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* The rate of exchange between the two currencies specified in *
* LegReturnRateFXCurrencySymbol(42531).                        *
****************************************************************
*/
export enum LegReturnRateFXRateCalc {
  Multiply = 'M',
  Divide = 'D'
}

/*
************************************************************
* Specifies the type of price sequence of the return rate. *
************************************************************
*/
export enum LegReturnRatePriceSequence {
  Initial = 0,
  Interim = 1,
  Final = 2
}

/*
*****************************************************
* Specifies the basis or unit used to calculate the *
* commission.                                       *
*****************************************************
*/
export enum LegReturnRateCommissionBasis {
  AmountPerUnit = '1',
  Percent = '2',
  Absolute = '3',
  PercentageWaivedCashDiscountBasis = '4',
  PercentageWaivedEnhancedUnitsBasis = '5',
  PointsPerBondOrContract = '6',
  BasisPoints = '7',
  AmountPerContract = '8'
}

/*
************************************************************
* Specifies the type of quote used to determine the return *
* rate of the swap.                                        *
************************************************************
*/
export enum LegReturnRateQuoteMethod {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
*******************************************************
* Specifies how or the timing when the quote is to be *
* obtained.                                           *
*******************************************************
*/
export enum LegReturnRateQuoteTimeType {
  Open = 0,
  OfficialSettlementPriceTime = 1,
  Xetra = 2,
  Close = 3,
  DerivativesClose = 4,
  High = 5,
  Low = 6,
  AsSpecifiedInTheMasterConfirmation = 7
}

/*
**************************************************************
* Specifies the timing at which the calculation agent values *
* the underlying.                                            *
**************************************************************
*/
export enum LegReturnRateValuationTimeType {
  Open = 0,
  OfficialSettlementPriceTime = 1,
  Xetra = 2,
  Close = 3,
  DerivativesClose = 4,
  High = 5,
  Low = 6,
  AsSpecifiedInTheMasterConfirmation = 7
}

/*
**********************************************************
* Indicates whether an ISDA price option applies, and if *
* applicable which type of price.                        *
**********************************************************
*/
export enum LegReturnRateValuationPriceOption {
  NoneTheDefault = 0,
  FuturesPrice = 1,
  OptionsPrice = 2
}

/*
*************************************************************
* Specifies the fallback provision for the hedging party in *
* the determination of the final price.                     *
*************************************************************
*/
export enum LegReturnRateFinalPriceFallback {
  Close = 0,
  HedgeElection = 1
}

/*
*********************************************************
* Identifies the source of rate information. For FX the *
* references source to be used for the FX spot rate.    *
*********************************************************
*/
export enum LegReturnRateInformationSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
**********************************
* The basis of the return price. *
**********************************
*/
export enum LegReturnRatePriceBasis {
  Gross = 0,
  Net = 1,
  Accrued = 2,
  CleanNet = 3
}

/*
****************************************************************
* Specifies whether the LegReturnRatePrice(42566) is expressed *
* in absolute or relative terms.                               *
****************************************************************
*/
export enum LegReturnRatePriceType {
  AbsoluteTerms = 0,
  PercentageOfNotional = 1
}

/*
**********************************************************
* Specifies the type of return rate valuation date (e.g. *
* adjusted for holidays).                                *
**********************************************************
*/
export enum LegReturnRateValuationDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
***************************************************************
* The settlement method election date adjustment business day *
* convention.                                                 *
***************************************************************
*/
export enum LegSettlMethodElectionDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the relative settlement method *
* election date offset.                                    *
************************************************************
*/
export enum LegSettlMethodElectionDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative settlement method *
* election date offset.                                    *
************************************************************
*/
export enum LegSettlMethodElectionDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* For equity swaps this specifies the conditions that govern *
* the adjustment to the number of units of the swap.         *
**************************************************************
*/
export enum LegStreamNotionalAdjustments {
  Execution = 0,
  PortfolioRebalancing = 1,
  Standard = 2
}

/*
***********************************************************
* Side value of the party electing the settlement method. *
***********************************************************
*/
export enum SettlMethodElectingPartySide {
  Buy = 1,
  Sell = 2
}

/*
**************************************************************
* The quote side of the benchmark to be used for calculating *
* the "make whole" amount.                                   *
**************************************************************
*/
export enum MakeWholeBenchmarkQuote {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
*************************************************************
* The method used when calculating the "make whole" amount. *
* The most common is linear method.                         *
*************************************************************
*/
export enum MakeWholeInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
***********************************************************
* The method used when calculating the index rate from    *
* multiple points on the curve. The most common is linear *
* method.                                                 *
***********************************************************
*/
export enum PaymentStreamInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
*************************************************
* Defines applicable periods for interpolation. *
*************************************************
*/
export enum PaymentStreamInterpolationPeriod {
  Initial = 0,
  InitialAndFinal = 1,
  Final = 2,
  AnyPeriod = 3
}

/*
********************************************************
* Specifies the type of payment compounding date (e.g. *
* adjusted for holidays).                              *
********************************************************
*/
export enum PaymentStreamCompoundingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**************************************************
* The compounding dates business day convention. *
**************************************************
*/
export enum PaymentStreamCompoundingDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the relative compounding date *
* offset.                                                 *
***********************************************************
*/
export enum PaymentStreamCompoundingDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the relative compounding date *
* offset.                                                 *
***********************************************************
*/
export enum PaymentStreamCompoundingDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the frequency at which compounding *
* dates occur.                                                 *
****************************************************************
*/
export enum PaymentStreamCompoundingFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of compounding   *
* dates. It is used in conjunction with a specified frequency. *
****************************************************************
*/
export enum PaymentStreamCompoundingRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
***************************************************************
* Time unit associated with the relative compounding end date *
* offset.                                                     *
***************************************************************
*/
export enum PaymentStreamCompoundingEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative compounding end date *
* offset.                                                     *
***************************************************************
*/
export enum PaymentStreamCompoundingEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Time unit associated with the payment stream's compounding *
* floating rate index curve period.                          *
**************************************************************
*/
export enum PaymentStreamCompoundingRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum PaymentStreamCompoundingRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum PaymentStreamCompoundingRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the compounding cap rate option *
* through its trade side.                                   *
*************************************************************
*/
export enum PaymentStreamCompoundingCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the compounding cap rate option *
* through its trade side.                                    *
**************************************************************
*/
export enum PaymentStreamCompoundingCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the compounding floor rate option *
* through its trade side.                                     *
***************************************************************
*/
export enum PaymentStreamCompoundingFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum PaymentStreamCompoundingFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
********************************************************
* Specifies the rounding direction for the compounding *
* floating rate.                                       *
********************************************************
*/
export enum PaymentStreamCompoundingFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
***************************************************************
* Specifies the averaging method when compounding floating    *
* rate averaging is applicable (e.g. weighted or unweighted). *
***************************************************************
*/
export enum PaymentStreamCompoundingAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* Specifies the method for calculating payment obligations    *
* when a compounding floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum PaymentStreamCompoundingNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
************************************************************
* Time unit associated with the relative compounding start *
* date offset.                                             *
************************************************************
*/
export enum PaymentStreamCompoundingStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative compounding start *
* date offset.                                             *
************************************************************
*/
export enum PaymentStreamCompoundingStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Time unit associated with the relative final price payment *
* date offset.                                               *
**************************************************************
*/
export enum PaymentStreamFinalPricePaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative final price payment *
* date offset.                                               *
**************************************************************
*/
export enum PaymentStreamFinalPricePaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
********************************************************
* Specifies the type of fixing date (e.g. adjusted for *
* holidays).                                           *
********************************************************
*/
export enum PaymentStreamFixingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
****************************************************************
* Specifies the day type of the initial price observation date *
* offset.                                                      *
****************************************************************
*/
export enum PaymentStreamFirstObservationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
*****************************************************
* For a variance swap specifies how                 *
* PaymentStreamLinkStrikePrice(42673) is expressed. *
*****************************************************
*/
export enum PaymentStreamLinkStrikePriceType {
  Volatility = 0,
  Variance = 1
}

/*
********************************************************
* Indicates which price to use to satisfy the boundary *
* condition.                                           *
********************************************************
*/
export enum PaymentStreamRealizedVarianceMethod {
  Previous = 0,
  Last = 1,
  Both = 2
}

/*
**********************************************
* The stub end date business day convention. *
**********************************************
*/
export enum PaymentStubEndDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative stub end date offset. *
****************************************************************
*/
export enum PaymentStubEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative stub end date offset. *
****************************************************************
*/
export enum PaymentStubEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************
* The stub start date business day convention. *
************************************************
*/
export enum PaymentStubStartDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative stub start date *
* offset.                                                *
**********************************************************
*/
export enum PaymentStubStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative stub start date *
* offset.                                                *
**********************************************************
*/
export enum PaymentStubStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************
* Type of fee elected for the break provision. *
************************************************
*/
export enum ProvisionBreakFeeElection {
  FlatFee = 0,
  AmortizedFee = 1,
  FundingFee = 2,
  FlatFeeAndFundingFee = 3,
  AmortizedFeeAndFundingFee = 4
}

/*
**************************************************************
* Specifies the valuation type applicable to the return rate *
* date.                                                      *
**************************************************************
*/
export enum ReturnRateDateMode {
  PriceValuation = 0,
  DividendValuation = 1
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* date offset.                                                 *
****************************************************************
*/
export enum ReturnRateValuationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* date offset.                                                 *
****************************************************************
*/
export enum ReturnRateValuationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* start date offset.                                           *
****************************************************************
*/
export enum ReturnRateValuationStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* start date offset.                                           *
****************************************************************
*/
export enum ReturnRateValuationStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* end date offset.                                             *
****************************************************************
*/
export enum ReturnRateValuationEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* end date offset.                                             *
****************************************************************
*/
export enum ReturnRateValuationEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the frequency at which return rate *
* valuation dates occur.                                       *
****************************************************************
*/
export enum ReturnRateValuationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
***************************************************************
* The convention for determining the sequence of return rate  *
* valuation dates. It is used in conjunction with a specified *
* frequency.                                                  *
***************************************************************
*/
export enum ReturnRateValuationFrequencyRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
************************************************************
* The return rate valuation dates business day convention. *
************************************************************
*/
export enum ReturnRateValuationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
*******************************************************
* Specifies whether ReturnRateFXRate(42733) should be *
* multiplied or divided.                              *
*******************************************************
*/
export enum ReturnRateFXRateCalc {
  Multiply = 'M',
  Divide = 'D'
}

/*
************************************************************
* Specifies the type of price sequence of the return rate. *
************************************************************
*/
export enum ReturnRatePriceSequence {
  Initial = 0,
  Interim = 1,
  Final = 2
}

/*
*****************************************************
* Specifies the basis or unit used to calculate the *
* commission.                                       *
*****************************************************
*/
export enum ReturnRateCommissionBasis {
  AmountPerUnit = '1',
  Percent = '2',
  Absolute = '3',
  PercentageWaivedCashDiscountBasis = '4',
  PercentageWaivedEnhancedUnitsBasis = '5',
  PointsPerBondOrContract = '6',
  BasisPoints = '7',
  AmountPerContract = '8'
}

/*
************************************************************
* Specifies the type of quote used to determine the return *
* rate of the swap.                                        *
************************************************************
*/
export enum ReturnRateQuoteMethod {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
*******************************************************
* Specifies how or the timing when the quote is to be *
* obtained.                                           *
*******************************************************
*/
export enum ReturnRateQuoteTimeType {
  Open = 0,
  OfficialSettlementPriceTime = 1,
  Xetra = 2,
  Close = 3,
  DerivativesClose = 4,
  High = 5,
  Low = 6,
  AsSpecifiedInTheMasterConfirmation = 7
}

/*
**************************************************************
* Specifies the timing at which the calculation agent values *
* the underlying.                                            *
**************************************************************
*/
export enum ReturnRateValuationTimeType {
  Open = 0,
  OfficialSettlementPriceTime = 1,
  Xetra = 2,
  Close = 3,
  DerivativesClose = 4,
  High = 5,
  Low = 6,
  AsSpecifiedInTheMasterConfirmation = 7
}

/*
**********************************************************
* Indicates whether an ISDA price option applies, and if *
* applicable which type of price.                        *
**********************************************************
*/
export enum ReturnRateValuationPriceOption {
  NoneTheDefault = 0,
  FuturesPrice = 1,
  OptionsPrice = 2
}

/*
*************************************************************
* Specifies the fallback provision for the hedging party in *
* the determination of the final price.                     *
*************************************************************
*/
export enum ReturnRateFinalPriceFallback {
  Close = 0,
  HedgeElection = 1
}

/*
*********************************************************
* Identifies the source of rate information. For FX the *
* references source to be used for the FX spot rate.    *
*********************************************************
*/
export enum ReturnRateInformationSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
**********************************
* The basis of the return price. *
**********************************
*/
export enum ReturnRatePriceBasis {
  Gross = 0,
  Net = 1,
  Accrued = 2,
  CleanNet = 3
}

/*
****************************************************************
* Specifies whether the ReturnRatePrice(42767) is expressed in *
* absolute or relative terms.                                  *
****************************************************************
*/
export enum ReturnRatePriceType {
  AbsoluteTerms = 0,
  PercentageOfNotional = 1
}

/*
**********************************************************
* Specifies the type of return rate valuation date (e.g. *
* adjusted for holidays).                                *
**********************************************************
*/
export enum ReturnRateValuationDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
***************************************************************
* The settlement method election date adjustment business day *
* convention.                                                 *
***************************************************************
*/
export enum SettlMethodElectionDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the relative settlement method *
* election date offset.                                    *
************************************************************
*/
export enum SettlMethodElectionDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative settlement method *
* election date offset.                                    *
************************************************************
*/
export enum SettlMethodElectionDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* For equity swaps this specifies the conditions that govern *
* the adjustment to the number of units of the swap.         *
**************************************************************
*/
export enum StreamNotionalAdjustments {
  Execution = 0,
  PortfolioRebalancing = 1,
  Standard = 2
}

/*
***************************************************************
* The business day convention used to adjust the cash         *
* settlement provision's date.  Used only to override the     *
* business day convention defined in the UnderlyingInstrument *
* component.                                                  *
***************************************************************
*/
export enum UnderlyingCashSettlDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***************************************************************
* Time unit associated with the relative cash settlement date *
* offset.                                                     *
***************************************************************
*/
export enum UnderlyingCashSettlDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative cash settlement date *
* offset.                                                     *
***************************************************************
*/
export enum UnderlyingCashSettlDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************************
* The default election for determining settlement price. *
**********************************************************
*/
export enum UnderlyingCashSettlPriceDefault {
  Close = 0,
  Hedge = 1
}

/*
****************************************************************
* Time unit associated with the dividend accrual floating rate *
* index curve period.                                          *
****************************************************************
*/
export enum UnderlyingDividendFloatingRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum UnderlyingDividendFloatingRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum UnderlyingDividendFloatingRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the cap rate option through its *
* trade side.                                               *
*************************************************************
*/
export enum UnderlyingDividendCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the cap rate option through its *
* trade side.                                                *
**************************************************************
*/
export enum UnderlyingDividendCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the floor rate option through its *
* trade side.                                                 *
***************************************************************
*/
export enum UnderlyingDividendFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum UnderlyingDividendFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
*******************************************************
* Specifies the rounding direction of the final rate. *
*******************************************************
*/
export enum UnderlyingDividendFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
**************************************************************
* When averaging is applicable, used to specify whether a    *
* weighted or unweighted average method of calculation is to *
* be used.                                                   *
**************************************************************
*/
export enum UnderlyingDividendAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* The specification of any provisions for calculating payment *
* obligations when a floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum UnderlyingDividendNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
***************************************************************
* Time unit associated with the relative accrual payment date *
* offset.                                                     *
***************************************************************
*/
export enum UnderlyingDividendAccrualPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative accrual payment date *
* offset.                                                     *
***************************************************************
*/
export enum UnderlyingDividendAccrualPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* Accrual payment date adjustment business day convention. *
************************************************************
*/
export enum UnderlyingDividendAccrualPaymentDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
********************************************************
* Defines the contract event which the receiver of the *
* derivative is entitled to the dividend.              *
********************************************************
*/
export enum UnderlyingDividendEntitlementEvent {
  ExDate = 0,
  RecordDate = 1
}

/*
*************************************************************
* Indicates how the gross cash dividend amount per share is *
* determined.                                               *
*************************************************************
*/
export enum UnderlyingDividendAmountType {
  RecordAmount = 0,
  ExAmount = 1,
  PaidAmount = 2,
  AsSpecifiedInMasterConfirmation = 3
}

/*
***************************************************************
* Reference to the party through its side in the trade who    *
* makes the determination whether dividends are extraordinary *
* in relation to normal levels.                               *
***************************************************************
*/
export enum UnderlyingExtraordinaryDividendPartySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***********************************************************
* Indicates how the extraordinary gross cash dividend per *
* share is determined.                                    *
***********************************************************
*/
export enum UnderlyingExtraordinaryDividendAmountType {
  RecordAmount = 0,
  ExAmount = 1,
  PaidAmount = 2,
  AsSpecifiedInMasterConfirmation = 3
}

/*
********************************************************
* The compounding method to be used when more than one *
* dividend period contributes to a single payment.     *
********************************************************
*/
export enum UnderlyingDividendCompoundingMethod {
  None = 0,
  Flat = 1,
  Straight = 2,
  SpreadExclusive = 3
}

/*
************************************************
* Defines the treatment of non-cash dividends. *
************************************************
*/
export enum UnderlyingNonCashDividendTreatment {
  PotentialAdjustmentEvent = 0,
  CashEquivalent = 1
}

/*
*****************************************************
* Defines how the composition of dividends is to be *
* determined.                                       *
*****************************************************
*/
export enum UnderlyingDividendComposition {
  EquityAmountReceiverElection = 0,
  CalculationAgentElection = 1
}

/*
**********************************************************
* Time unit associated with the relative FX trigger date *
* offset.                                                *
**********************************************************
*/
export enum UnderlyingDividendFXTriggerDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative FX trigger date *
* offset.                                                *
**********************************************************
*/
export enum UnderlyingDividendFXTriggerDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************************
* The business day convention used for the FX trigger date *
* adjustment.                                              *
************************************************************
*/
export enum UnderlyingDividendFXTriggerDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
******************************************************
* The dividend period dates business day convention. *
******************************************************
*/
export enum UnderlyingDividendPeriodBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative dividend period *
* valuation date offset.                                 *
**********************************************************
*/
export enum UnderlyingDividendPeriodValuationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative dividend period *
* valuation date offset.                                 *
**********************************************************
*/
export enum UnderlyingDividendPeriodValuationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**********************************************************
* Time unit associated with the relative dividend period *
* payment date offset.                                   *
**********************************************************
*/
export enum UnderlyingDividendPeriodPaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative dividend period *
* payment date offset.                                   *
**********************************************************
*/
export enum UnderlyingDividendPeriodPaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***********************************************************
* Side value of the party electing the settlement method. *
***********************************************************
*/
export enum UnderlyingSettlMethodElectingPartySide {
  Buy = 1,
  Sell = 2
}

/*
**************************************************************
* The quote side of the benchmark to be used for calculating *
* the "make whole" amount.                                   *
**************************************************************
*/
export enum UnderlyingMakeWholeBenchmarkQuote {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
*************************************************************
* The method used when calculating the "make whole" amount. *
* The most common is linear method.                         *
*************************************************************
*/
export enum UnderlyingMakeWholeInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
***********************************************************
* The method used when calculating the index rate from    *
* multiple points on the curve. The most common is linear *
* method.                                                 *
***********************************************************
*/
export enum UnderlyingPaymentStreamInterpolationMethod {
  None = 0,
  LinearZeroYield = 1
}

/*
*************************************************
* Defines applicable periods for interpolation. *
*************************************************
*/
export enum UnderlyingPaymentStreamInterpolationPeriod {
  Initial = 0,
  InitialAndFinal = 1,
  Final = 2,
  AnyPeriod = 3
}

/*
********************************************************
* Specifies the type of payment compounding date (e.g. *
* adjusted for holidays).                              *
********************************************************
*/
export enum UnderlyingPaymentStreamCompoundingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
**************************************************
* The compounding dates business day convention. *
**************************************************
*/
export enum UnderlyingPaymentStreamCompoundingDatesBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
***********************************************************
* Time unit associated with the relative compounding date *
* offset.                                                 *
***********************************************************
*/
export enum UnderlyingPaymentStreamCompoundingDatesOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***********************************************************
* Specifies the day type of the relative compounding date *
* offset.                                                 *
***********************************************************
*/
export enum UnderlyingPaymentStreamCompoundingDatesOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the frequency at which compounding *
* dates occur.                                                 *
****************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
****************************************************************
* The convention for determining the sequence of compounding   *
* dates. It is used in conjunction with a specified frequency. *
****************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
***************************************************************
* Time unit associated with the relative compounding end date *
* offset.                                                     *
***************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
***************************************************************
* Specifies the day type of the relative compounding end date *
* offset.                                                     *
***************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Time unit associated with the payment stream's compounding *
* floating rate index curve period.                          *
**************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingRateIndexCurveUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Identifies whether the rate spread is applied to a long or *
* short position.                                            *
**************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingRateSpreadPositionType {
  Short = 0,
  Long = 1
}

/*
************************************************************
* Specifies the yield calculation treatment for the index. *
************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingRateTreatment {
  BondEquivalentYield = 0,
  MoneyMarketYield = 1
}

/*
*************************************************************
* Reference to the buyer of the compounding cap rate option *
* through its trade side.                                   *
*************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingCapRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
**************************************************************
* Reference to the seller of the compounding cap rate option *
* through its trade side.                                    *
**************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingCapRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
***************************************************************
* Reference to the buyer of the compounding floor rate option *
* through its trade side.                                     *
***************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingFloorRateBuySide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
****************************************************************
* Reference to the seller of the floor rate option through its *
* trade side.                                                  *
****************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingFloorRateSellSide {
  BuyerOfTheTrade = 1,
  SellerOfTheTrade = 2
}

/*
********************************************************
* Specifies the rounding direction for the compounding *
* floating rate.                                       *
********************************************************
*/
export enum UnderlyingPaymentStreamCompoundingFinalRateRoundingDirection {
  RoundToNearest = '0',
  RoundDown = '1',
  RoundUp = '2'
}

/*
***************************************************************
* Specifies the averaging method when compounding floating    *
* rate averaging is applicable (e.g. weighted or unweighted). *
***************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingAveragingMethod {
  Unweighted = 0,
  Weighted = 1
}

/*
***************************************************************
* Specifies the method for calculating payment obligations    *
* when a compounding floating rate is negative (either due to *
* a quoted negative floating rate or by operation of a spread *
* that is subtracted from the floating rate).                 *
***************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingNegativeRateTreatment {
  ZeroInterestRateMethod = 0,
  NegativeInterestRateMethod = 1
}

/*
************************************************************
* Time unit associated with the relative compounding start *
* date offset.                                             *
************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative compounding start *
* date offset.                                             *
************************************************************
*/
export enum UnderlyingPaymentStreamCompoundingStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* Time unit associated with the relative final price payment *
* date offset.                                               *
**************************************************************
*/
export enum UnderlyingPaymentStreamFinalPricePaymentDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**************************************************************
* Specifies the day type of the relative final price payment *
* date offset.                                               *
**************************************************************
*/
export enum UnderlyingPaymentStreamFinalPricePaymentDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
********************************************************
* Specifies the type of fixing date (e.g. adjusted for *
* holidays).                                           *
********************************************************
*/
export enum UnderlyingPaymentStreamFixingDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
****************************************************************
* Specifies the day type of the initial price observation date *
* offset.                                                      *
****************************************************************
*/
export enum UnderlyingPaymentStreamFirstObservationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
***************************************************************
* For a variance swap specifies how                           *
* UnderlyingPaymentStreamLinkStrikePrice(42968) is expressed. *
***************************************************************
*/
export enum UnderlyingPaymentStreamLinkStrikePriceType {
  Volatility = 0,
  Variance = 1
}

/*
********************************************************
* Indicates which price to use to satisfy the boundary *
* condition.                                           *
********************************************************
*/
export enum UnderlyingPaymentStreamRealizedVarianceMethod {
  Previous = 0,
  Last = 1,
  Both = 2
}

/*
**********************************************
* The stub end date business day convention. *
**********************************************
*/
export enum UnderlyingPaymentStubEndDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
****************************************************************
* Time unit associated with the relative stub end date offset. *
****************************************************************
*/
export enum UnderlyingPaymentStubEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative stub end date offset. *
****************************************************************
*/
export enum UnderlyingPaymentStubEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************
* The stub start date business day convention. *
************************************************
*/
export enum UnderlyingPaymentStubStartDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**********************************************************
* Time unit associated with the relative stub start date *
* offset.                                                *
**********************************************************
*/
export enum UnderlyingPaymentStubStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
**********************************************************
* Specifies the day type of the relative stub start date *
* offset.                                                *
**********************************************************
*/
export enum UnderlyingPaymentStubStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
************************************************
* Type of fee elected for the break provision. *
************************************************
*/
export enum UnderlyingProvisionBreakFeeElection {
  FlatFee = 0,
  AmortizedFee = 1,
  FundingFee = 2,
  FlatFeeAndFundingFee = 3,
  AmortizedFeeAndFundingFee = 4
}

/*
**************************************************************
* Specifies the valuation type applicable to the return rate *
* date.                                                      *
**************************************************************
*/
export enum UnderlyingReturnRateDateMode {
  PriceValuation = 0,
  DividendValuation = 1
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* date offset.                                                 *
****************************************************************
*/
export enum UnderlyingReturnRateValuationDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* date offset.                                                 *
****************************************************************
*/
export enum UnderlyingReturnRateValuationDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* start date offset.                                           *
****************************************************************
*/
export enum UnderlyingReturnRateValuationStartDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* start date offset.                                           *
****************************************************************
*/
export enum UnderlyingReturnRateValuationStartDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the relative return rate valuation *
* end date offset.                                             *
****************************************************************
*/
export enum UnderlyingReturnRateValuationEndDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
****************************************************************
* Specifies the day type of the relative return rate valuation *
* end date offset.                                             *
****************************************************************
*/
export enum UnderlyingReturnRateValuationEndDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
****************************************************************
* Time unit associated with the frequency at which return rate *
* valuation dates occur.                                       *
****************************************************************
*/
export enum UnderlyingReturnRateValuationFrequencyUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr',
  Hour = 'H',
  Minute = 'Min',
  Second = 'S',
  Term = 'T'
}

/*
***************************************************************
* The convention for determining the sequence of return rate  *
* valuation dates. It is used in conjunction with a specified *
* frequency.                                                  *
***************************************************************
*/
export enum UnderlyingReturnRateValuationFrequencyRollConvention {
  E1stDayOfTheMonth = '1',
  E2ndDayOfTheMonth = '2',
  E3rdDayOfTheMonth = '3',
  E4thDayOfTheMonth = '4',
  E5thDayOfTheMonth = '5',
  E6ThdDayOfTheMonth = '6',
  E7thDayOfTheMonth = '7',
  E8thDayOfTheMonth = '8',
  E9thDayOfTheMonth = '9',
  E10thDayOfTheMonth = '10',
  E11ThDayOfTheMonth = '11',
  E12ThDayOfTheMonth = '12',
  E13ThDayOfTheMonth = '13',
  E14thDayOfTheMonth = '14',
  E15thDayOfTheMonth = '15',
  E16thDayOfTheMonth = '16',
  E17thDayOfTheMonth = '17',
  E18thDayOfTheMonth = '18',
  E19thDayOfTheMonth = '19',
  E20thDayOfTheMonth = '20',
  E21stDayOfTheMonth = '21',
  E22ndDayOfTheMonth = '22',
  E23rdDayOfTheMonth = '23',
  E24thDayOfTheMonth = '24',
  E25thDayOfTheMonth = '25',
  E26thDayOfTheMonth = '26',
  E27thDayOfTheMonth = '27',
  E28thDayOfTheMonth = '28',
  E29thDayOfTheMonth = '29',
  E30thDayOfTheMonth = '30',
  TheEndOfTheMonth = 'EOM',
  TheFloatingRateNoteConventionOrEurodollarConvention = 'FRN',
  TheInternationalMoneyMarketSettlementDateIEThe3rdWednesdayOfTheMonth = 'IMM',
  TheLastTradingDayExpirationDayOfTheCanadianDerivativesExchange = 'IMMCAD',
  TheLastTradingDayOfTheSydneyFuturesExchangeAustralian90DayBankAcceptedBillFuturesContract = 'IMMAUD',
  TheLastTradingDayOfTheSydneyFuturesExchangeNewZealand90DayBankBillFuturesContract = 'IMMNZD',
  TheSydneyFuturesExchange90DayBankAcceptedBillFuturesSettlementDates = 'SFE',
  NoAdjustment = 'NONE',
  The13WeekAnd26WeekUSTreasuryBillAuctionDates = 'TBILL',
  Monday = 'MON',
  Tuesday = 'TUE',
  Wednesday = 'WED',
  Thursday = 'THU',
  Friday = 'FRI',
  Saturday = 'SAT',
  Sunday = 'SUN'
}

/*
************************************************************
* The return rate valuation dates business day convention. *
************************************************************
*/
export enum UnderlyingReturnRateValuationDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
**************************************************************
* Specifies whether UnderlyingReturnRateFXRate(43032) should *
* be multiplied or divided.                                  *
**************************************************************
*/
export enum UnderlyingReturnRateFXRateCalc {
  Multiply = 'M',
  Divide = 'D'
}

/*
************************************************************
* Specifies the type of price sequence of the return rate. *
************************************************************
*/
export enum UnderlyingReturnRatePriceSequence {
  Initial = 0,
  Interim = 1,
  Final = 2
}

/*
*****************************************************
* Specifies the basis or unit used to calculate the *
* commission.                                       *
*****************************************************
*/
export enum UnderlyingReturnRateCommissionBasis {
  AmountPerUnit = '1',
  Percent = '2',
  Absolute = '3',
  PercentageWaivedCashDiscountBasis = '4',
  PercentageWaivedEnhancedUnitsBasis = '5',
  PointsPerBondOrContract = '6',
  BasisPoints = '7',
  AmountPerContract = '8'
}

/*
************************************************************
* Specifies the type of quote used to determine the return *
* rate of the swap.                                        *
************************************************************
*/
export enum UnderlyingReturnRateQuoteMethod {
  Bid = 0,
  Mid = 1,
  Offer = 2
}

/*
*******************************************************
* Specifies how or the timing when the quote is to be *
* obtained.                                           *
*******************************************************
*/
export enum UnderlyingReturnRateQuoteTimeType {
  Open = 0,
  OfficialSettlementPriceTime = 1,
  Xetra = 2,
  Close = 3,
  DerivativesClose = 4,
  High = 5,
  Low = 6,
  AsSpecifiedInTheMasterConfirmation = 7
}

/*
**************************************************************
* Specifies the timing at which the calculation agent values *
* the underlying.                                            *
**************************************************************
*/
export enum UnderlyingReturnRateValuationTimeType {
  Open = 0,
  OfficialSettlementPriceTime = 1,
  Xetra = 2,
  Close = 3,
  DerivativesClose = 4,
  High = 5,
  Low = 6,
  AsSpecifiedInTheMasterConfirmation = 7
}

/*
**********************************************************
* Indicates whether an ISDA price option applies, and if *
* applicable which type of price.                        *
**********************************************************
*/
export enum UnderlyingReturnRateValuationPriceOption {
  NoneTheDefault = 0,
  FuturesPrice = 1,
  OptionsPrice = 2
}

/*
*************************************************************
* Specifies the fallback provision for the hedging party in *
* the determination of the final price.                     *
*************************************************************
*/
export enum UnderlyingReturnRateFinalPriceFallback {
  Close = 0,
  HedgeElection = 1
}

/*
*********************************************************
* Identifies the source of rate information. For FX the *
* references source to be used for the FX spot rate.    *
*********************************************************
*/
export enum UnderlyingReturnRateInformationSource {
  Bloomberg = 0,
  Reuters = 1,
  Telerate = 2,
  IsdaSettlementRateOption = 3,
  Other = 99
}

/*
**********************************
* The basis of the return price. *
**********************************
*/
export enum UnderlyingReturnRatePriceBasis {
  Gross = 0,
  Net = 1,
  Accrued = 2,
  CleanNet = 3
}

/*
*************************************************************
* Specifies whether the UnderlyingReturnRatePrice(43066) is *
* expressed in absolute or relative terms.                  *
*************************************************************
*/
export enum UnderlyingReturnRatePriceType {
  AbsoluteTerms = 0,
  PercentageOfNotional = 1
}

/*
**********************************************************
* Specifies the type of return rate valuation date (e.g. *
* adjusted for holidays).                                *
**********************************************************
*/
export enum UnderlyingReturnRateValuationDateType {
  Unadjusted = 0,
  Adjusted = 1
}

/*
***************************************************************
* The settlement method election date adjustment business day *
* convention.                                                 *
***************************************************************
*/
export enum UnderlyingSettlMethodElectionDateBusinessDayConvention {
  NotApplicable = 0,
  NoneCurrentDay = 1,
  FollowingDay = 2,
  FloatingRateNote = 3,
  ModifiedFollowingDay = 4,
  PrecedingDay = 5,
  ModifiedPrecedingDay = 6,
  NearestDay = 7
}

/*
************************************************************
* Time unit associated with the relative settlement method *
* election date offset.                                    *
************************************************************
*/
export enum UnderlyingSettlMethodElectionDateOffsetUnit {
  Day = 'D',
  Week = 'Wk',
  Month = 'Mo',
  Year = 'Yr'
}

/*
************************************************************
* Specifies the day type of the relative settlement method *
* election date offset.                                    *
************************************************************
*/
export enum UnderlyingSettlMethodElectionDateOffsetDayType {
  Business = 0,
  Calendar = 1,
  CommodityBusiness = 2,
  CurrencyBusiness = 3,
  ExchangeBusiness = 4,
  ScheduledTradingDay = 5
}

/*
**************************************************************
* For equity swaps this specifies the conditions that govern *
* the adjustment to the number of units of the swap.         *
**************************************************************
*/
export enum UnderlyingStreamNotionalAdjustments {
  Execution = 0,
  PortfolioRebalancing = 1,
  Standard = 2
}

/*
**********************************************************
* Indicates the processing mode for a batch of messages. *
**********************************************************
*/
export enum BatchProcessMode {
  UpdateIncrementalDefaultIfNotSpecified = 0,
  Snapshot = 1
}

/*
*************************************************************
* Defines the post trade type, e.g. give up, average price, *
* cross exchange give up, etc                               *
*************************************************************
*/
export enum PostTradeType {
  GiceUp = 0,
  AveragePrice = 1,
  CrossExchangeGiveUp = 2
}

/*
**************************************************************
* Differentiates between messages sent to the Executing Firm *
* vs. the Claiming Firm.                                     *
**************************************************************
*/
export enum ExecutingClaimingIndicator {
  ExecutingFirm = 0,
  ClaimingFirm = 1
}
