{"components":{"parameters":{"dataCollectionsNameParam":{"description":"Name of the data collection to query","in":"query","name":"name","required":true,"schema":{"type":"string"}},"debugParam":{"description":"turns on debugging information by injecting a debug section at the top level","in":"query","name":"debug","required":false,"schema":{"enum":["true"],"type":"string"}},"endDateParam":{"description":"End date for the results/computation","in":"query","name":"end_date","required":false,"schema":{"$ref":"#/components/schemas/MerqTimestamp"}},"fieldsParam":{"description":"only return these fields, plus id,namespace, for each of the resource definitions","in":"query","name":"fields","required":false,"schema":{"example":"title,description","type":"string"}},"filterParam":{"description":"Search keyword for filtering; searches name and title for this substring","in":"query","name":"filter","required":false,"schema":{"example":"MQU","type":"string"}},"formatParam":{"description":"choose csv (Default json)","in":"query","name":"format","required":false,"schema":{"enum":["csv"],"type":"string"}},"fsymIdParam":{"description":"fsym id","in":"path","name":"fsym_id","required":true,"schema":{"type":"string"}},"identifierNameParam":{"description":"identifier name","in":"path","name":"identifier_name","required":true,"schema":{"type":"string"}},"identifierParam":{"description":"identifier UUID","in":"path","name":"identifier_uuid","required":true,"schema":{"type":"string"}},"idsParam":{"description":"Taken as a comma delimited list of ids to pull. ignored if ?names is specified.","in":"query","name":"ids","required":false,"schema":{"example":"abcd1234,wxyz4567","type":"string"}},"indexUuidsParam":{"description":"comma sep list of index_uuids","in":"query","name":"index_uuids","schema":{"type":"string"}},"nameParam":{"description":"Taken as an *Exact* name to find a resource by","in":"query","name":"name","required":false,"schema":{"example":"MQUSTB20","type":"string"}},"namesParam":{"description":"Taken as a comma delimited list of *Exact* names to find a list if resources by","in":"query","name":"names","required":false,"schema":{"example":"MQUSTB20,MQUSTRAV","type":"string"}},"namespaceParam":{"description":"Retrieve all resources in this namespace","in":"query","name":"namespace","required":false,"schema":{"example":"my_client_namespace","type":"string"}},"pageParam":{"description":"page number to load, defaults to 1","in":"query","name":"page","schema":{"default":1,"minimum":1,"type":"integer"}},"pageSizeParam":{"description":"size of the page to load, defaults to 1000","in":"query","name":"page_size","schema":{"default":1000,"minimum":1,"type":"integer"}},"providerParam":{"in":"path","name":"provider","required":true,"schema":{"$ref":"#/components/schemas/Provider"}},"secnameParam":{"description":"name of the security for which the data is requested","in":"path","name":"secname","required":true,"schema":{"type":"string"}},"sectypeParam":{"description":"the type of security (futures_root, intraday_index etc)","in":"path","name":"type","required":true,"schema":{"type":"string"}},"startDateParam":{"description":"Start date for the results/computation","in":"query","name":"start_date","required":false,"schema":{"$ref":"#/components/schemas/MerqTimestamp"}},"uuidParam":{"description":"uuid of the resource","in":"path","name":"uuid","required":true,"schema":{"type":"string"}}},"schemas":{"Administrative":{"additionalProperties":false,"properties":{"client":{"properties":{"approved_by":{"description":"if a client requests an index to a finanancial institution, and that instituion approves the index parameters for launch, this holds the oauth email of that approver","type":"string"},"owner":{"description":"the idea here is to capture the client at a higher level than the above, e.g., this index is owned by Bank of Greatness.","type":"string"},"requested_by":{"description":"this is the actual OAuth token email that originated the POST on index-template (similar to created_by and last_modified_by). Except, this is the user on the templating POST not the actual POST to index because the post to index is going to be a MerQube employee, but we need to capture who originated the templating request aka who called the meta-api. This field is used to put this index on that user's Manage My Indices page.","type":"string"}},"type":"object"},"deadlines":{"items":{"$ref":"#/components/schemas/Deadline"},"type":"array"},"role":{"enum":["data point","verification","calculation","development","administration"],"type":"string"}},"required":["role"],"type":"object"},"AdvancedRebalanceDateConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/InitialMonthConfig"},{"properties":{"method":{"default":"ADVANCED","enum":["ADVANCED"],"type":"string"},"roll_forward":{"default":true,"type":"boolean"},"xth_week":{"enum":["First","Second","Third","Fourth","Last"],"type":"string"}},"type":"object"},{"$ref":"#/components/schemas/WeeklyRebalanceDates"}],"required":["method","xth_week","day"]},"Advt3mFilterSpec":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"threshold_addition_max":{"format":"float","type":"number"},"threshold_addition_min":{"format":"float","type":"number"},"threshold_retention_max":{"format":"float","type":"number"},"threshold_retention_min":{"format":"float","type":"number"},"type":{"enum":["advt_3m"],"type":"string"}},"required":["type","currency"],"type":"object"},"AirflowConfig":{"additionalProperties":false,"properties":{"affinity_match_expression_key":{"description":"the affinity to use in airflow","type":"string"},"dag":{"additionalProperties":true,"description":"use this to set kwargs for the dag","type":"object"},"description":{"description":"A short description related with the generated runner","type":"string"},"env":{"additionalProperties":true,"description":"use this to set ENV variables in the pod","type":"object"},"pod":{"additionalProperties":true,"description":"use this to set kwargs for the pod","type":"object"},"s3_location":{"$ref":"#/components/schemas/S3Bucket","description":"Bucket and path where the generated dag should be stored. If not defined `merq-airflow-dags-airflow2` is defined in merqutil"},"subpods":{"items":{"$ref":"#/components/schemas/SubPod"},"type":"array"}},"type":"object"},"AlertHours":{"properties":{"end":{"description":"Start of the silent hours in HH:MM 24h format. The timezone is based on the intraday.tzinfo","pattern":"^[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$","type":"string"},"start":{"description":"Start of the silent hours in HH:MM 24h format. The timezone is based on the intraday.tzinfo","pattern":"^[0-2]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$","type":"string"}},"type":"object"},"AllocationUnit":{"additionalProperties":false,"properties":{"allocation_name":{"description":"The name of the allocation unit","type":"string"},"allocation_screens":{"items":{"oneOf":[{"$ref":"#/components/schemas/CountryOfDomicileFilterSpec"},{"$ref":"#/components/schemas/CountryOfExchangeFilterSpec"},{"$ref":"#/components/schemas/MicFilterSpec"},{"$ref":"#/components/schemas/CurrencyFilterSpec"},{"$ref":"#/components/schemas/SectorFilterSpec"},{"$ref":"#/components/schemas/SubSectorFilterSpec"},{"$ref":"#/components/schemas/TRBCFilterSpec"},{"$ref":"#/components/schemas/MarketCapFilterSpec"},{"$ref":"#/components/schemas/Advt3mFilterSpec"},{"$ref":"#/components/schemas/MarketCapPercentFilterSpec"},{"$ref":"#/components/schemas/StaticListingExclusionFilterSpec"}]},"type":"array"},"allocation_type":{"enum":["mkt_cap_sorted","parent_universe","static"],"type":"string"},"allocation_weight":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"},"ignore_double_listings":{"type":"boolean"},"number_of_listings":{"description":"The number of listings in the allocation unit, if null select all that apply","type":"integer"},"parent_index":{"description":"The parent index for the allocation unit, if applicable","type":"string"},"sort_metric":{"default":"total_mkt_cap","enum":["total_mkt_cap","float_mkt_cap","advt_3m"],"type":"string"},"static_listings":{"items":{"properties":{"amount":{"maximum":100,"minimum":0,"type":"number"},"identifier":{"title":"Identifier","type":"string"},"identifier_type":{"$ref":"#/components/schemas/PositionIdentifierType"}},"required":["identifier","identifier_type"],"type":"object"},"type":"array"},"weighting":{"$ref":"#/components/schemas/WeightingSpec"}},"required":["allocation_type","allocation_name","weighting"],"type":"object"},"ArgumentsOrEnvVars":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"AssetType":{"enum":["CASH","THIRD_PARTY_INDEX","EQUITY","OPTION","FUTURES","MUTUAL_FUND","MERQUBE_INDEX","CUSTOM_SECAPI_INDEX","OTHER"],"example":"EQUITY","title":"Asset Type","type":"string"},"BaseCheck":{"properties":{"alert_type":{"default":"fail_computation","enum":["email","slack","opsgenie","fail_computation"],"type":"string"},"enabled":{"type":"boolean"},"metric":{"type":"string"}},"required":["metric","enabled"],"type":"object"},"BaseDate":{"description":"the date that the index has level 'base_value'","example":"Tue, 04 Jan 2000 00:00:00 GMT","pattern":"^[0-9]{4}[-/][0-9]{2}[-/][0-9]{2}","type":"string"},"BasketPortfolio":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/BasketPortfolioRaw"},{"properties":{"created_ts":{"$ref":"#/components/schemas/IsoTS"}},"required":["created_ts"],"type":"object"}],"description":"Target Portfolio. Supports equities, futures, and options. This object captures all information needed to execute externally defined rebalances.\n","type":"object"},"BasketPortfolioPatchIn":{"additionalProperties":false,"description":"Input data for updating an existing target portfolio\n","properties":{"status":{"$ref":"#/components/schemas/PortfolioStatus"},"status_change_reason":{"type":"string"}},"type":"object"},"BasketPortfolioPutIn":{"additionalProperties":false,"description":"Input data for creating/replacing target portfolios. This object captures all information needed to execute externally defined rebalances.\n","properties":{"divisor":{"description":"A scaling factor to apply for the SHARES of the portfolio constituents","type":"number"},"external_id":{"description":"An external ID to reference this portfolio with. Must be unique per index.","type":"string"},"positions":{"items":{"$ref":"#/components/schemas/ValidEquityBasketPosition"},"title":"Positions","type":"array"},"share_selection_date":{"$ref":"#/components/schemas/IsoTS","description":"Share selection date, if specified, should be before the effective date (parameter 'timestamp') for this Target Portfolio. In case when the unit_of_measure is set to WEIGHT, we first determine the shares using the prices on the share selection date. If any constituent is de-listed by the share selection date, then that constituent's weight is distributed to other constituents before selecting the shares. We then apply the corporate actions from the share selection date to the day before the portfolio effective date. In case when the unit_of_measure is set to SHARES, we follow the similar steps as above, except the step of determining shares, as it is not needed."},"target_portfolio_type":{"default":"EOD","description":"Whether its an end of day portfolio or an intraday portfolio.","enum":["EOD","INTRADAY"],"type":"string"},"timestamp":{"$ref":"#/components/schemas/IsoTS","description":"the time at which the portfolio should take effect"},"unit_of_measure":{"$ref":"#/components/schemas/PortfolioUom"}},"required":["timestamp","positions","unit_of_measure"],"type":"object"},"BasketPortfolioRaw":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/BasketPortfolioPutIn"},{"properties":{"created_ts":{"$ref":"#/components/schemas/IsoTS"},"id":{"example":"0000699a-fcd7-45d4-8ce4-064a4ffeced0","type":"string"},"status":{"$ref":"#/components/schemas/PortfolioStatus","default":"FINAL"},"status_change_reason":{"type":"string"}},"required":["id","status"],"type":"object"}],"description":"Target Portfolio. Supports equities, futures, and options. This object captures all information needed to execute externally defined rebalances. This is the raw data from the data store layer.\n","type":"object"},"BasketPosition":{"additionalProperties":false,"description":"A general basket portfolio position","properties":{"amount":{"title":"Amount","type":"number"},"asset_type":{"$ref":"#/components/schemas/AssetType"},"identifier":{"title":"Identifier","type":"string"},"identifier_type":{"$ref":"#/components/schemas/PositionIdentifierType"},"position_id":{"example":"1","title":"Position Id","type":"string"}},"required":["asset_type","identifier","identifier_type","amount"],"type":"object"},"BloombergProviderKwargs":{"additionalProperties":false,"description":"Bloomberg provider custom arguments","properties":{"post_type":{"$ref":"#/components/schemas/BloombergProviderKwargsPostType"}},"required":["post_type"],"type":"object"},"BloombergProviderKwargsPostType":{"description":"How to post the data to Bloomberg, either the end of day method (EOD), real time method (RT) or both (EOD_AND_RT)","enum":["EOD","RT","EOD_AND_RT"],"type":"string"},"CalculationCheck":{"items":{"oneOf":[{"$ref":"#/components/schemas/LevelCheck"},{"$ref":"#/components/schemas/PercentChangeCheck"},{"$ref":"#/components/schemas/HistoryCheck"}],"type":"object"},"type":"array"},"CalendarAlias":{"enum":["default","Canada","Euronext Paris","Europe","US","Transatlantic"],"type":"string"},"ClientBaseVal":{"additionalProperties":false,"properties":{"base_date":{"$ref":"#/components/schemas/BaseDate"},"base_value":{"description":"set the index value on base_date to this base_value","example":1000.0,"exclusiveMinimum":0,"type":"number"}},"required":["base_date","base_value"],"type":"object"},"ClientBufferConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientBufferSpecific"},{"$ref":"#/components/schemas/ClientRuntimeInfo"},{"$ref":"#/components/schemas/ClientIndexConfigBase"}],"description":"full config for buffer indices","type":"object"},"ClientBufferSpecific":{"additionalProperties":false,"description":"properties specific to buffer indices","properties":{"protection_end":{"description":"eg the 30 in the above example. Must be < protection_start.","example":70.0,"maximum":100.0,"minimum":0.0,"type":"number"},"protection_start":{"description":"losses on the underlying are incurred up to protection_start, the portfolio is protected against losses between protection_start and protection_end, and then losses after protection_end are also incurred. These are represented as percentages of the underlying. Eg on start=95 and end=70 (sometimes a called a 5/30 buffer), the first 5% of losses are incurred, the portfolio is protected between -5% and -30%, then losses after 30% are added to 5% and are incurred. In this example, if the underlying drops 32%, the index will lose 7%.","example":95.0,"maximum":100.0,"minimum":0,"type":"number"},"roll_freq":{"default":12,"description":"frequency in months of the options roll","example":3,"minimum":1,"type":"integer"},"root":{"description":"the root of the options","enum":["SPY","QQQ","IWM","EFA","EEM","TLT","LQD","HYG","GLD"],"example":"SPY","type":"string"}},"required":["protection_start","protection_end","roll_freq","root"],"type":"object"},"ClientCoveredDelta":{"additionalProperties":false,"description":"A covered delta strategy with a call delta between 0 and 1. Covers by selling a call.","properties":{"method":{"default":"Covered","enum":["Covered"],"example":"Covered","type":"string"},"options":{"maximum":100.0,"minimum":0.0,"type":"number"},"options_method":{"default":"Delta","enum":["Delta"],"example":"Delta","type":"string"}},"required":["options"],"type":"object"},"ClientCoveredStrike":{"additionalProperties":false,"description":"A covered strike strategy with the strike being percentage of the spot. Covers by selling a call.","properties":{"method":{"default":"Covered","enum":["Covered"],"example":"Covered","type":"string"},"options":{"minimum":0.0,"type":"number"},"options_method":{"default":"Strike","enum":["Strike"],"example":"Strike","type":"string"}},"required":["options"],"type":"object"},"ClientDecrementConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDecrementSpecific"},{"$ref":"#/components/schemas/ClientEquityBasketConfigBase"}],"description":"full config for decrements","type":"object"},"ClientDecrementSpecific":{"additionalProperties":false,"properties":{"day_count_convention":{"description":"must either adapt to a fixed number of days in a year e.g. 'f360' or to Actual ISDA convention, i.e. 'actual'","example":"f360","type":"string"},"fee_type":{"description":"set to the type of fee to apply","enum":["fixed","percentage_pre","percentage_post","fixed_points_underlying"],"example":"fixed","type":"string"},"fee_value":{"description":"set to the value of the fee to apply. For fixed, this is bps, for percentage_pre/post this is given as a percentage","example":0.05,"type":"number"},"start_date":{"description":"set to the start date of the index if it is to differ from base_date. If this is specified, it must be before base_date. In this case the base_date, base_value is used as a fixed intercept, with the index level starting from start_date and passing through that intercept","example":"Sun, 04 Jan 2004 00:00:00 GMT","format":"date","type":"string"},"underlying":{"$ref":"#/components/schemas/ClientDecrementUnderlying","example":{"identifier":"COST.OQ","identifier_type":"RIC"}}},"required":["fee_value","fee_type","day_count_convention","underlying"],"type":"object"},"ClientDecrementUnderlying":{"additionalProperties":false,"properties":{"identifier":{"example":"COST.OQ","type":"string"},"identifier_type":{"$ref":"#/components/schemas/ClientDecrementUnderlyingIDType"}},"required":["identifier_type","identifier"],"type":"object"},"ClientDecrementUnderlyingIDType":{"description":"currently supported identifier types for decrement underlyings","enum":["RIC","MERQUBE_INDEX"],"example":"RIC","type":"string"},"ClientDefinedOutcomeAcceleratorBase":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeAcceleratorStrategy"},{"additionalProperties":false,"properties":{"strategy_type":{"enum":["ACCELERATOR"],"type":"string"}},"required":["strategy_type"],"type":"object"}],"description":"A Defined Outcome Accelerator Base","type":"object"},"ClientDefinedOutcomeAcceleratorConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeAcceleratorBase"},{"$ref":"#/components/schemas/ClientRuntimeInfo"},{"$ref":"#/components/schemas/ClientIndexConfigBase"}],"description":"base config for defined outcome indices","properties":{"currency":{"type":"string"},"use_maf":{"default":false,"type":"boolean"}},"type":"object"},"ClientDefinedOutcomeAcceleratorStrategy":{"additionalProperties":false,"properties":{"option_strategies":{"items":[{"$ref":"#/components/schemas/ClientDefinedOutcomeAcceleratorStrategyItem"}],"maxItems":1,"minItems":1,"type":"array"}},"required":["option_strategies"],"type":"object"},"ClientDefinedOutcomeAcceleratorStrategyItem":{"additionalProperties":false,"properties":{"expiry":{"$ref":"#/components/schemas/ClientDefinedOutcomeExpiry","type":"object"},"interest_rate_config":{"$ref":"#/components/schemas/IndexInterestRateConfig","description":"configuration for interest rates on an options strategy self service index"},"number_of_tranches":{"description":"Number of tranches in the strategy","minimum":1,"type":"integer"},"options":{"items":[{"$ref":"#/components/schemas/ClientDefinedOutcomeOption"}],"maxItems":2,"minItems":2,"type":"array"},"rebalancer":{"$ref":"#/components/schemas/ClientDefinedOutcomeRebalancer","type":"object"},"self_financing_strategy":{"$ref":"#/components/schemas/ClientDefinedOutcomeNoEtfStrategy","type":"object"},"strategy_type":{"enum":["CUSTOM","ACCELERATOR","BUFFER"],"type":"string"}},"required":["options","rebalancer","number_of_tranches","expiry"],"type":"object"},"ClientDefinedOutcomeBufferBase":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeBufferStrategy"},{"additionalProperties":false,"properties":{"strategy_type":{"enum":["BUFFER"],"type":"string"}},"required":["strategy_type"],"type":"object"}],"description":"A Defined Outcome Buffer Base","type":"object"},"ClientDefinedOutcomeBufferConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeBufferBase"},{"$ref":"#/components/schemas/ClientRuntimeInfo"},{"$ref":"#/components/schemas/ClientIndexConfigBase"}],"description":"base config for defined outcome indices","properties":{"currency":{"type":"string"},"use_maf":{"default":false,"type":"boolean"}},"type":"object"},"ClientDefinedOutcomeBufferStrategy":{"additionalProperties":false,"properties":{"option_strategies":{"items":[{"$ref":"#/components/schemas/ClientDefinedOutcomeBufferStrategyItem"}],"maxItems":1,"minItems":1,"type":"array"}},"required":["option_strategies"],"type":"object"},"ClientDefinedOutcomeBufferStrategyItem":{"additionalProperties":false,"properties":{"expiry":{"$ref":"#/components/schemas/ClientDefinedOutcomeExpiry","type":"object"},"interest_rate_config":{"$ref":"#/components/schemas/IndexInterestRateConfig","description":"configuration for interest rates on an options strategy self service index"},"number_of_tranches":{"description":"Number of tranches in the strategy","minimum":1,"type":"integer"},"options":{"items":[{"$ref":"#/components/schemas/ClientDefinedOutcomeOption"}],"type":"array"},"rebalancer":{"$ref":"#/components/schemas/ClientDefinedOutcomeRebalancer","type":"object"},"self_financing_strategy":{"additionalProperties":false,"discriminator":{"mapping":{"NO_ETF":"#/components/schemas/ClientDefinedOutcomeNoEtfStrategy","PARTICIPATION_RATE":"#/components/schemas/ClientDefinedOutcomeParticipationRateStrategy"},"propertyName":"strategy"},"oneOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeParticipationRateStrategy"},{"$ref":"#/components/schemas/ClientDefinedOutcomeNoEtfStrategy"}],"type":"object"},"strategy_type":{"enum":["CUSTOM","ACCELERATOR","BUFFER"],"type":"string"}},"required":["options","rebalancer","number_of_tranches","expiry"],"type":"object"},"ClientDefinedOutcomeCashStrategy":{"additionalProperties":false,"properties":{"strategy":{"pattern":"^CASH$","type":"string"}},"required":["strategy"],"type":"object"},"ClientDefinedOutcomeCustomStrategy":{"additionalProperties":false,"properties":{"interest_rate_config":{"$ref":"#/components/schemas/IndexInterestRateConfig","description":"configuration for interest rates on an options strategy self service index"},"option_strategies":{"items":[{"$ref":"#/components/schemas/ClientDefinedOutcomeCustomStrategyItem"}],"maxItems":1,"minItems":1,"type":"array"},"starting_cash":{"default":0,"description":"The starting cash for the custom strategy, used to fund the options","minimum":0,"type":"number"},"underliers":{"description":"The underlying assets of the strategy","items":{"oneOf":[{"$ref":"#/components/schemas/FsymAndCountry"},{"$ref":"#/components/schemas/IndexTicker"}]},"maxItems":1,"minItems":0,"type":"array"}},"required":["option_strategies"],"type":"object"},"ClientDefinedOutcomeCustomStrategyBase":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeCustomStrategy"},{"additionalProperties":false,"properties":{"strategy_type":{"enum":["CUSTOM"],"type":"string"}},"required":["strategy_type"],"type":"object"}],"description":"A Defined Outcome Custom Strategy Base","type":"object"},"ClientDefinedOutcomeCustomStrategyConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeCustomStrategyBase"},{"$ref":"#/components/schemas/ClientRuntimeInfo"},{"$ref":"#/components/schemas/ClientIndexConfigBase"}],"description":"base config for defined outcome indices with custom strategies","properties":{"currency":{"type":"string"},"use_maf":{"default":false,"type":"boolean"}},"type":"object"},"ClientDefinedOutcomeCustomStrategyItem":{"additionalProperties":false,"properties":{"expiry":{"$ref":"#/components/schemas/ClientDefinedOutcomeExpiry","type":"object"},"number_of_tranches":{"description":"Number of tranches in the strategy","minimum":1,"type":"integer"},"options":{"items":[{"$ref":"#/components/schemas/ClientDefinedOutcomeOption"}],"minItems":1,"type":"array"},"rebalancer":{"$ref":"#/components/schemas/ClientDefinedOutcomeRebalancer","type":"object"},"self_financing_strategy":{"additionalProperties":false,"discriminator":{"mapping":{"CASH":"#/components/schemas/ClientDefinedOutcomeCashStrategy","NO_ETF":"#/components/schemas/ClientDefinedOutcomeNoEtfStrategy","PARTICIPATION_RATE":"#/components/schemas/ClientDefinedOutcomeParticipationRateStrategy"},"propertyName":"strategy"},"oneOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeParticipationRateStrategy"},{"$ref":"#/components/schemas/ClientDefinedOutcomeNoEtfStrategy"},{"$ref":"#/components/schemas/ClientDefinedOutcomeCashStrategy"}],"type":"object"},"strategy_type":{"enum":["CUSTOM","ACCELERATOR","BUFFER"],"type":"string"}},"required":["options","rebalancer","number_of_tranches","expiry"],"type":"object"},"ClientDefinedOutcomeExpiry":{"additionalProperties":false,"properties":{"expiry_period_type":{"$ref":"#/components/schemas/ClientDefinedOutcomeExpiryPeriodType","type":"string"},"expiry_period_value":{"minimum":0,"type":"number"}},"required":["expiry_period_type","expiry_period_value"],"type":"object"},"ClientDefinedOutcomeExpiryPeriodType":{"enum":["MONTHS","WEEKS"],"type":"string"},"ClientDefinedOutcomeNoEtfStrategy":{"additionalProperties":false,"properties":{"min_cap":{"default":0,"minimum":0,"type":"number"},"strategy":{"pattern":"^NO_ETF$","type":"string"}},"required":["strategy","min_cap"],"type":"object"},"ClientDefinedOutcomeOption":{"additionalProperties":false,"properties":{"exercise_style":{"$ref":"#/components/schemas/OptionExerciseStyle","type":"string"},"exposure":{"minimum":0,"type":"number"},"option_type":{"$ref":"#/components/schemas/ClientDefinedOutcomeOptionType","type":"string"},"root":{"$ref":"#/components/schemas/ClientDefinedOutcomeRoots","type":"string"},"strike_type":{"$ref":"#/components/schemas/ClientDefinedOutcomeStrikeType","type":"string"},"strike_value":{"minimum":0,"type":"number"},"trade_type":{"$ref":"#/components/schemas/ClientDefinedOutcomeTradeType","type":"string"}},"required":["strike_type","option_type","trade_type","strike_value","root","exercise_style"],"type":"object"},"ClientDefinedOutcomeOptionType":{"enum":["PUT","CALL"],"type":"string"},"ClientDefinedOutcomeParticipationRateStrategy":{"additionalProperties":false,"properties":{"max_participation":{"default":200,"minimum":0,"type":"number"},"option":{"$ref":"#/components/schemas/ClientDefinedOutcomeParticipationRateStrategyOption","type":"object"},"strategy":{"pattern":"^PARTICIPATION_RATE$","type":"string"}},"required":["strategy","max_participation","option"],"type":"object"},"ClientDefinedOutcomeParticipationRateStrategyOption":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeOption"}],"required":["exercise_style","exposure","option_type","ETF","strike"],"type":"object"},"ClientDefinedOutcomeRebalancer":{"additionalProperties":false,"properties":{"day_of_week":{"$ref":"#/components/schemas/DayOfWeek","type":"string"},"days_before_expiry":{"minimum":0,"type":"integer"},"roll_back":{"type":"boolean"},"schedule_type":{"$ref":"#/components/schemas/ClientDefinedOutcomeScheduleType","type":"string"},"time_period_away":{"minimum":0,"type":"integer"},"week_of_month":{"maximum":5,"minimum":1,"type":"integer"}},"required":["schedule_type","time_period_away","roll_back"],"type":"object"},"ClientDefinedOutcomeRoots":{"enum":["SPY","QQQ","IWM","EFA","XIU","TLT","HYG","EEM","LQD","VOO","IVV","SPX","VTWO","BITO","IBIT","MSFT","AMZN","TSLA","META","AAPL","NVDA","GOOGL","GOOG","GLD"],"type":"string"},"ClientDefinedOutcomeScheduleType":{"enum":["CERTAIN_DAY","MONTH_END","THIRD_FRIDAY"],"type":"string"},"ClientDefinedOutcomeStrikeType":{"enum":["DELTA","PCT_SPOT","INCOME"],"type":"string"},"ClientDefinedOutcomeTradeType":{"enum":["BUY","SELL"],"type":"string"},"ClientDownsideDelta":{"additionalProperties":false,"description":"A downside delta strategy with the delta being percentage of the spot. Protects downside by buying a put.","properties":{"method":{"default":"Downside","enum":["Downside"],"example":"Downside","type":"string"},"options":{"maximum":0,"minimum":-100.0,"type":"number"},"options_method":{"default":"Delta","enum":["Delta"],"example":"Delta","type":"string"}},"required":["options"],"type":"object"},"ClientDownsideStrike":{"additionalProperties":false,"description":"A downside strike strategy with the strike being percentage of the spot. Protects downside by buying a put.","properties":{"method":{"default":"Downside","enum":["Downside"],"example":"Downside","type":"string"},"options":{"minimum":0.0,"type":"number"},"options_method":{"default":"Strike","enum":["Strike"],"example":"Strike","type":"string"}},"required":["options"],"type":"object"},"ClientEBCoraxConfig":{"additionalProperties":false,"description":"how to handle corporate actions","properties":{"deduct_tax":{"default":false,"type":"boolean"},"reinvest_day":{"default":"AT_OPEN","enum":["AT_OPEN","AT_CLOSE"],"type":"string"},"reinvest_dividend_type":{"enum":["INDEX","SECURITY","CASH"],"type":"string"},"reinvest_dividends":{"default":true,"example":false,"type":"boolean"}},"type":"object"},"ClientEquityBasketConfigBase":{"allOf":[{"$ref":"#/components/schemas/ClientIndexConfigBase"},{"additionalProperties":false,"description":"class with shared properties among the equity basket group.","properties":{"currency":{"default":"USD","description":"set to the currency of the index","example":"USD","type":"string"},"holiday_calendar":{"$ref":"#/components/schemas/HolidayCalendarSpec"},"is_intraday":{"default":false,"description":"set to true if the index is to calculate multiple times during the day. This does not pertain to the frequency of rebalancing; see `rebal_freq`. Even though theoretically all index family types can calculate multiple times a day, not all types will support this initially. This parameter is a bit experimental in that sense.","example":false,"type":"boolean"}},"type":"object"}]},"ClientEquityIndexConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientEquityIndexSpecific"},{"$ref":"#/components/schemas/ClientEquityIndexConfigBase"}],"description":"full config for equity indices","type":"object"},"ClientEquityIndexConfigBase":{"allOf":[{"$ref":"#/components/schemas/ClientIndexConfigOptionalBaseDate"},{"additionalProperties":false,"description":"class with shared properties among the equity index group.","properties":{"currency":{"default":"USD","description":"set to the currency of the index","example":"USD","type":"string"},"holiday_calendar":{"$ref":"#/components/schemas/HolidayCalendarSpec"},"is_intraday":{"default":false,"description":"set to true if the index is to calculate multiple times during the day. This does not pertain to the frequency of rebalancing; see `rebal_freq`. Even though theoretically all index family types can calculate multiple times a day, not all types will support this initially. This parameter is a bit experimental in that sense.","example":false,"type":"boolean"}},"type":"object"}]},"ClientEquityIndexSpecific":{"additionalProperties":false,"properties":{"allocation_units":{"description":"The allocation units for the index, which define how the index constituents are grouped and weighted","items":{"$ref":"#/components/schemas/AllocationUnit"},"type":"array"},"allocation_weight_type":{"default":"FIXED_WEIGHT","description":"The way weight should be assigned to each allocation unit","enum":["FIXED_WEIGHT","EQUAL_WEIGHT"],"type":"string"},"currency":{"type":"string"},"holiday_calendar":{"$ref":"#/components/schemas/HolidayCalendarSpec"},"rebalance_config":{"$ref":"#/components/schemas/RebalanceConfig"},"reinvestment_time":{"$ref":"#/components/schemas/ReinvestmentTime"},"reinvestment_type":{"$ref":"#/components/schemas/ReinvestmentType"},"return_type":{"enum":["total_return","price_return","net_total_return"],"type":"string"}},"required":["currency","return_type","reinvestment_strategy","reinvestment_time","reinvestment_type","holiday_calendar","rebalance_config","allocation_units"],"type":"object"},"ClientIndexBaseProperties":{"additionalProperties":false,"properties":{"bbg_ticker":{"description":"due to the limitations of the Bloomberg ticker creation process (no API), this must be a pre-created ticker. You can email MerQube a list of tickers to create on your behalf at support@merqube.com. Then, you provide those as input to these indices","example":"MY_TICKER","type":"string"},"description":{"description":"set to the description of the index, which will show on merqube.com","example":"My Index Description","type":"string"},"email_list":{"default_factory":"list","description":"list of emails to send daily dissemination reports, and the initial backtest reports, to; if not specified, no emails will be sent","example":["bob@mycompany.com","alice@mycompany.com"],"items":{"type":"string"},"type":"array"},"name":{"description":"set to the name of the index. Commonly people use the ticker as the name, but that is not necessary. Must be globally unique - you will get a 409 if this index name is taken ","example":"My Index","pattern":"^[^!*'() ;:@&=+$,/?%#\\[\\]]","type":"string"},"namespace":{"description":"set to the namespace of the index","example":"mycompany","type":"string"},"title":{"description":"set to the title of the index that shows up on merqube.com","example":"My Index Title","type":"string"}},"required":["description","name","namespace","title"],"type":"object"},"ClientIndexConfigBase":{"allOf":[{"$ref":"#/components/schemas/ClientBaseVal"},{"$ref":"#/components/schemas/ClientIndexBaseProperties"}]},"ClientIndexConfigOptionalBaseDate":{"allOf":[{"$ref":"#/components/schemas/ClientOptionalBaseVal"},{"$ref":"#/components/schemas/ClientIndexBaseProperties"}]},"ClientMultiEBConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientMultiEBPortConfig"},{"$ref":"#/components/schemas/ClientMultiEBSpecific"},{"$ref":"#/components/schemas/ClientRuntimeInfo"},{"$ref":"#/components/schemas/ClientEquityBasketConfigBase"}],"description":"full config for equity baskets","title":"ClientMultiEBConfig","type":"object"},"ClientMultiEBPortConfig":{"allOf":[{"$ref":"#/components/schemas/ClientMultiEBPortUpdate"},{"$ref":"#/components/schemas/ClientBaseVal"}]},"ClientMultiEBPortUpdate":{"additionalProperties":false,"properties":{"constituents":{"default_factory":"list","description":"The EB portfolio directory","example":[{"date":"2022-03-11","identifier":"AAPL.OQ","identifier_type":"RIC","quantity":-0.2512355,"security_type":"EQUITY"},{"date":"2022-03-11","identifier":"USD","identifier_type":"RIC","quantity":60.0,"security_type":"CASH"}],"items":{"$ref":"#/components/schemas/DatedValidEquityBasketPosition"},"type":"array"},"index_currency":{"type":"string"},"unit_of_measure":{"$ref":"#/components/schemas/PortfolioUom","default":"SHARES"}},"required":["constituents"],"title":"ClientMultiEBPortUpdate","type":"object"},"ClientMultiEBSpecific":{"additionalProperties":false,"properties":{"corporate_actions":{"$ref":"#/components/schemas/ClientEBCoraxConfig","default_factory":"ClientEBCoraxConfig"},"dissemination_settings":{"description":"array of configurations for setting up identifiers for individual providers","items":{"$ref":"#/components/schemas/DisseminationSetting"},"type":"array"},"level_overrides":{"description":"optional level overrides for the index on certain days.","example":[{"comment":"test for some special day for some special reason","date":"2022-03-18","level":1364.344}],"items":{"$ref":"#/components/schemas/LevelOverride"},"type":"array"},"precision_level":{"description":"used to set the rounding decimal field when creating identifiers","minimum":0,"type":"integer"},"rebal_freq":{"$ref":"#/components/schemas/RebalFrequency"},"tick_configuration":{"$ref":"#/components/schemas/TickConfiguration","description":"config for the intraday index ticking start/end hour/minutes"}},"type":"object"},"ClientOptionStrategiesBase":{"additionalProperties":false,"description":"A options strategy index","properties":{"early_exercise":{"$ref":"#/components/schemas/ClientStrategyOptionEarlyExercise"},"hold_underlier":{"default":true,"type":"boolean"},"interest_rate_config":{"$ref":"#/components/schemas/IndexInterestRateConfig","description":"configuration for interest rates on an options strategy self service index"},"strategy_options":{"description":"List of options in the strategy and their configs","items":{"$ref":"#/components/schemas/ClientStrategyOption"},"type":"array"},"strategy_type":{"$ref":"#/components/schemas/OptionStrategyType","description":"The type of strategy"},"transaction_cost_spec":{"$ref":"#/components/schemas/TransactionCostsConfig"},"underliers":{"description":"The underlying assets of the strategy","items":{"oneOf":[{"$ref":"#/components/schemas/FsymAndCountry"},{"$ref":"#/components/schemas/IndexTicker"}]},"minItems":1,"type":"array"}},"required":["strategy_type","underliers","strategy_options"],"type":"object"},"ClientOptionStrategiesConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientOptionStrategiesBase"},{"$ref":"#/components/schemas/ClientRuntimeInfo"},{"$ref":"#/components/schemas/ClientIndexConfigBase"}],"description":"A Option strategies index","title":"ClientOptionStrategiesConfig","type":"object"},"ClientOptionalBaseVal":{"additionalProperties":false,"properties":{"base_date":{"$ref":"#/components/schemas/BaseDate"},"base_value":{"description":"set the index value on base_date to this base_value","example":1000.0,"exclusiveMinimum":0,"type":"number"}},"required":["base_value"],"type":"object"},"ClientRuntimeInfo":{"additionalProperties":false,"description":"represents index runtime info, which must be specified for some indices (but auto derived for others based on exchange close times etc)","properties":{"run_hour":{"description":"set to the hour of day to run the index in the index's timezone","example":16,"type":"integer"},"run_minute":{"description":"set to the minute of the hour to run the index ","example":30,"type":"integer"},"timezone":{"default":"US/Eastern","description":"set to the timezone of the index","example":"US/Eastern","type":"string"}},"required":["run_hour","run_minute"],"type":"object"},"ClientSSTRConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientSSTRSpecific"},{"$ref":"#/components/schemas/ClientEquityBasketConfigBase"}],"description":"full config for SSTRs","type":"object"},"ClientSSTRSpecific":{"additionalProperties":false,"properties":{"reinvestment_type":{"$ref":"#/components/schemas/ReinvestmentTime","default":"AT_OPEN"},"ric":{"description":"set to the RIC of the underlying equity","example":"LMVH.PA","type":"string"}},"required":["ric"],"type":"object"},"ClientSingleOptionBase":{"additionalProperties":false,"description":"a single option strategy","properties":{"exposure":{"description":"percentage of the underlying you want exposure to","minimum":0.0,"type":"number"},"option_underlying":{"$ref":"#/components/schemas/OptionRoot","description":"the underlying option to use; if not specified the default is to use the `root`","example":"SPY"},"rebalancing_strategy":{"description":"the rebalancing schedule","enum":["weekly_Monday","weekly_Tuesday","weekly_Wednesday","weekly_Thursday","weekly_Friday","monthly_End_Of_Month","monthly_3rd_Friday"],"type":"string"},"root":{"$ref":"#/components/schemas/OptionRoot","default":"SPY","description":"the root of the option; more roots may be supported in the future","example":"SPY"}},"required":["rebalancing_strategy","exposure"],"type":"object"},"ClientSingleOptionConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientSingleOptionBase"},{"additionalProperties":false,"properties":{"strategy":{"oneOf":[{"$ref":"#/components/schemas/ClientCoveredStrike"},{"$ref":"#/components/schemas/ClientCoveredDelta"},{"$ref":"#/components/schemas/ClientDownsideStrike"},{"$ref":"#/components/schemas/ClientDownsideDelta"}]}},"required":["strategy"],"type":"object"},{"$ref":"#/components/schemas/ClientRuntimeInfo"},{"$ref":"#/components/schemas/ClientIndexConfigBase"}],"description":"a single option strategy","title":"ClientSingleOptionConfig","type":"object"},"ClientStaticBasketConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/ClientStaticBasketSpecific"},{"$ref":"#/components/schemas/ClientEquityBasketConfigBase"}],"description":"full config for Static Basket Indices","type":"object"},"ClientStaticBasketSpecific":{"additionalProperties":false,"properties":{"apply_mcap_screen":{"default":true,"description":"set to true if the index should apply a 15% min market cap screen","type":"boolean"},"base_value":{"type":"number"},"constituents":{"items":{"properties":{"amount":{"maximum":100,"minimum":0,"type":"number"},"identifier":{"title":"Identifier","type":"string"},"identifier_type":{"$ref":"#/components/schemas/PositionIdentifierType"}},"required":["identifier","identifier_type"],"type":"object"},"type":"array"},"holiday_calendar_config":{"oneOf":[{"$ref":"#/components/schemas/LegacyStaticBasketCalendarConfig"},{"$ref":"#/components/schemas/StaticBasketCalendarConfig"}],"type":"object"},"rebalance_calendar":{"$ref":"#/components/schemas/HolidayCalendarSpec"},"rebalance_config":{"$ref":"#/components/schemas/RebalanceConfig"},"reinvestment_time":{"$ref":"#/components/schemas/ReinvestmentTime","default":"AT_CLOSE"},"reinvestment_type":{"$ref":"#/components/schemas/ReinvestmentType","default":"INDEX"},"restrict_base_date":{"default":true,"description":"won't let user create a basket with base date before at least 70% of basket's IPO dates","type":"boolean"},"return_type":{"enum":["total_return","price_return","net_total_return"],"type":"string"}},"required":["base_value","return_type","reinvestment_time","reinvestment_type","rebalance_config","constituents","apply_mcap_screen"],"type":"object"},"ClientStrategyOption":{"additionalProperties":false,"description":"Defines an option in a strategy index for self service flow","properties":{"expiry":{"$ref":"#/components/schemas/ClientStrategyOptionExpiry"},"exposure":{"minimum":0,"type":"number"},"is_financing":{"default":false,"type":"boolean"},"is_spread":{"default":false,"type":"boolean"},"number_of_tranches":{"minimum":1,"type":"integer"},"option_type":{"$ref":"#/components/schemas/OptionType","type":"string"},"rebalance":{"oneOf":[{"$ref":"#/components/schemas/ClientStrategyOptionRebalanceRelativeToExpiry"},{"$ref":"#/components/schemas/ClientStrategyOptionRebalanceCertainDay"}]},"spread_lower_bound":{"type":"number"},"spread_upper_bound":{"type":"number"},"strike_type":{"$ref":"#/components/schemas/StrategyOptionStrikeType","type":"string"},"strike_value":{"minimum":0,"type":"number"},"trade_type":{"$ref":"#/components/schemas/TradeType","type":"string"}},"required":["option_type","trade_type","strike_type","exposure","number_of_tranches","expiry","rebalance","early_exercise"],"type":"object"},"ClientStrategyOptionEarlyExercise":{"additionalProperties":false,"description":"Defines the Early Exercise Strategy","properties":{"borrowing_rate":{"minimum":0.0,"type":"number"},"enabled":{"default":false,"type":"boolean"},"rebalancing_period":{"minimum":1,"type":"integer"},"restrike_days":{"minimum":1,"type":"integer"},"treatment":{"$ref":"#/components/schemas/EarlyExerciseTreatment"}},"required":["enabled"],"type":"object"},"ClientStrategyOptionExpiry":{"additionalProperties":false,"description":"Defines expiry-related configs for options strategies self service flow","properties":{"day_of_week":{"$ref":"#/components/schemas/DayOfWeek","description":"Should only be set if expiry_time_period is WEEKLY","type":"string"},"expiry_period_type":{"$ref":"#/components/schemas/StrategyOptionExpiryPeriodType","type":"string"},"time_period_away":{"minimum":1,"type":"integer"}},"required":["expiry_period_type","time_period_away"],"type":"object"},"ClientStrategyOptionRebalanceCertainDay":{"additionalProperties":false,"description":"Defines rebalance-related configs for option strategies self service flow, if user selects \"Certain Day\"","properties":{"day_of_week":{"$ref":"#/components/schemas/DayOfWeek","type":"string"},"roll_back":{"description":"Whether or not to roll back or roll forward if date is a holiday","type":"boolean"},"schedule_type":{"enum":["CERTAIN_DAY"],"type":"string"},"time_period_away":{"minimum":1,"type":"integer"},"week_of_month":{"maximum":4,"minimum":1,"type":"integer"}},"required":["schedule_type","time_period_away","day_of_week","roll_back"],"type":"object"},"ClientStrategyOptionRebalanceRelativeToExpiry":{"additionalProperties":false,"description":"Defines rebalance-related configs for options strategies self service flow, if user selects \"Relative to Expiry\"","properties":{"days_before_expiry":{"minimum":0,"type":"integer"},"roll_back":{"description":"Whether or not to roll back or roll forward if date is a holiday","type":"boolean"},"schedule_type":{"enum":["REL_TO_EXPIRY"],"type":"string"}},"required":["schedule_type","days_before_expiry","roll_back"],"type":"object"},"ClientTemplateResponse":{"properties":{"bbg_ident_template":{"$ref":"#/components/schemas/IdentifierUUIDPost","description":"only returned if the client specified a bbg ticker","nullable":true},"post_template":{"$ref":"#/components/schemas/IndexDefinitionPost","description":"a full index manifest that can be posted"},"target_ports":{"description":"only returns for indices where the client should post the target portfolios","items":{"$ref":"#/components/schemas/BasketPortfolioPutIn"},"nullable":true,"type":"array"}},"type":"object"},"ConstantInterestRateConfig":{"additionalProperties":false,"description":"configuration for constant interest rates on options strategy self serve indices","properties":{"rate":{"type":"number"}},"required":["rate"],"type":"object"},"CopyFromManifest":{"description":"Creates a new resource by starting from an existing resource, removing the id/status, adding/updating/deleting keys, then posting it as a new resource. The original resource is hereby referred to as the from-manifest. This is essentially a GET-MODIFY-POST operation. Only top level keys can be modifed/replaced/deleted, this does not support subkey modification.","properties":{"copy_from_uuid":{"description":"the uuid of the resource to start from","type":"string"},"field_deletes":{"description":"fields to delete from the from-manifest","items":{"type":"string"},"type":"array"},"field_updates":{"description":"a dictionary of top level keys that the original manifest will be updated with (ie `manifest.update(this[field_updates])`. Top level keys can be added or replaced. To change the namespace, add namespace to the field_updates dict. The new manifest must be valid per the original resource definition.","type":"object"},"name":{"description":"the name of the new resource","type":"string"}},"required":["copy_from_uuid","name"],"type":"object"},"CountryCode":{"description":"ISO country codes","enum":["AE","AR","AT","AU","BD","BE","BG","BH","BR","BW","CA","CH","CI","CL","CN","CO","CY","CZ","DE","DK","EC","EG","ES","FI","FR","GB","GR","HK","HR","HU","ID","IE","IL","IN","IS","IT","JP","KH","KR","KW","LK","LU","MX","MY","NL",false,"NZ","PE","PH","PK","PL","PT","QA","RU","SA","SE","SG","SI","SK","TH","TN","TR","TT","TW","US","VN","ZA","ZM"],"example":"US","type":"string"},"CountryOfDomicileFilterSpec":{"additionalProperties":false,"properties":{"domicile_countries":{"items":{"type":"string"},"type":"array"},"include_or_exclude":{"description":"Whether to include or exclude the specified countries","enum":["INCLUDE","EXCLUDE"],"type":"string"},"type":{"enum":["country_of_domicile"],"type":"string"}},"required":["type","domicile_countries","include_or_exclude"],"type":"object"},"CountryOfExchangeFilterSpec":{"additionalProperties":false,"properties":{"exchange_countries":{"items":{"type":"string"},"type":"array"},"include_or_exclude":{"description":"Whether to include or exclude the specified countries","enum":["INCLUDE","EXCLUDE"],"type":"string"},"type":{"enum":["country_of_exchange"],"type":"string"}},"required":["type","exchange_countries","include_or_exclude"],"type":"object"},"CrudExtra":{"additionalProperties":false,"properties":{"id":{"type":"string"},"namespace":{"type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["id","status","namespace"],"type":"object"},"CurrencyFilterSpec":{"additionalProperties":false,"properties":{"currencies":{"items":{"type":"string"},"type":"array"},"include_or_exclude":{"description":"Whether to include or exclude the specified currencies","enum":["INCLUDE","EXCLUDE"],"type":"string"},"type":{"enum":["currency"],"type":"string"}},"required":["type","currencies","include_or_exclude"],"type":"object"},"CustomCharts":{"additionalProperties":false,"properties":{"chart_type":{"default":"line","enum":["line","spline","area","bar","column"],"type":"string"},"compare_mode":{"default":"percent","enum":["absolute","percent"],"type":"string"},"constructor_type":{"default":"stockChart","enum":["chart","stockChart"],"type":"string"},"data":{"items":{"additionalProperties":false,"properties":{"array_field":{"type":"string"},"key_field":{"type":"string"},"url":{"type":"string"},"values":{"items":{"additionalProperties":false,"properties":{"display_name":{"type":"string"},"path":{"type":"string"}},"required":["display_name","path"],"type":"object"},"type":"array"}},"required":["url","array_field","values","key_field"],"type":"object"},"type":"array"},"name":{"type":"string"},"size":{"default":12,"type":"number"},"xlabel":{"type":"string"},"ylabel":{"type":"string"}},"required":["name","xlabel","ylabel"],"type":"object"},"DataCollectionsSpec":{"additionalProperties":true,"description":"schema for data collections","properties":{"auto_persist":{"default":false,"description":"Boolean to indicate whether to automatically persist the data. Default is false.","type":"boolean"},"compression":{"default":"GZIP","enum":["NONE","GZIP"],"type":"string"},"date_col":{"default":"date","type":"string"},"format":{"default":"csv","enum":["csv"],"type":"string"},"index_dc_subtype":{"description":"Index Data Collection Subtype object key moves to array after transformation","type":"string"},"layout_type":{"default":"SINGLE_FILE","description":"SINGLE_FILE: one file. YEARLY_DIR_DAILY_FILE: one directory per year, each day, a file with YYYYMMDD format.","enum":["SINGLE_FILE","YEARLY_DIR_DAILY_FILE"],"type":"string"},"location":{"type":"string"},"name":{"maxLength":128,"minLength":3,"pattern":"^[A-Za-z0-9_]*$","type":"string"},"seed_file_path":{"description":"Seed file for the data collection.","type":"string"},"start_time":{"type":"string"}},"required":["name","location","index_dc_subtype"],"type":"object"},"DatedBasketPosition":{"allOf":[{"$ref":"#/components/schemas/BasketPosition"},{"properties":{"date":{"$ref":"#/components/schemas/IsoDate"},"selection_date":{"$ref":"#/components/schemas/IsoDate"}},"required":["date"],"type":"object"}]},"DatedFsymEquityPosition":{"allOf":[{"$ref":"#/components/schemas/DatedBasketPosition"},{"$ref":"#/components/schemas/FsymSpecific"}]},"DatedRicEquityPosition":{"allOf":[{"$ref":"#/components/schemas/DatedBasketPosition"},{"$ref":"#/components/schemas/RicSpecific"}]},"DatedValidEquityBasketPosition":{"oneOf":[{"$ref":"#/components/schemas/DatedBasketPosition"},{"$ref":"#/components/schemas/DatedRicEquityPosition"},{"$ref":"#/components/schemas/DatedFsymEquityPosition"}]},"DayOfWeek":{"enum":["MON","TUE","WED","THU","FRI"],"example":"MON","title":"Day of Week","type":"string"},"Deadline":{"additionalProperties":false,"properties":{"business_days_prior":{"default":0,"description":"the amount of days before T to check for data existence","type":"integer"},"deadline_type":{"default":"calculation","enum":["calculation","restatement"],"type":"string"},"metrics":{"description":"the list of metrics to check in the deadline checker script","items":{"type":"string"},"type":"array"},"next_day":{"default":false,"description":"set this to true if the index starts running on day T but the deadline does not pass until T+1 in that index timezone","type":"boolean"},"og_priority":{"default":"P1","enum":["P1","P2","P3"],"type":"string"},"time_of_day":{"description":"the time of day of the deadline","pattern":"^(?:[01]\\d|2[0-3]):(?:[0-5]\\d):(?:[0-5]\\d)$","type":"string"}},"required":["time_of_day","deadline_type","next_day","og_priority","business_days_prior"],"type":"object"},"DefinedOutcomeSolverRequest":{"additionalProperties":false,"properties":{"expiry":{"$ref":"#/components/schemas/ClientDefinedOutcomeExpiry","type":"object"},"options":{"items":{"$ref":"#/components/schemas/ClientDefinedOutcomeOption"},"type":"array"},"root":{"$ref":"#/components/schemas/ClientDefinedOutcomeRoots","type":"string"},"variable_leg_params":{"$ref":"#/components/schemas/ClientDefinedOutcomeOption","description":"User-defined option parameters for Participation Rate strategy","nullable":true},"variable_leg_strategy":{"description":"The variable leg strategy to use. If not specified, defaults to Cap strategy.","discriminator":{"mapping":{"CASH":"#/components/schemas/ClientDefinedOutcomeCashStrategy","NO_ETF":"#/components/schemas/ClientDefinedOutcomeNoEtfStrategy","PARTICIPATION_RATE":"#/components/schemas/ClientDefinedOutcomeParticipationRateStrategy"},"propertyName":"strategy"},"nullable":true,"oneOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeParticipationRateStrategy"},{"$ref":"#/components/schemas/ClientDefinedOutcomeNoEtfStrategy"},{"$ref":"#/components/schemas/ClientDefinedOutcomeCashStrategy"}],"type":"object"}},"required":["expiry","options","root"],"title":"Client Defined Outcome Option Price Solver Response Schema","type":"object"},"DefinedOutcomeSolverResponse":{"additionalProperties":false,"properties":{"option_solutions":{"description":"Option Price Metrics","items":{"oneOf":[{"$ref":"#/components/schemas/OptionPriceMetrics"},{"type":null}]},"type":"array"},"variable_leg_cash_solution":{"description":"Cash solution when Cash strategy is selected","format":"float","nullable":true,"type":"number"},"variable_leg_solution":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeOption"},{"type":null}]},{"properties":{"price":{"description":"Option Price","format":"number","type":"number"}},"required":["price"]}],"description":"Variable Leg Metrics","type":"object"}},"title":"Client Defined Outcome Option Price Solver Response Schema","type":"object"},"DisseminationDestinations":{"properties":{"email_dissapi_configs":{"items":{"properties":{"bcc_list":{"items":{"type":"string"},"type":"array"},"cc_list":{"items":{"type":"string"},"type":"array"},"content":{"type":"string"},"email_list":{"items":{"type":"string"},"type":"array"},"file_keys":{"items":{"type":"string"},"type":"array"},"recipient_list":{"items":{"type":"string"},"minItems":1,"type":"array"},"subject":{"type":"string"}},"required":["recipient_list","subject"],"type":"object"},"minItems":1,"type":"array"},"s3_dissapi_configs":{"items":{"properties":{"bucket":{"type":"string"},"file_keys":{"items":{"type":"string"},"type":"array"},"key_prefix":{"type":"string"}},"required":["bucket","key_prefix","file_keys"],"type":"object"},"type":"array"},"sftp_dissapi_configs":{"items":{"properties":{"file_keys":{"items":{"type":"string"},"type":"array"},"sftp_ids":{"items":{"type":"string"},"type":"array"}},"required":["sftp_ids","file_keys"],"type":"object"},"type":"array"}},"type":"object"},"DisseminationSetting":{"additionalProperties":false,"description":"configuration for setting up identifier to provider","properties":{"destination":{"enum":["BLOOMBERG","REFINITIV","MORNINGSTAR","FACTSET"],"type":"string"},"ticker":{"type":"string"}},"required":["destination","ticker"],"type":"object"},"DqmsConfig":{"additionalProperties":false,"properties":{"enabled":{"description":"If true, force-enables DQMS validation for this index","type":"boolean"}},"type":"object"},"EarlyExerciseTreatment":{"enum":["KEEP_IN_CASH","RESTRIKE_AT_DAYS","CONDITION_RESTRIKE_AT_DAYS"],"type":"string"},"ErrorCodes":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"FindStrikeResponse":{"properties":{"request_id":{"description":"Request ID sent in the request","type":"string"},"spot":{"description":"Underlying spot price.","format":"number","type":"number"},"strike":{"description":"Strike that prices to the given budget.","format":"number","type":"number"},"strike_percentage":{"description":"Strike as a percentage of the underlying spot price that prices to the given budget.","format":"number","type":"number"}},"title":"Find Strike Response Schema","type":"object"},"FlatCalendarSchema":{"additionalProperties":false,"properties":{"calendar_identifiers":{"default_factory":"list","items":{"pattern":"^(FUT|MIC|FX|SM|MQI|OVERLAY):.+$","type":"string"},"type":"array"},"condition":{"default":"all","enum":["any","all","custom"],"type":"string"},"holidays_to_add":{"default_factory":"list","items":{"format":"date","type":"string"},"type":"array"},"holidays_to_remove":{"default_factory":"list","items":{"format":"date","type":"string"},"type":"array"},"swaps_monitor_codes":{"default_factory":"list","items":{"pattern":"^[a-zA-Z]{3}$","type":"string"},"type":"array"},"weekmask":{"default":["Mon","Tue","Wed","Thu","Fri"],"description":"weekmask of valid business days","items":{"enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],"type":"string"},"type":"array"}},"type":"object"},"FreeFloatRebalanceConfig":{"additionalProperties":false,"properties":{"max_weight":{"type":"number"},"method":{"default":"FREE_FLOAT","enum":["FREE_FLOAT"],"type":"string"}},"required":["method"],"type":"object"},"FreezerConfig":{"additionalProperties":false,"properties":{"corax":{"default":false,"type":"boolean"},"fx_rates":{"default":false,"type":"boolean"},"prices":{"default":false,"type":"boolean"},"primary_index_name":{"description":"the primary index to use underlying data from","type":"string"},"rebalances":{"default":false,"type":"boolean"}},"type":"object"},"FsymAndCountry":{"description":"Represents the combination of a FSYM + Country Code","properties":{"country_code":{"$ref":"#/components/schemas/CountryCode"},"fsym_id":{"type":"string"}},"required":["fsym_id","country_code"],"type":"object"},"FsymEquityPosition":{"allOf":[{"$ref":"#/components/schemas/BasketPosition"},{"$ref":"#/components/schemas/FsymSpecific"}],"description":"Equity position, identified by a FSYM + country code"},"FsymSpecific":{"additionalProperties":false,"properties":{"country_code":{"$ref":"#/components/schemas/CountryCode"}},"required":["country_code"],"type":"object"},"FuturesPosition":{"allOf":[{"$ref":"#/components/schemas/FuturesSpecific"},{"$ref":"#/components/schemas/BasketPosition"}],"description":"A Futures position"},"FuturesSpecific":{"additionalProperties":false,"properties":{"amount":{"title":"Amount of Shares","type":"number"},"currency":{"default":"USD","title":"Currency","type":"string"},"expiration_date":{"$ref":"#/components/schemas/IsoDate","title":"Expiration Date"},"identifier":{"title":"Identifier","type":"string"},"identifier_type":{"$ref":"#/components/schemas/PositionIdentifierType"},"lag":{"$ref":"#/components/schemas/IsoTS","title":"Futures Lag"},"underlying":{"title":"Underlying Symbol","type":"string"}},"required":["expiration_date","amount","underlying","currency"],"type":"object"},"HistoryCheck":{"allOf":[{"properties":{"check_type":{"enum":["HISTORY_CHECK"],"type":"string"}},"type":"object"},{"$ref":"#/components/schemas/BaseCheck"},{"properties":{"params":{"$ref":"#/components/schemas/HistoryCheckParams"}},"type":"object"}],"required":["check_type","params"],"type":"object"},"HistoryCheckParams":{"properties":{"days":{"maximum":365,"minimum":0,"nullable":true,"type":"integer"}},"required":["days"],"type":"object"},"HolidayCalendarSpec":{"anyOf":[{"$ref":"#/components/schemas/FlatCalendarSchema"},{"$ref":"#/components/schemas/NestedCalendarSchema"}]},"IdTransactionCost":{"additionalProperties":false,"properties":{"cost_floor":{"default":0.0,"maximum":1.0,"minimum":0.0,"type":"number"},"merq_id":{"description":"Deterministic identifier. Two allowed shapes: 1) fsym_id+country_code form:  el:<fsym_id>:<country_code>:0 2) ticker: in:<ticker>:0 Examples: 'el:R85KLC:US:0', 'in:AAPL:0'\n","examples":["el:R85KLC:US:0","in:AAPL:0"],"type":"string"},"vol_factor":{"default":0.0,"maximum":1.0,"minimum":0.0,"type":"number"}},"required":["merq_id"],"type":"object"},"IdentifierUUIDPatchPutGet":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/IdentifierUUIDPost"},{"$ref":"#/components/schemas/CrudExtra"}],"type":"object"},"IdentifierUUIDPost":{"additionalProperties":false,"description":"Identifier for a given provider. Will be referenced via the name field of the Identifier section","properties":{"display_name":{"type":"string"},"index_name":{"type":"string"},"metric":{"type":"string"},"name":{"description":"unique name among all other Identifiers of the provider resource type.","pattern":"^[^!*'() ;:@&=+$,/?%#\\[\\]]","type":"string"},"namespace":{"type":"string"},"num_days":{"description":"Number of days to disseminate data for","minimum":0,"type":"integer"},"provider_kwargs":{"anyOf":[{"$ref":"#/components/schemas/BloombergProviderKwargs"},{"$ref":"#/components/schemas/ReutersProviderKwargs"},{"$ref":"#/components/schemas/SecapiProviderKwargs"},{"$ref":"#/components/schemas/NasdaqProviderKwargs"}]},"rounding_decimals":{"description":"If rounding_type=standard, corresponds to number of decimal places to round to. If rounding_type=sigfig, corresponds to number of significant figures to round to.","type":"integer"},"rounding_type":{"default":"standard","description":"Type of rounding to apply to the disseminated data. standard = normal python round(), sigfig = significant figures rounding.","enum":["standard","sigfig"],"type":"string"},"start_date":{"format":"date","type":"string"},"ticker":{"type":"string"}},"required":["name","ticker","index_name"],"type":"object"},"IdentifierUUIDRef":{"additionalProperties":false,"description":"maps to an identifier resource","properties":{"enabled":{"default":true,"description":"Determines if the index will disseminate data based on this Identifier","type":"boolean"},"name":{"type":"string"},"provider":{"$ref":"#/components/schemas/Provider"}},"required":["name","provider"],"type":"object"},"IndexBenchmark":{"additionalProperties":false,"properties":{"benchmark_metric":{"default":"price_return","description":"only accepted if the ticker is an MQI. The metric of the benchmark index to compare against; eg can compare to some other metric than price_return of the benchmark","example":"total_return","type":"string"},"index_metric":{"default":"price_return","description":"the metric of this index to compare against the ticker/threshold, eg can compare some other metric of this index than price_return","example":"total_return","type":"string"},"threshold":{"description":"the deviation that triggers an outlier event, IE, the daily difference of the index vs the daily difference of the underlying should not be more than this percent","example":0.05,"type":"number"},"ticker":{"description":"accepts either FSYM_ID, or MQI:XXX to benchmark against another index.","example":"MQI:XXX","type":"string"}},"required":["ticker","threshold"],"type":"object"},"IndexDefinitionPatchPutGet":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/IndexDefinitionPost"},{"$ref":"#/components/schemas/CrudExtra"}],"type":"object"},"IndexDefinitionPost":{"additionalProperties":false,"properties":{"administrative":{"$ref":"#/components/schemas/Administrative"},"base_date":{"$ref":"#/components/schemas/BaseDate"},"base_year":{"type":"integer"},"benchmark":{"oneOf":[{"$ref":"#/components/schemas/IndexBenchmark"},{"items":{"$ref":"#/components/schemas/IndexBenchmark"},"type":"array"}]},"calc_freq":{"enum":["Daily","Daily, EOD","Intraday"],"type":"string"},"calculation_check":{"$ref":"#/components/schemas/CalculationCheck"},"currency":{"type":"string"},"custom_metrics":{"items":{"$ref":"#/components/schemas/MetricsSchema"},"type":"array"},"description":{"type":"string"},"display_month":{"enum":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"type":"string"},"documents":{"type":"object"},"eod_rt_price_check":{"type":"boolean"},"excess_strategy":{"enum":["keep_in_cash"],"type":"string"},"family":{"type":"string"},"family_codes":{"items":{"type":"string"},"maxItems":1,"minItems":1,"type":"array"},"family_description":{"type":"string"},"fill_missing_data":{"description":"Controls missing equity price recovery. The API derives this flag from stage and stores true only for backtest; all other stages store false.","type":"boolean"},"first_value_date":{"$ref":"#/components/schemas/IsoDate","description":"the first date that the index has a value; if set, will be < base_date"},"freezer_config":{"$ref":"#/components/schemas/FreezerConfig"},"identifiers":{"items":{"$ref":"#/components/schemas/IdentifierUUIDRef"},"minItems":0,"type":"array"},"intraday":{"$ref":"#/components/schemas/Intraday"},"launch_date":{"type":"string"},"methodology":{"type":"string"},"month":{"type":"integer"},"name":{"pattern":"^[a-zA-Z][a-zA-Z0-9-_]{0,99}$","type":"string"},"namespace":{"type":"string"},"notify_configuration":{"$ref":"#/components/schemas/NotificationConfig"},"plot_metric":{"type":"string"},"portfolio_allocation_display":{"description":"whether or not portfolio_allocations are shown on the website. false by default","type":"boolean"},"portfolio_display":{"properties":{"fields":{"items":{"properties":{"display_name":{"type":"string"},"field_name":{"type":"string"}},"type":"object"},"type":"array"}},"type":"object"},"portfolio_handler_id":{"type":"string"},"rebal_freq":{"$ref":"#/components/schemas/RebalFrequency"},"related":{"items":{"$ref":"#/components/schemas/Related"},"type":"array"},"run_configuration":{"$ref":"#/components/schemas/RunConfig"},"run_configurations":{"items":{"$ref":"#/components/schemas/RunConfigLabel"},"type":"array"},"sales_force_deal_id":{"description":"SalesForce Deal ID","type":"string"},"spec":{"$ref":"#/components/schemas/IndexSpec"},"stage":{"enum":["prod","test","development","backtest","inqubator"],"type":"string"},"tags":{"type":"string"},"title":{"type":"string"},"webpage":{"$ref":"#/components/schemas/Webpage"},"weighting_method":{"enum":["Other","Equal"],"type":"string"}},"required":["description","administrative","launch_date","name","stage","title"],"title":"Index Manifest","type":"object"},"IndexIdentifierUUIDPost":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/IdentifierUUIDPost"},{"properties":{"enabled":{"default":true,"description":"Determines if the index will disseminate data based to this provider, default is true","type":"boolean"}},"type":"object"}],"type":"object"},"IndexInterestRateConfig":{"additionalProperties":false,"description":"configuration for an index's interest rates including both lending/borrowing rates","properties":{"borrowing_rate":{"$ref":"#/components/schemas/InterestRateConfig"},"lending_rate":{"$ref":"#/components/schemas/InterestRateConfig"}},"required":["lending_rate","borrowing_rate"],"type":"object"},"IndexReport":{"properties":{"dissemination_destinations":{"$ref":"#/components/schemas/DisseminationDestinations"},"program_args":{"type":"object"},"task_id":{"type":"string"},"uuid":{"type":"string"}},"required":["uuid"],"type":"object"},"IndexSpec":{"properties":{"index_class_args":{"type":"object"},"index_class_code":{"type":"string"},"index_variables":{"description":"TODO","type":"object"},"version":{"type":"integer"}},"required":["index_class_code"],"type":"object"},"IndexTicker":{"description":"Represents a ticker of the index. Used in self service options to hold the Index as the underlier","properties":{"ticker":{"enum":["NDX","SPX","RUT","MQ5C","SXXP","SX5E"],"type":"string"}},"required":["ticker"],"type":"object"},"InitialMonthConfig":{"additionalProperties":false,"properties":{"frequency":{"pattern":"^(ANNUAL|QUARTERLY|SEMIANNUAL|MONTHLY)$","type":"string"},"roll_forward":{"default":true,"type":"boolean"},"starting_month":{"enum":["January","February","March","April","May","June","July","August","September","October","November","December"],"type":"string"}},"required":["frequency"],"type":"object"},"InterestRateConfig":{"additionalProperties":false,"description":"configuration for an interest rate","discriminator":{"mapping":{"constant":"#/components/schemas/ConstantInterestRateConfig","variable":"#/components/schemas/VariableInterestRateConfig"},"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/ConstantInterestRateConfig"},{"$ref":"#/components/schemas/VariableInterestRateConfig"}],"type":"object"},"Intraday":{"allOf":[{"$ref":"#/components/schemas/IntradayPublishConfigWrapper"},{"additionalProperties":false,"description":"Only available for indexes with intraday tick computation","properties":{"active_time_ranges":{"items":{"$ref":"#/components/schemas/IntradayTickFilter"},"type":"array"},"alerting":{"$ref":"#/components/schemas/IntradayAlerting"},"calculation_max_retry_delay":{"description":"How many seconds to keep retrying the real time calculation before setting the force flag. Defalts to 0 which means retry forever.","minimum":0,"type":"integer"},"data_refresh_period":{"description":"After the rtindex refreshes its data this is the number of seconds to wait before refreshing again. 0 means do not refresh. Defaults to 3600 seconds (60min)","minimum":0,"type":"integer"},"enabled":{"description":"If the intraday process should be run or not","type":"boolean"},"heartbeat_timeout":{"description":"Max number of seconds between heartbeats before the rtindex pod is considered unhealthy","minimum":1,"type":"integer"},"infra_timed_scaling":{"$ref":"#/components/schemas/IntradayInfraTimedScaling"},"ohl_enabled":{"default":false,"description":"Should send Open High Low data to providers","type":"boolean"},"opening_tick_time":{"description":"The time of opening tick in index's timezone. The index will send data against this","pattern":"^(?:[01]\\d|2[0-3]):(?:[0-5]\\d):(?:[0-5]\\d)$","type":"string"},"resource_cpu_request":{"description":"Minimum cpu resources requested in milliCPU","minimum":1,"type":"integer"},"resource_memory_request":{"description":"Minimum memory resources requested in mebibytes.","minimum":0,"type":"integer"},"security_id":{"description":"Security ID of the intraday_index security where ticker data is served","type":"string"},"startup_failure_timeout":{"description":"Max number of seconds to wait for the first heartbeat from the rtindex pod before considering it a failed startup. By default it will wait 40sec","minimum":1,"type":"integer"},"tick_delay":{"description":"Number of seconds to delay intraday calculation","minimum":0,"type":"integer"},"ticker_period":{"description":"Duration between ticker datapoints. In seconds","minimum":1,"type":"number"},"tzinfo":{"description":"Timezone of intraday tick timestamp comparisons","type":"string"}},"required":["enabled","tzinfo"],"type":"object"}]},"IntradayAlertType":{"enum":["opsgenie","slack"],"type":"string"},"IntradayAlerting":{"additionalProperties":false,"description":"Alerting configuration for intraday ticks","properties":{"flatline_alerts":{"$ref":"#/components/schemas/IntradayFlatlineAlerts"}},"type":"object"},"IntradayFlatlineAlerts":{"properties":{"alert_hours":{"$ref":"#/components/schemas/AlertHours"},"alert_type":{"$ref":"#/components/schemas/IntradayAlertType","default":"opsgenie","description":"Type of alert to send when flatline is detected. Default is opsgenie."},"enabled":{"default":true,"description":"If the flatline alert should be enabled","type":"boolean"},"min_ticks":{"description":"Minimum number of ticks in the window to be the same to considered a flatline","minimum":2,"type":"integer"},"window_length":{"default":5,"description":"window_length in minutes for flatline alert","minimum":1,"type":"integer"}},"type":"object"},"IntradayInfraTimedScaling":{"additionalProperties":false,"description":"Describes how to scale up and down based on the active time range.","properties":{"enabled":{"default":true,"description":"Whether or not the deployment will be scaled up and down.","type":"boolean"},"end_time_buffer":{"default":10,"description":"The amount of minutes past the end time after which the deployment is scaled down.","maximum":59,"minimum":5,"type":"integer"},"start_time_buffer":{"default":59,"description":"The amount of minutes before the start time from which the deployment is scale up.","maximum":59,"minimum":10,"type":"integer"}},"type":"object"},"IntradayPublishConfig":{"additionalProperties":{"items":{"oneOf":[{"$ref":"#/components/schemas/IntradayPublishConfigDbTarget"},{"$ref":"#/components/schemas/IntradayPublishConfigSecapiTarget"},{"$ref":"#/components/schemas/IntradayPublishConfigBloombergTarget"},{"$ref":"#/components/schemas/IntradayPublishConfigReutersTarget"}]},"type":"array"},"description":"Mapping of index metric to targets it should be sent to","type":"object"},"IntradayPublishConfigBloombergTarget":{"allOf":[{"$ref":"#/components/schemas/IntradayPublishConfigTargetBase"},{"properties":{"params":{"$ref":"#/components/schemas/IntradayPublishConfigBloombergTargetParams"},"target":{"enum":["bloomberg"],"type":"string"}},"required":["target"],"type":"object"}]},"IntradayPublishConfigBloombergTargetParams":{"additionalProperties":false,"properties":{"rounding_decimals":{"type":"integer"},"ticker":{"type":"string"}},"type":"object"},"IntradayPublishConfigDbTarget":{"allOf":[{"$ref":"#/components/schemas/IntradayPublishConfigTargetBase"},{"properties":{"target":{"enum":["db"],"type":"string"}},"required":["target"],"type":"object"}]},"IntradayPublishConfigReutersTarget":{"allOf":[{"$ref":"#/components/schemas/IntradayPublishConfigTargetBase"},{"properties":{"params":{"$ref":"#/components/schemas/IntradayPublishConfigReutersTargetParams"},"target":{"enum":["reuters"],"type":"string"}},"required":["target"],"type":"object"}]},"IntradayPublishConfigReutersTargetParams":{"additionalProperties":false,"properties":{"post_type":{"$ref":"#/components/schemas/ReutersProviderKwargsPostType"},"rounding_decimals":{"type":"integer"},"ticker":{"type":"string"}},"type":"object"},"IntradayPublishConfigSecapiTarget":{"allOf":[{"$ref":"#/components/schemas/IntradayPublishConfigTargetBase"},{"properties":{"target":{"enum":["secapi"],"type":"string"}},"required":["target"],"type":"object"}]},"IntradayPublishConfigTargetBase":{"properties":{"active_time_ranges":{"description":"Time ranges during which values should be published to this target. Target level active_time_ranges override publish_config metric level active_time_ranges.","items":{"$ref":"#/components/schemas/IntradayTickFilter"},"type":"array"}},"type":"object"},"IntradayPublishConfigWrapper":{"description":"oneOfs at the top level of an object lead to hard to work with RootModels in pydantic. Forming this one property object makes importing and passing around this object less painful; there is a lot of code that passes this around.","properties":{"publish_config":{"$ref":"#/components/schemas/IntradayPublishConfig"}},"type":"object"},"IntradayTickFilter":{"additionalProperties":false,"description":"Filter for tick events, used to configure when an rtindex should process ticks or send ticks to targets","properties":{"days_of_week":{"description":"Which days of the week to run the index. Each day of the week is denoted by an integer with Monday = 0 and Sunday = 6","items":{"type":"integer"},"type":"array"},"end_date":{"$ref":"#/components/schemas/MerqTimestamp"},"end_time":{"description":"Inclusive end time of the day to stop running this intraday index. Format is %H:%M:%S.%f. This should be in the timezone of the index based on tzinfo.","example":74340.262345,"type":"string"},"exclude_holidays":{"description":"If this is true use the index holiday calendar to decide which days to run the index. It will only run on non-holidays.","type":"boolean"},"start_date":{"$ref":"#/components/schemas/MerqTimestamp"},"start_time":{"description":"Inclusive start time of the day to start running this intraday index. Format is %H:%M:%S.%f. This should be in the timezone of the index based on tzinfo.","example":74340.262345,"type":"string"}},"type":"object"},"IsoDate":{"example":"Tue, 04 Jan 2000 00:00:00 GMT","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}","type":"string"},"IsoTS":{"example":"Sun, 02 Jan 2022 01:02:03 GMT","pattern":"^\\d{4}-\\d{2}-\\d{2}(T|\\s)\\d{2}:\\d{2}:\\d{2}(\\.\\d{6})?$","type":"string"},"LegacyStaticBasketCalendarConfig":{"properties":{"calendar_identifiers":{"items":{"$ref":"#/components/schemas/CalendarAlias"},"type":"array"},"holidays_to_add":{"items":{"$ref":"#/components/schemas/IsoDate"},"type":"array"},"holidays_to_remove":{"items":{"$ref":"#/components/schemas/IsoDate"},"type":"array"}},"required":["calendar_identifiers"],"type":"object"},"LevelCheck":{"allOf":[{"properties":{"check_type":{"enum":["LEVEL_CHECK"],"type":"string"}},"type":"object"},{"$ref":"#/components/schemas/BaseCheck"},{"properties":{"params":{"$ref":"#/components/schemas/LevelCheckParams"}},"type":"object"}],"required":["check_type","params"],"type":"object"},"LevelCheckParams":{"properties":{"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"}},"required":["min","max"],"type":"object"},"LevelOverride":{"additionalProperties":false,"example":{"comment":"test for some special day for some special reason","date":"2022-03-18","level":1364.344},"properties":{"comment":{"type":"string"},"date":{"$ref":"#/components/schemas/IsoDate"},"level":{"type":"number"}},"required":["date","level"],"type":"object"},"ListDataCollections":{"additionalProperties":true,"properties":{"data_collection":{"default_factory":"list","items":{"$ref":"#/components/schemas/DataCollectionsSpec"},"type":"array"}},"type":"object"},"ListingFixedWeight":{"additionalProperties":false,"properties":{"exchange_country":{"type":"string"},"fixed_weight":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"},"fsym_id":{"type":"string"}},"required":["fsym_id","exchange_country","fixed_weight"],"type":"object"},"ListingWeightCap":{"additionalProperties":false,"properties":{"exchange_country":{"type":"string"},"fsym_id":{"type":"str"},"weight_cap":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"}},"required":["fsym_id","exchange_country","weight_cap"],"type":"object"},"ListingWeightFloor":{"additionalProperties":false,"properties":{"exchange_country":{"type":"string"},"fsym_id":{"type":"str"},"weight_floor":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"}},"required":["fsym_id","exchange_country","weight_cap"],"type":"object"},"MarketCapFilterSpec":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"mkt_cap_type":{"enum":["total_mkt_cap","float_mkt_cap"],"type":"string"},"threshold_addition_max":{"format":"float","type":"number"},"threshold_addition_min":{"format":"float","type":"number"},"threshold_retention_max":{"format":"float","type":"number"},"threshold_retention_min":{"format":"float","type":"number"},"type":{"enum":["market_cap"],"type":"string"}},"required":["type","currency","mkt_cap_type"],"type":"object"},"MarketCapPercentFilterSpec":{"additionalProperties":false,"properties":{"mkt_cap_type":{"enum":["total_mkt_cap","float_mkt_cap"],"type":"string"},"threshold_addition_max":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"},"threshold_addition_min":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"},"threshold_retention_max":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"},"threshold_retention_min":{"format":"float","maximum":100.0,"minimum":0.0,"type":"number"},"type":{"enum":["mkt_cap_percent"],"type":"string"}},"required":["type","mkt_cap_type"],"type":"object"},"MerqTimestamp":{"anyOf":[{"format":"date-time","type":"string"},{"format":"date","type":"string"},{"pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}(?:[ T][0-9]{2}:[0-9]{2}:[0-9]{2})?(?:[.][0-9]{1,6})?$","type":"string"}],"example":["2021-01-01","2021-01-01T01:01:01","2021-01-01T01:01:01.zzzzz"]},"MerqubeIndexPosition":{"allOf":[{"$ref":"#/components/schemas/BasketPosition"},{"$ref":"#/components/schemas/MerqubeIndexSpecific"}],"description":"A basket position that uses custom metrics from merqube data source"},"MerqubeIndexSpecific":{"additionalProperties":false,"properties":{"metric_name":{"type":"string"}},"type":"object"},"MetricResult":{"properties":{"error":{"description":"Error message if the metric could not be computed.","nullable":true,"type":"string"},"value":{"description":"The computed value of the metric, or null if it failed.","nullable":true,"type":"number"}},"type":"object"},"Metrics":{"properties":{"metrics":{"$ref":"#/components/schemas/MetricsArr"},"ts":{"description":"iso8601 format","format":"date-time","type":"string"}},"type":"object"},"MetricsArr":{"items":{"properties":{"id":{"example":"price_return","type":"string"},"value":{"example":1000.0000000000002,"type":"number"}},"type":"object"},"type":"array"},"MetricsDef":{"properties":{"name":{"example":"daily_return","type":"string"},"type":{"example":"double","type":"string"}},"type":"object"},"MetricsSchema":{"properties":{"data_type":{"enum":["string","number64","datetime64","int64","bool","object"],"type":"string"},"description":{"description":"a description of what this metric represents","type":"string"},"name":{"description":"metric name","type":"string"},"object_schema":{"description":"optional - this supports complex objects, ie you can specify the  metric is of this schema. THis allows you to upload a json schema itself of this metric. THis is for downstream users of this metric.","type":"object"}},"required":["data_type","description","name"],"type":"object"},"MicFilterSpec":{"additionalProperties":false,"properties":{"include_or_exclude":{"description":"Whether to include or exclude the specified MIC codes","enum":["INCLUDE","EXCLUDE"],"type":"string"},"mics":{"items":{"type":"string"},"type":"array"},"type":{"enum":["mic"],"type":"string"}},"required":["type","mics","include_or_exclude"],"type":"object"},"NasdaqProviderKwargs":{"additionalProperties":false,"description":"Nasdaq provider custom arguments","properties":{"eod_date_delta":{"description":"How many days to offset the Nasdaq date (T if before 6:30pm EST otherwise T + 1) when getting EOD data from the Index","type":"integer"},"nasdaq_env":{"description":"Which Nasdaq environment to send data to","enum":["testing","production"],"type":"string"}},"required":["nasdaq_env"],"type":"object"},"NestedCalendarSchema":{"additionalProperties":false,"properties":{"children":{"items":{"oneOf":[{"$ref":"#/components/schemas/calendar_identifiers"},{"$ref":"#/components/schemas/holidays_to_add"},{"$ref":"#/components/schemas/NestedCalendarSchema"}]},"type":"array"},"operator":{"enum":["union","intersection","difference"],"type":"string"},"weekmask":{"items":{"default":["Mon","Tue","Wed","Thu","Fri"],"description":"weekmask of valid business days","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],"type":"string"},"type":"array"}},"required":["operator","children"],"type":"object"},"NewSecurity":{"additionalProperties":false,"properties":{"eff_ts":{"$ref":"#/components/schemas/MerqTimestamp","description":"DEPRECATED: this is no longer used for security creates, but allowed for backwards compatibility"},"name":{"pattern":"^[^!*'() ;:@&=+$,/?%#\\[\\]]","type":"string"},"namespace":{"description":"the calling user must have permission to this namespace to create the security in this namespace","type":"string"},"prov_ts":{"$ref":"#/components/schemas/MerqTimestamp"},"source":{"type":"string"}},"required":["name","namespace","prov_ts"],"type":"object"},"NotificationConfig":{"additionalProperties":false,"properties":{"email_list_uuid":{"type":"string"},"emails":{"items":{"type":"string"},"type":"array"},"enabled":{"type":"boolean"}},"type":"object"},"OptionExerciseStyle":{"enum":["EUROPEAN","AMERICAN"],"type":"string"},"OptionExpirationType":{"enum":["AM","PM"],"example":"AM","title":"Option Expiration Type","type":"string"},"OptionPosition":{"allOf":[{"$ref":"#/components/schemas/OptionSpecific"},{"$ref":"#/components/schemas/BasketPosition"}],"description":"An Option position"},"OptionPriceMetrics":{"additionalProperties":false,"description":"Option Price Metrics","example":{"bid_ask_spread":0.01,"delta":0.5,"dividend_yield":0.02,"gamma":0.1,"interest_rate":0.01,"price":0.01,"spot":100.0,"theta":-0.01,"vega":0.2,"vol":0.2},"properties":{"bid_ask_spread":{"description":"Spread between Bid and Ask prices of the option being priced","format":"number","type":"number"},"delta":{"description":"Delta of this option","format":"number","type":"number"},"dividend_yield":{"description":"Implied Dividend Yield for the underlying","format":"number","type":"number"},"gamma":{"description":"Gamma of the option being priced","format":"number","type":"number"},"interest_rate":{"description":"Implied Interest Rate","format":"number","type":"number"},"price":{"description":"Option Price","format":"number","type":"number"},"spot":{"description":"Underlying spot price","format":"number","type":"number"},"theta":{"description":"Theta of the option being priced","format":"number","type":"number"},"vega":{"description":"Vega of the option being priced","format":"number","type":"number"},"vol":{"description":"Implied Volatility","format":"number","type":"number"}},"required":["price","vol","interest_rate","dividend_yield","spot","delta","theta","gamma","vega","bid_ask_spread"],"title":"Option Price Metrics Schema","type":"object"},"OptionResponse":{"properties":{"bid_ask_spread":{"description":"Spread between Bid and Ask prices of the option being priced","format":"number","type":"number"},"delta":{"description":"Delta of this option","format":"number","type":"number"},"dividend_yield":{"description":"Implied Dividend Yield for the underlying","format":"number","type":"number"},"gamma":{"description":"Gamma of the option being priced","format":"number","type":"number"},"interest_rate":{"description":"Implied Interest Rate","format":"number","type":"number"},"price":{"description":"Option Price","format":"number","type":"number"},"request_id":{"description":"Request ID sent in the request","type":"string"},"spot":{"description":"Underlying spot price","format":"number","type":"number"},"theta":{"description":"Theta of the option being priced","format":"number","type":"number"},"vega":{"description":"Vega of the option being priced","format":"number","type":"number"},"vol":{"description":"Implied Volatility","format":"number","type":"number"}},"title":"Option Response Schema","type":"object","x-examples":{}},"OptionRoot":{"enum":["SPY","QQQ","IWM","EFA","EEM","TLT","LQD","HYG","GLD"],"type":"string"},"OptionSpecific":{"additionalProperties":false,"properties":{"amount":{"title":"Amount of Shares","type":"number"},"currency":{"default":"USD","title":"Currency","type":"string"},"delta_hedge_flag":{"type":"boolean"},"expiration_date":{"$ref":"#/components/schemas/IsoDate","title":"Expiration Date"},"expiration_type":{"$ref":"#/components/schemas/OptionExpirationType","title":"Expiration Type"},"identifier":{"title":"Identifier","type":"string"},"identifier_type":{"$ref":"#/components/schemas/PositionIdentifierType"},"lag":{"$ref":"#/components/schemas/IsoTS","title":"Option Lag"},"leg_multiple":{"type":"number"},"mic":{"pattern":"[A-Z0-9]{4}","title":"Mic Code","type":"string"},"strike":{"title":"Strike Price","type":"number"},"strike_type":{"enum":["PCT_SPOT","DELTA","SPCT_SPOT"],"title":"Strike Type","type":"string"},"structure_id":{"minimum":0,"type":"number"},"style":{"$ref":"#/components/schemas/OptionStyle","title":"Style"},"type":{"$ref":"#/components/schemas/OptionType","title":"Type"},"underlying":{"title":"Underlying Symbol","type":"string"},"vol_multiplier":{"type":"number"}},"required":["expiration_date","type","strike","amount","underlying","currency"],"type":"object"},"OptionStrategyType":{"enum":["COVERED_CALL","PUT_WRITE","PROTECTIVE_PUT","COLLAR","CUSTOM"],"example":"COLLAR","title":"Option Strategy Type","type":"string"},"OptionStyle":{"enum":["AMERICAN","EUROPEAN"],"example":"AMERICAN","title":"Option Style","type":"string"},"OptionType":{"enum":["PUT","CALL"],"example":"PUT","title":"Option Type","type":"string"},"OptionsUnderlierGet":{"additionalProperties":false,"properties":{"allowed_underliers":{"items":{"$ref":"#/components/schemas/OptionsUnderlierItem","type":"object"},"type":"array"}},"required":["allowed_underliers"],"type":"object"},"OptionsUnderlierItem":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"PercentChangeCheck":{"allOf":[{"properties":{"check_type":{"enum":["PERCENT_CHANGE_CHECK"],"type":"string"}},"type":"object"},{"$ref":"#/components/schemas/BaseCheck"},{"properties":{"params":{"$ref":"#/components/schemas/PercentChangeCheckParams"}},"type":"object"}],"required":["check_type","params"],"type":"object"},"PercentChangeCheckParams":{"properties":{"max":{"nullable":true,"type":"number"},"min":{"nullable":true,"type":"number"}},"required":["min","max"],"type":"object"},"PeriodicDateConfig":{"additionalProperties":false,"oneOf":[{"$ref":"#/components/schemas/WeeklyRebalanceDateConfig"},{"$ref":"#/components/schemas/AdvancedRebalanceDateConfig"},{"$ref":"#/components/schemas/SimpleRebalanceDateConfigOptions"},{"$ref":"#/components/schemas/XthDayRebalanceDateConfig"}]},"PortfolioStatus":{"description":"Indicates the status of a target portfolio.  A portfolio can only be used in an index if status is `FINAL` * `PENDING_VALIDATION` - Custom validation is necessary, and is queued up * `FAILED_VALIDATION` - Custom validation has failed. * `PASSED_VALIDATION` - Custom validation has succeeded. The portfolio must now be selected * `SELECTED` - Selected for usage on a date, but has not yet been locked in / finalized * `UNSELECTED` - Was previously selected, but a newer portfolio has replaced it for that date * `FINAL` - This portfolio can now be used for the given date. * `DELETED` - This portfolio has been deleted or rejected for usage.\n","enum":["PENDING_VALIDATION","FAILED_VALIDATION","PASSED_VALIDATION","SELECTED","UNSELECTED","FINAL","DELETED"],"title":"PortfolioStatus","type":"string"},"PortfolioUom":{"description":"Used to indicate if portfolio amounts are absolute or relative. weight indicates portfolio amounts are relative weights units indicates portfolio amounts are absolute values, e.g. shares or number of contracts","enum":["SHARES","WEIGHT"],"title":"PortfolioUom","type":"string"},"PositionIdentifierType":{"enum":["RIC","CURRENCY_CODE","FSYM_ID","TICKER","BBG_TICKER","CUSIP"],"example":"FSYM_ID","title":"PositionIdentifierType","type":"string"},"Provider":{"description":"currently supported providers","enum":["bloomberg","reuters","morningstar","factset","nasdaq","wind","secapi"],"example":"bloomberg","type":"string"},"RealTimeTradeType":{"description":"Trade types that can be used for real time quotes. Examples of ineligible trade types are dark pool and odd lot trades.","enum":["ELIGIBLE","INELIGIBLE"],"title":"RealTimeTradeType"},"RebalFrequency":{"enum":["Annual","Daily","Monthly","Quarterly","Semi-Annual","Weekly","Bi-Monthly","Intraday","None"],"type":"string"},"RebalanceConfig":{"properties":{"rebalance_dates":{"$ref":"#/components/schemas/PeriodicDateConfig"},"rebalance_method":{"$ref":"#/components/schemas/RebalanceMethodConfig"},"selection_dates":{"enum":["rebalance_date","prev_month","prev_week"],"type":"string"}},"required":["rebalance_dates","rebalance_method","selection_dates"],"type":"object"},"RebalanceMethodConfig":{"additionalProperties":false,"oneOf":[{"$ref":"#/components/schemas/FreeFloatRebalanceConfig"},{"$ref":"#/components/schemas/RebalanceTypeWithNoConfig"}]},"RebalanceTypeWithNoConfig":{"additionalProperties":false,"properties":{"method":{"enum":["FIXED_WEIGHT","EQUAL_WEIGHT"],"type":"string"}},"required":["method"],"type":"object"},"ReinvestmentTime":{"additionalProperties":false,"default":"AT_OPEN","description":"set to the type of reinvestment to apply","enum":["AT_OPEN","AT_CLOSE"],"example":"AT_OPEN","type":"string"},"ReinvestmentType":{"additionalProperties":false,"default":"INDEX","description":"set to the type of reinvestment to apply","enum":["INDEX","SECURITY"],"example":"INDEX","type":"string"},"Related":{"properties":{"default_display":{"default":false,"type":"boolean"},"id":{"type":"string"},"metric":{"type":"string"},"name":{"type":"string"},"type":{"enum":["security","index"],"type":"string"}},"required":["id","name","type"],"type":"object"},"ReutersProviderKwargs":{"additionalProperties":false,"description":"Reuters provider custom arguments","properties":{"post_type":{"$ref":"#/components/schemas/ReutersProviderKwargsPostType"}},"type":"object"},"ReutersProviderKwargsPostType":{"description":"How to post the data to Reuters, either the end of day method (EOD), real time method (RT) or both (EOD_AND_RT)","enum":["EOD","RT","EOD_AND_RT","EOD_AND_RT_COMBINED"],"type":"string"},"RicEquityPosition":{"allOf":[{"$ref":"#/components/schemas/BasketPosition"},{"$ref":"#/components/schemas/RicSpecific"}],"description":"Equity position, identified by a RIC"},"RicSpecific":{"additionalProperties":false,"properties":{"identifier_type":{"$ref":"#/components/schemas/PositionIdentifierType"},"real_time_trade_types":{"items":{"$ref":"#/components/schemas/RealTimeTradeType"},"type":"array"},"use_primary_listing":{"default":false,"description":"use the security's primary listing rather than the one from the identifier","title":"Use Primary Listing","type":"boolean"}},"type":"object"},"RunConfig":{"additionalProperties":true,"properties":{"airflow_config":{"$ref":"#/components/schemas/AirflowConfig"},"alert_priority":{"enum":["P1","P2","P3","P4","P5"],"type":"string"},"command":{"type":"string"},"command_arguments":{"$ref":"#/components/schemas/ArgumentsOrEnvVars"},"day_chunk_size":{"description":"if set to a number, the index run will be split into chunks of this number of days","type":"integer"},"dqms":{"$ref":"#/components/schemas/DqmsConfig"},"holiday_calendar":{"$ref":"#/components/schemas/HolidayCalendarSpec"},"index_report_uuids":{"items":{"type":"string"},"type":"array"},"index_reports":{"oneOf":[{"items":{"type":"string"},"minItems":1,"type":"array"},{"items":{"$ref":"#/components/schemas/IndexReport"},"type":"array"}]},"job_enabled":{"type":"boolean"},"num_days_to_load":{"type":"integer"},"pod_image_and_tag":{"description":"overrides the image","type":"string"},"schedule":{"$ref":"#/components/schemas/Schedule"},"state_key":{"description":"ID to use when storing or reading the state of an instance of a dissapi object.","minLength":1,"type":"string"},"tzinfo":{"type":"string"}},"required":["schedule","job_enabled","num_days_to_load"],"type":"object"},"RunConfigLabel":{"additionalProperties":true,"allOf":[{"$ref":"#/components/schemas/RunConfig"},{"$ref":"#/components/schemas/RunConfigLabelAdditional"}],"type":"object"},"RunConfigLabelAdditional":{"description":"used when there needs to be different run configurations, each with a different label, such as 'initial' vs 'final'","properties":{"label":{"description":"unique label of this rc","type":"string"}},"required":["label"],"type":"object"},"RunState":{"properties":{"calculation_start_ts":{"$ref":"#/components/schemas/IsoTS","description":"set to the start of the last calculation, if the status is not PENDING_CREATION (has not ever started)"},"error":{"description":"An error message if status is FAILED","type":"string"},"status":{"$ref":"#/components/schemas/RunStateStatus"}},"required":["status"],"type":"object"},"RunStateStatus":{"description":"the state of the last index run, if applicable","enum":["PENDING_CREATION","SUCCEEDED","FAILED","RUNNING"],"type":"string"},"S3Bucket":{"additionalProperties":false,"properties":{"bucket":{"type":"string"},"path":{"type":"string"}},"required":["bucket"],"type":"object"},"Schedule":{"additionalProperties":false,"properties":{"business_days_prior":{"example":1,"type":"integer"},"event_driven":{"default":false,"description":"if true, there will be no defined schedule for the DAG (as in you could have a created DAG that won't run unless triggered manually)","type":"boolean"},"holiday_calendar":{"properties":{"cal_type":{"example":"MIC","type":"string"},"mic":{"example":"XNYS","type":"string"}},"type":"object"},"retries":{"type":"integer"},"retry_interval_min":{"type":"integer"},"schedule_cron":{"type":"string"},"schedule_start":{"type":"string"},"timeout_delta":{"example":"minutes=17","type":"string"},"triggers":{"description":"the dataset trigger to which the dag subscribes to. This is a list of trigger(s)","example":["trigger://exchange/XNYS/early_closing.merq"],"items":{"type":"string"},"type":"array"}},"required":["retries","retry_interval_min","schedule_start"],"type":"object"},"SecapiBasketPosition":{"allOf":[{"$ref":"#/components/schemas/BasketPosition"},{"$ref":"#/components/schemas/SecapiSpecific"}],"description":"A basket position that uses custom metrics from merqube data source"},"SecapiProviderKwargs":{"additionalProperties":false,"description":"Secapi provider custom arguments","properties":{"metric":{"type":"string"},"security_name":{"type":"string"},"security_type":{"type":"string"}},"required":["security_type","security_name","metric"],"type":"object"},"SecapiSpecific":{"additionalProperties":false,"properties":{"custom_metric":{"type":"string"}},"type":"object"},"SectorFilterSpec":{"additionalProperties":false,"properties":{"include_or_exclude":{"description":"Whether to include or exclude the specified sectors","enum":["INCLUDE","EXCLUDE"],"type":"string"},"sectors":{"items":{"type":"string"},"type":"array"},"type":{"enum":["sector"],"type":"string"}},"required":["type","sectors","include_or_exclude"],"type":"object"},"SecurityCreationResponse":{"properties":{"id":{"type":"string"},"inserts":{"type":"integer"}},"type":"object"},"SecurityListPatchPutGet":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/SecurityListPost"},{"$ref":"#/components/schemas/CrudExtra"}],"type":"object"},"SecurityListPost":{"additionalProperties":false,"description":"represents a list of securities","properties":{"name":{"description":"unique name among all other security lists","pattern":"^[^!*'() ;:@&=+$,/?%#\\[\\]]","type":"string"},"namespace":{"type":"string"},"realtime":{"type":"boolean"},"securities":{"items":{"additionalProperties":false,"properties":{"identifier_type":{"enum":["RIC","secapi_name"],"type":"string"},"identifier_value":{"example":"AAPL.QQ","type":"string"},"security_type":{"example":"equity","type":"string"}},"required":["security_type","identifier_type","identifier_value"],"type":"object"},"type":"array"}},"required":["name","securities"],"type":"object"},"SecurityMetrics":{"properties":{"eff_ts":{"$ref":"#/components/schemas/MerqTimestamp"},"id":{"example":"0000699a-fcd7-45d4-8ce4-064a4ffeced0","type":"string"},"lineage":{"description":"data lineage information, for MerQube use only.","type":"object"},"metric":{"example":"Level","type":"string"},"prov_ts":{"$ref":"#/components/schemas/MerqTimestamp"},"source":{"example":"some_gcp_feed","type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"integer"},{"type":"boolean"},{"items":{},"type":"array"},{"type":"object"}]}},"required":["eff_ts","id","metric","value","prov_ts"],"type":"object"},"SecurityMetricsDeletion":{"description":"like a SecurityMetric, but no value and an optional prov_ts; marks the deletion of an id/eff_ts/metric tuple.","properties":{"eff_ts":{"$ref":"#/components/schemas/MerqTimestamp"},"id":{"example":"0000699a-fcd7-45d4-8ce4-064a4ffeced0","type":"string"},"metric":{"example":"Level","type":"string"},"prov_ts":{"$ref":"#/components/schemas/MerqTimestamp"},"source":{"example":"some_gcp_feed","type":"string"}},"required":["id","eff_ts","metric"],"type":"object"},"SimpleRebalanceDateConfigOptions":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/InitialMonthConfig"},{"properties":{"method":{"enum":["FIRST BUSINESS DAY","LAST BUSINESS DAY"],"type":"string"}},"required":["method"],"type":"object"}]},"StaticBasketCalendarConfig":{"properties":{"holidays_to_add":{"items":{"$ref":"#/components/schemas/IsoDate"},"type":"array"},"holidays_to_remove":{"items":{"$ref":"#/components/schemas/IsoDate"},"type":"array"},"swaps_monitor_codes":{"items":{"type":"string"},"type":"array"}},"required":["swaps_monitor_codes"],"type":"object"},"StaticListingExclusionFilterSpec":{"additionalProperties":false,"properties":{"static_listings":{"items":{"$ref":"#/components/schemas/FsymAndCountry"},"type":"array"},"type":{"enum":["static_listing_exclusion"],"type":"string"}},"required":["type","static_listings"],"type":"object"},"Stats":{"properties":{"annual_volatility":{"example":3.717606464173326,"type":"number"},"annualized_return":{"example":6.665050717276233,"type":"number"},"cumulative_return":{"example":2.7597506251556547,"type":"number"},"end_date":{"$ref":"#/components/schemas/MerqTimestamp"},"id":{"example":"YTD","type":"string"},"max_drawdown":{"example":-1.3877029296510448,"type":"number"},"sharpe_ratio":{"example":1.759543308780235,"type":"number"},"start_date":{"$ref":"#/components/schemas/MerqTimestamp"}}},"StatsRequest":{"properties":{"benchmark":{"properties":{"benchmark_type":{"enum":["MERQUBE_INDEX","EQUITY"],"example":"MERQUBE_INDEX","type":"string"},"identifier":{"example":"MY_INDEX_NAME","type":"string"},"identifier_type":{"enum":["TICKER","FSYM_ID"],"example":"TICKER","type":"string"},"metric":{"example":"index_level","type":"string"}},"required":["identifier","identifier_type","type"],"type":"object"},"end_date":{"example":"2006-12-29","format":"date","type":"string"},"index_metric":{"default":"price_return","example":"price_return","type":"string"},"return_period":{"enum":["D","W","M","Y"],"example":"D","type":"string"},"start_date":{"example":"2006-12-29","format":"date","type":"string"},"target_return":{"example":0,"format":"float","minimum":0,"type":"number"}},"required":["return_period"],"type":"object"},"StatsResponse":{"properties":{"metrics":{"additionalProperties":{"$ref":"#/components/schemas/MetricResult"},"description":"A dictionary of computed metrics and their results or errors.","type":"object"}},"type":"object"},"Status":{"properties":{"created_at":{"type":"string"},"created_by":{"type":"string"},"last_modified":{"type":"string"},"last_modified_by":{"type":"string"},"locked_after":{"description":"If this is set (non null), the manifest is locked for all edits to any other field after this timestamp. A PUT/PATCH may be used to first unlock the manifest, by setting this field (to a max of one hour in the future), or to `null` again, to make other edits.","format":"date-time","type":"string"}},"required":["last_modified"],"type":"object"},"StrategyOptionExpiryPeriodType":{"enum":["ANNUALLY","QUARTERLY","MONTHLY_3RD_FRIDAY","WEEKLY"],"example":"MONTHLY_3RD_FRIDAY","title":"Expiry Period Type","type":"string"},"StrategyOptionStrikeType":{"enum":["PCT_SPOT","DELTA","INCOME","COSTLESS"],"example":"PCT_SPOT","title":"Option Strike Type","type":"string"},"SubPod":{"additionalProperties":false,"properties":{"arguments":{"$ref":"#/components/schemas/ArgumentsOrEnvVars"},"command":{"type":"string"},"env_vars":{"$ref":"#/components/schemas/ArgumentsOrEnvVars"},"pod_kwargs":{"aditionalProperties":true,"properties":{"name":{"type":"string"}},"type":"object"},"pod_type":{"type":"string"},"uuid":{"type":"string"}},"required":["command","pod_type","uuid"],"type":"object"},"SubSectorFilterSpec":{"additionalProperties":false,"properties":{"include_or_exclude":{"description":"Whether to include or exclude the specified sub-sectors","enum":["INCLUDE","EXCLUDE"],"type":"string"},"sub_sectors":{"items":{"type":"string"},"type":"array"},"type":{"enum":["sub_sector"],"type":"string"}},"required":["type","sub_sectors","include_or_exclude"],"type":"object"},"TRBCFilterSpec":{"additionalProperties":false,"properties":{"include_or_exclude":{"description":"Whether to include or exclude the specified TRBC codes","enum":["INCLUDE","EXCLUDE"],"type":"string"},"trbc_codes":{"description":"TRBC codes to filter by","items":{"type":"integer"},"type":"array"},"type":{"enum":["trbc"],"type":"string"}},"required":["type","trbc_codes","include_or_exclude"],"type":"object"},"TargetPortfolioHandlerNotificationConfig":{"additionalProperties":false,"properties":{"diss_destinations":{"$ref":"#/components/schemas/DisseminationDestinations"},"file_name_format":{"type":"string"}},"type":"object"},"TargetPortfolioHandlerPatchPutGet":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/TargetPortfolioHandlerPost"},{"$ref":"#/components/schemas/CrudExtra"}],"type":"object"},"TargetPortfolioHandlerPost":{"additionalProperties":false,"description":"Describes how to handle the validation and selection of Target Portfolios","properties":{"auto_select":{"description":"If true, the handler will automatically select the last valid portfolio for an effective timestamp","type":"boolean"},"event_notification_config":{"additionalProperties":false,"properties":{"FAILED_VALIDATION":{"$ref":"#/components/schemas/TargetPortfolioHandlerNotificationConfig"},"FINAL":{"$ref":"#/components/schemas/TargetPortfolioHandlerNotificationConfig"},"PASSED_VALIDATION":{"$ref":"#/components/schemas/TargetPortfolioHandlerNotificationConfig"},"PAST_DEADLINE":{"$ref":"#/components/schemas/TargetPortfolioHandlerNotificationConfig"},"PENDING_VALIDATION":{"$ref":"#/components/schemas/TargetPortfolioHandlerNotificationConfig"},"SELECTED":{"$ref":"#/components/schemas/TargetPortfolioHandlerNotificationConfig"},"UNSELECTED":{"$ref":"#/components/schemas/TargetPortfolioHandlerNotificationConfig"}},"type":"object"},"intraday_auto_select":{"description":"If true, the handler will automatically select the last valid intraday portfolio for an effective timestamp","type":"boolean"},"intraday_selection_window":{"$ref":"#/components/schemas/TimestampWindow","description":"Window to select intraday portfolios for an effective timestamp."},"intraday_validation_window":{"$ref":"#/components/schemas/TimestampWindow","description":"Window to submit intraday portfolios for validation."},"intraday_validator_fn":{"type":"string"},"name":{"type":"string"},"namespace":{"description":"the calling user must have permission to this namespace to create the handler in this namespace","type":"string"},"selection_window":{"$ref":"#/components/schemas/TimestampWindow"},"validation_window":{"$ref":"#/components/schemas/TimestampWindow"},"validator_fn":{"type":"string"}},"required":["name","namespace"],"type":"object"},"TickConfiguration":{"additionalProperties":false,"description":"configuration for intraday index ticking time information","properties":{"intraday_timezone":{"default":"US/Eastern","example":"US/Eastern","type":"string"},"tick_end_hour":{"description":"hour the index will end ticking intraday","maximum":23,"minimum":0,"type":"integer"},"tick_end_minute":{"description":"minute the index will end ticking intraday","maximum":59,"minimum":0,"type":"integer"},"tick_start_hour":{"description":"hour the index will start ticking intraday","maximum":23,"minimum":0,"type":"integer"},"tick_start_minute":{"description":"minute the index will start ticking intraday","maximum":59,"minimum":0,"type":"integer"}},"type":"object"},"TimestampWindow":{"additionalProperties":false,"properties":{"end_ts":{"description":"the time of day of the deadline","pattern":"^(?:[01]\\d|2[0-3]):(?:[0-5]\\d):(?:[0-5]\\d)$","type":"string"},"start_ts":{"description":"the time of day of the deadline","pattern":"^(?:[01]\\d|2[0-3]):(?:[0-5]\\d):(?:[0-5]\\d)$","type":"string"},"tzinfo":{"description":"Timezone of the window","type":"string"}},"required":["end_ts"],"type":"object"},"TradeType":{"enum":["BUY","SELL"],"example":"BUY","title":"Trade Type","type":"string"},"TransactionCostsConfig":{"additionalProperties":false,"properties":{"individual_transaction_cost":{"additionalProperties":{"$ref":"#/components/schemas/IdTransactionCost"},"type":"object"},"pool_cash":{"default":false,"type":"boolean"},"transaction_cost_activated":{"default":false,"type":"boolean"}},"type":"object"},"ValidEquityBasketPosition":{"oneOf":[{"$ref":"#/components/schemas/BasketPosition"},{"$ref":"#/components/schemas/RicEquityPosition"},{"$ref":"#/components/schemas/FsymEquityPosition"},{"$ref":"#/components/schemas/OptionPosition"},{"$ref":"#/components/schemas/FuturesPosition"},{"$ref":"#/components/schemas/SecapiBasketPosition"},{"$ref":"#/components/schemas/MerqubeIndexPosition"}]},"VariableInterestRateConfig":{"additionalProperties":false,"description":"configuration for variable interest rates on options strategy self serve indices","properties":{"is_constant":{"default":false,"description":"Used to determine if the rate value is to be set once per rebalance period or changed every day","type":"boolean"},"reference_rate":{"enum":["SOFR","EFFR"],"type":"string"},"spread":{"type":"number"}},"required":["reference_rate","spread"],"type":"object"},"Webpage":{"properties":{"custom_charts":{"items":{"$ref":"#/components/schemas/CustomCharts"},"type":"array"},"visible":{"default":true,"type":"boolean"}},"type":"object"},"WeeklyRebalanceDateConfig":{"additionalProperties":false,"allOf":[{"properties":{"frequency":{"default":"WEEKLY","enum":["WEEKLY"],"type":"string"},"roll_forward":{"default":true,"type":"boolean"}},"required":["frequency"],"type":"object"},{"$ref":"#/components/schemas/WeeklyRebalanceDates"}]},"WeeklyRebalanceDates":{"additionalProperties":false,"properties":{"day":{"enum":["Monday","Tuesday","Wednesday","Thursday","Friday"],"type":"string"}},"required":["day"],"type":"object"},"WeightingSpec":{"additionalProperties":false,"properties":{"default_weight_cap":{"description":"The overall weight cap for the allocation unit, if applicable","format":"float","type":"number"},"default_weight_floor":{"description":"Default minimum stock weight for any stock","format":"float","type":"number"},"fixed_weight_listings":{"default":[],"items":{"$ref":"#/components/schemas/ListingFixedWeight"},"type":"array"},"listing_weight_caps":{"default":[],"items":{"$ref":"#/components/schemas/ListingWeightCap"},"type":"array"},"listing_weight_floors":{"default":[],"items":{"$ref":"#/components/schemas/ListingWeightFloor"},"type":"array"},"weighting_strategy":{"enum":["equal_weight","total_mkt_cap","float_mkt_cap","fixed","advt_3m"],"type":"string"}},"required":["weighting_strategy"],"type":"object"},"XthDayRebalanceDateConfig":{"additionalProperties":false,"allOf":[{"$ref":"#/components/schemas/InitialMonthConfig"},{"properties":{"method":{"enum":["XTH CALENDAR DAY"],"type":"string"},"xth_day":{"maximum":31,"minimum":1,"type":"integer"}},"required":["method"],"type":"object"}]},"calendar_identifiers":{"properties":{"calendar_identifiers":{"items":{"pattern":"^(FUT|MIC|FX|SM|MQI|OVERLAY):.+$","type":"string"},"type":"array"}},"type":"object"},"holidays_to_add":{"properties":{"holidays_to_add":{"items":{"format":"date","type":"string"},"type":"array"}},"type":"object"}}},"info":{"contact":{"email":"support@merqube.com","name":"API Support","url":"https://www.merqube.com/contact"},"description":"MerQube APIs","title":"MerQube API","version":"4.40.0"},"openapi":"3.1.0","paths":{"/api":{"get":{"description":"serves this api in json format","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"200 response"}},"tags":["api"]}},"/findstrike":{"post":{"description":"MERQUBE FINDSTRIKE API returns the strike of a custom option given the underlying (root), the budget (cost of the option for which the strike is desired), date on which the strike price is desired (asofdate), expiration date of the option (expiry), and the type of the option (otype) [Put/Call], and the exercise type (etype)[European/American]. The API response contains the parameter strike which provides the strike of the option for the given budget.","operationId":"find_strike_for_given_budget","requestBody":{"content":{"application/json":{"schema":{"properties":{"asofdate":{"description":"The date as of which the price of the option is being requested. Any date between 01-10-2005 and the most recent trading date of the underlying asset.","example":"Tue, 26 May 2020 00:00:00 GMT","format":"date","type":"string"},"budget":{"example":3.1,"format":"number","type":"number"},"etype":{"description":"The option exercise type is either \u201cEuropean\u201d, which can only be exercised at expiration, or \u201cAmerican\u201d, which can be exercised at any time up to and including the expiration date.","enum":["European","American"],"type":"string"},"expiry":{"description":"The expiry or expiration date is the date on which the options contract expires. Any date between 01-10-2005 and the expiration date of the longest dated options series on the given underlying asset.","example":"Mon, 15 Feb 2021 00:00:00 GMT","format":"date","type":"string"},"extrapolation_days":{"default":0,"description":"This parameter allows the pricing of the option to use an implied dividend schedule to be moved forward by the number of days specified in this parameter. Any number greater than or equal to zero. Default value is zero.","example":0,"type":"integer"},"otype":{"description":"The option type refers to whether an option is a put option or a call option.","enum":["put","call"],"type":"string"},"request_id":{"description":"This request id is returned back to the sender in the response","type":"string"},"root":{"description":"Code for the underlying instrument on which the option is priced.","enum":["SPY","TLT","QQQ","IWM"],"type":"string"},"scale_dividend":{"default":1,"description":"Allows all of the dividends in the implied dividend schedule to be scaled by this input parameter. Any number greater than zero and less than 5. Default value is one.","example":1,"format":"number","type":"number"},"volatility_shift":{"default":0,"description":"Allows the user to change the implied volatility that is used to compute the price of the option (calculated from the volatility surface) by adding the input value to the one computed. For example, if the parameter provided is 0.1, the implied volatility used to calculate the option price would add 10% to the implied volatility calculated internally from the volatility surface. Number between -0.25 and 0.25, default value of zero.","example":0,"format":"number","type":"number"}},"required":["root","budget","asofdate","expiry","otype","etype"],"type":"object"}}},"description":"Parameters for the option to price","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindStrikeResponse"}}},"description":"200 response"}},"summary":"Given budget and other criteria, find strike price","tags":["options"]},"servers":[{"url":"https://api.merqurian.com"}]},"/helper/index-template/buffer_simple":{"post":{"description":"Generate a buffer index","operationId":"helper_template_buffer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBufferConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a buffer index","tags":["helper"]}},"/helper/index-template/decrement":{"post":{"description":"Generate a full single stock total return decrement overlay index manifest (does not create an index!)","operationId":"helper_template_decrement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientDecrementConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a full single stock total return decrement overlay index manifest (does not create an index!)","tags":["helper"]}},"/helper/index-template/defined_outcome":{"post":{"description":"Generate a Defined Outcome Options Index","operationId":"helper_template_defined_outcome","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ClientDefinedOutcomeBufferConfig"},{"$ref":"#/components/schemas/ClientDefinedOutcomeAcceleratorConfig"},{"$ref":"#/components/schemas/ClientDefinedOutcomeCustomStrategyConfig"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a Defined Outcome Optons Index","tags":["helper"]}},"/helper/index-template/equity_index":{"post":{"description":"Generate a Generalized Equity Index","operationId":"helper_template_equity_index","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientEquityIndexConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a Generalized Equity Index","tags":["helper"]}},"/helper/index-template/multi_eb":{"post":{"description":"Generate a full equity basket index manifest (does not create an index!)","operationId":"helper_template_multieb","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientMultiEBConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a full equity basket index manifest (does not create an index!)","tags":["helper"]}},"/helper/index-template/multi_eb_portfolios":{"post":{"description":"Generate a proper POST to target_portfolio - the same two inputs (constituents and levels) as multi_eb, except used to just update the portfolio of an existing index. This is included in template/multi_eb.","operationId":"helper_template_multieb_ports","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientMultiEBPortUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ClientTemplateResponse"},"type":"array"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a proper POST to target_portfolio - the same two inputs (constituents and levels) as multi_eb, except used to just update the portfolio of an existing index. This is included in template/multi_eb.","tags":["helper"]}},"/helper/index-template/option_strategies":{"post":{"description":"Generate a Option Strategies Index","operationId":"helper_template_option_strategies","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientOptionStrategiesConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a Option Strategies Index","tags":["helper"]}},"/helper/index-template/single_option":{"post":{"description":"Generate a single option index","operationId":"helper_template_single_option","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSingleOptionConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a single option index","tags":["helper"]}},"/helper/index-template/sstr":{"post":{"description":"Generate a full single stock total return index manifest (does not create an index!)","operationId":"helper_template_sstr","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSSTRConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a full single stock total return index manifest (does not create an index!)","tags":["helper"]}},"/helper/index-template/static_basket":{"post":{"description":"Generate a full static basket index manifest (does not create an index!)","operationId":"helper_template_sstr","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientStaticBasketConfig"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a full static basket index manifest (does not create an index!)","tags":["helper"]}},"/helper/index-template/vol_target":{"post":{"description":"Generate a Vol Target Index","operationId":"helper_template_vol_target","requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientTemplateResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Generate a Vol Target Index","tags":["helper"]}},"/helper/index/run-states":{"get":{"description":"Returns the latest index run states for the uuids provided. if no uuids provided will return all","parameters":[{"$ref":"#/components/parameters/indexUuidsParam"},{"$ref":"#/components/parameters/pageParam"},{"$ref":"#/components/parameters/pageSizeParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"200 response"}},"summary":"Return the latest index run states for the uuids provided","tags":["helper"]}},"/helper/options_underlier":{"get":{"description":"Returns all the allowed options underlier for the caller","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionsUnderlierGet"}}},"description":"200 response"},"403":{"description":"not authorized to perform this operation"}},"summary":"Returns all the allowed options underlier for the caller","tags":["helper"]}},"/helper/solver/defined_outcome":{"post":{"description":"Solve for the options prices and variable leg of a Defined Outcome Options Index","operationId":"helper_solver_defined_outcome","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefinedOutcomeSolverRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefinedOutcomeSolverResponse"}}},"description":"OK"},"400":{"description":"illegal request body"}},"summary":"Solve for the options prices and variable leg of a Defined Outcome Options Index","tags":["helper"]}},"/identifier":{"get":{"description":"return all currently supported identifier types","responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}},"description":"200 response"}},"summary":"return all currently supported identifier types","tags":["identifier"]}},"/identifier/{provider}":{"get":{"description":"Get all identifiers for this provider","parameters":[{"$ref":"#/components/parameters/filterParam"},{"$ref":"#/components/parameters/idsParam"},{"$ref":"#/components/parameters/nameParam"},{"$ref":"#/components/parameters/namesParam"},{"$ref":"#/components/parameters/namespaceParam"},{"$ref":"#/components/parameters/fieldsParam"},{"$ref":"#/components/parameters/debugParam"},{"$ref":"#/components/parameters/formatParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error_codes":{"$ref":"#/components/schemas/ErrorCodes"},"results":{"items":{"$ref":"#/components/schemas/IdentifierUUIDPatchPutGet"},"type":"array"}},"type":"object"}}},"description":"200 response"}},"summary":"Get all identifiers for this provider","tags":["identifier"]},"parameters":[{"$ref":"#/components/parameters/providerParam"}],"post":{"description":"Create a new identifier for this provider","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentifierUUIDPost"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"the uuid of this identifier","type":"string"},"status":{"type":"string"}},"type":"object"}}},"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized to perform this operation"}},"summary":"Create a new identifier for this provider","tags":["identifier"]}},"/identifier/{provider}/{uuid}":{"delete":{"description":"Delete an identifier for this provider","responses":{"200":{"description":"OK"},"403":{"description":"not authorized"},"404":{"description":"identifier does not exist"}},"summary":"Delete an identifier for this provider","tags":["identifier"]},"get":{"description":"Returns the identifier for this provider with this uuid","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentifierUUIDPatchPutGet"}}},"description":"200 response"},"403":{"description":"not authorized to perform this operation"},"404":{"description":"identifier does not exist"}},"summary":"Returns the identifier for this provider with this uuid","tags":["identifier"]},"parameters":[{"$ref":"#/components/parameters/providerParam"},{"$ref":"#/components/parameters/uuidParam"}],"patch":{"description":"Partialy update an identifier for this provider","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"any fields from an identifier Manifest"},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"identifier does not exist"}},"summary":"Partially update an identifier for this provider","tags":["identifier"]},"put":{"description":"Replace an identifier for this provider","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentifierUUIDPatchPutGet"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"identifier does not exist"}},"summary":"Replace an identifier for this provider","tags":["identifier"]}},"/index":{"get":{"description":"Get all MerQube indices.","operationId":"index","parameters":[{"$ref":"#/components/parameters/filterParam"},{"$ref":"#/components/parameters/idsParam"},{"$ref":"#/components/parameters/nameParam"},{"$ref":"#/components/parameters/namesParam"},{"$ref":"#/components/parameters/namespaceParam"},{"$ref":"#/components/parameters/fieldsParam"},{"$ref":"#/components/parameters/debugParam"},{"$ref":"#/components/parameters/formatParam"},{"description":"By default only \"prod\" indices are shown; comma delimited list of other \"types\"","in":"query","name":"type","required":false,"schema":{"example":"test,prod","type":"string"}},{"description":"will return an additional section, linked_resources, that contains all identifier objects that the calling user has permission to that are linked to this index","in":"query","name":"fetch_identifiers","required":false,"schema":{"enum":["true"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error_codes":{"$ref":"#/components/schemas/ErrorCodes"},"results":{"items":{"$ref":"#/components/schemas/IndexDefinitionPatchPutGet"},"type":"array"}},"type":"object"}}},"description":"200 response"}},"summary":"Get all MerQube indices.","tags":["index"]},"post":{"description":"Create a new MerQube index","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/IndexDefinitionPost"},{"$ref":"#/components/schemas/CopyFromManifest"}]}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"the uuid of this index","type":"string"},"intraday_security_id":{"description":"the uuid of the secapi (type intraday_index) security for this index","type":"string"},"security_id":{"description":"the uuid of the secapi (type index) security for this index","type":"string"},"status":{"type":"string"}},"title":"Index Creation Response Schema","type":"object"}}},"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized to perform this operation"}},"summary":"Create a new MerQube index","tags":["index"]}},"/index-documents":{"delete":{"description":"Delete an identifier from an index","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"$ref":"#/components/parameters/identifierParam"}],"responses":{"200":{"description":"OK"},"403":{"description":"not authorized"},"404":{"description":"index or identifier does not exist"}},"tags":["index"]},"get":{"description":"List of index documents","parameters":[{"description":"UUID of the index.  Optional for index-specific documents.","in":"query","name":"id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"schema":{"properties":{"filename":{"type":"string"},"last_modified":{"$ref":"#/components/schemas/IsoTS","description":"UTC ISO timestamp when file was last modified"},"shared":{"description":"If this file is shared by multiple indices or not","type":"boolean"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"Returned list of valid documents in bucket"}},"tags":["index"]},"index/{uuid}/identifier/{identifier_uuid}":null,"put":{"description":"Upload a document for an index","parameters":[{"description":"UUID of the index.  Optional for index-specific documents.","in":"query","name":"id","required":false,"schema":{"type":"string"}},{"description":"Overwrite a document","in":"query","name":"force_overwrite","required":false,"schema":{"default":false,"type":"boolean"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"document":{"format":"binary","type":"string"}},"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"type":"string"}},"type":"object"}}},"description":"OK status of upload"},"400":{"description":"Invalid multipart request, or file exists and requires overwrite flag."}},"tags":["index"]}},"/index/{uuid}":{"delete":{"description":"Delete a MerQube index. Also tries to delete its identifiers.","responses":{"200":{"description":"OK"},"403":{"description":"not authorized"},"404":{"description":"index does not exist"}},"summary":"Delete a MerQube index.","tags":["index"]},"get":{"description":"Returns the MerQube index with this uuid","operationId":"index_uuid","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexDefinitionPatchPutGet"}}},"description":"200 response"},"403":{"description":"not authorized to perform this operation"},"404":{"description":"index does not exist"}},"summary":"Returns the MerQube index with this uuid","tags":["index"]},"parameters":[{"$ref":"#/components/parameters/uuidParam"}],"patch":{"description":"Partialy update a MerQube index.","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"any fields from an Index Manifest"},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"index does not exist"}},"summary":"Partially update a MerQube index","tags":["index"]},"put":{"description":"Replace a MerQube index.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IndexDefinitionPatchPutGet"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"index does not exist"}},"summary":"Replace a MerQube index","tags":["index"]}},"/index/{uuid}/caps":{"get":{"description":"Get the caps of buffer MerQube index","operationId":"index_caps","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"in":"query","name":"base_symbol","schema":{"type":"string"}},{"in":"query","name":"base_name","schema":{"type":"string"}},{"in":"query","name":"base_plot_metric","schema":{"type":"string"}},{"$ref":"#/components/parameters/formatParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"items":{"properties":{"caps":{"description":"object","example":{"SPY":0.9036144578,"cap":16.8152652821,"performance":0.9364820847},"type":"object"},"date":{"description":"date","example":"2019-07-20","type":"string"},"id":{"description":"currently, the date","example":"2019-07-20","type":"string"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"200 response"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index or caps does not exist"}},"summary":"Get the caps of buffer MerQube index","tags":["index"]}},"/index/{uuid}/data_collections":{"get":{"description":"get the timeseries of data collections for an index","parameters":[{"$ref":"#/components/parameters/uuidParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDataCollections","additionalProperties":true,"properties":{"data_collection":{"$ref":"#/components/schemas/DataCollectionsSpec"}},"type":"object"}}},"description":"OK"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index or data collection does not exist"}},"tags":["index"]},"put":{"description":"create or replace the data collection specification for this index","parameters":[{"$ref":"#/components/parameters/uuidParam"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"data_collections":{"items":{"$ref":"#/components/schemas/DataCollectionsSpec"},"type":"array"}},"type":"object"}}}},"responses":{"200":{"description":"OK, data collection successfully written and validated."},"400":{"description":"bad data collection or request"},"403":{"description":"not authorized"},"404":{"description":"index does not exist"}},"tags":["index"]}},"/index/{uuid}/data_collections/data":{"get":{"description":"fetch the data collections from s3","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"$ref":"#/components/parameters/dataCollectionsNameParam"},{"$ref":"#/components/parameters/startDateParam"},{"$ref":"#/components/parameters/endDateParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"description":"Dynamic, depends on the data collection csv.","type":"array"}},"type":"object"}}},"description":"OK"},"400":{"description":"a required query param is missing"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index or data collection does not exist"},"409":{"description":"Metadata consistency -- malformed s3 URI, or invalid date col"}},"tags":["index"]}},"/index/{uuid}/data_collections/raw":{"get":{"description":"Get a presigned raw file redirect for s3","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"$ref":"#/components/parameters/dataCollectionsNameParam"}],"responses":{"302":{"description":"Moved"}},"tags":["index"]}},"/index/{uuid}/documents":{"get":{"description":"Get documentation for an index","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"description":"Document key in the index manifest which contains the file name.  Defaults to \"methodology\".","in":"query","name":"document_type","required":false,"schema":{"default":"methodology","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"url":{"type":"string"}},"type":"object"}}},"description":"File found and returning presigned url to file"},"400":{"description":"No documents found in the index manifest, or invalid document type"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"Document not found"}},"tags":["index"]}},"/index/{uuid}/portfolio":{"get":{"description":"Get the portfolio of a MerQube index over time","operationId":"index_portfolio","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"description":"include only dates and no portfolio data","in":"query","name":"dates_only","required":false,"schema":{"enum":["true"],"type":"string"}},{"$ref":"#/components/parameters/startDateParam"},{"$ref":"#/components/parameters/endDateParam"},{"in":"query","name":"time","schema":{"format":"date-time","type":"string"}},{"in":"query","name":"download","schema":{"description":"either true or false","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"items":{"properties":{"date":{"description":"date","example":"2005-07-15T00:00:00","type":"string"},"id":{"description":"currently, the date","example":"2005-07-15T00:00:00","type":"string"},"portfolio":{"description":"object where each key is a holding","example":{"OPTION:SPY:CALL:0.0:2006-07-21:BUY":{"buy_sell":"BUY","exchgcntry":"US","exercise_type":"European","expiry":"2006-07-21","mic":"XCME","option_type":"CALL","price":120.31612463831256,"price_date":"2005-07-15","root":"SPY","shares":8.143322475570033,"strike":"0.0","strike_percentage":0,"symbol":"OPTION:SPY:CALL:0.0:2006-07-21:BUY","weight":8.143322475570033},"OPTION:SPY:CALL:143.4491457664114:2006-07-21:SELL":{"buy_sell":"SELL","exchgcntry":"US","exercise_type":"European","expiry":"2006-07-21","mic":"XCME","option_type":"CALL","price":0.5857132916126346,"price_date":"2005-07-15","root":"SPY","shares":-8.143322475570033,"strike":"143.4491457664114","strike_percentage":116.81526528209396,"symbol":"OPTION:SPY:CALL:143.4491457664114:2006-07-21:SELL","weight":"8.143322 475570033"}},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"200 response"},"400":{"description":"illegal query arg value (e.g., time is not a date-time)"},"403":{"description":"not authorized"},"404":{"description":"index or portfolio does not exist"}},"summary":"Get the portfolio of a MerQube index over time","tags":["index"]}},"/index/{uuid}/portfolio_allocations":{"get":{"description":"Get the allocations of a MerQube index","operationId":"index_portfolio_allocations","parameters":[{"$ref":"#/components/parameters/uuidParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"items":{"properties":{"date":{"description":"date","example":"2005-07-15T00:00:00","type":"string"},"id":{"description":"currently, the date","example":"2005-07-15T00:00:00","type":"string"},"portfolio":{"description":"object","example":{"OPTION: SPY:PUT:116.66:2006-07-21:BUY":"8.143322475570033,","OPTION:SPY:CALL:0.0:2006-07-21:BUY":"8.143322475570033,","OPTION:SPY:CALL:0.0:2007-07-20:BUY":"null,"},"type":"object"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"200 response"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index or portfolio does not exist"}},"summary":"Get the allocations of a MerQube index","tags":["index"]}},"/index/{uuid}/run_state":{"get":{"description":"get the latest run state of the index. May be enhanced in the future to support quering for a given eff_ts (e.g., historically).","parameters":[{"$ref":"#/components/parameters/uuidParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunState"}}},"description":"OK"},"403":{"description":"not authorized to see this index namespace"},"404":{"description":"index or does not exist"}},"tags":["index"]}},"/index/{uuid}/stats":{"get":{"description":"Returns stats associated with a specific MerQube index","operationId":"index_stats","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"$ref":"#/components/parameters/startDateParam"},{"$ref":"#/components/parameters/endDateParam"},{"description":"Metric to compute stats on (default: total_return)","in":"query","name":"metric","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}},"description":"200 response"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index does not exist"}},"summary":"Returns stats associated with a specific MerQube index","tags":["index"]}},"/index/{uuid}/stats2":{"get":{"description":"Returns stats associated with a specific MerQube index","operationId":"index_stats","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}},"description":"200 response"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index does not exist"}},"summary":"Returns stats associated with a specific MerQube index","tags":["index"]}},"/index/{uuid}/target_portfolio":{"get":{"description":"get the timeseries of target portfolios for an index","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"$ref":"#/components/parameters/startDateParam"},{"$ref":"#/components/parameters/endDateParam"},{"description":"a comma seperated list of portfolio statuses to filter by","in":"path","name":"statuses","required":false,"schema":{"default":"FINAL","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"items":{"properties":{"eff_ts":{"$ref":"#/components/schemas/IsoTS"},"target_portfolio":{"$ref":"#/components/schemas/BasketPortfolio"}},"type":"object"},"type":"array"}},"type":"object"}}},"description":"OK"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index or portfolio does not exist"}},"tags":["index"]},"put":{"description":"replace the portfolio for this index. Will eventually but not immediately affect /index/uuid/portfolio.","parameters":[{"$ref":"#/components/parameters/uuidParam"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketPortfolioPutIn"}}}},"responses":{"200":{"description":"OK, portfolio successfully written and validated."},"400":{"description":"bad portfolio or request"},"403":{"description":"not authorized"},"404":{"description":"index does not exist"}},"tags":["index"]}},"/index/{uuid}/target_portfolio/{target_portfolio_uuid}":{"delete":{"description":"Deletes an existing target portfolio","responses":{"200":{"description":"OK, target_portfolio deleted"},"403":{"description":"Not authorized"},"404":{"description":"Index or target_portfolio with the provided UUIDs does not exist"}},"tags":["index"]},"get":{"description":"Get an existing target portfolio","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"eff_ts":{"$ref":"#/components/schemas/IsoTS"},"target_portfolio":{"$ref":"#/components/schemas/BasketPortfolio"}},"type":"object"}}},"description":"OK, portfolio successfully retrieved"},"400":{"description":"Bad request"},"403":{"description":"Not authorized"},"404":{"description":"Index or target portfolio does not exist"}},"tags":["index"]},"patch":{"description":"Update an existing target portfolio","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketPortfolioPatchIn"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasketPortfolio"}}},"description":"OK, portfolio successfully updated"},"400":{"description":"Bad request"},"403":{"description":"Not authorized"},"404":{"description":"Index or target portfolio does not exist"}},"tags":["index"]}},"/optionprice":{"post":{"description":"MERQUBE OPTIONPRICE API returns the price of a custom option, the implied volatility (vol), implied interest rate (interest_rate), implied dividend yield (dividend_yield), and the option greeks (delta, vega, theta, and gamma). The API requires the underlying (root), date on which the pricing is desired (asofdate), strike of the custom option (strike), expiration (expiry), the type of the option (otype) [Put/Call], and the exercise type (etype)[European/American].","operationId":"get_option_price","requestBody":{"content":{"application/json":{"schema":{"properties":{"asofdate":{"description":"The date as of which the price of the option is being requested. Any date between 01-10-2005 and the most recent trading date of the underlying asset.","example":"Tue, 26 May 2020 00:00:00 GMT","format":"date","type":"string"},"etype":{"description":"The option exercise type is either \u201cEuropean\u201d, which can only be exercised at expiration, or \u201cAmerican\u201d, which can be exercised at any time up to and including the expiration date.","enum":["European","American"],"type":"string"},"expiry":{"description":"The expiry or expiration date is the date on which the options contract expires. Any date between 01-10-2005 and the expiration date of the longest dated options series on the given underlying asset.","example":"Mon, 15 Feb 2021 00:00:00 GMT","format":"date","type":"string"},"extrapolation_days":{"default":0,"description":"This parameter allows the pricing of the option to use an implied dividend schedule to be moved forward by the number of days specified in this parameter. Any number greater than or equal to zero. Default value is zero.","example":0,"type":"integer"},"otype":{"description":"The option type refers to whether an option is a put option or a call option.","enum":["put","call"],"type":"string"},"request_id":{"description":"This request id is returned back to the sender in the response","type":"string"},"root":{"description":"Code for the underlying instrument on which the option is priced.","enum":["SPY","TLT","QQQ","IWM"],"type":"string"},"scale_dividend":{"default":1,"description":"Allows all of the dividends in the implied dividend schedule to be scaled by this input parameter. Any number greater than zero and less than 5. Default value is one.","example":1,"format":"number","type":"number"},"strike":{"description":"Strike of the option being priced. Any number greater than zero.","example":300,"format":"number","type":"number"},"volatility_shift":{"default":0,"description":"Allows the user to change the implied volatility that is used to compute the price of the option (calculated from the volatility surface) by adding the input value to the one computed. For example, if the parameter provided is 0.1, the implied volatility used to calculate the option price would add 10% to the implied volatility calculated internally from the volatility surface. Number between -0.25 and 0.25, default value of zero.","example":0,"format":"number","type":"number"}},"required":["root","strike","asofdate","expiry","otype","etype"],"type":"object"}}},"description":"Parameters for the option to price","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionResponse"}}},"description":"200 response"}},"summary":"Custom option pricer","tags":["options"]},"servers":[{"url":"https://api.merqurian.com"}]},"/options/availability_dates/{fysm_id}/{country_code}":{"get":{"description":"Returns a collection of availablity dates for the provided underlier","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"200 response"},"403":{"description":"not authorized to perform this operation"},"404":{"description":"No data available for provided fysm/country code"}},"summary":"Returns a collection of availablity dates for the provided underlier","tags":["options"]},"parameters":[{"$ref":"#/components/parameters/fsymIdParam"},{"$ref":"#/components/schemas/CountryCode"}]},"/security":{"get":{"description":"Returns the list of security types (note - equity is not currently under this)","responses":{"200":{"content":{"application/json":{"schema":{"items":{"properties":{"name":{"type":"string"}},"type":"object"},"type":"array"}}},"description":"list of security types"}},"summary":"Returns the list of security types","tags":["security"]}},"/security/equity_legacy/{secname}/metrics":{"get":{"description":"Get the metrics defined for a security","operationId":"security_metrics_defs","parameters":[{"$ref":"#/components/parameters/secnameParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"items":{"$ref":"#/components/schemas/MetricsDef"},"type":"array"}},"type":"object"}}},"description":"200 response"},"403":{"description":"not authorized"},"404":{"description":"security does not exist"}},"summary":"Get the metrics defined for a security","tags":["legacy_equity_security"]}},"/security/equity_legacy/{secname}/metrics/{name}":{"get":{"description":"Get a metrics definition for a security","operationId":"security_metrics_def","parameters":[{"$ref":"#/components/parameters/secnameParam"},{"description":"name of metric","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetricsDef"}}},"description":"200 response"},"403":{"description":"not authorized"},"404":{"description":"security does not exist"}},"summary":"Get a metrics definition for a security","tags":["legacy_equity_security"]}},"/security/equity_legacy/{secname}/metrics/{name}/data":{"get":{"description":"Get the metrics timeseries of a MerQube security","operationId":"security_metrics","parameters":[{"description":"name of the security for which the data is requested","in":"path","name":"secname","required":true,"schema":{"type":"string"}},{"description":"name of metric","in":"path","name":"name","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/startDateParam"},{"$ref":"#/components/parameters/endDateParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"results":{"items":{"$ref":"#/components/schemas/Metrics"},"type":"array"}},"type":"object"}}},"description":"200 response"},"400":{"description":"bad metric requested"},"404":{"description":"security does not exist"}},"summary":"Get the metrics timeseries of a MerQube security","tags":["legacy_equity_security"]}},"/security/equity_legacy/{secname}/stats":{"get":{"description":"Returns stats associated with a specific MerQube security","operationId":"secstats","parameters":[{"$ref":"#/components/parameters/secnameParam"},{"$ref":"#/components/parameters/startDateParam"},{"$ref":"#/components/parameters/endDateParam"},{"description":"Metric to compute stats on (default: total_return)","in":"query","name":"metric","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/formatParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}},"description":"200 response"},"403":{"description":"not authorized to see this namespace"},"404":{"description":"index does not exist"}},"summary":"Returns stats associated with a specific MerQube security","tags":["legacy_equity_security"]}},"/security/{type}":{"get":{"description":"get one or more metrics for one or more securities","parameters":[{"$ref":"#/components/parameters/nameParam"},{"$ref":"#/components/parameters/namesParam"},{"description":"single id to pull","in":"query","name":"id","schema":{"type":"string"}},{"$ref":"#/components/parameters/idsParam"},{"description":"comma delimited list of metrics","example":"Level,Portfolio","in":"query","name":"metrics","schema":{"type":"string"}},{"description":"a tiny query language that allows filtering securities by their metric values.\nFor example, 'get all futures contracts with expiry < x and root == Y'.\n\nThis is not a row-level filter.\nThis is intended for 'metadata' like metrics and not for metrics with many values, as the results could be surprising.\nFor example, 'get me prices for this week for all stocks that have ever closed above 1000' will contain this weeks results, and those prices may be < 1000;\n  however, given this filter, those stocks *at one point* closed > 1000.\n\nParenthesis and logicl ors between clauses are not currently supported.\nAn arbitrary number of and clauses is supported, and or within a clause is supported, IE 'root = X or Y'\n\nThe supported value oeprators are '!=', '==', '>=', '<=', '<', '>'\n\nThe first parsed operator in each `^` seperated clause is used as the operator - no additional checking is performed, so something like\n`==<=` will be parsed as \"is equal to `<=`\" which is probably not what you want (and is likely to return an empty result set).\n\nThe supported logical operators are '^' (and, since & conflicts with URL query args) and ',' (or)\n\nWhen the target value is a list (contains ','), the only two valid operators are != and ==. IE you cannot use <=X,Y etc.\n\nWhen the operator is '==' and the value is '*', it means \"the security has this metric defined at least once\" (ie, we don't care about the value, just that the row exists)\n\nExamples -\n\n  futures_contract...&securityfilter=root==BTC,B6 - all contracts with root euql to BTC or B6\n\n  futures_contract...&securityfilter=root==BTC^expiry.merq>=2022-01-01T00:00:00 - all contracts with BTC root expiring in 2022 or later\n\n  futures_root...&securityfilter=cme_limit_scaling_factor!=1.0 - all roots with a special/custom scaling factor such as cents\n\nIt can also replace the names= parameter, e.g.,\n\n   futures_root...&securityfilter=name==A6,B6 - get the roots named either A6 or B6 (returns 2 records)\n","in":"query","name":"securityfilter","schema":{"type":"string"}},{"description":"only return securities in this namespace","example":"mybank","in":"query","name":"namespace","schema":{"type":"string"}},{"$ref":"#/components/parameters/startDateParam"},{"$ref":"#/components/parameters/endDateParam"},{"$ref":"#/components/parameters/formatParam"},{"description":"view the database as_of a certain timestamp; data corrections that were backdated but inserted after this timestamp are ignored","in":"query","name":"as_of","schema":{"description":"should be a date-time as a string; YYYY-mm-dd HH-mm-ss","type":"string"}},{"description":"view only data that was received since this timestamp. Note that because data could be corrected for previous days (eff_ts), this does not necessarily mean that eff_ts >= the since date. This will obtain data that was known about on or after the since date, but that data could be a correction for previous days.","in":"query","name":"since","schema":{"description":"should be a date-time as a string; YYYY-mm-dd HH-mm-ss","type":"string"}},{"description":"only applies when format!=csv. Includes additional information about the raw security api records, such as the provider timestamp and the source of the data. This is an employee only feature.","in":"query","name":"raw","schema":{"type":"boolean"}},{"description":"Shows the full history of records including corrected records (that is, no `max(prov_ts)`)). This is an employee only feature. Also implies raw=true automatically. NOTE, this breaks the typical unique index of `id/eff_ts/metric` because if there were corrections, the metric may have changed multiple times - the new unique index includes `prov_ts` in this case.","in":"query","name":"show_full_history","schema":{"type":"boolean"}},{"description":"turns on debugging information by injecting a debug section at the top level","in":"query","name":"debug","required":false,"schema":{"enum":["true"],"type":"string"}},{"description":"Only return records that have been validated by internal data quality system. Defaults to false","in":"query","name":"validated_only","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error_codes":{"$ref":"#/components/schemas/ErrorCodes"},"results":{"items":{"$ref":"#/components/schemas/SecurityMetrics"},"type":"array"}},"type":"object"}},"text/csv":{"example":"ts,index,Level,Portfolio 2021-07-21T00:00:00,XXX,1,[...]"}},"description":"ok"},"403":{"description":"not authorized"}},"summary":"get one or more metrics for one or more securities","tags":["security"]},"parameters":[{"$ref":"#/components/parameters/sectypeParam"}],"post":{"description":"Insert new securities","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewSecurity"}}},"description":"some of this is a WIP RE initial metrics etc. Making a contract may have fields rem"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityCreationResponse"}}},"description":"OK"},"400":{"description":"bad request"},"403":{"description":"unauthorized"},"409":{"description":"duplicate, e.g., name already exists"}},"summary":"Insert new securities","tags":["security"]}},"/security/{type}/data":{"post":{"description":"Insert new security metrics","parameters":[{"$ref":"#/components/parameters/sectypeParam"}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SecurityMetrics"},"type":"array"}}}},"responses":{"200":{"description":"ok"},"400":{"description":"data in request body is malformed or not of the expected format"},"403":{"description":"not authorized"}},"summary":"Insert new security metrics","tags":["security"]}},"/security/{type}/data/delete":{"post":{"description":"Mark existing security metrics as deleted - not really RESTful, more of an RPC endpoint, that allows the bulk (soft) deletion of records.\nRecords are not hard-deleted; as in \"as_of\" queries are preserved, but they are marked with a sentinel that causes them not to be served with more recent or non-as of queries.\nNote -  if the goal is to insert *a correction* - as in, there *should be a metric for this id/eff_ts, but the current value is wrong*, this method is NOT for that case.\nThat case should be handled by doing a normal insert with a higher prov_ts.\nThis delete is for the case where data should not have existed (or \"was NULL\") for an eff_ts as known by a given prov_ts.\nProv_ts is optional on this method.\nIf prov_ts is supplied, the deletion will take effect if theres no data with a higher prov_ts, but will not take effect if new inserts have a higher prov_ts. This [optional] acceptance of prov_ts is to support replaying data in any order, where data is added at prov_ts1, deleted at at prov_ts2, but then re-added (After the delete) by the provider at prov_ts3 - we want the results to be consistent regardless of what order these are replayed in.\nIf prov_ts is not supplied, it is set to episolon greater than the current max prov_ts, and will take effect until newer data with a higher prov_ts comes in.\nIt is reccomended that prov_ts is supplied unless the goal is absolutely to null out whatever the latest value is.\n","parameters":[{"$ref":"#/components/parameters/sectypeParam"}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"records":{"items":{"$ref":"#/components/schemas/SecurityMetricsDeletion"},"type":"array"}},"required":["records"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"successful_deletions":{"type":"number"}},"type":"object"}}},"description":"ok"},"400":{"description":"data in request body is malformed or not of the expected format"},"403":{"description":"not authorized"}},"summary":"Mark existing security metrics as deprecated","tags":["security"]}},"/security/{type}/metrics":{"get":{"description":"Get the metrics defined for a set of securities, however this only currently supports getting exactly one by name - more to come. That is, this allows you to query the metric definitions of a security by name rather than by id.","parameters":[{"$ref":"#/components/parameters/sectypeParam"},{"$ref":"#/components/parameters/nameParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MetricsSchema"},"type":"array"}}},"description":"200 response"}},"summary":"Get the metrics defined for a set of securities","tags":["security"]}},"/security/{type}/{secid}":{"delete":{"description":"Delete a security. It can be remade with the same name after - but this destroys all metrics, and as_of and since.","parameters":[{"$ref":"#/components/parameters/sectypeParam"},{"description":"id of the security for which the data is requested","in":"path","name":"secid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"200 response"},"403":{"description":"not authorized"},"404":{"description":"security does not exist"}},"summary":"Delete a security","tags":["security"]}},"/security/{type}/{secid}/metrics":{"get":{"description":"Get the metrics defined for a given security by id","parameters":[{"$ref":"#/components/parameters/sectypeParam"},{"description":"id of the security for which the data is requested","in":"path","name":"secid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MetricsSchema"},"type":"array"}}},"description":"200 response"},"403":{"description":"not authorized"},"404":{"description":"security does not exist"}},"summary":"Get the metrics defined for a givenn security by id","tags":["security"]}},"/security_list":{"get":{"description":"Get all MerQube security_lists.","parameters":[{"$ref":"#/components/parameters/filterParam"},{"$ref":"#/components/parameters/idsParam"},{"$ref":"#/components/parameters/nameParam"},{"$ref":"#/components/parameters/namesParam"},{"$ref":"#/components/parameters/namespaceParam"},{"$ref":"#/components/parameters/fieldsParam"},{"$ref":"#/components/parameters/debugParam"},{"$ref":"#/components/parameters/formatParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error_codes":{"$ref":"#/components/schemas/ErrorCodes"},"results":{"items":{"$ref":"#/components/schemas/SecurityListPatchPutGet"},"type":"array"}},"type":"object"}}},"description":"200 response"}},"summary":"Get all MerQube security_lists.","tags":["security_list"]},"post":{"description":"Create a new MerQube security_list","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityListPost"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"the uuid of this security_list","type":"string"},"status":{"type":"string"}},"type":"object"}}},"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized to perform this operation"}},"summary":"Create a new MerQube security_list","tags":["security_list"]}},"/security_list/{uuid}":{"delete":{"description":"Delete a MerQube security_list.","responses":{"200":{"description":"OK"},"403":{"description":"not authorized"},"404":{"description":"security_list does not exist"}},"summary":"Delete a MerQube security_list.","tags":["security_list"]},"get":{"description":"Returns the MerQube security_list with this uuid","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityListPatchPutGet"}}},"description":"200 response"},"403":{"description":"not authorized to perform this operation"},"404":{"description":"security_list does not exist"}},"summary":"Returns the MerQube security_list with this uuid","tags":["security_list"]},"parameters":[{"$ref":"#/components/parameters/uuidParam"}],"patch":{"description":"Partialy update a MerQube security_list.","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"any fields from an security_list Manifest"},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"security_list does not exist"}},"summary":"Partially update a MerQube security_list","tags":["security_list"]},"put":{"description":"Replace a MerQube security_list.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityListPatchPutGet"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"security_list does not exist"}},"summary":"Replace a MerQube security_list","tags":["security_list"]}},"/target_portfolio_handler":{"get":{"description":"Get all MerQube portfolio_handler.","parameters":[{"$ref":"#/components/parameters/filterParam"},{"$ref":"#/components/parameters/idsParam"},{"$ref":"#/components/parameters/nameParam"},{"$ref":"#/components/parameters/namesParam"},{"$ref":"#/components/parameters/namespaceParam"},{"$ref":"#/components/parameters/fieldsParam"},{"$ref":"#/components/parameters/debugParam"},{"$ref":"#/components/parameters/formatParam"}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"error_codes":{"$ref":"#/components/schemas/ErrorCodes"},"results":{"items":{"$ref":"#/components/schemas/TargetPortfolioHandlerPatchPutGet"},"type":"array"}},"type":"object"}}},"description":"200 response"}},"summary":"Get all MerQube portfolio_handler.","tags":["portfolio_handler"]},"post":{"description":"Create a new MerQube portfolio_handler","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetPortfolioHandlerPost"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"id":{"description":"the uuid of this portfolio_handler","type":"string"},"status":{"type":"string"}},"type":"object"}}},"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized to perform this operation"}},"summary":"Create a new MerQube portfolio_handler","tags":["portfolio_handler"]}},"/target_portfolio_handler/{uuid}":{"delete":{"description":"Delete a MerQube portfolio_handler.","responses":{"200":{"description":"OK"},"403":{"description":"not authorized"},"404":{"description":"portfolio_handler does not exist"}},"summary":"Delete a MerQube portfolio_handler.","tags":["portfolio_handler"]},"get":{"description":"Returns the MerQube portfolio_handler with this uuid","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetPortfolioHandlerPatchPutGet"}}},"description":"200 response"},"403":{"description":"not authorized to perform this operation"},"404":{"description":"portfolio_handler does not exist"}},"summary":"Returns the MerQube portfolio_handler with this uuid","tags":["portfolio_handler"]},"parameters":[{"$ref":"#/components/parameters/uuidParam"}],"patch":{"description":"Partialy update a MerQube portfolio_handler.","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"any fields from an portfolio_handler Manifest"},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"portfolio_handler does not exist"}},"summary":"Partially update a MerQube portfolio_handler","tags":["portfolio_handler"]},"put":{"description":"Replace a MerQube portfolio_handler.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TargetPortfolioHandlerPatchPutGet"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"illegal request body"},"403":{"description":"not authorized"},"404":{"description":"portfolio_handler does not exist"}},"summary":"Replace a MerQube portfolio_handler","tags":["portfolio_handler"]}},"index/{uuid}/identifier/{provider}":{"post":{"description":"Add an identifier to an index","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"$ref":"#/components/parameters/providerParam"}],"requestBody":{"content":{"application/json":{"schema":[{"$ref":"#/components/schemas/IndexIdentifierUUIDPost"}]}}},"responses":{"200":{"description":"OK"},"400":{"description":"bad request"},"403":{"description":"not authorized"},"404":{"description":"index does not exist"}},"tags":["index"]}},"index/{uuid}/identifier/{provider}/{identifier_name}":{"delete":{"description":"Delete an identifier from an index","parameters":[{"$ref":"#/components/parameters/uuidParam"},{"$ref":"#/components/parameters/providerParam"},{"$ref":"#/components/parameters/identifierNameParam"}],"responses":{"200":{"description":"OK"},"403":{"description":"not authorized"},"404":{"description":"index or identifier does not exist"}},"tags":["index"]}}},"servers":[{"description":"Production server","url":"https://api.merqube.com"},{"description":"Testing server for next generation features","url":"https://api.staging.merqube.com"}],"tags":[{"description":"tickers for various providers","name":"identifier"},{"description":"APIs for MerQube Indices","name":"index"},{"description":"Equity securities (legacy non secapi)","name":"legacy_equity_security"},{"description":"Option Pricing APIs","externalDocs":{"description":"More details at","url":"https://merqube.com/api"},"name":"options"},{"description":"securities","name":"security"},{"description":"lists of securities","name":"security_list"},{"description":"list of portfolio handlers","name":"portfolio_handler"}],"x-internal":true}
