forked from finbourne/lusid-sdk-csharp-preview
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lusid.json
15558 lines (15558 loc) · 533 KB
/
lusid.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"swagger": "2.0",
"info": {
"version": "0.10.739",
"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/). 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| Key|propertykey|The key of the property. This takes the format {domain}/{scope}/{code} e.g. 'Instrument/system/Name' or 'Transaction/strategy/quantsignal'. |\n| Value|string|The value of the property. |\n| EffectiveFrom|datetimeoffset|The effective datetime from which the property is valid. |\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.lusid.com/configuring-transaction-types)\n\n| Field|Type|Description |\n| ---|---|--- |\n| TransactionId|string|The unique identifier for the transaction. |\n| Type|string|The type of the transaction e.g. 'Buy', 'Sell'. The transaction type should have been pre-configured via the System Configuration API endpoint. If it hasn't been pre-configured the transaction will still be updated or inserted however you will be unable to generate the resultant holdings for the portfolio that contains this transaction as LUSID does not know how to process it. |\n| InstrumentIdentifiers|map|A set of instrument identifiers to use to resolve the transaction to a unique instrument. |\n| TransactionDate|dateorcutlabel|The date of the transaction. |\n| SettlementDate|dateorcutlabel|The settlement date of the transaction. |\n| Units|decimal|The number of units transacted in the associated instrument. |\n| TransactionPrice|transactionprice|The price for each unit of the transacted instrument in the transaction currency. |\n| TotalConsideration|currencyandamount|The total value of the transaction in the settlement currency. |\n| ExchangeRate|decimal|The exchange rate between the transaction and settlement currency. For example if the transaction currency is in USD and the settlement currency is in GBP this this the USD/GBP rate. |\n| TransactionCurrency|currency|The transaction currency. |\n| Properties|map|Set of unique transaction properties and associated values to store with the transaction. Each property must be from the 'Transaction' domain. |\n| CounterpartyId|string|The identifier for the counterparty of the transaction. |\n| Source|string|The source of the transaction. This is used to look up the appropriate transaction group set in the transaction type configuration. |\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| InstrumentIdentifiers | { \"figi\", \"BBG000BLNNH6\" } | { \"CCY\", \"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| InstrumentIdentifiers | { \"CCY\", \"CCY_GBP\" } | { \"CCY\", \"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|The unqiue Lusid Instrument Id (LUID) of the instrument that the holding is in. |\n| SubHoldingKeys|map|The sub-holding properties which identify the holding. Each property will be from the 'Transaction' domain. These are configured when a transaction portfolio is created. |\n| Properties|map|The properties which have been requested to be decorated onto the holding. These will be from the 'Instrument' or 'Holding' domain. |\n| HoldingType|string|The type of the holding e.g. Position, Balance, CashCommitment, Receivable, ForwardFX etc. |\n| Units|decimal|The total number of units of the holding. |\n| SettledUnits|decimal|The total number of settled units of the holding. |\n| Cost|currencyandamount|The total cost of the holding in the transaction currency. |\n| CostPortfolioCcy|currencyandamount|The total cost of the holding in the portfolio currency. |\n| Transaction|transaction|The transaction associated with an unsettled holding. |\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| CorporateActionCode|code|The unique identifier of this corporate action |\n| Description|string| |\n| AnnouncementDate|datetimeoffset|The announcement date of the corporate action |\n| ExDate|datetimeoffset|The ex date of the corporate action |\n| RecordDate|datetimeoffset|The record date of the corporate action |\n| PaymentDate|datetimeoffset|The payment date of the corporate action |\n| Transitions|corporateactiontransition[]|The transitions that result from this corporate action |\n\n\n### Transition\n\n| Field|Type|Description |\n| ---|---|--- |\n| InputTransition|corporateactiontransitioncomponent|Indicating the basis of the corporate action - which security and how many units |\n| OutputTransitions|corporateactiontransitioncomponent[]|What will be generated relative to the input transition |\n\n\n### Example Corporate Action Transitions\n\n#### A Dividend Action Transition\n\nIn this example, for each share of IBM, 0.20 units (or 20 pence) of GBP are generated.\n\n| Column | Input Transition | Output Transition |\n| ----- | ----- | ----- |\n| Instrument Identifiers | { \"figi\" : \"BBG000BLNNH6\" } | { \"ccy\" : \"CCY_GBP\" } |\n| Units Factor | 1 | 0.20 |\n| Cost Factor | 1 | 0 |\n\n#### A Split Action Transition\n\nIn this example, for each share of IBM, we end up with 2 units (2 shares) of IBM, with total value unchanged.\n\n| Column | Input Transition | Output Transition |\n| ----- | ----- | ----- |\n| Instrument Identifiers | { \"figi\" : \"BBG000BLNNH6\" } | { \"figi\" : \"BBG000BLNNH6\" } |\n| Units Factor | 1 | 2 |\n| Cost Factor | 1 | 1 |\n\n#### A Spinoff Action Transition\n\nIn this example, for each share of IBM, we end up with 1 unit (1 share) of IBM and 3 units (3 shares) of Celestica, with 85% of the value remaining on the IBM share, and 5% in each Celestica share (15% total).\n\n| Column | Input Transition | Output Transition 1 | Output Transition 2 |\n| ----- | ----- | ----- | ----- |\n| Instrument Identifiers | { \"figi\" : \"BBG000BLNNH6\" } | { \"figi\" : \"BBG000BLNNH6\" } | { \"figi\" : \"BBG000HBGRF3\" } |\n| Units Factor | 1 | 1 | 3 |\n| Cost Factor | 1 | 0.85 | 0.15 |\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=\"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>|DerivedPortfolioDetailsDoNotExist| |\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>|AccessDenied| |\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=\"194\">194</a>|TimeVariantPropertyDeletionDateUnspecified| |\n| <a name=\"195\">195</a>|PerpetualPropertyDeletionDateSpecified| |\n| <a name=\"196\">196</a>|TimeVariantPropertyUpsertDateUnspecified| |\n| <a name=\"197\">197</a>|PerpetualPropertyUpsertDateSpecified| |\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=\"218\">218</a>|InvalidQuoteIdentifierFailure| |\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=\"233\">233</a>|QueryParserFailure| |\n| <a name=\"234\">234</a>|DuplicateConstituentFailure| |\n| <a name=\"235\">235</a>|UnresolvedInstrumentConstituentFailure| |\n| <a name=\"236\">236</a>|UnresolvedInstrumentInTransitionFailure| |\n| <a name=\"300\">300</a>|MissingRecipeFailure| |\n| <a name=\"301\">301</a>|DependenciesFailure| |\n| <a name=\"304\">304</a>|PortfolioPreprocessFailure| |\n| <a name=\"310\">310</a>|ValuationEngineFailure| |\n| <a name=\"311\">311</a>|TaskFactoryFailure| |\n| <a name=\"312\">312</a>|TaskEvaluationFailure| |\n| <a name=\"350\">350</a>|InstrumentFailure| |\n| <a name=\"351\">351</a>|CashFlowsFailure| |\n| <a name=\"360\">360</a>|AggregationFailure| |\n| <a name=\"370\">370</a>|ResultRetrievalFailure| |\n| <a name=\"371\">371</a>|ResultProcessingFailure| |\n| <a name=\"371\">371</a>|ResultProcessingFailure| |\n| <a name=\"372\">372</a>|VendorResultProcessingFailure| |\n| <a name=\"373\">373</a>|VendorResultMappingFailure| |\n| <a name=\"374\">374</a>|VendorLibraryUnauthorisedFailure| |\n| <a name=\"390\">390</a>|AttemptToUpsertDuplicateQuotes| |\n| <a name=\"391\">391</a>|CorporateActionSourceDoesNotExist| |\n| <a name=\"392\">392</a>|CorporateActionSourceAlreadyExists| |\n| <a name=\"393\">393</a>|InstrumentIdentifierAlreadyInUse| |\n| <a name=\"394\">394</a>|PropertiesNotFound| |\n| <a name=\"395\">395</a>|BatchOperationAborted| |\n| <a name=\"400\">400</a>|InvalidIso4217CurrencyCodeFailure| |\n| <a name=\"410\">410</a>|IndexDoesNotExist| |\n| <a name=\"411\">411</a>|SortFieldDoesNotExist| |\n| <a name=\"413\">413</a>|NegativePaginationParameters| |\n| <a name=\"414\">414</a>|InvalidSearchSyntax| |\n| <a name=\"-10\">-10</a>|ServerConfigurationError| |\n| <a name=\"-1\">-1</a>|Unknown error| |\n",
"contact": {
"name": "FINBOURNE Technology",
"url": "https://www.finbourne.com",
"email": "info@finbourne.com"
},
"x-logo": {
"url": "https://content.finbourne.com/FINBOURNE.png",
"backgroundColor": "#415464"
}
},
"basePath": "/api",
"paths": {
"/api/analytics": {
"get": {
"tags": [
"Analytics Stores"
],
"summary": "[EXPERIMENTAL] 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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Experimental"
},
"post": {
"tags": [
"Analytics Stores"
],
"summary": "[EXPERIMENTAL] Create analytic store",
"description": "Create a new analytic store for the specified scope and date",
"operationId": "CreateAnalyticStore",
"consumes": [],
"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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Experimental"
}
},
"/api/analytics/{scope}/{year}/{month}/{day}": {
"get": {
"tags": [
"Analytics Stores"
],
"summary": "[EXPERIMENTAL] 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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Experimental"
},
"delete": {
"tags": [
"Analytics Stores"
],
"summary": "[EXPERIMENTAL] 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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Experimental"
}
},
"/api/analytics/{scope}/{year}/{month}/{day}/prices": {
"put": {
"tags": [
"Analytics Stores"
],
"summary": "[EXPERIMENTAL] Set analytic data",
"description": "Store the complete set of analytics for an existing analytic store for the specified scope and date",
"operationId": "SetAnalytics",
"consumes": [],
"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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Experimental"
}
},
"/api/corporateactionsources": {
"get": {
"tags": [
"Corporate Action Sources"
],
"summary": "[BETA] Get corporate action sources",
"description": "Gets a list of all corporate action sources",
"operationId": "ListCorporateActionSources",
"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": "All Existing Corporate Action Sources",
"schema": {
"$ref": "#/definitions/ResourceListOfCorporateActionSource"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Beta"
},
"post": {
"tags": [
"Corporate Action Sources"
],
"summary": "[BETA] Create Corporate Action Source",
"description": "Attempt to create a corporate action source.",
"operationId": "CreateCorporateActionSource",
"consumes": [],
"produces": [
"text/plain",
"application/json",
"text/json"
],
"parameters": [
{
"name": "request",
"in": "body",
"description": "The corporate action source definition",
"required": true,
"schema": {
"$ref": "#/definitions/CreateCorporateActionSourceRequest"
}
}
],
"responses": {
"201": {
"description": "The created corporate action source",
"schema": {
"$ref": "#/definitions/CorporateActionSource"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Beta"
}
},
"/api/corporateactionsources/{scope}/{code}": {
"delete": {
"tags": [
"Corporate Action Sources"
],
"summary": "[BETA] Delete a corporate action source",
"description": "Deletes a single corporate action source",
"operationId": "DeleteCorporateActionSource",
"consumes": [],
"produces": [
"text/plain",
"application/json",
"text/json"
],
"parameters": [
{
"name": "scope",
"in": "path",
"description": "The Scope of the Corporate Action Source to be deleted",
"required": true,
"type": "string"
},
{
"name": "code",
"in": "path",
"description": "The Code of the Corporate Action Source to be deleted",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "Corporate Action Source Deleted",
"schema": {
"$ref": "#/definitions/DeletedEntityResponse"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Beta"
}
},
"/api/corporateactionsources/{scope}/{code}/corporateactions": {
"get": {
"tags": [
"Corporate Action Sources"
],
"summary": "[BETA] 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": "dateorcutlabel"
},
{
"name": "toEffectiveAt",
"in": "query",
"description": "Optional. The end effective date of the data range",
"required": false,
"type": "string",
"format": "dateorcutlabel"
},
{
"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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Beta"
},
"post": {
"tags": [
"Corporate Action Sources"
],
"summary": "[BETA] 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": [],
"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/UpsertCorporateActionRequest"
}
}
}
],
"responses": {
"201": {
"description": "The created corporate actions",
"schema": {
"$ref": "#/definitions/UpsertCorporateActionsResponse"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Beta"
}
},
"/api/datatypes": {
"post": {
"tags": [
"Data Types"
],
"summary": "[BETA] 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": [],
"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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Beta"
}
},
"/api/datatypes/{scope}": {
"get": {
"tags": [
"Data Types"
],
"summary": "[EARLY ACCESS] 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": "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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "EarlyAccess"
}
},
"/api/datatypes/{scope}/{code}": {
"get": {
"tags": [
"Data Types"
],
"summary": "[EARLY ACCESS] 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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "EarlyAccess"
},
"put": {
"tags": [
"Data Types"
],
"summary": "[BETA] 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": [],
"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"
}
},
"400": {
"description": "The details of the input related failure",
"schema": {
"$ref": "#/definitions/LusidValidationProblemDetails"
}
},
"default": {
"description": "Error response",
"schema": {
"$ref": "#/definitions/LusidProblemDetails"
}
}
},
"x-fbn-apistatus": "Beta"
}
},
"/api/datatypes/{scope}/{code}/units": {
"get": {
"tags": [
"Data Types"
],
"summary": "[EARLY ACCESS] 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",