forked from finbourne/lusid-sdk-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlusid.json
1 lines (1 loc) · 208 KB
/
lusid.json
1
{"swagger":"2.0","info":{"version":"0.9.3","title":"LUSID API","description":"# Introduction\n\nThis page documents the [LUSID APIs](https://api.lusid.com/swagger), which allows authorised clients to query and update their data within the LUSID platform.\n\nSDKs to interact with the LUSID APIs are available in the following languages :\n\n* [C#](https://github.com/finbourne/lusid-sdk-csharp)\n* [Java](https://github.com/finbourne/lusid-sdk-java)\n* [JavaScript](https://github.com/finbourne/lusid-sdk-js)\n* [Python](https://github.com/finbourne/lusid-sdk-python)\n\n# Data Model\n\nThe LUSID API has a relatively lightweight but extremely powerful data model. One of the goals of LUSID was not to enforce on clients a single rigid data model but rather to provide a flexible foundation onto which clients can streamline their data. One of the primary tools to extend the data model is through using properties. Properties can be associated with amongst others: -\n* Transactions\n* Instruments\n* Portfolios \n\nThe LUSID data model is exposed through the LUSID APIs. The APIs provide access to both business objects and the meta data used to configure the systems behaviours. The key business entities are: -\n* **Portfolios**\nA portfolio is the primary container for transactions and holdings. \n* **Derived Portfolios**\nDerived portfolios allow portfolios to be created based on other portfolios, by overriding or overlaying specific items\n* **Holdings**\nA holding is a position account for a instrument within a portfolio. Holdings can only be adjusted via transactions.\n* **Transactions**\nA Transaction is a source of transactions used to manipulate holdings. \n* **Corporate Actions**\nA corporate action is a market event which occurs to a instrument, for example a stock split\n* **Instruments** \nA instrument represents a currency, tradable instrument or OTC contract that is attached to a transaction and a holding.\n* **Properties**\nSeveral entities allow additional user defined properties to be associated with them. For example, a Portfolio manager may be associated with a portfolio\n\nMeta data includes: -\n* **Transaction Types**\nTransactions are booked with a specific transaction type. The types are client defined and are used to map the Transaction to a series of movements which update the portfolio holdings. \n* **Properties Types**\nTypes of user defined properties used within the system.\n\nThis section describes the data model that LUSID exposes via the APIs.\n\n## Scope\n\nAll data in LUSID is segregated at the client level. Entities in LUSID are identifiable by a unique code. Every entity lives within a logical data partition known as a Scope. Scope is an identity namespace allowing two entities with the same unique code to co-exist within individual address spaces.\n\nFor example, prices for equities from different vendors may be uploaded into different scopes such as `client/vendor1` and `client/vendor2`. A portfolio may then be valued using either of the price sources by referencing the appropriate scope.\n\nLUSID Clients cannot access scopes of other clients.\n\n## Schema\n\nA detailed description of the entities used by the API and parameters for endpoints which take a JSON document can be retrieved via the `schema` endpoint.\n\n## Instruments\n\nLUSID has its own built-in instrument master which you can use to master your own instrument universe.\n\nEvery instrument must be created with one or more unique market identifiers, such as [FIGI](https://openfigi.com/) or RIC code. For any non-listed instruments (eg OTCs), you can upload an instrument against a custom ID of your choosing.\n\nIn addition, LUSID will allocate each instrument a unique 'LUSID instrument identifier'. The LUSID instrument identifier is what is used when uploading transactions, holdings, prices, etc. The API exposes an `instrument/lookup` endpoint which can be used to lookup these LUSID identifiers using their market identifiers.\n\nCash can be referenced using the ISO currency code prefixed with \"`CCY_`\" e.g. `CCY_GBP`\n\n## Instrument Prices (Analytics)\n\nInstrument prices are stored in LUSID's Analytics Store\n\n| Field|Type|Description |\n| ---|---|--- |\n| InstrumentUid|string|Unique instrument identifier |\n| Value|decimal|Value of the analytic, eg price |\n| Denomination|string|Underlying unit of the analytic, eg currency, EPS etc. |\n\n\n## Instrument Data\n\nInstrument data can be uploaded to the system using the [Instrument Properties](#tag/InstrumentProperties) endpoint.\n\n| Field|Type|Description |\n| ---|---|--- |\n| LusidInstrumentId|string|Unique instrument identifier |\n\n\n## Portfolios\n\nPortfolios are the top-level entity containers within LUSID, containing transactions, corporate actions and holdings. The transactions build up the portfolio holdings on which valuations, analytics profit & loss and risk can be calculated. \nProperties can be associated with Portfolios to add in additional model data. Portfolio properties can be changed over time as well. For example, to allow a Portfolio Manager to be linked with a Portfolio.\n\nAdditionally, portfolios can be securitised and held by other portfolios, allowing LUSID to perform \"drill-through\" into underlying fund holdings\n\n### Reference Portfolios\nReference portfolios are portfolios that contain only weights, as opposed to transactions, and are designed to represent entities such as indices.\n\n### Derived Portfolios\n\nLUSID also allows for a portfolio to be composed of another portfolio via derived portfolios. A derived portfolio can contain its own transactions and also inherits any transactions from its parent portfolio. Any changes made to the parent portfolio are automatically reflected in derived portfolio.\n\nDerived portfolios in conjunction with scopes are a powerful construct. For example, to do pre-trade what-if analysis, a derived portfolio could be created a new namespace linked to the underlying live (parent) portfolio. Analysis can then be undertaken on the derived portfolio without affecting the live portfolio.\n\n### Portfolio Groups\nPortfolio groups allow the construction of a hierarchy from portfolios and groups. Portfolio operations on the group are executed on an aggregated set of portfolios in the hierarchy. \n\nFor example:\n \n* Global Portfolios _(group)_\n * APAC _(group)_\n * Hong Kong _(portfolio)_\n * Japan _(portfolio)_\n * Europe _(group)_\n * France _(portfolio)_\n * Germany _(portfolio)_\n * UK _(portfolio)_\n \nIn this example **Global Portfolios** is a group that consists of an aggregate of **Hong Kong**, **Japan**, **France**, **Germany** and **UK** portfolios.\n\n### Movements Engine\nThe Movements engine sits on top of the immutable event store and is used to manage the relationship between input trading actions and their associated portfolio holdings. \n\nThe movements engine reads in the following entity types:-\n* Posting Transactions\n* Applying Corporate Actions \n* Holding Adjustments\n\nThese are converted to one or more movements and used by the movements engine to calculate holdings. At the same time it also calculates running balances, and realised P&L. The outputs from the movements engine are holdings and transactions.\n\n## Transactions\n\nA transaction represents an economic activity against a Portfolio.\n\nTransactions are processed according to a configuration. This will tell the LUSID engine how to interpret the transaction and correctly update the holdings. LUSID comes with a set of transaction types you can use out of the box, or you can configure your own set(s) of transactions.\n\nFor more details see the [LUSID Getting Started Guide for transaction configuration.](https://support.finbourne.com/hc/en-us/articles/360016737511-Configuring-Transaction-Types)\n\n| Field|Type|Description |\n| ---|---|--- |\n| TransactionId|string|Unique transaction identifier |\n| Type|string|LUSID transaction type code - Buy, Sell, StockIn, StockOut, etc |\n| InstrumentUid|string|Unique instrument identifier |\n| TransactionDate|datetime|Transaction date |\n| SettlementDate|datetime|Settlement date |\n| Units|decimal|Quantity of transaction in units of the instrument |\n| TransactionPrice|tradeprice|Execution price for the transaction |\n| TotalConsideration|currencyandamount|Total value of the transaction in settlement currency |\n| ExchangeRate|decimal|Rate between transaction and settle currency |\n| TransactionCurrency|currency|Transaction currency |\n| CounterpartyId|string|Counterparty identifier |\n| Source|string|Where this transaction came from |\n| NettingSet|string| |\n\n\nFrom these fields, the following values can be calculated\n * **Transaction value in Transaction currency**: TotalConsideration / ExchangeRate\n * **Transaction value in Portfolio currency**: Transaction value in Transaction currency * TradeToPortfolioRate\n\n### Example Transactions\n\n#### A Common Purchase Example\nThree example transactions are shown in the table below. \n\nThey represent a purchase of USD denominated IBM shares within a Sterling denominated portfolio.\n\n * The first two transactions are for separate buy and fx trades\n * Buying 500 IBM shares for $71,480.00\n * A foreign exchange conversion to fund the IBM purchase. (Buy $71,480.00 for £54,846.60)\n * The third transaction is an alternate version of the above trades. Buying 500 IBM shares and settling directly in Sterling.\n\n| Column | Buy Trade | Fx Trade | Buy Trade with foreign Settlement |\n| ----- | ----- | ----- | ----- |\n| TransactionId | FBN00001 | FBN00002 | FBN00003 |\n| Type | Buy | FxBuy | Buy |\n| InstrumentUid | FIGI_BBG000BLNNH6 | CCY_USD | FIGI_BBG000BLNNH6 |\n| TransactionDate | 2018-08-02 | 2018-08-02 | 2018-08-02 |\n| SettlementDate | 2018-08-06 | 2018-08-06 | 2018-08-06 |\n| Units | 500 | 71480 | 500 |\n| TransactionPrice | 142.96 | 1 | 142.96 |\n| TradeCurrency | USD | USD | USD |\n| ExchangeRate | 1 | 0.7673 | 0.7673 |\n| TotalConsideration.Amount | 71480.00 | 54846.60 | 54846.60 |\n| TotalConsideration.Currency | USD | GBP | GBP |\n| Trade/default/TradeToPortfolioRate* | 0.7673 | 0.7673 | 0.7673 |\n\n[* This is a property field]\n\n#### A Forward FX Example\n\nLUSID has a flexible transaction modelling system, and there are a number of different ways of modelling forward fx trades.\n\nThe default LUSID transaction types are FwdFxBuy and FwdFxSell. Other types and behaviours can be configured as required.\n\nUsing these transaction types, the holdings query will report two forward positions. One in each currency. \n\nSince an FX trade is an exchange of one currency for another, the following two 6 month forward transactions are equivalent:\n\n| Column | Forward 'Sell' Trade | Forward 'Buy' Trade |\n| ----- | ----- | ----- |\n| TransactionId | FBN00004 | FBN00005 |\n| Type | FwdFxSell | FwdFxBuy |\n| InstrumentUid | CCY_GBP | CCY_USD |\n| TransactionDate | 2018-08-02 | 2018-08-02 |\n| SettlementDate | 2019-02-06 | 2019-02-06 |\n| Units | 10000.00 | 13142.00 |\n| TransactionPrice |1 | 1 |\n| TradeCurrency | GBP | USD |\n| ExchangeRate | 1.3142 | 0.760919 |\n| TotalConsideration.Amount | 13142.00 | 10000.00 |\n| TotalConsideration.Currency | USD | GBP |\n| Trade/default/TradeToPortfolioRate | 1.0 | 0.760919 |\n\n## Holdings\n\nA holding represents a position in a instrument or cash on a given date.\n\n| Field|Type|Description |\n| ---|---|--- |\n| InstrumentUid|string|Unique instrument identifier |\n| HoldingType|string|Type of holding, eg Position, Balance, CashCommitment, Receivable, ForwardFX |\n| Units|decimal|Quantity of holding |\n| SettledUnits|decimal|Settled quantity of holding |\n| Cost|currencyandamount|Book cost of holding in transaction currency |\n| CostPortfolioCcy|currencyandamount|Book cost of holding in portfolio currency |\n| Transaction|Transaction|If this is commitment-type holding, the transaction behind it |\n\n\n## Corporate Actions\n\nCorporate actions are represented within LUSID in terms of a set of instrument-specific 'transitions'. These transitions are used to specify the participants of the corporate action, and the effect that the corporate action will have on holdings in those participants.\n\n*Corporate action*\n\n| Field|Type|Description |\n| ---|---|--- |\n| SourceId|id| |\n| CorporateActionCode|code| |\n| AnnouncementDate|datetime| |\n| ExDate|datetime| |\n| RecordDate|datetime| |\n| PaymentDate|datetime| |\n\n\n\n*Transition*\n\n| Field|Type|Description |\n| ---|---|--- |\n\n\n## Property\n\nProperties are key-value pairs that can be applied to any entity within a domain (where a domain is `trade`, `portfolio`, `security` etc). Properties must be defined before use with a `PropertyDefinition` and can then subsequently be added to entities.\n\n# Schemas\n\nThe following headers are returned on all responses from LUSID\n\n| Name | Purpose |\n| --- | --- |\n| lusid-meta-duration | Duration of the request |\n| lusid-meta-success | Whether or not LUSID considered the request to be successful |\n| lusid-meta-requestId | The unique identifier for the request |\n| lusid-schema-url | Url of the schema for the data being returned |\n| lusid-property-schema-url | Url of the schema for any properties |\n\n\n# Error Codes\n\n| Code|Name|Description |\n| ---|---|--- |\n| <a name=\"100\">100</a>|Personalisations not found|The personalisation(s) identified by the pattern provided could not be found, either because it does not exist or it has been deleted. Please check the pattern your provided. |\n| <a name=\"101\">101</a>|NonRecursivePersonalisation| |\n| <a name=\"102\">102</a>|VersionNotFound| |\n| <a name=\"104\">104</a>|InstrumentNotFound| |\n| <a name=\"105\">105</a>|PropertyNotFound| |\n| <a name=\"106\">106</a>|PortfolioRecursionDepth| |\n| <a name=\"108\">108</a>|GroupNotFound| |\n| <a name=\"109\">109</a>|PortfolioNotFound| |\n| <a name=\"110\">110</a>|PropertySchemaNotFound| |\n| <a name=\"111\">111</a>|PortfolioAncestryNotFound| |\n| <a name=\"112\">112</a>|PortfolioWithIdAlreadyExists| |\n| <a name=\"113\">113</a>|OrphanedPortfolio| |\n| <a name=\"119\">119</a>|MissingBaseClaims| |\n| <a name=\"121\">121</a>|PropertyNotDefined| |\n| <a name=\"122\">122</a>|CannotDeleteSystemProperty| |\n| <a name=\"123\">123</a>|CannotModifyImmutablePropertyField| |\n| <a name=\"124\">124</a>|PropertyAlreadyExists| |\n| <a name=\"125\">125</a>|InvalidPropertyLifeTime| |\n| <a name=\"127\">127</a>|CannotModifyDefaultDataType| |\n| <a name=\"128\">128</a>|GroupAlreadyExists| |\n| <a name=\"129\">129</a>|NoSuchDataType| |\n| <a name=\"132\">132</a>|ValidationError| |\n| <a name=\"133\">133</a>|LoopDetectedInGroupHierarchy| |\n| <a name=\"135\">135</a>|SubGroupAlreadyExists| |\n| <a name=\"138\">138</a>|PriceSourceNotFound| |\n| <a name=\"139\">139</a>|AnalyticStoreNotFound| |\n| <a name=\"141\">141</a>|AnalyticStoreAlreadyExists| |\n| <a name=\"143\">143</a>|ClientInstrumentAlreadyExists| |\n| <a name=\"144\">144</a>|DuplicateInParameterSet| |\n| <a name=\"147\">147</a>|ResultsNotFound| |\n| <a name=\"148\">148</a>|OrderFieldNotInResultSet| |\n| <a name=\"149\">149</a>|OperationFailed| |\n| <a name=\"150\">150</a>|ElasticSearchError| |\n| <a name=\"151\">151</a>|InvalidParameterValue| |\n| <a name=\"153\">153</a>|CommandProcessingFailure| |\n| <a name=\"154\">154</a>|EntityStateConstructionFailure| |\n| <a name=\"155\">155</a>|EntityTimelineDoesNotExist| |\n| <a name=\"156\">156</a>|EventPublishFailure| |\n| <a name=\"157\">157</a>|InvalidRequestFailure| |\n| <a name=\"158\">158</a>|EventPublishUnknown| |\n| <a name=\"159\">159</a>|EventQueryFailure| |\n| <a name=\"160\">160</a>|BlobDidNotExistFailure| |\n| <a name=\"162\">162</a>|SubSystemRequestFailure| |\n| <a name=\"163\">163</a>|SubSystemConfigurationFailure| |\n| <a name=\"165\">165</a>|FailedToDelete| |\n| <a name=\"166\">166</a>|UpsertClientInstrumentFailure| |\n| <a name=\"167\">167</a>|IllegalAsAtInterval| |\n| <a name=\"168\">168</a>|IllegalBitemporalQuery| |\n| <a name=\"169\">169</a>|InvalidAlternateId| |\n| <a name=\"170\">170</a>|CannotAddSourcePortfolioPropertyExplicitly| |\n| <a name=\"171\">171</a>|EntityAlreadyExistsInGroup| |\n| <a name=\"173\">173</a>|EntityWithIdAlreadyExists| |\n| <a name=\"174\">174</a>|PortfolioDetailsDoNotExist| |\n| <a name=\"176\">176</a>|PortfolioWithNameAlreadyExists| |\n| <a name=\"177\">177</a>|InvalidTransactions| |\n| <a name=\"178\">178</a>|ReferencePortfolioNotFound| |\n| <a name=\"179\">179</a>|DuplicateIdFailure| |\n| <a name=\"180\">180</a>|CommandRetrievalFailure| |\n| <a name=\"181\">181</a>|DataFilterApplicationFailure| |\n| <a name=\"182\">182</a>|SearchFailed| |\n| <a name=\"183\">183</a>|MovementsEngineConfigurationKeyFailure| |\n| <a name=\"184\">184</a>|FxRateSourceNotFound| |\n| <a name=\"185\">185</a>|AccrualSourceNotFound| |\n| <a name=\"186\">186</a>|EntitlementsFailure| |\n| <a name=\"187\">187</a>|InvalidIdentityToken| |\n| <a name=\"188\">188</a>|InvalidRequestHeaders| |\n| <a name=\"189\">189</a>|PriceNotFound| |\n| <a name=\"190\">190</a>|InvalidSubHoldingKeysProvided| |\n| <a name=\"191\">191</a>|DuplicateSubHoldingKeysProvided| |\n| <a name=\"192\">192</a>|CutDefinitionNotFound| |\n| <a name=\"193\">193</a>|CutDefinitionInvalid| |\n| <a name=\"200\">200</a>|InvalidUnitForDataType| |\n| <a name=\"201\">201</a>|InvalidTypeForDataType| |\n| <a name=\"202\">202</a>|InvalidValueForDataType| |\n| <a name=\"203\">203</a>|UnitNotDefinedForDataType| |\n| <a name=\"204\">204</a>|UnitsNotSupportedOnDataType| |\n| <a name=\"205\">205</a>|CannotSpecifyUnitsOnDataType| |\n| <a name=\"206\">206</a>|UnitSchemaInconsistentWithDataType| |\n| <a name=\"207\">207</a>|UnitDefinitionNotSpecified| |\n| <a name=\"208\">208</a>|DuplicateUnitDefinitionsSpecified| |\n| <a name=\"209\">209</a>|InvalidUnitsDefinition| |\n| <a name=\"210\">210</a>|InvalidInstrumentIdentifierUnit| |\n| <a name=\"211\">211</a>|HoldingsAdjustmentDoesNotExist| |\n| <a name=\"212\">212</a>|CouldNotBuildExcelUrl| |\n| <a name=\"213\">213</a>|CouldNotGetExcelVersion| |\n| <a name=\"214\">214</a>|InstrumentByCodeNotFound| |\n| <a name=\"215\">215</a>|EntitySchemaDoesNotExist| |\n| <a name=\"216\">216</a>|FeatureNotSupportedOnPortfolioType| |\n| <a name=\"217\">217</a>|QuoteNotFoundFailure| |\n| <a name=\"219\">219</a>|InvalidInstrumentDefinition| |\n| <a name=\"221\">221</a>|InstrumentUpsertFailure| |\n| <a name=\"222\">222</a>|ReferencePortfolioRequestNotSupported| |\n| <a name=\"223\">223</a>|TransactionPortfolioRequestNotSupported| |\n| <a name=\"224\">224</a>|InvalidPropertyValueAssignment| |\n| <a name=\"230\">230</a>|TransactionTypeNotFound| |\n| <a name=\"231\">231</a>|TransactionTypeDuplication| |\n| <a name=\"232\">232</a>|PortfolioDoesNotExistAtGivenDate| |\n| <a name=\"-10\">-10</a>|ServerConfigurationError| |\n| <a name=\"-1\">-1</a>|Unknown error| |\n","termsOfService":"Not to be used without explicit authorisation from FINBOURNE","contact":{"name":"FINBOURNE Technology","url":"https://www.finbourne.com","email":"[email protected]"},"x-logo":{"url":"https://content.finbourne.com/FINBOURNE.png","backgroundColor":"#415464"}},"paths":{"/api/analytics":{"get":{"tags":["Analytics Stores"],"summary":"List analytic stores","description":"List all defined analytic stores","operationId":"ListAnalyticStores","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"A list of analytic store keys","schema":{"$ref":"#/definitions/ResourceListOfAnalyticStoreKey"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Analytics Stores"],"summary":"Create analytic store","description":"Create a new analytic store for the specified scope and date","operationId":"CreateAnalyticStore","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"request","in":"body","description":"A populated analytic store definition","required":false,"schema":{"$ref":"#/definitions/CreateAnalyticStoreRequest"}}],"responses":{"201":{"description":"The meta data of the created analytic store","schema":{"$ref":"#/definitions/AnalyticStore"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/analytics/{scope}/{year}/{month}/{day}":{"get":{"tags":["Analytics Stores"],"summary":"Get analytic store","description":"Get the meta data associated with a specified scope and date combination (analytic store)","operationId":"GetAnalyticStore","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The analytics data scope","required":true,"type":"string"},{"name":"year","in":"path","description":"The year component of the date for the data in the scope","required":true,"type":"integer","format":"int32"},{"name":"month","in":"path","description":"The month component of the date for the data in the scope","required":true,"type":"integer","format":"int32"},{"name":"day","in":"path","description":"The day component of the date for the data in the scope","required":true,"type":"integer","format":"int32"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"The analytic store's meta data","schema":{"$ref":"#/definitions/AnalyticStore"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Analytics Stores"],"summary":"Delete analytic store","description":"Delete stored analytic data in the specified scope for the specified date","operationId":"DeleteAnalyticStore","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The analytics data scope","required":true,"type":"string"},{"name":"year","in":"path","description":"The year component of the date","required":true,"type":"integer","format":"int32"},{"name":"month","in":"path","description":"The month component of the date","required":true,"type":"integer","format":"int32"},{"name":"day","in":"path","description":"The day component of the date","required":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"A confirmation of the deleted store","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/analytics/{scope}/{year}/{month}/{day}/prices":{"put":{"tags":["Analytics Stores"],"summary":"Set analytic data","description":"Store the complete set of analytics for an existing analytic store for the specified scope and date","operationId":"SetAnalytics","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the data being stored","required":true,"type":"string"},{"name":"year","in":"path","description":"The year component of the date for the data","required":true,"type":"integer","format":"int32"},{"name":"month","in":"path","description":"The month component of the date for the data","required":true,"type":"integer","format":"int32"},{"name":"day","in":"path","description":"The day component of the date for the data","required":true,"type":"integer","format":"int32"},{"name":"data","in":"body","description":"The analytic data being inserted","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/InstrumentAnalytic"}}}],"responses":{"200":{"description":"The meta data of the analytic store","schema":{"$ref":"#/definitions/AnalyticStore"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/corporateactions/{scope}/{code}":{"get":{"tags":["Corporate Actions"],"summary":"Get corporate actions","description":"Gets corporate actions from a specific corporate action source","operationId":"GetCorporateActions","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the corporate action source","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the corporate action source","required":true,"type":"string"},{"name":"fromEffectiveAt","in":"query","description":"Optional. The start effective date of the data range","required":false,"type":"string","format":"date-time"},{"name":"toEffectiveAt","in":"query","description":"Optional. The end effective date of the data range","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Corporate Actions","schema":{"$ref":"#/definitions/ResourceListOfCorporateAction"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Corporate Actions"],"summary":"Upsert corporate actions","description":"Attempt to create/update one or more corporate action in a specified corporate action source. Failed actions will be identified in the body of the response.","operationId":"BatchUpsertCorporateActions","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of corporate action source","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the corporate action source","required":true,"type":"string"},{"name":"actions","in":"body","description":"The corporate action definitions","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CreateCorporateAction"}}}],"responses":{"201":{"description":"The created corporate actions","schema":{"$ref":"#/definitions/UpsertCorporateActionsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/datatypes":{"post":{"tags":["Data Types"],"summary":"Create data type definition","description":"Create a new data type definition\r\n\r\nData types cannot be created in either the \"default\" or \"system\" scopes.","operationId":"CreateDataType","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"request","in":"body","description":"The definition of the new data type","required":false,"schema":{"$ref":"#/definitions/CreateDataTypeRequest"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/DataType"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/datatypes/{scope}":{"get":{"tags":["Data Types"],"summary":"List data types","description":"List all data types in a specified scope","operationId":"ListDataTypes","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The requested scope of the data types","required":true,"type":"string"},{"name":"includeDefault","in":"query","description":"Whether to additionally include those data types in the \"default\" scope","required":false,"type":"boolean"},{"name":"includeSystem","in":"query","description":"Whether to additionally include those data types in the \"system\" scope","required":false,"type":"boolean"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfDataType"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/datatypes/{scope}/{code}":{"get":{"tags":["Data Types"],"summary":"Get data type definition","description":"Get the definition of a specified data type","operationId":"GetDataType","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the data type","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the data type","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DataType"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"tags":["Data Types"],"summary":"Update data type definition","description":"Update the definition of the specified existing data type\r\n\r\nNot all elements within a data type definition are modifiable due to the potential implications for data\r\nalready stored against the types","operationId":"UpdateDataType","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the data type","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the data type","required":true,"type":"string"},{"name":"request","in":"body","description":"The updated definition of the data type","required":false,"schema":{"$ref":"#/definitions/UpdateDataTypeRequest"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DataType"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/datatypes/{scope}/{code}/units":{"get":{"tags":["Data Types"],"summary":"Get units from data type","description":"Get the definitions of the specified units associated bound to a specific data type","operationId":"GetUnitsFromDataType","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the data type","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the data type","required":true,"type":"string"},{"name":"units","in":"query","description":"One or more unit identifiers for which the definition is being requested","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfIUnitDefinitionDto"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/derivedtransactionportfolios/{scope}":{"post":{"tags":["Derived Transaction Portfolios"],"summary":"Create derived transaction portfolio","description":"Creates a transaction portfolio that derives from an existing transaction portfolio. In a derived portfolio, parts of the portfolio can either be specific to this portfolio, or can be inherited from a \"parent\". Different parts of the portfolio (e.g. transactions or properties) are combined in different ways. The portfolio details are either overridden in entirety, or not at all. The same is true for properties. Transactions on a derived portfolio are merged with its parent portfolio's transactions. If the parent portfolio is itself a derived portfolio, transactions from that parent are also merged (and that parent's portfolio's, if it is also a derived portfolio, and so on).","operationId":"CreateDerivedPortfolio","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope into which to create the new derived portfolio","required":true,"type":"string"},{"name":"portfolio","in":"body","description":"The root object of the new derived portfolio, containing a populated reference portfolio id and reference scope","required":false,"schema":{"$ref":"#/definitions/CreateDerivedTransactionPortfolioRequest"}}],"responses":{"201":{"description":"The created derived portfolio, with populated id","schema":{"$ref":"#/definitions/Portfolio"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/derivedtransactionportfolios/{scope}/{code}/details":{"delete":{"tags":["Derived Transaction Portfolios"],"summary":"Delete portfolio details","description":"Deletes the portfolio details for the specified derived transaction portfolio","operationId":"DeleteDerivedPortfolioDetails","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"The effective date of the change","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/instruments":{"get":{"tags":["Instruments"],"summary":"Get all of the currently mastered instruments in LUSID","description":"Lists all instruments that have been mastered within LUSID.","operationId":"ListInstruments","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"asAt","in":"query","description":"The AsAt time","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfInstrument"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Instruments"],"summary":"Upsert instruments","description":"Attempt to master one or more instruments in LUSID's instrument master. Each instrument is keyed by some unique key. This key is unimportant, and serves only as a method to identify created instruments in the response.\r\n\r\nThe response will return both the collection of successfully created instruments, as well as those that were rejected and why their creation failed. They will be keyed against the key supplied in the\r\nrequest.\r\n \r\nIt is important to always check the 'Failed' set for any unsuccessful results.","operationId":"UpsertInstruments","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"requests","in":"body","description":"The instrument definitions","required":false,"schema":{"type":"object","additionalProperties":{"$ref":"#/definitions/InstrumentDefinition"},"example":{"request_id_1":{"name":"Instrument name","identifiers":{"ClientInternal":"some-identifier","Figi":"some-figi-code"},"properties":[{"instrumentPropertyKey":"Instrument/default/Isin","property":{"labelValue":"US0378331005","effectiveFrom":"2018-06-18T09:00:00Z"}}],"lookThroughPortfolioId":{"scope":"MyScope","code":"portfolio-code"},"definition":{"instrumentFormat":"some-format","content":"{\"some-key\": \"some-value\"}"}},"request_id_2":{"name":"Instrument name","identifiers":{"ClientInternal":"some-identifier-2","Figi":"some-figi-code-2"},"properties":[],"lookThroughPortfolioId":{"scope":"MyScope","code":"portfolio-code"},"definition":{"instrumentFormat":"some-format","content":"{\"some-key\": \"some-value\"}"}}}}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/UpsertInstrumentsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/instruments/{type}/{id}":{"get":{"tags":["Instruments"],"summary":"Get instrument definition","description":"Get an individual instrument by the one of its unique instrument identifiers. Optionally, it is possible to decorate each instrument with specified property data.","operationId":"GetInstrument","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"type","in":"path","description":"The type of identifier being supplied","required":true,"type":"string","enum":["Undefined","LusidInstrumentId","ReutersAssetId","CINS","Isin","Sedol","Cusip","Ticker","ClientInternal","Figi","CompositeFigi","ShareClassFigi","Wertpapier","RIC","QuotePermId"]},{"name":"id","in":"path","description":"The identifier of the requested instrument","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the query","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the query","required":false,"type":"string","format":"date-time"},{"name":"instrumentPropertyKeys","in":"query","description":"Optional. Keys of the properties to be decorated on to the instrument","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Instrument"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Instruments"],"summary":"Update instrument identifier","description":"Adds, updates, or removes an identifier on an instrument","operationId":"UpdateInstrumentIdentifier","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"type","in":"path","description":"The type of identifier being supplied","required":true,"type":"string","enum":["Undefined","LusidInstrumentId","ReutersAssetId","CINS","Isin","Sedol","Cusip","Ticker","ClientInternal","Figi","CompositeFigi","ShareClassFigi","Wertpapier","RIC","QuotePermId"]},{"name":"id","in":"path","description":"The instrument identifier","required":true,"type":"string"},{"name":"request","in":"body","description":"The identifier to add, update, or remove","required":false,"schema":{"$ref":"#/definitions/UpdateInstrumentIdentifierRequest"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Instrument"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Instruments"],"summary":"Delete instrument","description":"Attempt to delete one or more \"client\" instruments.\r\n\r\nThe response will include those instruments that could not be deleted (as well as any available details).\r\n \r\nIt is important to always check the 'Failed' set for any unsuccessful results.","operationId":"DeleteInstrument","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"type","in":"path","description":"The type of identifier being supplied","required":true,"type":"string","enum":["Undefined","LusidInstrumentId","ReutersAssetId","CINS","Isin","Sedol","Cusip","Ticker","ClientInternal","Figi","CompositeFigi","ShareClassFigi","Wertpapier","RIC","QuotePermId"]},{"name":"id","in":"path","description":"The instrument identifier","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeleteInstrumentResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/instruments/$find":{"post":{"tags":["Instruments"],"summary":"Search instrument definition","description":"Get a collection of instruments by a set of identifiers. Optionally, it is possible to decorate each instrument with specified property data.","operationId":"FindInstruments","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"aliases","in":"body","description":"The list of market aliases (e.g ISIN, Ticker) to find instruments by.","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"},"example":[{"key":"Instrument/ScopeName/PropertyKey1","value":"PropertyValue1"},{"key":"Instrument/ScopeName/PropertyKey2","value":"PropertyValue2"}]}},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the query","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the query","required":false,"type":"string","format":"date-time"},{"name":"instrumentPropertyKeys","in":"query","description":"Optional. Keys of the properties to be decorated on to the instrument","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfInstrument"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/instruments/$get":{"post":{"tags":["Instruments"],"summary":"Get instrument definition","description":"Get a collection of instruments by a set of identifiers. Optionally, it is possible to decorate each instrument with specified property data.","operationId":"GetInstruments","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"codeType","in":"query","description":"the type of codes being specified","required":false,"type":"string","enum":["Undefined","LusidInstrumentId","ReutersAssetId","CINS","Isin","Sedol","Cusip","Ticker","ClientInternal","Figi","CompositeFigi","ShareClassFigi","Wertpapier","RIC","QuotePermId"]},{"name":"codes","in":"body","description":"The identifiers of the instruments to get","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"type":"string"},"example":["instrument-identifier-1","instrument-identifier-2"]}},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the request","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The as at date of the request","required":false,"type":"string","format":"date-time"},{"name":"instrumentPropertyKeys","in":"query","description":"Optional. Keys of the properties to be decorated on to the instrument","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/GetInstrumentsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/instruments/$match":{"post":{"tags":["Instruments"],"summary":"Find externally mastered instruments","description":"Search for a set of instruments from an external instrument mastering service","operationId":"MatchInstruments","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"codeType","in":"query","description":"The type of codes to search for","required":false,"type":"string","enum":["Undefined","LusidInstrumentId","ReutersAssetId","CINS","Isin","Sedol","Cusip","Ticker","ClientInternal","Figi","CompositeFigi","ShareClassFigi","Wertpapier","RIC","QuotePermId"]},{"name":"codes","in":"body","description":"The collection of instruments to search for","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"type":"string"},"example":["instrument-identifier-1","instrument-identifier-2"]}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/MatchInstrumentsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/instruments/$upsertproperties":{"post":{"tags":["Instruments"],"summary":"Upsert instrument properties","description":"Attempt to upsert property data for one or more instruments, properties, and effective dates.\r\n\r\nThe response will include the details of any failures that occurred during data storage.\r\n \r\nIt is important to always check the 'Failed' collection for any unsuccessful results.","operationId":"UpsertInstrumentsProperties","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"instrumentProperties","in":"body","description":"The instrument property data","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/InstrumentProperty"},"example":[{"lusidInstrumentId":"LUID_00000000","properties":[{"instrumentPropertyKey":"Security/MyScope/MyPropertyName","property":{"labelValue":"MyValue","effectiveFrom":"2018-12-10T17:03:36.7671658Z"}}],"deletedProperties":[]}]}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/UpsertInstrumentPropertiesResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/instruments/identifiers":{"get":{"tags":["Instruments"],"summary":"Get allowable instrument identifiers","description":"Gets the set of identifiers that have been configured as unique identifiers for instruments. \r\n\r\nOnly CodeTypes returned from this end point can be used as identifiers for instruments.","operationId":"GetInstrumentIdentifiers","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfCodeType"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/login/saml/{domain}":{"get":{"tags":["Login"],"summary":"Get SAML Identity Provider","description":"Get the unique identifier for the SAML 2.0 Identity Provider to be used for domain.","operationId":"GetSamlIdentityProviderId","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"domain","in":"path","description":"The domain that the user will be logging in to","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"string"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/metadata/downloads/excel":{"get":{"tags":["Application Metadata"],"summary":"Get Excel download url","description":"Request an authorised url for an Excel client version","operationId":"GetExcelDownloadUrl","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"version","in":"query","description":"The requested version of the Excel plugin","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"type":"string"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/metadata/downloads/exceladdin":{"get":{"tags":["Application Metadata"],"summary":"Download Excel Addin","description":"Download the LUSID Excel Addin for Microsoft Excel. Not providing a specific value will return the latest version being returned","operationId":"GetExcelAddin","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"version","in":"query","description":"The requested version of the Excel plugin","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/FileResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/metadata/versions":{"get":{"tags":["Application Metadata"],"summary":"Get LUSID versions","description":"Get the semantic versions associated with LUSID and its ecosystem","operationId":"GetLusidVersions","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[],"responses":{"200":{"description":"Collection of versions associated with LUSID","schema":{"$ref":"#/definitions/VersionSummaryDto"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/personalisations":{"get":{"tags":["Personalisations"],"summary":"Get personalisation","description":"Get a personalisation, recursing to get any referenced if required.","operationId":"GetPersonalisations","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"pattern","in":"query","description":"The search pattern or specific key","required":false,"type":"string"},{"name":"scope","in":"query","description":"Optional. The scope level to request for","required":false,"type":"string","enum":["User","Group","Default","All"]},{"name":"recursive","in":"query","description":"Optional. Whether to recurse into dereference recursive settings","required":false,"type":"boolean","default":false},{"name":"wildcards","in":"query","description":"Optional. Whether to apply wildcards to the provided pattern and pull back any matching","required":false,"type":"boolean","default":false},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfPersonalisation"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Personalisations"],"summary":"Upsert personalisations","description":"Upsert one or more personalisations","operationId":"UpsertPersonalisations","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"personalisations","in":"body","description":"The set of personalisations to persist","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Personalisation"}}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/UpsertPersonalisationResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Personalisations"],"summary":"Delete a personalisation","description":"Delete a personalisation at a specific scope (or use scope ALL to purge the setting entirely)","operationId":"DeletePersonalisation","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"key","in":"query","description":"The key of the setting to be deleted","required":false,"type":"string"},{"name":"scope","in":"query","description":"The scope to delete at (use ALL to purge the setting entirely)","required":false,"type":"string","enum":["User","Group","Default","All"]},{"name":"group","in":"query","description":"Optional. If deleting a setting at group level, specify the group here","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}":{"get":{"tags":["Portfolio Groups"],"summary":"List groups in scope","description":"Lists all portfolio groups in a specified scope","operationId":"ListPortfolioGroups","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope","required":true,"type":"string"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfPortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Portfolio Groups"],"summary":"Create group","description":"Create a new portfolio group.","operationId":"CreatePortfolioGroup","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope into which the portfolio group will be created","required":true,"type":"string"},{"name":"request","in":"body","description":"The definition of the new portfolio group","required":false,"schema":{"$ref":"#/definitions/CreatePortfolioGroupRequest"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}":{"get":{"tags":["Portfolio Groups"],"summary":"Get portfolio group","description":"Get the definition of the specified portfolio group","operationId":"GetPortfolioGroup","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"tags":["Portfolio Groups"],"summary":"Update group","description":"Update the definition of the specified existing portfolio group.\r\n\r\nNot all elements within a portfolio group definition are modifiable after creation.","operationId":"UpdatePortfolioGroup","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"},{"name":"request","in":"body","description":"The updated definition of the portfolio group","required":false,"schema":{"$ref":"#/definitions/UpdatePortfolioGroupRequest"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Portfolio Groups"],"summary":"Delete group","description":"Deletes the definition of the specified portfolio group","operationId":"DeletePortfolioGroup","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/$aggregate":{"post":{"tags":["Aggregation"],"summary":"Aggregate data in a portfolio group","description":"Aggregate data sourced from the specified portfolio group","operationId":"GetAggregationByGroup","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"},{"name":"request","in":"body","description":"The request specifying the parameters of the aggregation","required":false,"schema":{"$ref":"#/definitions/AggregationRequest"}},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ListAggregationResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/$aggregatenested":{"post":{"tags":["Aggregation"],"summary":"Aggregate data in a portfolio group, as nested","description":"Obsolete - Aggregate data sourced from the specified portfolio group into a nested structure. Data is nested following the group-by specifications.","operationId":"GetNestedAggregationByGroup","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"},{"name":"request","in":"body","description":"The request specifying the parameters of the aggregation","required":false,"schema":{"$ref":"#/definitions/AggregationRequest"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/NestedAggregationResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/commands":{"get":{"tags":["Portfolio Groups"],"summary":"Get commands","description":"Gets all commands that modified a specific portfolio group","operationId":"GetPortfolioGroupCommands","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"},{"name":"fromAsAt","in":"query","description":"Optional. Filters commands by those that were processed at or after this date and time","required":false,"type":"string","format":"date-time"},{"name":"toAsAt","in":"query","description":"Optional. Filters commands by those that were processed at or before this date and time","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"The commands that modified the specified portfolio group.","schema":{"$ref":"#/definitions/ResourceListOfProcessedCommand"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/expansion":{"get":{"tags":["Portfolio Groups"],"summary":"Get a full expansion of a portfolio group","description":"Lists all portfolios in a group, and all sub groups. Portfolios are decorated with their properties.","operationId":"GetPortfolioGroupExpansion","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the data","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"propertyFilter","in":"query","description":"Optional. The restricted set of properties that should be returned","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ExpandedGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/portfolios":{"post":{"tags":["Portfolio Groups"],"summary":"Add portfolio to group","description":"Adds a portfolio to a previously defined portfolio group","operationId":"AddPortfolioToGroup","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group to which a portfolio is being added","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group to which a portfolio is being added","required":true,"type":"string"},{"name":"portfolioId","in":"body","description":"The id of the portfolio","required":false,"schema":{"$ref":"#/definitions/ResourceId"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/portfolios/{portfolioScope}/{portfolioCode}":{"delete":{"tags":["Portfolio Groups"],"summary":"Remove portfolio from group","description":"Removes a portfolio from a portfolio group","operationId":"DeletePortfolioFromGroup","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"},{"name":"portfolioScope","in":"path","description":"The scope of the portfolio being removed","required":true,"type":"string"},{"name":"portfolioCode","in":"path","description":"The code of the portfolio being removed","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/subgroups":{"post":{"tags":["Portfolio Groups"],"summary":"Add group to group","description":"Adds a portfolio group, as a sub-group, to an existing portfolio group","operationId":"AddSubGroupToGroup","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group to which a sub-group is being added","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group to which a sub-group is being added","required":true,"type":"string"},{"name":"portfolioGroupId","in":"body","description":"The id of the portfolio group being added as a sub-group","required":false,"schema":{"$ref":"#/definitions/ResourceId"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfoliogroups/{scope}/{code}/subgroups/{subgroupScope}/{subgroupCode}":{"delete":{"tags":["Portfolio Groups"],"summary":"Remove group from group","description":"Remove a portfolio group (sub-group) from a parent portfolio group","operationId":"DeleteSubGroupFromGroup","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio group","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio group","required":true,"type":"string"},{"name":"subgroupScope","in":"path","description":"The scope of the sub-group being removed","required":true,"type":"string"},{"name":"subgroupCode","in":"path","description":"The code of the sub-group being removed","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfolios":{"get":{"tags":["Portfolios"],"summary":"List portfolio scopes","description":"Lists all scopes that are either currently or have previously had portfolios in them","operationId":"ListPortfolioScopes","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Filter to be applied to the list of scopes","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfScope"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfolios/{scope}":{"get":{"tags":["Portfolios"],"summary":"List portfolios","description":"List all the portfolios in the specified scope","operationId":"ListPortfolios","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the data","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"A list of portfolios in the requested scope","schema":{"$ref":"#/definitions/ResourceListOfPortfolio"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfolios/{scope}/{code}":{"get":{"tags":["Portfolios"],"summary":"Get portfolio definition","description":"Retrieves the basic set of information about a portfolio using the specified scope and code.","operationId":"GetPortfolio","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the data","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"The requested portfolio","schema":{"$ref":"#/definitions/Portfolio"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"tags":["Portfolios"],"summary":"Update portfolio definition","description":"Update the definition of a specific portfolio. Note, some parts of a portfolio definition are not available for modification after the initial creation.","operationId":"UpdatePortfolio","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"request","in":"body","description":"The updated portfolio definition","required":false,"schema":{"$ref":"#/definitions/UpdatePortfolioRequest"}},{"name":"effectiveAt","in":"query","description":"Optional. The effective date for the change","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Portfolio"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Portfolios"],"summary":"Delete portfolio","description":"Delete a portfolio at the specified effectiveAt","operationId":"DeletePortfolio","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the deletion","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfolios/{scope}/{code}/$aggregate":{"post":{"tags":["Aggregation"],"summary":"Aggregate data in a portfolio","description":"Aggregate data sourced from the specified portfolio","operationId":"GetAggregationByPortfolio","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"request","in":"body","description":"The request specifying the parameters of the aggregation","required":false,"schema":{"$ref":"#/definitions/AggregationRequest"}},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ListAggregationResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfolios/{scope}/{code}/commands":{"get":{"tags":["Portfolios"],"summary":"Get commands","description":"Gets all commands that modified a specific portfolio, including any input transactions.","operationId":"GetPortfolioCommands","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"fromAsAt","in":"query","description":"Optional. Filters commands by those that were processed at or after this date and time","required":false,"type":"string","format":"date-time"},{"name":"toAsAt","in":"query","description":"Optional. Filters commands by those that were processed at or before this date and time","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"The commands that modified the specified portfolio.","schema":{"$ref":"#/definitions/ResourceListOfProcessedCommand"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfolios/{scope}/{code}/properties":{"get":{"tags":["Portfolios"],"summary":"Get portfolio properties","description":"Get the properties of a portfolio","operationId":"GetPortfolioProperties","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the data","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"The properties of the requested portfolio","schema":{"$ref":"#/definitions/PortfolioProperties"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Portfolios"],"summary":"Upsert properties","description":"Upsert one or more property values to a portfolio for the specified effectiveAt. All properties must be of the domain Portfolio.","operationId":"UpsertPortfolioProperties","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"portfolioProperties","in":"body","description":"The property values to be upserted to the portfolio","required":false,"schema":{"type":"object","additionalProperties":{"$ref":"#/definitions/PropertyValue"},"example":{"Portfolio/MyScope/MyPropertyName":{"metricValue":{"value":12345.5672,"unit":"Unit"},"effectiveFrom":"2018-12-10T17:03:36.9497006Z"},"Portfolio/MyScope/MyPropertyName2":{"metricValue":{"value":925.3,"unit":"Unit"},"effectiveFrom":"2018-12-10T17:03:36.9497018Z"}}}},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the change","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PortfolioProperties"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Portfolios"],"summary":"Delete portfolio properties","description":"Delete one, many or all property values from a portfolio for the specified effectiveAt\r\n \r\nSpecifying no effectiveAt will delete all properties","operationId":"DeletePortfolioProperties","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"Code for the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the deletion","required":false,"type":"string","format":"date-time"},{"name":"portfolioPropertyKeys","in":"query","description":"Optional. The keys of the properties to be deleted. None specified indicates the intention to delete all properties from the portfolio","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/portfolios/$reconcileholdings":{"post":{"tags":["Reconciliations"],"summary":"Reconcile portfolio holdings","description":"Reconcile the holdings of two portfolios.","operationId":"ReconcileHoldings","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"request","in":"body","description":"The specifications of the inputs to the reconciliation","required":false,"schema":{"$ref":"#/definitions/PortfoliosReconciliationRequest"}},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"The requested reconciliation","schema":{"$ref":"#/definitions/ResourceListOfReconciliationBreak"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/propertydefinitions":{"get":{"tags":["Property Definitions"],"summary":"Get multiple property definitions","description":"Get one or more property definitions","operationId":"GetMultiplePropertyDefinitions","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"propertyKeys","in":"query","description":"One or more keys for properties for which the schema should be returned","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfPropertyDefinition"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Property Definitions"],"summary":"Define a new property","description":"Create a new property definition","operationId":"CreatePropertyDefinition","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"definition","in":"body","description":"The definition of the new property","required":false,"schema":{"$ref":"#/definitions/CreatePropertyDefinitionRequest"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/PropertyDefinition"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/propertydefinitions/{domain}/{scope}/{code}":{"get":{"tags":["Property Definitions"],"summary":"Get property definition","description":"Retrieve the definition for the identified property","operationId":"GetPropertyDefinition","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"domain","in":"path","description":"The Property Domain of the requested property","required":true,"type":"string","enum":["Trade","Portfolio","Security","Holding","ReferenceHolding","TxnType","Instrument","CutDefinition"]},{"name":"scope","in":"path","description":"The scope of the requested property","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the requested property","required":true,"type":"string"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PropertyDefinition"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"tags":["Property Definitions"],"summary":"Update the definition of the specified existing property","description":"Not all elements within a property definition are modifiable due to the potential implications for data\r\nalready stored against these properties","operationId":"UpdatePropertyDefinition","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"domain","in":"path","description":"The Property Domain of the property being updated","required":true,"type":"string","enum":["Trade","Portfolio","Security","Holding","ReferenceHolding","TxnType","Instrument","CutDefinition"]},{"name":"scope","in":"path","description":"The scope of the property to be updated","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the property to be updated","required":true,"type":"string"},{"name":"definition","in":"body","description":"The updated definition of the property","required":false,"schema":{"$ref":"#/definitions/UpdatePropertyDefinitionRequest"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PropertyDefinition"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Property Definitions"],"summary":"Delete property definition","description":"Delete the definition of the specified property","operationId":"DeletePropertyDefinition","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"domain","in":"path","description":"The Property Domain of the property to be deleted","required":true,"type":"string","enum":["Trade","Portfolio","Security","Holding","ReferenceHolding","TxnType","Instrument","CutDefinition"]},{"name":"scope","in":"path","description":"The scope of the property to be deleted","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the property to be deleted","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/quotes/{scope}":{"post":{"tags":["Quotes"],"summary":"Add quotes","description":"Add quotes effective at the specified time. If a quote is added with the same id (and is effective at the same time) as an existing quote, then the more recently added quote will be returned when queried","operationId":"UpsertQuotes","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the quotes","required":true,"type":"string"},{"name":"quotes","in":"body","description":"The quotes to add","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/UpsertQuoteRequest"},"example":[{"quoteId":{"instrumentId":"SCRA7-INT-FSLT","instrumentIdType":"RIC","quoteConvention":"Price","quoteType":"Bid","priceSource":"TRC"},"metricValue":{"value":1460.0,"unit":"CNY"}},{"quoteId":{"instrumentId":"000059.SZ","instrumentIdType":"RIC","quoteConvention":"Price","quoteType":"Close","priceSource":"SHZ"},"metricValue":{"value":6.48,"unit":"CNY"}}]}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/UpsertQuotesResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/quotes/{scope}/$delete":{"post":{"tags":["Quotes"],"summary":"Delete a quote","description":"Delete the specified quotes. In order for a quote to be deleted the id and effectiveFrom date must exactly match.","operationId":"DeleteQuote","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the quote","required":true,"type":"string"},{"name":"quotes","in":"body","description":"The quotes to delete","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/DeleteQuoteRequest"},"example":[{"quoteId":{"instrumentId":"SCRA7-INT-FSLT","instrumentIdType":"RIC","quoteConvention":"Price","quoteType":"Bid","priceSource":"TRC"},"effectiveAt":"2018-12-10T17:03:36.994777Z"},{"quoteId":{"instrumentId":"000059.SZ","instrumentIdType":"RIC","quoteConvention":"Price","quoteType":"Bid","priceSource":"SHZ"},"effectiveAt":"2018-12-10T17:03:36.9947779Z"}]}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeleteQuotesResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/quotes/{scope}/$get":{"post":{"tags":["Quotes"],"summary":"Get quotes","description":"Get quotes effective at the specified date/time (if any). An optional maximum age of quotes can be specified, and is infinite by default.\r\nQuotes which are older than this at the time of the effective date/time will not be returned.\r\nMaxAge is a duration of time represented in an ISO8601 format, eg. P1Y2M3DT4H30M (1 year, 2 months, 3 days, 4 hours and 30 minutes).\r\nThe results are paged, and by default the 1st page of results is returned with a limit of 100 results per page","operationId":"GetQuotes","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the quotes","required":true,"type":"string"},{"name":"quoteIds","in":"body","description":"The ids of the quotes","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/QuoteId"},"example":[{"instrumentId":"SCRA7-INT-FSLT","instrumentIdType":"RIC","quoteConvention":"Price","quoteType":"Bid","priceSource":"TRC"},{"instrumentId":"000059.SZ","instrumentIdType":"RIC","quoteConvention":"Price","quoteType":"Close","priceSource":"SHZ"}]}},{"name":"effectiveAt","in":"query","description":"Optional. The date/time from which the quotes are effective","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The 'AsAt' date/time","required":false,"type":"string","format":"date-time"},{"name":"maxAge","in":"query","description":"Optional. The quote staleness tolerance","required":false,"type":"string"},{"name":"page","in":"query","description":"Optional. The page of results to return","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. The number of results per page","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/GetQuotesResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/referenceportfolios/{scope}":{"post":{"tags":["Reference Portfolio"],"summary":"Create reference portfolio","description":"Create a new reference portfolio.","operationId":"CreateReferencePortfolio","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The intended scope of the portfolio","required":true,"type":"string"},{"name":"referencePortfolio","in":"body","description":"The portfolio creation request object","required":false,"schema":{"$ref":"#/definitions/CreateReferencePortfolioRequest"}}],"responses":{"201":{"description":"The created reference portfolio, with populated id","schema":{"$ref":"#/definitions/Portfolio"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/referenceportfolios/{scope}/{code}/{effectiveAt}/constituents":{"get":{"tags":["Reference Portfolio"],"summary":"Get constituents","description":"Get all the constituents in the specified reference portfolio","operationId":"GetReferencePortfolioConstituents","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"path","description":"The effective date of the constituents to retrieve","required":true,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"The requested reference portfolio constituents","schema":{"$ref":"#/definitions/GetReferencePortfolioConstituentsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/referenceportfolios/{scope}/{code}/constituents":{"post":{"tags":["Reference Portfolio"],"summary":"Add constituents","description":"Add constituents to the specified reference portfolio.","operationId":"UpsertReferencePortfolioConstituents","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"constituents","in":"body","description":"The constituents to upload to the portfolio","required":false,"schema":{"$ref":"#/definitions/UpsertReferencePortfolioConstituentsRequest"}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/UpsertReferencePortfolioConstituentsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/results/{scope}/{key}/{date}":{"get":{"tags":["Results"],"summary":"Get results","description":"Retrieve some previously stored results","operationId":"GetResults","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the data","required":true,"type":"string"},{"name":"key","in":"path","description":"The key that identifies the data","required":true,"type":"string"},{"name":"date","in":"path","description":"The date for which the data was loaded","required":true,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"The requested set of results","schema":{"$ref":"#/definitions/Results"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Results"],"summary":"Upsert results","description":"Upsert pre-calculated results against a specified scope/key/date combination","operationId":"UpsertResults","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the data","required":true,"type":"string"},{"name":"key","in":"path","description":"The key that identifies the data","required":true,"type":"string"},{"name":"date","in":"path","description":"The date for which the data is relevant","required":true,"type":"string","format":"date-time"},{"name":"request","in":"body","description":"The results to upload","required":false,"schema":{"$ref":"#/definitions/CreateResults"}}],"responses":{"200":{"description":"The results set uploaded","schema":{"$ref":"#/definitions/Results"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/results/{scope}/{resultsKey}/$aggregate":{"post":{"tags":["Aggregation"],"summary":"Aggregate using result data","description":"Aggregate data from a previously-run Result data set into a flat row of results","operationId":"GetAggregationByResultSet","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the Result data set","required":true,"type":"string"},{"name":"resultsKey","in":"path","description":"The key of the Result data set","required":true,"type":"string"},{"name":"request","in":"body","description":"The request specifying the parameters of the aggregation","required":false,"schema":{"$ref":"#/definitions/AggregationRequest"}},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ListAggregationResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/schemas/entities":{"get":{"tags":["Schemas"],"summary":"List entities","description":"List all available entities for which schema information is available.","operationId":"ListEntities","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfString"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/schemas/entities/{entity}":{"get":{"tags":["Schemas"],"summary":"Get schema","description":"Gets the schema and meta-data for a given entity","operationId":"GetEntitySchema","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"entity","in":"path","description":"The name of a valid entity","required":true,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/Schema"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/schemas/properties":{"get":{"tags":["Schemas"],"summary":"Get property schema","description":"Get the schemas for the provided list of property keys.","operationId":"GetPropertySchema","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"propertyKeys","in":"query","description":"One or more property keys for which the schema is requested","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/PropertySchema"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/schemas/types":{"get":{"tags":["Schemas"],"summary":"Get value types","description":"Gets the available value types for which a schema is available.","operationId":"GetValueTypes","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfValueType"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/search/portfoliogroups":{"post":{"tags":["Search"],"summary":"Search portfolio groups","description":"Search through all portfolio groups","operationId":"PortfolioGroupsSearch","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"request","in":"body","description":"A valid Elasticsearch 5.x request","required":false,"schema":{"type":"object"}},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfPortfolioGroup"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/search/portfolios":{"post":{"tags":["Search"],"summary":"Search portfolios","description":"Search through all portfolios","operationId":"PortfoliosSearch","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"request","in":"body","description":"A valid Elasticsearch 5.x request","required":false,"schema":{"type":"object"}},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfPortfolioSearchResult"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/search/propertydefinitions":{"post":{"tags":["Search"],"summary":"Search property definitions","description":"Search through all property definitions","operationId":"PropertiesSearch","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"request","in":"body","description":"A valid Elasticsearch 5.x request","required":false,"schema":{"type":"object"}},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfPropertyDefinition"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/systemconfiguration/transactiontypes":{"get":{"tags":["System Configuration"],"summary":"List transaction types","description":"Get the list of persisted transaction types","operationId":"ListConfigurationTransactionTypes","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfTransactionConfigurationData"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"tags":["System Configuration"],"summary":"Set transaction types","description":"Set all transaction types to be used by the movements engine, for the organisation\r\n \r\nWARNING! Changing these mappings will have a material impact on how data, new and old, is processed and aggregated by LUSID. This will affect your whole organisation. Only change if you are fully aware of the implications of the change.","operationId":"SetConfigurationTransactionTypes","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"types","in":"body","description":"The complete set of transaction type definitions","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionConfigurationDataRequest"}}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfTransactionConfigurationData"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["System Configuration"],"summary":"Create transaction type","description":"Create a new transaction type by specifying a definition and the mappings to movements","operationId":"CreateConfigurationTransactionType","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"type","in":"body","description":"A transaction type definition","required":false,"schema":{"$ref":"#/definitions/TransactionConfigurationDataRequest"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfTransactionConfigurationData"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}":{"post":{"tags":["Transaction Portfolios"],"summary":"Create transaction portfolio","description":"Create a transaction portfolio in a specific scope","operationId":"CreatePortfolio","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope into which the transaction portfolio will be created","required":true,"type":"string"},{"name":"createRequest","in":"body","description":"The transaction portfolio definition","required":false,"schema":{"$ref":"#/definitions/CreateTransactionPortfolioRequest"}}],"responses":{"201":{"description":"The created portfolio, with populated id","schema":{"$ref":"#/definitions/Portfolio"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/details":{"get":{"tags":["Transaction Portfolios"],"summary":"Get portfolio details","description":"Get the details document associated with a transaction portfolio\r\n \r\nWhen requesting details from a derived transaction portfolio, the returned set of details could come from a different transaction portfolio","operationId":"GetDetails","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the data","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"The details of the requested portfolio","schema":{"$ref":"#/definitions/PortfolioDetails"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Transaction Portfolios"],"summary":"Upsert details","description":"Update the portfolio details for the specified transaction portfolios or add if it doesn't already exist (in the case of a derived transaction portfolio).","operationId":"UpsertPortfolioDetails","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"details","in":"body","description":"The set of details for the portfolio","required":false,"schema":{"$ref":"#/definitions/CreatePortfolioDetails"}},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the change","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"The latest version of the created/updated details","schema":{"$ref":"#/definitions/PortfolioDetails"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/executions":{"post":{"tags":["Transaction Portfolios"],"summary":"Upsert executions","description":"Inserts new executions, or updates those already present","operationId":"UpsertExecutions","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"executions","in":"body","description":"The executions to be updated","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ExecutionRequest"}}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/UpsertPortfolioExecutionsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/holdings":{"get":{"tags":["Transaction Portfolios"],"summary":"Get holdings","description":"Get the aggregate holdings of a transaction portfolio. If no effectiveAt or asAt\r\nare supplied then values will be defaulted to the latest system time.","operationId":"GetHoldings","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"byTaxlots","in":"query","description":"Option to expand holdings to return the underlying tax-lots","required":false,"type":"boolean"},{"name":"effectiveAt","in":"query","description":"Optional. The effective date of the portfolio","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"},{"name":"instrumentPropertyKeys","in":"query","description":"Optional. Keys for the instrument property values to be decorated onto the holdings","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/VersionedResourceListOfPortfolioHolding"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/holdings/{effectiveAt}":{"put":{"tags":["Transaction Portfolios"],"summary":"Set all holdings on a transaction portfolio","description":"Prompt the creation of transactions in a specific transaction portfolio to bring all holdings to the specified targets","operationId":"SetHoldings","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the transaction portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the transaction portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"path","description":"The effective date of the change","required":true,"type":"string","format":"date-time"},{"name":"holdingAdjustments","in":"body","description":"The complete set of holdings adjustments for the portfolio","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/AdjustHoldingRequest"}}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/AdjustHolding"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Transaction Portfolios"],"summary":"Adjust holdings","description":"Adjust one or more holdings in a transaction portfolio\r\n\r\nPrompt the creation of transactions in a specific transaction portfolio to bring selected holdings to the specified targets","operationId":"AdjustHoldings","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"path","description":"The effective date of the change","required":true,"type":"string","format":"date-time"},{"name":"holdingAdjustments","in":"body","description":"The selected set of holdings adjustments","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/AdjustHoldingRequest"}}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/AdjustHolding"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Transaction Portfolios"],"summary":"Cancel holdings adjustments","description":"Cancel previous adjust-holdings for the portfolio for a specific date","operationId":"CancelAdjustHoldings","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"path","description":"The effective date of the change","required":true,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/holdingsadjustments":{"get":{"tags":["Transaction Portfolios"],"summary":"List holdings adjustments","description":"Get holdings adjustments from a transaction portfolio in an interval of effective time.","operationId":"ListHoldingsAdjustments","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"Code for the portfolio","required":true,"type":"string"},{"name":"fromEffectiveAt","in":"query","description":"Holdings adjustments between this time (inclusive) and the toEffectiveAt are returned.","required":false,"type":"string","format":"date-time"},{"name":"toEffectiveAt","in":"query","description":"Holdings adjustments between this time (inclusive) and the fromEffectiveAt are returned.","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/ResourceListOfHoldingsAdjustmentHeader"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/holdingsadjustments/{effectiveAt}":{"get":{"tags":["Transaction Portfolios"],"summary":"Get holding adjustment","description":"Get a holdings adjustment for a transaction portfolio at a specific effective time.\r\n\r\nA holdings adjustment definition will only be returned if one exists for the specified effective time","operationId":"GetHoldingsAdjustment","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"effectiveAt","in":"path","description":"The effective time of the holdings adjustment","required":true,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/HoldingsAdjustment"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/transactions":{"get":{"tags":["Transaction Portfolios"],"summary":"Get transactions","description":"Get the transactions from a transaction portfolio\r\n\r\nWhen the requested portfolio is a derived transaction portfolio, the returned set of transactions is the union set of all transactions of the parent (and ancestors) and the specified portfolio.","operationId":"GetTransactions","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"fromTransactionDate","in":"query","description":"Optional. Limit the returned transactions to those with a transaction date equal or later than this date","required":false,"type":"string","format":"date-time"},{"name":"toTransactionDate","in":"query","description":"Optional. Limit the returned transactions to those with a transaction date equal or before this date","required":false,"type":"string","format":"date-time"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"instrumentPropertyKeys","in":"query","description":"Optional. Keys for the instrument property values that will be decorated onto the transactions","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"}],"responses":{"200":{"description":"The requested portfolio transactions","schema":{"$ref":"#/definitions/VersionedResourceListOfTransaction"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"post":{"tags":["Transaction Portfolios"],"summary":"Upsert transactions into the specified transaction portfolio","description":"Upsert transactions","operationId":"UpsertTransactions","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code for the portfolio","required":true,"type":"string"},{"name":"transactions","in":"body","description":"The transactions to be upserted","required":false,"schema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionRequest"}}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/UpsertPortfolioTransactionsResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Transaction Portfolios"],"summary":"Delete transactions","description":"Delete one or more transactions from a transaction portfolio","operationId":"DeleteTransactions","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"transactionIds","in":"query","description":"Ids of transactions to delete","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/transactions/{transactionId}/properties":{"post":{"tags":["Transaction Portfolios"],"summary":"Add transaction properties","description":"Upsert one or more transaction properties to a single transaction in a portfolio","operationId":"AddTransactionProperty","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"transactionId","in":"path","description":"Id of transaction","required":true,"type":"string"},{"name":"transactionProperties","in":"body","description":"Transaction properties values","required":false,"schema":{"type":"object","additionalProperties":{"$ref":"#/definitions/PerpetualPropertyValue"},"example":{"Trade/MyScope/MyPropertyName":{"metricValue":{"value":12345.5672,"unit":"Unit"}},"Trade/MyScope/MyPropertyName2":{"metricValue":{"value":925.3,"unit":"Unit"}}}}}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/AddTransactionPropertyResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Transaction Portfolios"],"summary":"Delete transaction property","description":"Delete a property value from a single transaction in a portfolio","operationId":"DeletePropertyFromTransaction","consumes":[],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"Code for the portfolio","required":true,"type":"string"},{"name":"transactionId","in":"path","description":"Id of the transaction to delete the property from","required":true,"type":"string"},{"name":"transactionPropertyKey","in":"query","description":"The key of the property to be deleted","required":false,"type":"string"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/DeletedEntityResponse"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/api/transactionportfolios/{scope}/{code}/transactions/$build":{"post":{"tags":["Transaction Portfolios"],"summary":"Build output transactions","description":"Builds and returns the collection of all types of transactions that affect the holdings of a portfolio in to a set of output transactions","operationId":"BuildTransactions","consumes":["application/json-patch+json","application/json","text/json","application/*+json"],"produces":["text/plain","application/json","text/json"],"parameters":[{"name":"scope","in":"path","description":"The scope of the portfolio","required":true,"type":"string"},{"name":"code","in":"path","description":"The code of the portfolio","required":true,"type":"string"},{"name":"asAt","in":"query","description":"Optional. The AsAt date of the data","required":false,"type":"string","format":"date-time"},{"name":"sortBy","in":"query","description":"Optional. Order the results by these fields. Use use the '-' sign to denote descending order e.g. -MyFieldName","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"start","in":"query","description":"Optional. When paginating, skip this number of results","required":false,"type":"integer","format":"int32"},{"name":"limit","in":"query","description":"Optional. When paginating, limit the number of returned results to this many.","required":false,"type":"integer","format":"int32"},{"name":"instrumentPropertyKeys","in":"query","description":"Optional. Keys for the instrument property values to be decorated onto the transactions","required":false,"type":"array","items":{"type":"string"},"collectionFormat":"multi","uniqueItems":false},{"name":"filter","in":"query","description":"Optional. Expression to filter the result set","required":false,"type":"string"},{"name":"parameters","in":"body","description":"Optional. Transaction query parameters","required":false,"schema":{"$ref":"#/definitions/TransactionQueryParameters"}}],"responses":{"200":{"description":"The requested portfolio transactions","schema":{"$ref":"#/definitions/VersionedResourceListOfOutputTransaction"}},"default":{"description":"Error response","schema":{"$ref":"#/definitions/ErrorResponse"}}}}}},"definitions":{"CreateAnalyticStoreRequest":{"type":"object","properties":{"scope":{"type":"string"},"date":{"format":"date-time","type":"string"}},"example":{"scope":"MyScope","date":"2018-12-10T17:03:36.6035245Z"}},"AnalyticStore":{"type":"object","properties":{"key":{"$ref":"#/definitions/AnalyticStoreKey"},"href":{"type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"AnalyticStoreKey":{"type":"object","properties":{"scope":{"type":"string"},"date":{"format":"date-time","type":"string"}}},"Link":{"required":["relation","href","method"],"type":"object","properties":{"relation":{"enum":["Root","Properties","Transactions","Details","Constituents","Holdings","Commands","HoldingsAdjustments","Parent","PropertySchema","EntitySchema","Quote"],"type":"string"},"href":{"type":"string"},"description":{"type":"string"},"method":{"enum":["POST","GET","PATCH","DELETE"],"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"status":{"format":"int32","type":"integer","readOnly":true},"code":{"enum":["Unknown","PersonalisationNotFound","NonRecursivePersonalisation","VersionNotFound","InstrumentNotFound","PropertyNotFound","PortfolioRecursionDepth","GroupNotFound","PortfolioNotFound","PropertySchemaNotFound","PortfolioAncestryNotFound","PortfolioWithIdAlreadyExists","OrphanedPortfolio","MissingBaseClaims","PropertyNotDefined","CannotDeleteSystemProperty","CannotModifyImmutablePropertyField","PropertyAlreadyExists","InvalidPropertyLifeTime","CannotModifyDefaultDataType","GroupAlreadyExists","NoSuchDataType","ValidationError","LoopDetectedInGroupHierarchy","SubGroupAlreadyExists","PriceSourceNotFound","AnalyticStoreNotFound","AnalyticStoreAlreadyExists","ClientInstrumentAlreadyExists","DuplicateInParameterSet","ResultsNotFound","OrderFieldNotInResultSet","OperationFailed","ElasticSearchError","InvalidParameterValue","CommandProcessingFailure","EntityStateConstructionFailure","EntityTimelineDoesNotExist","EventPublishFailure","InvalidRequestFailure","EventPublishUnknown","EventQueryFailure","BlobDidNotExistFailure","SubSystemRequestFailure","SubSystemConfigurationFailure","FailedToDelete","UpsertClientInstrumentFailure","IllegalAsAtInterval","IllegalBitemporalQuery","InvalidAlternateId","CannotAddSourcePortfolioPropertyExplicitly","EntityAlreadyExistsInGroup","EntityWithIdAlreadyExists","PortfolioDetailsDoNotExist","PortfolioWithNameAlreadyExists","InvalidTransactions","ReferencePortfolioNotFound","DuplicateIdFailure","CommandRetrievalFailure","DataFilterApplicationFailure","SearchFailed","MovementsEngineConfigurationKeyFailure","FxRateSourceNotFound","AccrualSourceNotFound","EntitlementsFailure","InvalidIdentityToken","InvalidRequestHeaders","PriceNotFound","InvalidSubHoldingKeysProvided","DuplicateSubHoldingKeysProvided","CutDefinitionNotFound","CutDefinitionInvalid","ServerConfigurationError","InvalidUnitForDataType","InvalidTypeForDataType","InvalidValueForDataType","UnitNotDefinedForDataType","UnitsNotSupportedOnDataType","CannotSpecifyUnitsOnDataType","UnitSchemaInconsistentWithDataType","UnitDefinitionNotSpecified","DuplicateUnitDefinitionsSpecified","InvalidUnitsDefinition","InvalidInstrumentIdentifierUnit","HoldingsAdjustmentDoesNotExist","CouldNotBuildExcelUrl","CouldNotGetExcelVersion","InstrumentByCodeNotFound","EntitySchemaDoesNotExist","FeatureNotSupportedOnPortfolioType","QuoteNotFoundFailure","ReferencePortfolioRequestNotSupported","TransactionPortfolioRequestNotSupported","InvalidInstrumentDefinition","InstrumentUpsertFailure","TransactionTypeNotFound","TransactionTypeDuplication","InvalidPropertyValueAssignment","PortfolioDoesNotExistAtGivenDate"],"type":"string","readOnly":true},"message":{"type":"string","readOnly":true},"detailedMessage":{"type":"string","readOnly":true},"items":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ErrorDetailBase"}},"moreInfo":{"type":"string","readOnly":true}}},"ErrorDetailBase":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"detail":{"type":"string"}}},"ResourceListOfAnalyticStoreKey":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/AnalyticStoreKey"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"DeletedEntityResponse":{"type":"object","properties":{"href":{"type":"string"},"effectiveFrom":{"format":"date-time","type":"string"},"asAt":{"format":"date-time","type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"InstrumentAnalytic":{"type":"object","properties":{"instrumentUid":{"description":"Unique instrument identifier","type":"string"},"value":{"format":"double","description":"Value of the analytic, eg price","type":"number"},"denomination":{"description":"Underlying unit of the analytic, eg currency, EPS etc.","type":"string"}},"example":{"instrumentUid":"FIGI_BBG001S6PJ31","value":123.45}},"CreateCorporateAction":{"required":["corporateActionCode","announcementDate","exDate","recordDate","paymentDate","transitions"],"type":"object","properties":{"corporateActionCode":{"description":"","type":"string"},"announcementDate":{"format":"date-time","description":"","type":"string"},"exDate":{"format":"date-time","description":"","type":"string"},"recordDate":{"format":"date-time","description":"","type":"string"},"paymentDate":{"format":"date-time","description":"","type":"string"},"transitions":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CorporateActionTransition"}}},"example":{"corporateActionCode":"MyStockSplitId","announcementDate":"2018-03-01T00:00:00Z","exDate":"2018-06-01T00:00:00Z","recordDate":"2018-06-02T00:00:00Z","paymentDate":"2018-08-02T00:00:00Z","transitions":[{"inputTransition":{"instrumentUid":"FIGI_BBG001S6PJ31","unitsFactor":1.0,"costFactor":1.0},"outputTransitions":[{"instrumentUid":"FIGI_BBG001S6PJ31","unitsFactor":2.0,"costFactor":0.0}]}]}},"CorporateActionTransition":{"description":"A 'transition' within a corporate action, representing a set of output movements paired to a single input position","type":"object","properties":{"inputTransition":{"$ref":"#/definitions/CorporateActionTransitionComponent"},"outputTransitions":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CorporateActionTransitionComponent"}}}},"CorporateActionTransitionComponent":{"required":["instrumentUid","unitsFactor","costFactor"],"type":"object","properties":{"instrumentUid":{"description":"","type":"string"},"unitsFactor":{"format":"double","description":"","type":"number"},"costFactor":{"format":"double","description":"","type":"number"}}},"UpsertCorporateActionsResponse":{"type":"object","properties":{"href":{"type":"string"},"values":{"type":"object","additionalProperties":{"$ref":"#/definitions/CorporateAction"}},"failed":{"type":"object","additionalProperties":{"$ref":"#/definitions/ErrorDetail"}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"CorporateAction":{"description":"A corporate action","required":["sourceId","corporateActionCode"],"type":"object","properties":{"sourceId":{"$ref":"#/definitions/ResourceId","description":""},"corporateActionCode":{"description":"","type":"string"},"announcementDate":{"format":"date-time","description":"","type":"string"},"exDate":{"format":"date-time","description":"","type":"string"},"recordDate":{"format":"date-time","description":"","type":"string"},"paymentDate":{"format":"date-time","description":"","type":"string"},"transitions":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CorporateActionTransition"}}}},"ErrorDetail":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"detail":{"type":"string"}}},"ResourceId":{"type":"object","properties":{"scope":{"type":"string"},"code":{"type":"string"}},"example":{"scope":"MyScope","code":"MyCode"}},"ResourceListOfCorporateAction":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CorporateAction"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"CreateDataTypeRequest":{"required":["scope","code","typeValueRange","displayName","description","valueType"],"type":"object","properties":{"scope":{"type":"string"},"code":{"type":"string"},"typeValueRange":{"enum":["Open","Closed"],"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"valueType":{"enum":["String","Int","Decimal","DateTime","Boolean","Map","List","PropertyArray","Percentage","BenchmarkType","Code","Id","Uri","ArrayOfIds","ArrayOfTransactionAliases","ArrayofTransactionMovements","ArrayofUnits","StringArray","CurrencyAndAmount","TradePrice","UnitCreation","Currency","UserId","MetricValue","QuoteId","ArrayOfQuoteIds"],"type":"string"},"acceptableValues":{"uniqueItems":false,"type":"array","items":{"type":"object"}},"unitSchema":{"enum":["NoUnits","Basic","Iso4217Currency"],"type":"string"},"acceptableUnits":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CreateUnitDefinition"}}},"example":{"scope":"TestScope","code":"MyType","typeValueRange":"Open","displayName":"My data format","valueType":"Decimal","acceptableValues":[{"code":"Ap","displayName":"Apples","description":"A quantity of apples"},{"code":"Bn","displayName":"Bananas","description":"A quantity of bananas"},{"code":"Ch","displayName":"Cherry","description":"A quantity of cherries"}],"unitSchema":"Basic"}},"CreateUnitDefinition":{"required":["code","displayName","description"],"type":"object","properties":{"code":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"details":{"type":"object","additionalProperties":{"type":"string"}}}},"DataType":{"type":"object","properties":{"href":{"type":"string"},"typeValueRange":{"enum":["Open","Closed"],"type":"string"},"id":{"$ref":"#/definitions/ResourceId"},"displayName":{"type":"string"},"description":{"type":"string"},"valueType":{"enum":["String","Int","Decimal","DateTime","Boolean","Map","List","PropertyArray","Percentage","BenchmarkType","Code","Id","Uri","ArrayOfIds","ArrayOfTransactionAliases","ArrayofTransactionMovements","ArrayofUnits","StringArray","CurrencyAndAmount","TradePrice","UnitCreation","Currency","UserId","MetricValue","QuoteId","ArrayOfQuoteIds"],"type":"string"},"acceptableValues":{"uniqueItems":false,"type":"array","items":{"type":"object"}},"unitSchema":{"enum":["NoUnits","Basic","Iso4217Currency"],"type":"string"},"acceptableUnits":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/IUnitDefinitionDto"}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"IUnitDefinitionDto":{"type":"object","properties":{"schema":{"enum":["NoUnits","Basic","Iso4217Currency"],"type":"string","readOnly":true},"code":{"type":"string","readOnly":true},"displayName":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true}}},"ResourceListOfDataType":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/DataType"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"UpdateDataTypeRequest":{"required":["typeValueRange","displayName","description","valueType"],"type":"object","properties":{"typeValueRange":{"enum":["Open","Closed"],"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"valueType":{"enum":["String","Int","Decimal","DateTime","Boolean","Map","List","PropertyArray","Percentage","BenchmarkType","Code","Id","Uri","ArrayOfIds","ArrayOfTransactionAliases","ArrayofTransactionMovements","ArrayofUnits","StringArray","CurrencyAndAmount","TradePrice","UnitCreation","Currency","UserId","MetricValue","QuoteId","ArrayOfQuoteIds"],"type":"string"},"acceptableValues":{"uniqueItems":false,"type":"array","items":{"type":"object"}},"unitSchema":{"enum":["NoUnits","Basic","Iso4217Currency"],"type":"string"},"acceptableUnits":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CreateUnitDefinition"}}},"example":{"typeValueRange":"Open","displayName":"My data format","valueType":"Decimal","unitSchema":"Basic","acceptableUnits":[{"code":"Ap","displayName":"Apples","description":"A quantity of apples"},{"code":"Bn","displayName":"Bananas","description":"A quantity of bananas"},{"code":"Ch","displayName":"Cherry","description":"A quantity of cherries"}]}},"ResourceListOfIUnitDefinitionDto":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/IUnitDefinitionDto"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"CreateDerivedTransactionPortfolioRequest":{"required":["displayName"],"type":"object","properties":{"displayName":{"description":"","type":"string"},"description":{"description":"","type":"string"},"code":{"description":"","type":"string"},"parentPortfolioId":{"$ref":"#/definitions/ResourceId","description":""},"created":{"format":"date-time","description":"","type":"string"},"corporateActionSourceId":{"$ref":"#/definitions/ResourceId","description":""},"accountingMethod":{"description":"","enum":["Default","AverageCost","FirstInFirstOut","LastInFirstOut","HighestCostFirst","LowestCostFirst"],"type":"string"},"subHoldingKeys":{"description":"","uniqueItems":false,"type":"array","items":{"type":"string"}}},"example":{"displayName":"MyDerivedPortfolioName","description":"Example long form portfolio description","code":"MyDerivedPortfolioCode","parentPortfolioId":{"scope":"MyParentPortfolioScope","code":"MyParentPortfolioCode"},"created":"2018-12-10T17:03:36.7081654Z","corporateActionSourceId":{"scope":"MyScope","code":"MyCorporateActionSourceId"},"accountingMethod":"FirstInFirstOut","subHoldingKeys":["Trade/MyScope/Strategy","Trade/MyScope/SubAccount"]}},"Portfolio":{"type":"object","properties":{"href":{"description":"Link to retrieve the current entity","type":"string","readOnly":true},"id":{"$ref":"#/definitions/ResourceId","description":"Identifier for the portfolio","readOnly":true},"type":{"description":"The type of portfolio this is (e.g. Transaction Portfolio, Reference Portfolio)","enum":["Transaction","Reference","DerivedTransaction"],"type":"string","readOnly":true},"displayName":{"description":"Display name of the portfolio","type":"string","readOnly":true},"description":{"description":"Description of the portfolio","type":"string","readOnly":true},"created":{"format":"date-time","description":"Portfolio creation time in UTC","type":"string","readOnly":true},"parentPortfolioId":{"$ref":"#/definitions/ResourceId","description":"If this is a derived portfolio, the identifier of the portfolio from which it is derived","readOnly":true},"version":{"$ref":"#/definitions/Version","description":"The version of the portfolio","readOnly":true},"isDerived":{"type":"boolean","readOnly":true},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"Version":{"description":"Describes the version metadata of an entity.","type":"object","properties":{"effectiveFrom":{"format":"date-time","description":"","type":"string","readOnly":true},"asAtDate":{"format":"date-time","description":"","type":"string","readOnly":true},"href":{"type":"string","readOnly":true}}},"InstrumentDefinition":{"required":["name","identifiers"],"type":"object","properties":{"name":{"description":"Required. The name of the instrument","type":"string"},"identifiers":{"description":"Required. A set of identifiers that uniquely identify this instrument (e.g FIGI, RIC)","type":"object","additionalProperties":{"type":"string"}},"properties":{"description":"Optional. A collection of properties to upsert on the instrument.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/UpsertInstrumentPropertyRequest"},"readOnly":true},"lookThroughPortfolioId":{"$ref":"#/definitions/ResourceId","description":"Optional. The identifier of the portfolio that represents this instrument"},"definition":{"$ref":"#/definitions/InstrumentEconomicDefinition","description":"Expanded instrument definition - in the case of OTC instruments\r\nthis contains the definition of the non-exchange traded instrument.\r\nThe format for this can be client-defined, but in order to transparently use\r\nvendor libraries it must conform to a format that LUSID understands."}}},"UpsertInstrumentPropertyRequest":{"type":"object","properties":{"instrumentPropertyKey":{"description":"The property key of the property, e.g, 'Instrument/default/Isin'","type":"string"},"property":{"$ref":"#/definitions/PropertyValue","description":"The value of the property, which must not be empty or null. e.g, 'US0378331005'"}}},"InstrumentEconomicDefinition":{"description":"Expanded instrument definition - in the case of OTC instruments\r\nthis contains the definition of the non-exchange traded instrument.\r\nThe format for this can be client-defined, but in order to transparently use\r\nvendor libraries it must conform to a format that LUSID understands.","required":["instrumentFormat","content"],"type":"object","properties":{"instrumentFormat":{"type":"string"},"content":{"type":"string"}}},"PropertyValue":{"type":"object","properties":{"labelValue":{"description":"","type":"string"},"metricValue":{"$ref":"#/definitions/MetricValue","description":""},"effectiveFrom":{"format":"date-time","description":"Date for which the property is effective from","type":"string"}}},"MetricValue":{"type":"object","properties":{"value":{"format":"double","type":"number"},"unit":{"type":"string"}}},"UpsertInstrumentsResponse":{"type":"object","properties":{"href":{"type":"string"},"values":{"description":"The collection of upserted instruments with their latest parameters.","type":"object","additionalProperties":{"$ref":"#/definitions/Instrument"}},"failed":{"description":"If any instruments failed to be upserted, they will be listed in 'Failed', along\r\nwith a reason why.","type":"object","additionalProperties":{"$ref":"#/definitions/ErrorDetail"}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"Instrument":{"type":"object","properties":{"href":{"type":"string"},"lusidInstrumentId":{"description":"The lusid instrument id (LUID) of the instrument","type":"string"},"version":{"$ref":"#/definitions/Version","description":"The version of the instrument"},"name":{"description":"The name of the instrument","type":"string"},"identifiers":{"description":"The set of identifiers that can be used to uniquely identify the instrument","type":"object","additionalProperties":{"type":"string"}},"properties":{"description":"Any requested instrument properties. If no property can be found for the instrument, then\r\na value of 'Unknown' will be returned","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}},"marketIdentifierCode":{"description":"The market identifier of the instrument (if any).","type":"string"},"lookthroughPortfolio":{"$ref":"#/definitions/ResourceId","description":"The lookthrough portfolio of the instrument (if any)."},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"Property":{"required":["key","value"],"type":"object","properties":{"key":{"description":"","type":"string"},"value":{"description":"","type":"object"},"unit":{"description":"","type":"string"},"effectiveFrom":{"format":"date-time","description":"Date for which the property is effective from","type":"string"}}},"ResourceListOfInstrument":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Instrument"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"UpdateInstrumentIdentifierRequest":{"type":"object","properties":{"type":{"description":"The type of the identifier to upsert. This must be one of the code types marked as \r\nallowable for instrument identifiers.","enum":["Undefined","LusidInstrumentId","ReutersAssetId","CINS","Isin","Sedol","Cusip","Ticker","ClientInternal","Figi","CompositeFigi","ShareClassFigi","Wertpapier","RIC","QuotePermId"],"type":"string"},"value":{"description":"The value of the identifier. If set to `null`, this will remove the identifier completely.\r\nNote that, if an instrument only has one identifier, it is an error to remove this.","type":"string"},"effectiveAt":{"format":"date-time","description":"The date at which the identifier modification is to be effective from. If unset, will\r\ndefault to `now`.","type":"string"}},"example":{"type":"Figi","value":"updated-figi","effectiveAt":"2018-02-01T10:00:00Z"}},"DeleteInstrumentResponse":{"type":"object","properties":{"href":{"type":"string"},"asAt":{"format":"date-time","description":"The 'as at' time that the instrument was deleted at. As at times preceding this can\r\nstill be used to query the instrument.","type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"GetInstrumentsResponse":{"type":"object","properties":{"href":{"type":"string"},"values":{"description":"The instruments, keyed by their requested identifier. Only instruments that were found\r\nwill be contained in this collection.","type":"object","additionalProperties":{"$ref":"#/definitions/Instrument"}},"failed":{"description":"If any instruments were not found, then they will be listed in as 'Failed', along with the nature\r\nof their failure.","type":"object","additionalProperties":{"$ref":"#/definitions/ErrorDetail"}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"MatchInstrumentsResponse":{"type":"object","properties":{"href":{"type":"string"},"values":{"description":"A dictionary of instruments that are keyed by the search criteria supplied in the\r\nmatching request. If no match was found, then there will be no values in the collection\r\nfor that key.","type":"object","additionalProperties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/InstrumentDefinition"}}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"InstrumentProperty":{"type":"object","properties":{"lusidInstrumentId":{"description":"Unique instrument identifier","type":"string"},"properties":{"description":"A collection of properties to create or update","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/UpsertInstrumentPropertyRequest"}},"deletedProperties":{"description":"A collection of property keys to remove property values from, if any are set for the instrument","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/DeleteInstrumentPropertyRequest"}}}},"DeleteInstrumentPropertyRequest":{"type":"object","properties":{"instrumentPropertyKey":{"description":"The property key of the property to be removed from the instrument, e.g 'Instrument/default/Cusip`","type":"string"},"effectiveFrom":{"format":"date-time","description":"The date at which the property removal should be effective from. If no value is set, then 'now' is used.","type":"string"}}},"UpsertInstrumentPropertiesResponse":{"type":"object","properties":{"href":{"type":"string"},"failed":{"description":"A list of any values that failed to be upserted.","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ErrorDetail"},"readOnly":true},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfCodeType":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"enum":["Undefined","LusidInstrumentId","ReutersAssetId","CINS","Isin","Sedol","Cusip","Ticker","ClientInternal","Figi","CompositeFigi","ShareClassFigi","Wertpapier","RIC","QuotePermId"],"type":"string"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"FileResponse":{"description":"Allows a file (represented as a stream) to be returned from an Api call","type":"object","properties":{"fileStream":{"$ref":"#/definitions/Stream","readOnly":true},"contentType":{"type":"string","readOnly":true},"downloadedFilename":{"type":"string","readOnly":true}}},"Stream":{"type":"object","properties":{"canRead":{"type":"boolean","readOnly":true},"canSeek":{"type":"boolean","readOnly":true},"canTimeout":{"type":"boolean","readOnly":true},"canWrite":{"type":"boolean","readOnly":true},"length":{"format":"int64","type":"integer","readOnly":true},"position":{"format":"int64","type":"integer"},"readTimeout":{"format":"int32","type":"integer"},"writeTimeout":{"format":"int32","type":"integer"}}},"VersionSummaryDto":{"type":"object","properties":{"apiVersion":{"type":"string","readOnly":true},"buildVersion":{"type":"string","readOnly":true},"excelVersion":{"type":"string","readOnly":true},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfPersonalisation":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Personalisation"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"Personalisation":{"type":"object","properties":{"scope":{"description":"","enum":["User","Group","Default","All"],"type":"string"},"scopeValue":{"description":"","type":"string"},"settingKey":{"description":"","type":"string"},"settingValue":{"description":"","type":"string"},"dataType":{"description":"","type":"string"},"href":{"type":"string"}}},"UpsertPersonalisationResponse":{"type":"object","properties":{"href":{"type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"CreatePortfolioGroupRequest":{"required":["id","displayName"],"type":"object","properties":{"id":{"type":"string"},"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ResourceId"}},"subGroups":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ResourceId"}},"displayName":{"type":"string"},"description":{"type":"string"}},"example":{"id":"MyGroupCode","values":[{"scope":"MyScope","code":"MyPortfolioCode1"},{"scope":"MyScope","code":"MyPortfolioCode2"}],"subGroups":[{"scope":"MyScope","code":"MySubGroupCode"}],"displayName":"MyGroupName","description":"My group description"}},"PortfolioGroup":{"type":"object","properties":{"href":{"type":"string"},"id":{"$ref":"#/definitions/ResourceId"},"displayName":{"type":"string"},"description":{"type":"string"},"portfolios":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ResourceId"}},"subGroups":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ResourceId"}},"version":{"$ref":"#/definitions/Version"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfPortfolioGroup":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PortfolioGroup"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"UpdatePortfolioGroupRequest":{"required":["displayName"],"type":"object","properties":{"displayName":{"type":"string"},"description":{"type":"string"}},"example":{"displayName":"MyGroupName","description":"My Group Description"}},"AggregationRequest":{"description":"Specification object for the parameters of an aggregation","required":["recipeId","effectiveAt","metrics"],"type":"object","properties":{"recipeId":{"$ref":"#/definitions/ResourceId"},"loadReferencePortfolio":{"type":"boolean"},"asAt":{"format":"date-time","description":"The asAt date to use","type":"string"},"effectiveAt":{"format":"date-time","type":"string"},"metrics":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/AggregateSpec"}},"groupBy":{"uniqueItems":false,"type":"array","items":{"type":"string"}},"filters":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PropertyFilter"}},"limit":{"format":"int32","type":"integer"},"sort":{"type":"string"}},"example":{"recipeId":{"scope":"MyScope","code":"default"},"loadReferencePortfolio":false,"asAt":"2018-12-10T17:03:37.0456691Z","effectiveAt":"2018-12-10T17:03:37.0456687Z","metrics":[{"key":"Holding/default/PV","op":"Proportion"},{"key":"Holding/default/PV","op":"Sum"}],"groupBy":["Security/default/CommonName"]}},"AggregateSpec":{"required":["key","op"],"type":"object","properties":{"key":{"type":"string"},"op":{"enum":["Sum","Proportion"],"type":"string"}}},"PropertyFilter":{"type":"object","properties":{"left":{"type":"string"},"operator":{"enum":["Equals","NotEquals","GreaterThan","GreaterThanOrEqualTo","LessThan","LessThanOrEqualTo","In"],"type":"string"},"right":{"type":"object"},"rightOperandType":{"enum":["Absolute","Property"],"type":"string"}}},"ListAggregationResponse":{"type":"object","properties":{"href":{"type":"string"},"data":{"uniqueItems":false,"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}},"aggregationCurrency":{"type":"string"},"dataSchema":{"$ref":"#/definitions/ResultDataSchema"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResultDataSchema":{"type":"object","properties":{"nodeValueSchema":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/KeyValuePairOfPropertyKeyToFieldSchema"}},"propertySchema":{"type":"object","additionalProperties":{"$ref":"#/definitions/FieldSchema"}}}},"KeyValuePairOfPropertyKeyToFieldSchema":{"type":"object","properties":{"key":{"type":"string","readOnly":true},"value":{"$ref":"#/definitions/FieldSchema","readOnly":true}}},"FieldSchema":{"type":"object","properties":{"scope":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"},"type":{"enum":["String","Int","Decimal","DateTime","Boolean","Map","List","PropertyArray","Percentage","BenchmarkType","Code","Id","Uri","ArrayOfIds","ArrayOfTransactionAliases","ArrayofTransactionMovements","ArrayofUnits","StringArray","CurrencyAndAmount","TradePrice","UnitCreation","Currency","UserId","MetricValue","QuoteId","ArrayOfQuoteIds"],"type":"string"},"isMetric":{"type":"boolean"},"displayOrder":{"format":"int32","type":"integer"},"propertySchema":{"type":"object","additionalProperties":{"$ref":"#/definitions/FieldSchema"}}}},"NestedAggregationResponse":{"type":"object","properties":{"href":{"type":"string"},"data":{"$ref":"#/definitions/AggregationResponseNode"},"aggregationCurrency":{"type":"string"},"dataSchema":{"$ref":"#/definitions/ResultDataSchema"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"AggregationResponseNode":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"depth":{"format":"int32","type":"integer"},"properties":{"type":"object","additionalProperties":{"type":"object"}},"children":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/AggregationResponseNode"}}}},"ResourceListOfProcessedCommand":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ProcessedCommand"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ProcessedCommand":{"type":"object","properties":{"description":{"type":"string"},"path":{"type":"string"},"userId":{"$ref":"#/definitions/User","description":"The user that issued the command."},"processedTime":{"description":"The as at time of the events published by the processing of\r\nthis command.","type":"object"}}},"User":{"type":"object","properties":{"id":{"type":"string","readOnly":true}}},"ExpandedGroup":{"type":"object","properties":{"href":{"type":"string"},"id":{"$ref":"#/definitions/ResourceId"},"name":{"type":"string"},"description":{"type":"string"},"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/CompletePortfolio"}},"subGroups":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ExpandedGroup"}},"version":{"$ref":"#/definitions/Version"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"CompletePortfolio":{"type":"object","properties":{"id":{"$ref":"#/definitions/ResourceId","readOnly":true},"href":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true},"displayName":{"type":"string","readOnly":true},"created":{"format":"date-time","type":"string","readOnly":true},"parentPortfolioId":{"$ref":"#/definitions/ResourceId","readOnly":true},"isDerived":{"type":"boolean","readOnly":true},"type":{"enum":["Transaction","Reference","DerivedTransaction"],"type":"string","readOnly":true},"version":{"$ref":"#/definitions/Version"},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}},"baseCurrency":{"type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfScope":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"type":"string"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfPortfolio":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Portfolio"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"UpdatePortfolioRequest":{"required":["displayName"],"type":"object","properties":{"displayName":{"description":"","type":"string"},"description":{"description":"","type":"string"},"created":{"format":"date-time","description":"","type":"string"}},"example":{"displayName":"MyPortfolioName","description":"Long form description of portfolio","created":"2018-12-10T17:03:36.9375792Z"}},"PortfolioProperties":{"type":"object","properties":{"href":{"type":"string"},"originPortfolioId":{"$ref":"#/definitions/ResourceId"},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}},"version":{"$ref":"#/definitions/Version","description":"The version of the portfolio"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"PortfoliosReconciliationRequest":{"required":["left","right","instrumentPropertyKeys"],"type":"object","properties":{"left":{"$ref":"#/definitions/PortfolioReconciliationRequest","description":"The specification of the left hand side of the portfolio reconciliation"},"right":{"$ref":"#/definitions/PortfolioReconciliationRequest","description":"The specification of the right hand side of the portfolio reconciliation"},"instrumentPropertyKeys":{"description":"Instrument properties to be included with any identified breaks. These properties will be in the effective and AsAt dates of the left portfolio","uniqueItems":false,"type":"array","items":{"type":"string"}}},"example":{"left":{"portfolioId":{"scope":"MySourceScope","code":"MySourcePortfolioCode"},"effectiveAt":"2018-12-10T17:03:36.9654336Z","asAt":"2018-12-10T17:03:36.965434Z"},"right":{"portfolioId":{"scope":"MyTargetScope","code":"MyTargetPortfolioCode"},"effectiveAt":"2018-12-10T17:03:36.9654342Z","asAt":"2018-12-10T17:03:36.9654343Z"},"instrumentPropertyKeys":["Security/default/CommonName"]}},"PortfolioReconciliationRequest":{"required":["portfolioId","effectiveAt"],"type":"object","properties":{"portfolioId":{"$ref":"#/definitions/ResourceId","description":"The id of the portfolio to be reconciled"},"effectiveAt":{"format":"date-time","description":"The effective date of the portfolio","type":"string"},"asAt":{"format":"date-time","description":"Optional. The AsAt date of the portfolio","type":"string"}}},"ResourceListOfReconciliationBreak":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ReconciliationBreak"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ReconciliationBreak":{"description":"A reconciliation break","required":["instrumentUid","subHoldingKeys","leftUnits","rightUnits","differenceUnits","leftCost","rightCost","differenceCost","instrumentProperties"],"type":"object","properties":{"instrumentUid":{"description":"Unique instrument identifier","type":"string"},"subHoldingKeys":{"description":"Any other properties that comprise the Sub-Holding Key","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PerpetualProperty"}},"leftUnits":{"format":"double","description":"Units from the left hand side","type":"number"},"rightUnits":{"format":"double","description":"Units from the right hand side","type":"number"},"differenceUnits":{"format":"double","description":"Difference in units","type":"number"},"leftCost":{"$ref":"#/definitions/CurrencyAndAmount","description":"Cost from the left hand side"},"rightCost":{"$ref":"#/definitions/CurrencyAndAmount","description":"Cost from the right hand side"},"differenceCost":{"$ref":"#/definitions/CurrencyAndAmount","description":"Difference in cost"},"instrumentProperties":{"description":"Additional features relating to the security","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}}}},"PerpetualProperty":{"description":"This is intended to be the external facing unitemporal property specification data type.","required":["key","value"],"type":"object","properties":{"key":{"description":"","type":"string"},"value":{"description":"","type":"object"},"unit":{"description":"","type":"string","readOnly":true}}},"CurrencyAndAmount":{"type":"object","properties":{"amount":{"format":"double","type":"number"},"currency":{"type":"string"}}},"CreatePropertyDefinitionRequest":{"type":"object","properties":{"domain":{"enum":["Trade","Portfolio","Security","Holding","ReferenceHolding","TxnType","Instrument","CutDefinition"],"type":"string"},"scope":{"type":"string"},"code":{"type":"string"},"valueRequired":{"type":"boolean"},"displayName":{"type":"string"},"dataTypeId":{"$ref":"#/definitions/ResourceId"},"lifeTime":{"enum":["Perpetual","TimeVariant"],"type":"string"},"type":{"enum":["Label","Metric"],"type":"string"}},"example":{"domain":"Portfolio","scope":"MyScope","code":"MyPropertyName","valueRequired":false,"displayName":"My Property Display Name","dataTypeId":{"scope":"default","code":"string"},"lifeTime":"Perpetual","type":"Label"}},"PropertyDefinition":{"type":"object","properties":{"href":{"type":"string"},"key":{"type":"string"},"valueType":{"enum":["String","Int","Decimal","DateTime","Boolean","Map","List","PropertyArray","Percentage","BenchmarkType","Code","Id","Uri","ArrayOfIds","ArrayOfTransactionAliases","ArrayofTransactionMovements","ArrayofUnits","StringArray","CurrencyAndAmount","TradePrice","UnitCreation","Currency","UserId","MetricValue","QuoteId","ArrayOfQuoteIds"],"type":"string"},"valueRequired":{"type":"boolean"},"displayName":{"type":"string"},"dataTypeId":{"$ref":"#/definitions/ResourceId"},"lifeTime":{"enum":["Perpetual","TimeVariant"],"type":"string"},"type":{"enum":["Label","Metric"],"type":"string"},"unitSchema":{"enum":["NoUnits","Basic","Iso4217Currency"],"type":"string"},"domain":{"enum":["Trade","Portfolio","Security","Holding","ReferenceHolding","TxnType","Instrument","CutDefinition"],"type":"string","readOnly":true},"scope":{"type":"string","readOnly":true},"code":{"type":"string","readOnly":true},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfPropertyDefinition":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PropertyDefinition"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"UpdatePropertyDefinitionRequest":{"type":"object","properties":{"valueRequired":{"type":"boolean"},"displayName":{"type":"string"},"dataTypeId":{"$ref":"#/definitions/ResourceId"},"lifeTime":{"enum":["Perpetual","TimeVariant"],"type":"string"},"type":{"enum":["Label","Metric"],"type":"string"}},"example":{"valueRequired":true,"displayName":"MyPropertyName","dataTypeId":{"scope":"MyScope","code":"MyDataFormatCode"},"lifeTime":"Perpetual","type":"Label"}},"UpsertQuoteRequest":{"required":["quoteId","metricValue"],"type":"object","properties":{"quoteId":{"$ref":"#/definitions/QuoteId","description":""},"metricValue":{"$ref":"#/definitions/MetricValue","description":""},"effectiveAt":{"format":"date-time","description":"","type":"string"}}},"QuoteId":{"required":["instrumentId","instrumentIdType","quoteConvention","quoteType"],"type":"object","properties":{"instrumentId":{"description":"","type":"string"},"instrumentIdType":{"description":"","type":"string"},"quoteConvention":{"description":"","type":"string"},"quoteType":{"description":"","type":"string"},"priceSource":{"description":"","type":"string"}}},"UpsertQuotesResponse":{"description":"The response given from the UpsertQuotes Api call","required":["asAtDate"],"type":"object","properties":{"asAtDate":{"format":"date-time","type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"DeleteQuoteRequest":{"required":["quoteId","effectiveAt"],"type":"object","properties":{"quoteId":{"$ref":"#/definitions/QuoteId"},"effectiveAt":{"format":"date-time","type":"string"}}},"DeleteQuotesResponse":{"description":"The response given from the DeleteQuotes Api call","required":["asAtDate"],"type":"object","properties":{"asAtDate":{"format":"date-time","type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"GetQuotesResponse":{"type":"object","properties":{"found":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Quote"}},"notFound":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/QuoteId"}}}},"Quote":{"required":["quoteId","metricValue"],"type":"object","properties":{"quoteId":{"$ref":"#/definitions/QuoteId","description":""},"metricValue":{"$ref":"#/definitions/MetricValue","description":""},"effectiveAtDate":{"format":"date-time","type":"string"},"asAtDate":{"format":"date-time","type":"string"}}},"CreateReferencePortfolioRequest":{"required":["displayName","code"],"type":"object","properties":{"displayName":{"description":"","type":"string"},"description":{"description":"","type":"string"},"code":{"description":"","type":"string"},"created":{"format":"date-time","description":"","type":"string"},"properties":{"description":"Portfolio properties to add to the portfolio","type":"object","additionalProperties":{"$ref":"#/definitions/PerpetualPropertyValue"}}},"example":{"displayName":"MyPortfolioName","description":"Description of my portfolio","code":"MyPortfolioCode","created":"2018-12-10T17:03:37.0052931Z","properties":{}}},"PerpetualPropertyValue":{"type":"object","properties":{"labelValue":{"description":"","type":"string"},"metricValue":{"$ref":"#/definitions/MetricValue","description":""}}},"GetReferencePortfolioConstituentsResponse":{"required":["effectiveFrom","weightType","constituents"],"type":"object","properties":{"effectiveFrom":{"format":"date-time","description":"","type":"string"},"weightType":{"description":"","enum":["Static","Floating","Periodical"],"type":"string"},"periodType":{"description":"","enum":["Daily","Weekly","Monthly","Quarterly","Annually"],"type":"string"},"periodCount":{"format":"int32","description":"","type":"integer"},"constituents":{"description":"Set of constituents (instrument/weight pairings)","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ReferencePortfolioConstituent"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ReferencePortfolioConstituent":{"required":["instrumentUid","currency","weight"],"type":"object","properties":{"instrumentUid":{"description":"","type":"string"},"currency":{"description":"","type":"string"},"properties":{"description":"Properties associated with the constituent","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}},"weight":{"format":"double","description":"","type":"number"},"floatingWeight":{"format":"double","description":"","type":"number"}}},"UpsertReferencePortfolioConstituentsRequest":{"required":["effectiveFrom","weightType","constituents"],"type":"object","properties":{"effectiveFrom":{"format":"date-time","description":"","type":"string"},"weightType":{"description":"","enum":["Static","Floating","Periodical"],"type":"string"},"periodType":{"description":"","enum":["Daily","Weekly","Monthly","Quarterly","Annually"],"type":"string"},"periodCount":{"format":"int32","description":"","type":"integer"},"constituents":{"description":"Set of constituents (instrument/weight pairings)","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/ReferencePortfolioConstituentRequest"}}},"example":{"effectiveFrom":"2018-12-10T17:03:37.0243754Z","weightType":"Periodical","periodType":"Quarterly","periodCount":2,"constituents":[{"instrumentUid":"LUID_12345678","properties":{"Portfolio/MyScope/MyPropertyKey":{"metricValue":{"value":12345.5672,"unit":"Unit"}}},"weight":100.0,"currency":"GBP"},{"instrumentUid":"LUID_98765432","properties":{},"weight":50.0,"currency":"USD"}]}},"ReferencePortfolioConstituentRequest":{"type":"object","properties":{"instrumentUid":{"description":"","type":"string"},"properties":{"type":"object","additionalProperties":{"$ref":"#/definitions/PerpetualPropertyValue"}},"weight":{"format":"double","description":"","type":"number"},"currency":{"description":"","type":"string"}}},"UpsertReferencePortfolioConstituentsResponse":{"type":"object","properties":{"href":{"type":"string"},"version":{"$ref":"#/definitions/Version"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"CreateResults":{"type":"object","properties":{"data":{"type":"object"},"scope":{"type":"string"},"key":{"type":"string"},"date":{"format":"date-time","type":"string"}},"example":{"data":[],"scope":"MyScope","key":"MyResultsUniqueKey","date":"2018-12-10T17:03:37.0371861Z"}},"Results":{"type":"object","properties":{"version":{"$ref":"#/definitions/Version"},"href":{"type":"string"},"values":{"type":"object"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfString":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"type":"string"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"Schema":{"type":"object","properties":{"entity":{"type":"string"},"href":{"type":"string"},"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/KeyValuePairOfStringToFieldSchema"}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"KeyValuePairOfStringToFieldSchema":{"type":"object","properties":{"key":{"type":"string","readOnly":true},"value":{"$ref":"#/definitions/FieldSchema","readOnly":true}}},"PropertySchema":{"type":"object","properties":{"href":{"type":"string"},"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/KeyValuePairOfPropertyKeyToFieldSchema"}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfValueType":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"enum":["String","Int","Decimal","DateTime","Boolean","Map","List","PropertyArray","Percentage","BenchmarkType","Code","Id","Uri","ArrayOfIds","ArrayOfTransactionAliases","ArrayofTransactionMovements","ArrayofUnits","StringArray","CurrencyAndAmount","TradePrice","UnitCreation","Currency","UserId","MetricValue","QuoteId","ArrayOfQuoteIds"],"type":"string"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfPortfolioSearchResult":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PortfolioSearchResult"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"PortfolioSearchResult":{"type":"object","properties":{"id":{"$ref":"#/definitions/ResourceId","readOnly":true},"type":{"enum":["Transaction","Reference","DerivedTransaction"],"type":"string","readOnly":true},"href":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true},"displayName":{"type":"string","readOnly":true},"isDerived":{"type":"boolean","readOnly":true},"created":{"format":"date-time","type":"string","readOnly":true},"parentPortfolioId":{"$ref":"#/definitions/ResourceId","readOnly":true},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"},"readOnly":true},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"TransactionConfigurationDataRequest":{"required":["aliases","movements"],"type":"object","properties":{"aliases":{"description":"List of transaction codes that map to this specific transaction model","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionConfigurationTypeAlias"}},"movements":{"description":"Movement data for the transaction code","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionConfigurationMovementDataRequest"}},"properties":{"type":"object","additionalProperties":{"$ref":"#/definitions/PropertyValue"},"readOnly":true}}},"TransactionConfigurationTypeAlias":{"required":["type","description","transactionClass","transactionGroup","transactionRoles"],"type":"object","properties":{"type":{"description":"The transaction type","type":"string"},"description":{"description":"Brief description of the transaction","type":"string"},"transactionClass":{"description":"Relates types of a similar class. E.g. Buy/Sell, StockIn/StockOut","type":"string"},"transactionGroup":{"description":"Group is a set of codes related to a source, or sync","type":"string"},"transactionRoles":{"description":"Transactions role within a class. E.g. Increase a long position","enum":["None","LongLonger","LongShorter","ShortShorter","ShortLonger","Longer","Shorter","AllRoles"],"type":"string"}}},"TransactionConfigurationMovementDataRequest":{"required":["movementTypes","side","direction"],"type":"object","properties":{"movementTypes":{"description":"The Movement Types","enum":["Settlement","Traded","ForwardFx","Commitment","Receivable","CashSettlement","Accrual","UnsettledCashTypes"],"type":"string"},"side":{"description":"The Movement Side","enum":["Side1","Side2","BondInt"],"type":"string"},"direction":{"format":"int32","description":"The Movement direction","type":"integer"},"properties":{"type":"object","additionalProperties":{"$ref":"#/definitions/PropertyValue"}},"mappings":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionPropertyMappingRequest"}}}},"TransactionPropertyMappingRequest":{"required":["propertyKey"],"type":"object","properties":{"propertyKey":{"description":"The Side","type":"string"},"mapFrom":{"description":"The Side","type":"string"},"setTo":{"description":"The Side","type":"object"}}},"ResourceListOfTransactionConfigurationData":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionConfigurationData"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"TransactionConfigurationData":{"required":["aliases","movements"],"type":"object","properties":{"aliases":{"description":"List of transaction codes that map to this specific transaction model","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionConfigurationTypeAlias"}},"movements":{"description":"Movement data for the transaction code","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionConfigurationMovementData"}},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}}}},"TransactionConfigurationMovementData":{"required":["movementTypes","side","direction"],"type":"object","properties":{"movementTypes":{"description":"The Movement Types","enum":["Settlement","Traded","ForwardFx","Commitment","Receivable","CashSettlement","Accrual","UnsettledCashTypes"],"type":"string"},"side":{"description":"The Movement Side","enum":["Side1","Side2","BondInt"],"type":"string"},"direction":{"format":"int32","description":"The Movement direction","type":"integer"},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}},"mappings":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TransactionPropertyMapping"}}}},"TransactionPropertyMapping":{"required":["propertyKey"],"type":"object","properties":{"propertyKey":{"description":"The Side","type":"string"},"mapFrom":{"description":"The Side","type":"string"},"setTo":{"description":"The Side","type":"object"}}},"CreateTransactionPortfolioRequest":{"required":["displayName","code","baseCurrency"],"type":"object","properties":{"displayName":{"description":"","type":"string"},"description":{"description":"","type":"string"},"code":{"description":"","type":"string"},"created":{"format":"date-time","description":"","type":"string"},"baseCurrency":{"description":"","type":"string"},"corporateActionSourceId":{"$ref":"#/definitions/ResourceId","description":""},"accountingMethod":{"description":"","enum":["Default","AverageCost","FirstInFirstOut","LastInFirstOut","HighestCostFirst","LowestCostFirst"],"type":"string"},"subHoldingKeys":{"description":"","uniqueItems":false,"type":"array","items":{"type":"string"}},"properties":{"description":"Portfolio properties to add to the portfolio","type":"object","additionalProperties":{"$ref":"#/definitions/PropertyValue"}}},"example":{"displayName":"MyPortfolioName","description":"Example long form description of transaction portfolio","code":"MyPortfolioCode","created":"2018-12-10T17:03:37.0987364Z","baseCurrency":"GBP","corporateActionSourceId":{"scope":"MyScope","code":"MyCorporateActionSourceId"},"accountingMethod":"Default","subHoldingKeys":[],"properties":{"Portfolio/TestScope/TestPropertyName":{"metricValue":{"value":123.45,"unit":"GBP"}}}}},"PortfolioDetails":{"type":"object","properties":{"href":{"type":"string"},"originPortfolioId":{"$ref":"#/definitions/ResourceId"},"version":{"$ref":"#/definitions/Version","description":"The version of the portfolio"},"baseCurrency":{"type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"CreatePortfolioDetails":{"type":"object","properties":{"baseCurrency":{"type":"string"}},"example":{"baseCurrency":"GBP"}},"ExecutionRequest":{"required":["executionId","side","instrumentUid","transactionTime","orderQty","price","currency"],"type":"object","properties":{"executionId":{"description":"FIX Field 17. Unique execution identifier.","type":"string"},"side":{"description":"FIX Field 54.","type":"string"},"instrumentUid":{"description":"Unique instrument identifier.","type":"string"},"transactionTime":{"format":"date-time","description":"FIX field 60. Time the transaction represented by this ExecutionReport occurred.","type":"string"},"orderQty":{"format":"double","description":"FIX field 38. Order quantity.","type":"number"},"price":{"format":"double","description":"FIX field 44.","type":"number"},"currency":{"description":"FIX field 15.","type":"string"}},"example":{"executionId":"MyExecutionId","side":"SellShort","instrumentUid":"FIGI_BBG001S6PJ31","transactionTime":"2018-12-10T17:03:37.1123659Z","orderQty":1000.0,"price":1.23,"currency":"USD"}},"UpsertPortfolioExecutionsResponse":{"type":"object","properties":{"version":{"$ref":"#/definitions/Version"},"href":{"type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"VersionedResourceListOfPortfolioHolding":{"type":"object","properties":{"version":{"$ref":"#/definitions/Version"},"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PortfolioHolding"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"PortfolioHolding":{"required":["instrumentUid","holdingType","units","settledUnits","cost","costPortfolioCcy"],"type":"object","properties":{"instrumentUid":{"description":"Unique instrument identifier","type":"string"},"subHoldingKeys":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PerpetualProperty"}},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Property"}},"holdingType":{"description":"Type of holding, eg Position, Balance, CashCommitment, Receivable, ForwardFX","type":"string"},"units":{"format":"double","description":"Quantity of holding","type":"number"},"settledUnits":{"format":"double","description":"Settled quantity of holding","type":"number"},"cost":{"$ref":"#/definitions/CurrencyAndAmount","description":"Book cost of holding in transaction currency"},"costPortfolioCcy":{"$ref":"#/definitions/CurrencyAndAmount","description":"Book cost of holding in portfolio currency"},"transaction":{"$ref":"#/definitions/Transaction","description":"If this is commitment-type holding, the transaction behind it"}}},"Transaction":{"required":["transactionId","type","instrumentUid","transactionDate","settlementDate","units","transactionPrice","totalConsideration","source"],"type":"object","properties":{"transactionId":{"description":"Unique transaction identifier","type":"string"},"type":{"description":"LUSID transaction type code - Buy, Sell, StockIn, StockOut, etc","type":"string"},"instrumentUid":{"description":"Unique instrument identifier","type":"string"},"transactionDate":{"format":"date-time","description":"Transaction date","type":"string"},"settlementDate":{"format":"date-time","description":"Settlement date","type":"string"},"units":{"format":"double","description":"Quantity of transaction in units of the instrument","type":"number"},"transactionPrice":{"$ref":"#/definitions/TransactionPrice","description":"Execution price for the transaction"},"totalConsideration":{"$ref":"#/definitions/CurrencyAndAmount","description":"Total value of the transaction in settlement currency"},"exchangeRate":{"format":"double","description":"Rate between transaction and settle currency","type":"number"},"transactionCurrency":{"description":"Transaction currency","type":"string"},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PerpetualProperty"}},"counterpartyId":{"description":"Counterparty identifier","type":"string"},"source":{"description":"Where this transaction came from","enum":["System","Client"],"type":"string"},"nettingSet":{"description":"","type":"string"}}},"TransactionPrice":{"description":"A price with its associated type","type":"object","properties":{"price":{"format":"double","type":"number"},"type":{"enum":["Price","Yield","Spread"],"type":"string"}}},"AdjustHoldingRequest":{"description":"This request specifies target holdings. i.e. holding data that the\r\nsystem should match. When processed by the movement\r\nengine, it will create 'true-up' adjustments on the fly.","required":["instrumentUid","taxLots"],"type":"object","properties":{"instrumentUid":{"description":"Unique instrument identifier","type":"string"},"subHoldingKeys":{"description":"Key fields to uniquely index the sub holdings of a instrument","type":"object","additionalProperties":{"$ref":"#/definitions/PerpetualPropertyValue"}},"properties":{"description":"Arbitrary properties to store with the holding","type":"object","additionalProperties":{"$ref":"#/definitions/PerpetualPropertyValue"}},"taxLots":{"description":"1 or more quantity amounts","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TargetTaxLotRequest"}}},"example":{"instrumentUid":"FIGI_BBG001S6PJ31","subHoldingKeys":{"Trade/MyScope/MyHoldingKeyName":{"labelValue":"MyHoldingKeyValue"}},"properties":{"Holding/MyScope/MyPropertyName":{"labelValue":"MyPropertyValue"}},"taxLots":[{"units":100.0,"cost":{"amount":10000.0,"currency":"GBP"},"portfolioCost":10000.0,"price":100.0,"purchaseDate":"2018-03-05T00:00:00Z","settlementDate":"2018-03-08T00:00:00Z"}]}},"TargetTaxLotRequest":{"required":["units"],"type":"object","properties":{"units":{"format":"double","description":"Quantity of holding","type":"number"},"cost":{"$ref":"#/definitions/CurrencyAndAmount","description":"Book cost of holding in transaction currency"},"portfolioCost":{"format":"double","description":"Book cost of holding in portfolio currency","type":"number"},"price":{"format":"double","description":"Purchase price. Part of the unique key required for multiple taxlots","type":"number"},"purchaseDate":{"format":"date-time","description":"Purchase Date. Part of the unique key required for multiple taxlots","type":"string"},"settlementDate":{"format":"date-time","description":"Original settlement date of the tax-lot's opening transaction.","type":"string"}}},"AdjustHolding":{"description":"The response given from the AdjustHoldings Api call","type":"object","properties":{"href":{"type":"string"},"version":{"$ref":"#/definitions/Version"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"ResourceListOfHoldingsAdjustmentHeader":{"type":"object","properties":{"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/HoldingsAdjustmentHeader"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"HoldingsAdjustmentHeader":{"description":"Summary information of a holdings adjustment for a single portfolio and effective date.","type":"object","properties":{"effectiveAt":{"format":"date-time","description":"There can be at most one holdings adjustment for a portfolio at a\r\nspecific effective time so this uniquely identifies the adjustment.","type":"string"},"version":{"$ref":"#/definitions/Version"},"unmatchedHoldingMethod":{"enum":["PositionToZero","KeepTheSame"],"type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"HoldingsAdjustment":{"description":"Full content of a holdings adjustment for a single portfolio and effective date.","type":"object","properties":{"effectiveAt":{"format":"date-time","description":"There can be at most one holdings adjustment for a portfolio at a\r\nspecific effective time so this uniquely identifies the adjustment.","type":"string"},"version":{"$ref":"#/definitions/Version"},"unmatchedHoldingMethod":{"enum":["PositionToZero","KeepTheSame"],"type":"string"},"adjustments":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/HoldingAdjustment"}},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"HoldingAdjustment":{"description":"This 'dto' contains target holdings. i.e. holding data that the\r\nsystem should match. When processed by the movement\r\nengine, it will create 'true-up' adjustments on the fly.","required":["instrumentUid","taxLots"],"type":"object","properties":{"instrumentUid":{"description":"Unique instrument identifier","type":"string"},"subHoldingKeys":{"description":"Key fields to uniquely index the sub holdings of a instrument","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PerpetualProperty"}},"properties":{"description":"Arbitrary properties to store with the holding","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PerpetualProperty"}},"taxLots":{"description":"1 or more quantity amounts","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/TargetTaxLot"}}}},"TargetTaxLot":{"description":"Used to specify holdings target amounts at the tax-lot level","required":["units"],"type":"object","properties":{"units":{"format":"double","description":"Quantity of holding","type":"number"},"cost":{"$ref":"#/definitions/CurrencyAndAmount","description":"Book cost of holding in transaction currency"},"portfolioCost":{"format":"double","description":"Book cost of holding in portfolio currency","type":"number"},"price":{"format":"double","description":"Purchase price. Part of the unique key required for multiple taxlots","type":"number"},"purchaseDate":{"format":"date-time","description":"Purchase Date. Part of the unique key required for multiple taxlots","type":"string"},"settlementDate":{"format":"date-time","description":"Original settlement date of the tax-lot's opening transaction.","type":"string"}}},"VersionedResourceListOfTransaction":{"type":"object","properties":{"version":{"$ref":"#/definitions/Version"},"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Transaction"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"TransactionRequest":{"required":["transactionId","type","instrumentUid","transactionDate","settlementDate","units","transactionPrice","totalConsideration","source"],"type":"object","properties":{"transactionId":{"description":"Unique transaction identifier","type":"string"},"type":{"description":"LUSID transaction type code - Buy, Sell, StockIn, StockOut, etc","type":"string"},"instrumentUid":{"description":"Unique instrument identifier","type":"string"},"transactionDate":{"format":"date-time","description":"Transaction date","type":"string"},"settlementDate":{"format":"date-time","description":"Settlement date","type":"string"},"units":{"format":"double","description":"Quantity of transaction in units of the instrument","type":"number"},"transactionPrice":{"$ref":"#/definitions/TransactionPrice","description":"Execution price for the transaction"},"totalConsideration":{"$ref":"#/definitions/CurrencyAndAmount","description":"Total value of the transaction, in settlement currency"},"exchangeRate":{"format":"double","description":"Rate between transaction and settle currency","type":"number"},"transactionCurrency":{"description":"Transaction currency","type":"string"},"properties":{"type":"object","additionalProperties":{"$ref":"#/definitions/PerpetualPropertyValue"}},"counterpartyId":{"description":"Counterparty identifier","type":"string"},"source":{"description":"Where this transaction came from, either Client or System","enum":["System","Client"],"type":"string"},"nettingSet":{"description":"","type":"string"}},"example":{"transactionId":"MyTransactionId","type":"StockIn","instrumentUid":"FIGI_BBG001S6PJ31","transactionDate":"2018-12-10T17:03:37.1601024Z","settlementDate":"2018-12-13T17:03:37.1601029Z","units":1000.0,"transactionPrice":{"price":123.0,"type":"Price"},"totalConsideration":{"amount":1230.0,"currency":"GBP"},"transactionCurrency":"GBP","properties":{"Trade/MyScope/MyPropertyName":{"metricValue":{"value":123.45,"unit":"MyUnit"}}},"counterpartyId":"MyCounterpartyId","source":"Client","nettingSet":"MyNettingSet"}},"UpsertPortfolioTransactionsResponse":{"type":"object","properties":{"version":{"$ref":"#/definitions/Version"},"href":{"type":"string"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"AddTransactionPropertyResponse":{"type":"object","properties":{"href":{"type":"string"},"version":{"$ref":"#/definitions/Version"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"TransactionQueryParameters":{"type":"object","properties":{"startDate":{"format":"date-time","description":"The required set of transactions should begin from this date","type":"string"},"endDate":{"format":"date-time","description":"The required set of transactions should end at this date","type":"string"},"queryMode":{"description":"The method for date selection. Trade date or Settlement date","enum":["None","TradeDate","SettleDate"],"type":"string"},"showCancelledTransactions":{"description":"Option to include cancelled transactions in the results","type":"boolean"}},"example":{"startDate":"2018-03-05T00:00:00Z","endDate":"2018-03-19T00:00:00Z","queryMode":"TradeDate","showCancelledTransactions":false}},"VersionedResourceListOfOutputTransaction":{"type":"object","properties":{"version":{"$ref":"#/definitions/Version"},"values":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/OutputTransaction"}},"href":{"description":"The Uri that returns the same result as the original request,\r\nbut may include resolved as at time(s).","type":"string"},"count":{"format":"int32","description":"The total number of records returned in the set","type":"integer"},"links":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/Link"}}}},"OutputTransaction":{"type":"object","properties":{"transactionId":{"description":"Unique transaction identifier","type":"string","readOnly":true},"type":{"description":"LUSID transaction type code - Buy, Sell, StockIn, StockOut, etc","type":"string","readOnly":true},"description":{"description":"LUSID transaction description","type":"string","readOnly":true},"instrumentUid":{"description":"Unique instrument identifier","type":"string","readOnly":true},"transactionDate":{"format":"date-time","description":"Transaction date","type":"string","readOnly":true},"settlementDate":{"format":"date-time","description":"Settlement date","type":"string","readOnly":true},"units":{"format":"double","description":"Quantity of trade in units of the instrument","type":"number","readOnly":true},"transactionPrice":{"$ref":"#/definitions/TransactionPrice","description":"Execution price for the transaction","readOnly":true},"totalConsideration":{"$ref":"#/definitions/CurrencyAndAmount","description":"Total value of the transaction in settlement currency","readOnly":true},"exchangeRate":{"format":"double","description":"Rate between transaction and settlement currency","type":"number","readOnly":true},"transactionToPortfolioRate":{"format":"double","description":"Rate between transaction and portfolio currency","type":"number","readOnly":true},"transactionCurrency":{"description":"Transaction currency","type":"string","readOnly":true},"properties":{"uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/PerpetualProperty"},"readOnly":true},"counterpartyId":{"description":"Counterparty identifier","type":"string","readOnly":true},"source":{"description":"Where this transaction came from, either Client or System","enum":["System","Client"],"type":"string","readOnly":true},"nettingSet":{"description":"","type":"string","readOnly":true},"transactionStatus":{"description":"Transaction status (active, amended or cancelled)","enum":["Active","Amended","Cancelled"],"type":"string","readOnly":true},"entryDateTime":{"format":"date-time","description":"Date/Time the transaction was booked into LUSID","type":"string","readOnly":true},"cancelDateTime":{"format":"date-time","description":"Date/Time the cancellation was booked into LUSID","type":"string","readOnly":true},"realisedGainLoss":{"description":"Collection of gains or losses","uniqueItems":false,"type":"array","items":{"$ref":"#/definitions/RealisedGainLoss"},"readOnly":true}}},"RealisedGainLoss":{"type":"object","properties":{"instrumentUid":{"description":"Unique instrument identifier","type":"string","readOnly":true},"units":{"format":"double","description":"Quantity against which gain has been made in units of the instrument","type":"number","readOnly":true},"purchaseTradeDate":{"format":"date-time","description":"Date the position was originally purchased","type":"string","readOnly":true},"purchaseSettlementDate":{"format":"date-time","description":"Date the position originally settled","type":"string","readOnly":true},"purchasePrice":{"format":"double","description":"Price the instrument was purchased at","type":"number","readOnly":true},"costTradeCcy":{"$ref":"#/definitions/CurrencyAndAmount","description":"Purchase cost in the trade currency","readOnly":true},"costPortfolioCcy":{"$ref":"#/definitions/CurrencyAndAmount","description":"Purchase cost in the trade currency","readOnly":true},"realisedTradeCcy":{"$ref":"#/definitions/CurrencyAndAmount","description":"Gains or losses in the trade currency","readOnly":true},"realisedTotal":{"$ref":"#/definitions/CurrencyAndAmount","description":"Total gains or losses in the portfolio currency","readOnly":true},"realisedMarket":{"$ref":"#/definitions/CurrencyAndAmount","description":"Market gains or losses in the portfolio currency","readOnly":true},"realisedCurrency":{"$ref":"#/definitions/CurrencyAndAmount","description":"Currency gains or losses in the portfolio currency","readOnly":true}}}},"securityDefinitions":{"oauth2":{"flow":"implicit","authorizationUrl":"https://lusid.okta.com/oauth2/aus5a0xgh5ZSUqwkN2p6/v1/authorize","type":"oauth2","description":"OAuth2 Implicit Grant"}},"security":[{"oauth2":[]}],"tags":[{"name":"Aggregation","description":"Methods for accessing aggregated data"},{"name":"Analytics Stores","description":"Methods for interacting with Analytic Stores"},{"name":"Application Metadata","description":"Methods for querying application metadata"},{"name":"Corporate Actions","description":"Methods for storage and retrieval of Corporate Action data"},{"name":"Data Types","description":"Methods for administering data types"},{"name":"Derived Transaction Portfolios","description":"Methods for interacting with derived transaction portfolios"},{"name":"Instruments","description":"Methods for interacting with instruments"},{"name":"Internal","description":"Methods to handle internal management tasks of LUSID"},{"name":"Login","description":"Methods to handle login"},{"name":"Personalisations","description":"Methods for storage and retrieval of Personalisations"},{"name":"Portfolio Groups","description":"Methods for interacting with Portfolios Groups"},{"name":"Portfolios","description":"Methods for interacting with Portfolios"},{"name":"Property Definitions","description":"Methods for interacting with Properties"},{"name":"Quotes","description":"Methods for the storage and retrieval of Quotes"},{"name":"Reconciliations","description":"Endpoints for performing reconciliations"},{"name":"Reference Portfolio","description":"Methods for interacting with Reference Portfolios"},{"name":"Results","description":"Methods for storage and retrieval of Calculation Results"},{"name":"Schemas","description":"Methods for retrieval of Schemas"},{"name":"Search","description":"Methods providing Search capability"},{"name":"System Configuration","description":"Methods for updating system configuration with Portfolios"},{"name":"Transaction Portfolios","description":"Methods for interacting with transaction portfolios"}],"x-tagGroups":[{"name":"API","tags":["Aggregation","Analytics Stores","Application Metadata","Corporate Actions","Data Types","Derived Transaction Portfolios","Instruments","Internal","Login","Personalisations","Portfolio Groups","Portfolios","Property Definitions","Quotes","Reconciliations","Reference Portfolio","Results","Schemas","Search","System Configuration","Transaction Portfolios"]}]}