lusid-sdk 2.1.261__py3-none-any.whl → 2.1.322__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. lusid/__init__.py +38 -0
  2. lusid/api/compliance_api.py +191 -0
  3. lusid/api/funds_api.py +1 -1
  4. lusid/api/order_management_api.py +159 -0
  5. lusid/api/scopes_api.py +38 -9
  6. lusid/configuration.py +1 -1
  7. lusid/extensions/configuration_loaders.py +9 -1
  8. lusid/models/__init__.py +38 -0
  9. lusid/models/cancel_orders_response.py +153 -0
  10. lusid/models/cancelled_order_result.py +73 -0
  11. lusid/models/cash.py +93 -0
  12. lusid/models/compliance_run_configuration.py +73 -0
  13. lusid/models/component_filter.py +85 -0
  14. lusid/models/component_rule.py +13 -19
  15. lusid/models/contract_for_difference.py +4 -2
  16. lusid/models/fund.py +6 -1
  17. lusid/models/fund_amount.py +69 -0
  18. lusid/models/fund_configuration.py +16 -15
  19. lusid/models/fund_configuration_request.py +18 -12
  20. lusid/models/fund_pnl_breakdown.py +110 -0
  21. lusid/models/fund_previous_nav.py +69 -0
  22. lusid/models/fund_request.py +6 -1
  23. lusid/models/fund_valuation_point_data.py +152 -0
  24. lusid/models/futures_contract_details.py +9 -2
  25. lusid/models/lusid_instrument.py +3 -2
  26. lusid/models/market_data_key_rule.py +3 -3
  27. lusid/models/market_data_specific_rule.py +3 -3
  28. lusid/models/market_quote.py +3 -3
  29. lusid/models/model_selection.py +3 -3
  30. lusid/models/posting_module_rule.py +7 -32
  31. lusid/models/pre_trade_configuration.py +69 -0
  32. lusid/models/previous_fund_valuation_point_data.py +79 -0
  33. lusid/models/previous_nav.py +73 -0
  34. lusid/models/previous_share_class_breakdown.py +81 -0
  35. lusid/models/pricing_model.py +1 -0
  36. lusid/models/quote_series_id.py +4 -20
  37. lusid/models/quote_type.py +3 -0
  38. lusid/models/share_class_amount.py +73 -0
  39. lusid/models/share_class_breakdown.py +163 -0
  40. lusid/models/share_class_data.py +79 -0
  41. lusid/models/share_class_details.py +108 -0
  42. lusid/models/share_class_pnl_breakdown.py +110 -0
  43. lusid/models/staged_modification.py +8 -1
  44. lusid/models/template_field.py +3 -1
  45. lusid/models/transaction_configuration_movement_data.py +2 -2
  46. lusid/models/transaction_configuration_movement_data_request.py +1 -1
  47. lusid/models/transaction_field_map.py +1 -1
  48. lusid/models/transaction_type_movement.py +2 -2
  49. lusid/models/unitisation_data.py +73 -0
  50. lusid/models/valuation_point_data_response.py +30 -9
  51. {lusid_sdk-2.1.261.dist-info → lusid_sdk-2.1.322.dist-info}/METADATA +30 -215
  52. {lusid_sdk-2.1.261.dist-info → lusid_sdk-2.1.322.dist-info}/RECORD +53 -34
  53. {lusid_sdk-2.1.261.dist-info → lusid_sdk-2.1.322.dist-info}/WHEEL +0 -0
lusid/__init__.py CHANGED
@@ -185,10 +185,13 @@ from lusid.models.calculation_info import CalculationInfo
185
185
  from lusid.models.calendar import Calendar
186
186
  from lusid.models.calendar_date import CalendarDate
187
187
  from lusid.models.calendar_dependency import CalendarDependency
188
+ from lusid.models.cancel_orders_response import CancelOrdersResponse
188
189
  from lusid.models.cancel_placements_response import CancelPlacementsResponse
190
+ from lusid.models.cancelled_order_result import CancelledOrderResult
189
191
  from lusid.models.cancelled_placement_result import CancelledPlacementResult
190
192
  from lusid.models.cap_floor import CapFloor
191
193
  from lusid.models.capital_distribution_event import CapitalDistributionEvent
194
+ from lusid.models.cash import Cash
192
195
  from lusid.models.cash_and_security_offer_election import CashAndSecurityOfferElection
193
196
  from lusid.models.cash_dependency import CashDependency
194
197
  from lusid.models.cash_dividend_event import CashDividendEvent
@@ -240,6 +243,7 @@ from lusid.models.compliance_rule_result_v2 import ComplianceRuleResultV2
240
243
  from lusid.models.compliance_rule_template import ComplianceRuleTemplate
241
244
  from lusid.models.compliance_rule_upsert_request import ComplianceRuleUpsertRequest
242
245
  from lusid.models.compliance_rule_upsert_response import ComplianceRuleUpsertResponse
246
+ from lusid.models.compliance_run_configuration import ComplianceRunConfiguration
243
247
  from lusid.models.compliance_run_info import ComplianceRunInfo
244
248
  from lusid.models.compliance_run_info_v2 import ComplianceRunInfoV2
245
249
  from lusid.models.compliance_step import ComplianceStep
@@ -253,6 +257,7 @@ from lusid.models.compliance_template_parameter import ComplianceTemplateParamet
253
257
  from lusid.models.compliance_template_variation import ComplianceTemplateVariation
254
258
  from lusid.models.compliance_template_variation_dto import ComplianceTemplateVariationDto
255
259
  from lusid.models.compliance_template_variation_request import ComplianceTemplateVariationRequest
260
+ from lusid.models.component_filter import ComponentFilter
256
261
  from lusid.models.component_rule import ComponentRule
257
262
  from lusid.models.component_transaction import ComponentTransaction
258
263
  from lusid.models.composite_breakdown import CompositeBreakdown
@@ -420,12 +425,16 @@ from lusid.models.flow_conventions import FlowConventions
420
425
  from lusid.models.forward_rate_agreement import ForwardRateAgreement
421
426
  from lusid.models.from_recipe import FromRecipe
422
427
  from lusid.models.fund import Fund
428
+ from lusid.models.fund_amount import FundAmount
423
429
  from lusid.models.fund_configuration import FundConfiguration
424
430
  from lusid.models.fund_configuration_properties import FundConfigurationProperties
425
431
  from lusid.models.fund_configuration_request import FundConfigurationRequest
432
+ from lusid.models.fund_pnl_breakdown import FundPnlBreakdown
433
+ from lusid.models.fund_previous_nav import FundPreviousNAV
426
434
  from lusid.models.fund_properties import FundProperties
427
435
  from lusid.models.fund_request import FundRequest
428
436
  from lusid.models.fund_share_class import FundShareClass
437
+ from lusid.models.fund_valuation_point_data import FundValuationPointData
429
438
  from lusid.models.funding_leg import FundingLeg
430
439
  from lusid.models.funding_leg_options import FundingLegOptions
431
440
  from lusid.models.future import Future
@@ -733,7 +742,11 @@ from lusid.models.posting_module_request import PostingModuleRequest
733
742
  from lusid.models.posting_module_response import PostingModuleResponse
734
743
  from lusid.models.posting_module_rule import PostingModuleRule
735
744
  from lusid.models.posting_module_rules_updated_response import PostingModuleRulesUpdatedResponse
745
+ from lusid.models.pre_trade_configuration import PreTradeConfiguration
736
746
  from lusid.models.premium import Premium
747
+ from lusid.models.previous_fund_valuation_point_data import PreviousFundValuationPointData
748
+ from lusid.models.previous_nav import PreviousNAV
749
+ from lusid.models.previous_share_class_breakdown import PreviousShareClassBreakdown
737
750
  from lusid.models.pricing_context import PricingContext
738
751
  from lusid.models.pricing_model import PricingModel
739
752
  from lusid.models.pricing_options import PricingOptions
@@ -914,6 +927,11 @@ from lusid.models.set_share_class_instruments_request import SetShareClassInstru
914
927
  from lusid.models.set_transaction_configuration_alias import SetTransactionConfigurationAlias
915
928
  from lusid.models.set_transaction_configuration_source_request import SetTransactionConfigurationSourceRequest
916
929
  from lusid.models.settlement_schedule import SettlementSchedule
930
+ from lusid.models.share_class_amount import ShareClassAmount
931
+ from lusid.models.share_class_breakdown import ShareClassBreakdown
932
+ from lusid.models.share_class_data import ShareClassData
933
+ from lusid.models.share_class_details import ShareClassDetails
934
+ from lusid.models.share_class_pnl_breakdown import ShareClassPnlBreakdown
917
935
  from lusid.models.side_configuration_data import SideConfigurationData
918
936
  from lusid.models.side_configuration_data_request import SideConfigurationDataRequest
919
937
  from lusid.models.side_definition import SideDefinition
@@ -1007,6 +1025,7 @@ from lusid.models.trial_balance_query_parameters import TrialBalanceQueryParamet
1007
1025
  from lusid.models.trigger_event import TriggerEvent
1008
1026
  from lusid.models.typed_resource_id import TypedResourceId
1009
1027
  from lusid.models.unit_schema import UnitSchema
1028
+ from lusid.models.unitisation_data import UnitisationData
1010
1029
  from lusid.models.units_ratio import UnitsRatio
1011
1030
  from lusid.models.unmatched_holding_method import UnmatchedHoldingMethod
1012
1031
  from lusid.models.update_amortisation_rule_set_details_request import UpdateAmortisationRuleSetDetailsRequest
@@ -1275,10 +1294,13 @@ __all__ = [
1275
1294
  "Calendar",
1276
1295
  "CalendarDate",
1277
1296
  "CalendarDependency",
1297
+ "CancelOrdersResponse",
1278
1298
  "CancelPlacementsResponse",
1299
+ "CancelledOrderResult",
1279
1300
  "CancelledPlacementResult",
1280
1301
  "CapFloor",
1281
1302
  "CapitalDistributionEvent",
1303
+ "Cash",
1282
1304
  "CashAndSecurityOfferElection",
1283
1305
  "CashDependency",
1284
1306
  "CashDividendEvent",
@@ -1330,6 +1352,7 @@ __all__ = [
1330
1352
  "ComplianceRuleTemplate",
1331
1353
  "ComplianceRuleUpsertRequest",
1332
1354
  "ComplianceRuleUpsertResponse",
1355
+ "ComplianceRunConfiguration",
1333
1356
  "ComplianceRunInfo",
1334
1357
  "ComplianceRunInfoV2",
1335
1358
  "ComplianceStep",
@@ -1343,6 +1366,7 @@ __all__ = [
1343
1366
  "ComplianceTemplateVariation",
1344
1367
  "ComplianceTemplateVariationDto",
1345
1368
  "ComplianceTemplateVariationRequest",
1369
+ "ComponentFilter",
1346
1370
  "ComponentRule",
1347
1371
  "ComponentTransaction",
1348
1372
  "CompositeBreakdown",
@@ -1510,12 +1534,16 @@ __all__ = [
1510
1534
  "ForwardRateAgreement",
1511
1535
  "FromRecipe",
1512
1536
  "Fund",
1537
+ "FundAmount",
1513
1538
  "FundConfiguration",
1514
1539
  "FundConfigurationProperties",
1515
1540
  "FundConfigurationRequest",
1541
+ "FundPnlBreakdown",
1542
+ "FundPreviousNAV",
1516
1543
  "FundProperties",
1517
1544
  "FundRequest",
1518
1545
  "FundShareClass",
1546
+ "FundValuationPointData",
1519
1547
  "FundingLeg",
1520
1548
  "FundingLegOptions",
1521
1549
  "Future",
@@ -1823,7 +1851,11 @@ __all__ = [
1823
1851
  "PostingModuleResponse",
1824
1852
  "PostingModuleRule",
1825
1853
  "PostingModuleRulesUpdatedResponse",
1854
+ "PreTradeConfiguration",
1826
1855
  "Premium",
1856
+ "PreviousFundValuationPointData",
1857
+ "PreviousNAV",
1858
+ "PreviousShareClassBreakdown",
1827
1859
  "PricingContext",
1828
1860
  "PricingModel",
1829
1861
  "PricingOptions",
@@ -2004,6 +2036,11 @@ __all__ = [
2004
2036
  "SetTransactionConfigurationAlias",
2005
2037
  "SetTransactionConfigurationSourceRequest",
2006
2038
  "SettlementSchedule",
2039
+ "ShareClassAmount",
2040
+ "ShareClassBreakdown",
2041
+ "ShareClassData",
2042
+ "ShareClassDetails",
2043
+ "ShareClassPnlBreakdown",
2007
2044
  "SideConfigurationData",
2008
2045
  "SideConfigurationDataRequest",
2009
2046
  "SideDefinition",
@@ -2097,6 +2134,7 @@ __all__ = [
2097
2134
  "TriggerEvent",
2098
2135
  "TypedResourceId",
2099
2136
  "UnitSchema",
2137
+ "UnitisationData",
2100
2138
  "UnitsRatio",
2101
2139
  "UnmatchedHoldingMethod",
2102
2140
  "UpdateAmortisationRuleSetDetailsRequest",
@@ -29,6 +29,7 @@ from typing import Optional
29
29
  from lusid.models.compliance_rule_response import ComplianceRuleResponse
30
30
  from lusid.models.compliance_rule_result_v2 import ComplianceRuleResultV2
31
31
  from lusid.models.compliance_rule_template import ComplianceRuleTemplate
32
+ from lusid.models.compliance_run_configuration import ComplianceRunConfiguration
32
33
  from lusid.models.compliance_run_info_v2 import ComplianceRunInfoV2
33
34
  from lusid.models.compliance_template import ComplianceTemplate
34
35
  from lusid.models.create_compliance_template_request import CreateComplianceTemplateRequest
@@ -1964,6 +1965,196 @@ class ComplianceApi:
1964
1965
  collection_formats=_collection_formats,
1965
1966
  _request_auth=_params.get('_request_auth'))
1966
1967
 
1968
+ @overload
1969
+ async def run_compliance_preview(self, run_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope to save the run results in.")], rule_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope from which to select rules to be run.")], recipe_id_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: the scope of the recipe to be used")], recipe_id_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: The code of the recipe to be used. If left blank, the default recipe will be used.")], compliance_run_configuration : Annotated[Optional[ComplianceRunConfiguration], Field(description="Configuration options for the compliance run.")] = None, **kwargs) -> ComplianceRunInfoV2: # noqa: E501
1970
+ ...
1971
+
1972
+ @overload
1973
+ def run_compliance_preview(self, run_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope to save the run results in.")], rule_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope from which to select rules to be run.")], recipe_id_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: the scope of the recipe to be used")], recipe_id_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: The code of the recipe to be used. If left blank, the default recipe will be used.")], compliance_run_configuration : Annotated[Optional[ComplianceRunConfiguration], Field(description="Configuration options for the compliance run.")] = None, async_req: Optional[bool]=True, **kwargs) -> ComplianceRunInfoV2: # noqa: E501
1974
+ ...
1975
+
1976
+ @validate_arguments
1977
+ def run_compliance_preview(self, run_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope to save the run results in.")], rule_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope from which to select rules to be run.")], recipe_id_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: the scope of the recipe to be used")], recipe_id_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: The code of the recipe to be used. If left blank, the default recipe will be used.")], compliance_run_configuration : Annotated[Optional[ComplianceRunConfiguration], Field(description="Configuration options for the compliance run.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ComplianceRunInfoV2, Awaitable[ComplianceRunInfoV2]]: # noqa: E501
1978
+ """[EARLY ACCESS] RunCompliancePreview: Run a compliance check. # noqa: E501
1979
+
1980
+ Use this endpoint to run a compliance check using rules from a specific scope. # noqa: E501
1981
+ This method makes a synchronous HTTP request by default. To make an
1982
+ asynchronous HTTP request, please pass async_req=True
1983
+
1984
+ >>> thread = api.run_compliance_preview(run_scope, rule_scope, recipe_id_scope, recipe_id_code, compliance_run_configuration, async_req=True)
1985
+ >>> result = thread.get()
1986
+
1987
+ :param run_scope: Required: Scope to save the run results in. (required)
1988
+ :type run_scope: str
1989
+ :param rule_scope: Required: Scope from which to select rules to be run. (required)
1990
+ :type rule_scope: str
1991
+ :param recipe_id_scope: Required: the scope of the recipe to be used (required)
1992
+ :type recipe_id_scope: str
1993
+ :param recipe_id_code: Required: The code of the recipe to be used. If left blank, the default recipe will be used. (required)
1994
+ :type recipe_id_code: str
1995
+ :param compliance_run_configuration: Configuration options for the compliance run.
1996
+ :type compliance_run_configuration: ComplianceRunConfiguration
1997
+ :param async_req: Whether to execute the request asynchronously.
1998
+ :type async_req: bool, optional
1999
+ :param _request_timeout: timeout setting for this request.
2000
+ If one number provided, it will be total request
2001
+ timeout. It can also be a pair (tuple) of
2002
+ (connection, read) timeouts.
2003
+ :return: Returns the result object.
2004
+ If the method is called asynchronously,
2005
+ returns the request thread.
2006
+ :rtype: ComplianceRunInfoV2
2007
+ """
2008
+ kwargs['_return_http_data_only'] = True
2009
+ if '_preload_content' in kwargs:
2010
+ message = "Error! Please call the run_compliance_preview_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
2011
+ raise ValueError(message)
2012
+ if async_req is not None:
2013
+ kwargs['async_req'] = async_req
2014
+ return self.run_compliance_preview_with_http_info(run_scope, rule_scope, recipe_id_scope, recipe_id_code, compliance_run_configuration, **kwargs) # noqa: E501
2015
+
2016
+ @validate_arguments
2017
+ def run_compliance_preview_with_http_info(self, run_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope to save the run results in.")], rule_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: Scope from which to select rules to be run.")], recipe_id_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: the scope of the recipe to be used")], recipe_id_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Required: The code of the recipe to be used. If left blank, the default recipe will be used.")], compliance_run_configuration : Annotated[Optional[ComplianceRunConfiguration], Field(description="Configuration options for the compliance run.")] = None, **kwargs) -> ApiResponse: # noqa: E501
2018
+ """[EARLY ACCESS] RunCompliancePreview: Run a compliance check. # noqa: E501
2019
+
2020
+ Use this endpoint to run a compliance check using rules from a specific scope. # noqa: E501
2021
+ This method makes a synchronous HTTP request by default. To make an
2022
+ asynchronous HTTP request, please pass async_req=True
2023
+
2024
+ >>> thread = api.run_compliance_preview_with_http_info(run_scope, rule_scope, recipe_id_scope, recipe_id_code, compliance_run_configuration, async_req=True)
2025
+ >>> result = thread.get()
2026
+
2027
+ :param run_scope: Required: Scope to save the run results in. (required)
2028
+ :type run_scope: str
2029
+ :param rule_scope: Required: Scope from which to select rules to be run. (required)
2030
+ :type rule_scope: str
2031
+ :param recipe_id_scope: Required: the scope of the recipe to be used (required)
2032
+ :type recipe_id_scope: str
2033
+ :param recipe_id_code: Required: The code of the recipe to be used. If left blank, the default recipe will be used. (required)
2034
+ :type recipe_id_code: str
2035
+ :param compliance_run_configuration: Configuration options for the compliance run.
2036
+ :type compliance_run_configuration: ComplianceRunConfiguration
2037
+ :param async_req: Whether to execute the request asynchronously.
2038
+ :type async_req: bool, optional
2039
+ :param _preload_content: if False, the ApiResponse.data will
2040
+ be set to none and raw_data will store the
2041
+ HTTP response body without reading/decoding.
2042
+ Default is True.
2043
+ :type _preload_content: bool, optional
2044
+ :param _return_http_data_only: response data instead of ApiResponse
2045
+ object with status code, headers, etc
2046
+ :type _return_http_data_only: bool, optional
2047
+ :param _request_timeout: timeout setting for this request. If one
2048
+ number provided, it will be total request
2049
+ timeout. It can also be a pair (tuple) of
2050
+ (connection, read) timeouts.
2051
+ :param _request_auth: set to override the auth_settings for an a single
2052
+ request; this effectively ignores the authentication
2053
+ in the spec for a single request.
2054
+ :type _request_auth: dict, optional
2055
+ :type _content_type: string, optional: force content-type for the request
2056
+ :return: Returns the result object.
2057
+ If the method is called asynchronously,
2058
+ returns the request thread.
2059
+ :rtype: tuple(ComplianceRunInfoV2, status_code(int), headers(HTTPHeaderDict))
2060
+ """
2061
+
2062
+ _params = locals()
2063
+
2064
+ _all_params = [
2065
+ 'run_scope',
2066
+ 'rule_scope',
2067
+ 'recipe_id_scope',
2068
+ 'recipe_id_code',
2069
+ 'compliance_run_configuration'
2070
+ ]
2071
+ _all_params.extend(
2072
+ [
2073
+ 'async_req',
2074
+ '_return_http_data_only',
2075
+ '_preload_content',
2076
+ '_request_timeout',
2077
+ '_request_auth',
2078
+ '_content_type',
2079
+ '_headers'
2080
+ ]
2081
+ )
2082
+
2083
+ # validate the arguments
2084
+ for _key, _val in _params['kwargs'].items():
2085
+ if _key not in _all_params:
2086
+ raise ApiTypeError(
2087
+ "Got an unexpected keyword argument '%s'"
2088
+ " to method run_compliance_preview" % _key
2089
+ )
2090
+ _params[_key] = _val
2091
+ del _params['kwargs']
2092
+
2093
+ _collection_formats = {}
2094
+
2095
+ # process the path parameters
2096
+ _path_params = {}
2097
+
2098
+ # process the query parameters
2099
+ _query_params = []
2100
+ if _params.get('run_scope') is not None: # noqa: E501
2101
+ _query_params.append(('runScope', _params['run_scope']))
2102
+
2103
+ if _params.get('rule_scope') is not None: # noqa: E501
2104
+ _query_params.append(('ruleScope', _params['rule_scope']))
2105
+
2106
+ if _params.get('recipe_id_scope') is not None: # noqa: E501
2107
+ _query_params.append(('recipeIdScope', _params['recipe_id_scope']))
2108
+
2109
+ if _params.get('recipe_id_code') is not None: # noqa: E501
2110
+ _query_params.append(('recipeIdCode', _params['recipe_id_code']))
2111
+
2112
+ # process the header parameters
2113
+ _header_params = dict(_params.get('_headers', {}))
2114
+ # process the form parameters
2115
+ _form_params = []
2116
+ _files = {}
2117
+ # process the body parameter
2118
+ _body_params = None
2119
+ if _params['compliance_run_configuration'] is not None:
2120
+ _body_params = _params['compliance_run_configuration']
2121
+
2122
+ # set the HTTP header `Accept`
2123
+ _header_params['Accept'] = self.api_client.select_header_accept(
2124
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
2125
+
2126
+ # set the HTTP header `Content-Type`
2127
+ _content_types_list = _params.get('_content_type',
2128
+ self.api_client.select_header_content_type(
2129
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
2130
+ if _content_types_list:
2131
+ _header_params['Content-Type'] = _content_types_list
2132
+
2133
+ # authentication setting
2134
+ _auth_settings = ['oauth2'] # noqa: E501
2135
+
2136
+ _response_types_map = {
2137
+ '200': "ComplianceRunInfoV2",
2138
+ '400': "LusidValidationProblemDetails",
2139
+ }
2140
+
2141
+ return self.api_client.call_api(
2142
+ '/api/compliance/preview/runs', 'POST',
2143
+ _path_params,
2144
+ _query_params,
2145
+ _header_params,
2146
+ body=_body_params,
2147
+ post_params=_form_params,
2148
+ files=_files,
2149
+ response_types_map=_response_types_map,
2150
+ auth_settings=_auth_settings,
2151
+ async_req=_params.get('async_req'),
2152
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
2153
+ _preload_content=_params.get('_preload_content', True),
2154
+ _request_timeout=_params.get('_request_timeout'),
2155
+ collection_formats=_collection_formats,
2156
+ _request_auth=_params.get('_request_auth'))
2157
+
1967
2158
  @overload
1968
2159
  async def update_compliance_template(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Compliance Rule Template.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Compliance Rule Template.")], update_compliance_template_request : Annotated[UpdateComplianceTemplateRequest, Field(..., description="Request to update a compliance rule template.")], **kwargs) -> ComplianceRuleTemplate: # noqa: E501
1969
2160
  ...
lusid/api/funds_api.py CHANGED
@@ -2750,7 +2750,7 @@ class FundsApi:
2750
2750
  }
2751
2751
 
2752
2752
  return self.api_client.call_api(
2753
- '/api/funds/{scope}/{code}/valuationpoints/$upsert', 'POST',
2753
+ '/api/funds/{scope}/{code}/valuationpoints', 'POST',
2754
2754
  _path_params,
2755
2755
  _query_params,
2756
2756
  _header_params,
@@ -28,6 +28,7 @@ from lusid.models.allocation_service_run_response import AllocationServiceRunRes
28
28
  from lusid.models.block_and_orders_create_request import BlockAndOrdersCreateRequest
29
29
  from lusid.models.book_transactions_request import BookTransactionsRequest
30
30
  from lusid.models.book_transactions_response import BookTransactionsResponse
31
+ from lusid.models.cancel_orders_response import CancelOrdersResponse
31
32
  from lusid.models.cancel_placements_response import CancelPlacementsResponse
32
33
  from lusid.models.move_orders_to_different_blocks_request import MoveOrdersToDifferentBlocksRequest
33
34
  from lusid.models.place_blocks_request import PlaceBlocksRequest
@@ -224,6 +225,164 @@ class OrderManagementApi:
224
225
  collection_formats=_collection_formats,
225
226
  _request_auth=_params.get('_request_auth'))
226
227
 
228
+ @overload
229
+ async def cancel_orders(self, request_body : Annotated[Dict[str, ResourceId], Field(..., description="The request containing the ids of the orders to be cancelled.")], **kwargs) -> CancelOrdersResponse: # noqa: E501
230
+ ...
231
+
232
+ @overload
233
+ def cancel_orders(self, request_body : Annotated[Dict[str, ResourceId], Field(..., description="The request containing the ids of the orders to be cancelled.")], async_req: Optional[bool]=True, **kwargs) -> CancelOrdersResponse: # noqa: E501
234
+ ...
235
+
236
+ @validate_arguments
237
+ def cancel_orders(self, request_body : Annotated[Dict[str, ResourceId], Field(..., description="The request containing the ids of the orders to be cancelled.")], async_req: Optional[bool]=None, **kwargs) -> Union[CancelOrdersResponse, Awaitable[CancelOrdersResponse]]: # noqa: E501
238
+ """[EARLY ACCESS] CancelOrders: Cancel existing orders # noqa: E501
239
+
240
+ The response returns both the collection of successfully canceled orders, as well as those that failed. For each failure, a reason is provided. It is important to check the failed set for unsuccessful results. # noqa: E501
241
+ This method makes a synchronous HTTP request by default. To make an
242
+ asynchronous HTTP request, please pass async_req=True
243
+
244
+ >>> thread = api.cancel_orders(request_body, async_req=True)
245
+ >>> result = thread.get()
246
+
247
+ :param request_body: The request containing the ids of the orders to be cancelled. (required)
248
+ :type request_body: Dict[str, ResourceId]
249
+ :param async_req: Whether to execute the request asynchronously.
250
+ :type async_req: bool, optional
251
+ :param _request_timeout: timeout setting for this request.
252
+ If one number provided, it will be total request
253
+ timeout. It can also be a pair (tuple) of
254
+ (connection, read) timeouts.
255
+ :return: Returns the result object.
256
+ If the method is called asynchronously,
257
+ returns the request thread.
258
+ :rtype: CancelOrdersResponse
259
+ """
260
+ kwargs['_return_http_data_only'] = True
261
+ if '_preload_content' in kwargs:
262
+ message = "Error! Please call the cancel_orders_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
263
+ raise ValueError(message)
264
+ if async_req is not None:
265
+ kwargs['async_req'] = async_req
266
+ return self.cancel_orders_with_http_info(request_body, **kwargs) # noqa: E501
267
+
268
+ @validate_arguments
269
+ def cancel_orders_with_http_info(self, request_body : Annotated[Dict[str, ResourceId], Field(..., description="The request containing the ids of the orders to be cancelled.")], **kwargs) -> ApiResponse: # noqa: E501
270
+ """[EARLY ACCESS] CancelOrders: Cancel existing orders # noqa: E501
271
+
272
+ The response returns both the collection of successfully canceled orders, as well as those that failed. For each failure, a reason is provided. It is important to check the failed set for unsuccessful results. # noqa: E501
273
+ This method makes a synchronous HTTP request by default. To make an
274
+ asynchronous HTTP request, please pass async_req=True
275
+
276
+ >>> thread = api.cancel_orders_with_http_info(request_body, async_req=True)
277
+ >>> result = thread.get()
278
+
279
+ :param request_body: The request containing the ids of the orders to be cancelled. (required)
280
+ :type request_body: Dict[str, ResourceId]
281
+ :param async_req: Whether to execute the request asynchronously.
282
+ :type async_req: bool, optional
283
+ :param _preload_content: if False, the ApiResponse.data will
284
+ be set to none and raw_data will store the
285
+ HTTP response body without reading/decoding.
286
+ Default is True.
287
+ :type _preload_content: bool, optional
288
+ :param _return_http_data_only: response data instead of ApiResponse
289
+ object with status code, headers, etc
290
+ :type _return_http_data_only: bool, optional
291
+ :param _request_timeout: timeout setting for this request. If one
292
+ number provided, it will be total request
293
+ timeout. It can also be a pair (tuple) of
294
+ (connection, read) timeouts.
295
+ :param _request_auth: set to override the auth_settings for an a single
296
+ request; this effectively ignores the authentication
297
+ in the spec for a single request.
298
+ :type _request_auth: dict, optional
299
+ :type _content_type: string, optional: force content-type for the request
300
+ :return: Returns the result object.
301
+ If the method is called asynchronously,
302
+ returns the request thread.
303
+ :rtype: tuple(CancelOrdersResponse, status_code(int), headers(HTTPHeaderDict))
304
+ """
305
+
306
+ _params = locals()
307
+
308
+ _all_params = [
309
+ 'request_body'
310
+ ]
311
+ _all_params.extend(
312
+ [
313
+ 'async_req',
314
+ '_return_http_data_only',
315
+ '_preload_content',
316
+ '_request_timeout',
317
+ '_request_auth',
318
+ '_content_type',
319
+ '_headers'
320
+ ]
321
+ )
322
+
323
+ # validate the arguments
324
+ for _key, _val in _params['kwargs'].items():
325
+ if _key not in _all_params:
326
+ raise ApiTypeError(
327
+ "Got an unexpected keyword argument '%s'"
328
+ " to method cancel_orders" % _key
329
+ )
330
+ _params[_key] = _val
331
+ del _params['kwargs']
332
+
333
+ _collection_formats = {}
334
+
335
+ # process the path parameters
336
+ _path_params = {}
337
+
338
+ # process the query parameters
339
+ _query_params = []
340
+ # process the header parameters
341
+ _header_params = dict(_params.get('_headers', {}))
342
+ # process the form parameters
343
+ _form_params = []
344
+ _files = {}
345
+ # process the body parameter
346
+ _body_params = None
347
+ if _params['request_body'] is not None:
348
+ _body_params = _params['request_body']
349
+
350
+ # set the HTTP header `Accept`
351
+ _header_params['Accept'] = self.api_client.select_header_accept(
352
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
353
+
354
+ # set the HTTP header `Content-Type`
355
+ _content_types_list = _params.get('_content_type',
356
+ self.api_client.select_header_content_type(
357
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
358
+ if _content_types_list:
359
+ _header_params['Content-Type'] = _content_types_list
360
+
361
+ # authentication setting
362
+ _auth_settings = ['oauth2'] # noqa: E501
363
+
364
+ _response_types_map = {
365
+ '200': "CancelOrdersResponse",
366
+ '400': "LusidValidationProblemDetails",
367
+ }
368
+
369
+ return self.api_client.call_api(
370
+ '/api/ordermanagement/cancelorders', 'POST',
371
+ _path_params,
372
+ _query_params,
373
+ _header_params,
374
+ body=_body_params,
375
+ post_params=_form_params,
376
+ files=_files,
377
+ response_types_map=_response_types_map,
378
+ auth_settings=_auth_settings,
379
+ async_req=_params.get('async_req'),
380
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
381
+ _preload_content=_params.get('_preload_content', True),
382
+ _request_timeout=_params.get('_request_timeout'),
383
+ collection_formats=_collection_formats,
384
+ _request_auth=_params.get('_request_auth'))
385
+
227
386
  @overload
228
387
  async def cancel_placements(self, request_body : Annotated[Dict[str, ResourceId], Field(..., description="The request containing the ids of the placements to be cancelled.")], **kwargs) -> CancelPlacementsResponse: # noqa: E501
229
388
  ...
lusid/api/scopes_api.py CHANGED
@@ -20,7 +20,9 @@ from pydantic.v1 import validate_arguments, ValidationError
20
20
  from typing import overload, Optional, Union, Awaitable
21
21
 
22
22
  from typing_extensions import Annotated
23
- from pydantic.v1 import Field, constr, validator
23
+ from datetime import datetime
24
+
25
+ from pydantic.v1 import Field, conint, constr, validator
24
26
 
25
27
  from typing import Optional
26
28
 
@@ -47,26 +49,32 @@ class ScopesApi:
47
49
  self.api_client = api_client
48
50
 
49
51
  @overload
50
- async def list_entity_scopes(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], **kwargs) -> ResourceListOfScopeDefinition: # noqa: E501
52
+ async def list_entity_scopes(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve scopes. Defaults to latest datetime if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing scopes from a previous call to list scopes. This value is returned from the previous call. If a pagination token is provided, the limit and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this number. Defaults to 100 if not specified.")] = None, **kwargs) -> ResourceListOfScopeDefinition: # noqa: E501
51
53
  ...
52
54
 
53
55
  @overload
54
- def list_entity_scopes(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], async_req: Optional[bool]=True, **kwargs) -> ResourceListOfScopeDefinition: # noqa: E501
56
+ def list_entity_scopes(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve scopes. Defaults to latest datetime if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing scopes from a previous call to list scopes. This value is returned from the previous call. If a pagination token is provided, the limit and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this number. Defaults to 100 if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> ResourceListOfScopeDefinition: # noqa: E501
55
57
  ...
56
58
 
57
59
  @validate_arguments
58
- def list_entity_scopes(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfScopeDefinition, Awaitable[ResourceListOfScopeDefinition]]: # noqa: E501
60
+ def list_entity_scopes(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve scopes. Defaults to latest datetime if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing scopes from a previous call to list scopes. This value is returned from the previous call. If a pagination token is provided, the limit and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this number. Defaults to 100 if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfScopeDefinition, Awaitable[ResourceListOfScopeDefinition]]: # noqa: E501
59
61
  """ListEntityScopes: List Entity Scopes # noqa: E501
60
62
 
61
63
  List all the scopes for a given entity type that contain data. # noqa: E501
62
64
  This method makes a synchronous HTTP request by default. To make an
63
65
  asynchronous HTTP request, please pass async_req=True
64
66
 
65
- >>> thread = api.list_entity_scopes(entity_type, async_req=True)
67
+ >>> thread = api.list_entity_scopes(entity_type, as_at, page, limit, async_req=True)
66
68
  >>> result = thread.get()
67
69
 
68
70
  :param entity_type: The entity type to list scopes for. (required)
69
71
  :type entity_type: str
72
+ :param as_at: The asAt datetime at which to retrieve scopes. Defaults to latest datetime if not specified.
73
+ :type as_at: datetime
74
+ :param page: The pagination token to use to continue listing scopes from a previous call to list scopes. This value is returned from the previous call. If a pagination token is provided, the limit and asAt fields must not have changed since the original request.
75
+ :type page: str
76
+ :param limit: When paginating, limit the number of returned results to this number. Defaults to 100 if not specified.
77
+ :type limit: int
70
78
  :param async_req: Whether to execute the request asynchronously.
71
79
  :type async_req: bool, optional
72
80
  :param _request_timeout: timeout setting for this request.
@@ -84,21 +92,27 @@ class ScopesApi:
84
92
  raise ValueError(message)
85
93
  if async_req is not None:
86
94
  kwargs['async_req'] = async_req
87
- return self.list_entity_scopes_with_http_info(entity_type, **kwargs) # noqa: E501
95
+ return self.list_entity_scopes_with_http_info(entity_type, as_at, page, limit, **kwargs) # noqa: E501
88
96
 
89
97
  @validate_arguments
90
- def list_entity_scopes_with_http_info(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], **kwargs) -> ApiResponse: # noqa: E501
98
+ def list_entity_scopes_with_http_info(self, entity_type : Annotated[constr(strict=True, max_length=100, min_length=0), Field(..., description="The entity type to list scopes for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve scopes. Defaults to latest datetime if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing scopes from a previous call to list scopes. This value is returned from the previous call. If a pagination token is provided, the limit and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this number. Defaults to 100 if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
91
99
  """ListEntityScopes: List Entity Scopes # noqa: E501
92
100
 
93
101
  List all the scopes for a given entity type that contain data. # noqa: E501
94
102
  This method makes a synchronous HTTP request by default. To make an
95
103
  asynchronous HTTP request, please pass async_req=True
96
104
 
97
- >>> thread = api.list_entity_scopes_with_http_info(entity_type, async_req=True)
105
+ >>> thread = api.list_entity_scopes_with_http_info(entity_type, as_at, page, limit, async_req=True)
98
106
  >>> result = thread.get()
99
107
 
100
108
  :param entity_type: The entity type to list scopes for. (required)
101
109
  :type entity_type: str
110
+ :param as_at: The asAt datetime at which to retrieve scopes. Defaults to latest datetime if not specified.
111
+ :type as_at: datetime
112
+ :param page: The pagination token to use to continue listing scopes from a previous call to list scopes. This value is returned from the previous call. If a pagination token is provided, the limit and asAt fields must not have changed since the original request.
113
+ :type page: str
114
+ :param limit: When paginating, limit the number of returned results to this number. Defaults to 100 if not specified.
115
+ :type limit: int
102
116
  :param async_req: Whether to execute the request asynchronously.
103
117
  :type async_req: bool, optional
104
118
  :param _preload_content: if False, the ApiResponse.data will
@@ -127,7 +141,10 @@ class ScopesApi:
127
141
  _params = locals()
128
142
 
129
143
  _all_params = [
130
- 'entity_type'
144
+ 'entity_type',
145
+ 'as_at',
146
+ 'page',
147
+ 'limit'
131
148
  ]
132
149
  _all_params.extend(
133
150
  [
@@ -161,6 +178,18 @@ class ScopesApi:
161
178
 
162
179
  # process the query parameters
163
180
  _query_params = []
181
+ if _params.get('as_at') is not None: # noqa: E501
182
+ if isinstance(_params['as_at'], datetime):
183
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
184
+ else:
185
+ _query_params.append(('asAt', _params['as_at']))
186
+
187
+ if _params.get('page') is not None: # noqa: E501
188
+ _query_params.append(('page', _params['page']))
189
+
190
+ if _params.get('limit') is not None: # noqa: E501
191
+ _query_params.append(('limit', _params['limit']))
192
+
164
193
  # process the header parameters
165
194
  _header_params = dict(_params.get('_headers', {}))
166
195
  # process the form parameters