lusid-sdk 2.1.898__py3-none-any.whl → 2.1.899__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.
- lusid/__init__.py +6 -0
- lusid/api/funds_api.py +187 -2
- lusid/api/transaction_portfolios_api.py +48 -16
- lusid/configuration.py +3 -3
- lusid/models/__init__.py +6 -0
- lusid/models/fund_calendar_entry.py +33 -46
- lusid/models/fund_valuation_request.py +157 -0
- lusid/models/fund_valuation_schedule.py +131 -0
- lusid/models/valuation_point_fund_calendar_entry.py +181 -0
- {lusid_sdk-2.1.898.dist-info → lusid_sdk-2.1.899.dist-info}/METADATA +6 -2
- {lusid_sdk-2.1.898.dist-info → lusid_sdk-2.1.899.dist-info}/RECORD +12 -9
- {lusid_sdk-2.1.898.dist-info → lusid_sdk-2.1.899.dist-info}/WHEEL +0 -0
lusid/__init__.py
CHANGED
@@ -536,6 +536,8 @@ from lusid.models.fund_properties import FundProperties
|
|
536
536
|
from lusid.models.fund_request import FundRequest
|
537
537
|
from lusid.models.fund_share_class import FundShareClass
|
538
538
|
from lusid.models.fund_valuation_point_data import FundValuationPointData
|
539
|
+
from lusid.models.fund_valuation_request import FundValuationRequest
|
540
|
+
from lusid.models.fund_valuation_schedule import FundValuationSchedule
|
539
541
|
from lusid.models.funding_leg import FundingLeg
|
540
542
|
from lusid.models.funding_leg_options import FundingLegOptions
|
541
543
|
from lusid.models.future import Future
|
@@ -1343,6 +1345,7 @@ from lusid.models.user import User
|
|
1343
1345
|
from lusid.models.valuation_point_data_query_parameters import ValuationPointDataQueryParameters
|
1344
1346
|
from lusid.models.valuation_point_data_request import ValuationPointDataRequest
|
1345
1347
|
from lusid.models.valuation_point_data_response import ValuationPointDataResponse
|
1348
|
+
from lusid.models.valuation_point_fund_calendar_entry import ValuationPointFundCalendarEntry
|
1346
1349
|
from lusid.models.valuation_point_overview import ValuationPointOverview
|
1347
1350
|
from lusid.models.valuation_point_resource_list_of_accounted_transaction import ValuationPointResourceListOfAccountedTransaction
|
1348
1351
|
from lusid.models.valuation_point_resource_list_of_fund_journal_entry_line import ValuationPointResourceListOfFundJournalEntryLine
|
@@ -1907,6 +1910,8 @@ __all__ = [
|
|
1907
1910
|
"FundRequest",
|
1908
1911
|
"FundShareClass",
|
1909
1912
|
"FundValuationPointData",
|
1913
|
+
"FundValuationRequest",
|
1914
|
+
"FundValuationSchedule",
|
1910
1915
|
"FundingLeg",
|
1911
1916
|
"FundingLegOptions",
|
1912
1917
|
"Future",
|
@@ -2714,6 +2719,7 @@ __all__ = [
|
|
2714
2719
|
"ValuationPointDataQueryParameters",
|
2715
2720
|
"ValuationPointDataRequest",
|
2716
2721
|
"ValuationPointDataResponse",
|
2722
|
+
"ValuationPointFundCalendarEntry",
|
2717
2723
|
"ValuationPointOverview",
|
2718
2724
|
"ValuationPointResourceListOfAccountedTransaction",
|
2719
2725
|
"ValuationPointResourceListOfFundJournalEntryLine",
|
lusid/api/funds_api.py
CHANGED
@@ -36,6 +36,8 @@ from lusid.models.fund import Fund
|
|
36
36
|
from lusid.models.fund_definition_request import FundDefinitionRequest
|
37
37
|
from lusid.models.fund_properties import FundProperties
|
38
38
|
from lusid.models.fund_request import FundRequest
|
39
|
+
from lusid.models.fund_valuation_request import FundValuationRequest
|
40
|
+
from lusid.models.list_aggregation_response import ListAggregationResponse
|
39
41
|
from lusid.models.model_property import ModelProperty
|
40
42
|
from lusid.models.operation import Operation
|
41
43
|
from lusid.models.paged_resource_list_of_fee import PagedResourceListOfFee
|
@@ -2444,6 +2446,189 @@ class FundsApi:
|
|
2444
2446
|
_request_auth=_params.get('_request_auth'))
|
2445
2447
|
|
2446
2448
|
|
2449
|
+
@overload
|
2450
|
+
async def get_valuation_for_fund(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund")], code : Annotated[StrictStr, Field(..., description="The code of the Fund")], nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, fund_valuation_request : Annotated[Optional[FundValuationRequest], Field(description="The request specifying the dates (or DiaryEntry) on which to calculate a set of valuation metrics")] = None, **kwargs) -> ListAggregationResponse: # noqa: E501
|
2451
|
+
...
|
2452
|
+
|
2453
|
+
@overload
|
2454
|
+
def get_valuation_for_fund(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund")], code : Annotated[StrictStr, Field(..., description="The code of the Fund")], nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, fund_valuation_request : Annotated[Optional[FundValuationRequest], Field(description="The request specifying the dates (or DiaryEntry) on which to calculate a set of valuation metrics")] = None, async_req: Optional[bool]=True, **kwargs) -> ListAggregationResponse: # noqa: E501
|
2455
|
+
...
|
2456
|
+
|
2457
|
+
@validate_arguments
|
2458
|
+
def get_valuation_for_fund(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund")], code : Annotated[StrictStr, Field(..., description="The code of the Fund")], nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, fund_valuation_request : Annotated[Optional[FundValuationRequest], Field(description="The request specifying the dates (or DiaryEntry) on which to calculate a set of valuation metrics")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ListAggregationResponse, Awaitable[ListAggregationResponse]]: # noqa: E501
|
2459
|
+
"""[EXPERIMENTAL] GetValuationForFund: Perform valuation for a Fund # noqa: E501
|
2460
|
+
|
2461
|
+
Perform valuation on a specified Fund. # noqa: E501
|
2462
|
+
This method makes a synchronous HTTP request by default. To make an
|
2463
|
+
asynchronous HTTP request, please pass async_req=True
|
2464
|
+
|
2465
|
+
>>> thread = api.get_valuation_for_fund(scope, code, nav_type_code, fund_valuation_request, async_req=True)
|
2466
|
+
>>> result = thread.get()
|
2467
|
+
|
2468
|
+
:param scope: The scope of the Fund (required)
|
2469
|
+
:type scope: str
|
2470
|
+
:param code: The code of the Fund (required)
|
2471
|
+
:type code: str
|
2472
|
+
:param nav_type_code: When provided runs against the specified NAV Type, otherwise the Primary NAV Type will be used.
|
2473
|
+
:type nav_type_code: str
|
2474
|
+
:param fund_valuation_request: The request specifying the dates (or DiaryEntry) on which to calculate a set of valuation metrics
|
2475
|
+
:type fund_valuation_request: FundValuationRequest
|
2476
|
+
:param async_req: Whether to execute the request asynchronously.
|
2477
|
+
:type async_req: bool, optional
|
2478
|
+
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
2479
|
+
:param opts: Configuration options for this request
|
2480
|
+
:type opts: ConfigurationOptions, optional
|
2481
|
+
:return: Returns the result object.
|
2482
|
+
If the method is called asynchronously,
|
2483
|
+
returns the request thread.
|
2484
|
+
:rtype: ListAggregationResponse
|
2485
|
+
"""
|
2486
|
+
kwargs['_return_http_data_only'] = True
|
2487
|
+
if '_preload_content' in kwargs:
|
2488
|
+
message = "Error! Please call the get_valuation_for_fund_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
|
2489
|
+
raise ValueError(message)
|
2490
|
+
if async_req is not None:
|
2491
|
+
kwargs['async_req'] = async_req
|
2492
|
+
return self.get_valuation_for_fund_with_http_info(scope, code, nav_type_code, fund_valuation_request, **kwargs) # noqa: E501
|
2493
|
+
|
2494
|
+
@validate_arguments
|
2495
|
+
def get_valuation_for_fund_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund")], code : Annotated[StrictStr, Field(..., description="The code of the Fund")], nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, fund_valuation_request : Annotated[Optional[FundValuationRequest], Field(description="The request specifying the dates (or DiaryEntry) on which to calculate a set of valuation metrics")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
2496
|
+
"""[EXPERIMENTAL] GetValuationForFund: Perform valuation for a Fund # noqa: E501
|
2497
|
+
|
2498
|
+
Perform valuation on a specified Fund. # noqa: E501
|
2499
|
+
This method makes a synchronous HTTP request by default. To make an
|
2500
|
+
asynchronous HTTP request, please pass async_req=True
|
2501
|
+
|
2502
|
+
>>> thread = api.get_valuation_for_fund_with_http_info(scope, code, nav_type_code, fund_valuation_request, async_req=True)
|
2503
|
+
>>> result = thread.get()
|
2504
|
+
|
2505
|
+
:param scope: The scope of the Fund (required)
|
2506
|
+
:type scope: str
|
2507
|
+
:param code: The code of the Fund (required)
|
2508
|
+
:type code: str
|
2509
|
+
:param nav_type_code: When provided runs against the specified NAV Type, otherwise the Primary NAV Type will be used.
|
2510
|
+
:type nav_type_code: str
|
2511
|
+
:param fund_valuation_request: The request specifying the dates (or DiaryEntry) on which to calculate a set of valuation metrics
|
2512
|
+
:type fund_valuation_request: FundValuationRequest
|
2513
|
+
:param async_req: Whether to execute the request asynchronously.
|
2514
|
+
:type async_req: bool, optional
|
2515
|
+
:param _preload_content: if False, the ApiResponse.data will
|
2516
|
+
be set to none and raw_data will store the
|
2517
|
+
HTTP response body without reading/decoding.
|
2518
|
+
Default is True.
|
2519
|
+
:type _preload_content: bool, optional
|
2520
|
+
:param _return_http_data_only: response data instead of ApiResponse
|
2521
|
+
object with status code, headers, etc
|
2522
|
+
:type _return_http_data_only: bool, optional
|
2523
|
+
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
2524
|
+
:param opts: Configuration options for this request
|
2525
|
+
:type opts: ConfigurationOptions, optional
|
2526
|
+
:param _request_auth: set to override the auth_settings for an a single
|
2527
|
+
request; this effectively ignores the authentication
|
2528
|
+
in the spec for a single request.
|
2529
|
+
:type _request_auth: dict, optional
|
2530
|
+
:type _content_type: string, optional: force content-type for the request
|
2531
|
+
:return: Returns the result object.
|
2532
|
+
If the method is called asynchronously,
|
2533
|
+
returns the request thread.
|
2534
|
+
:rtype: tuple(ListAggregationResponse, status_code(int), headers(HTTPHeaderDict))
|
2535
|
+
"""
|
2536
|
+
|
2537
|
+
_params = locals()
|
2538
|
+
|
2539
|
+
_all_params = [
|
2540
|
+
'scope',
|
2541
|
+
'code',
|
2542
|
+
'nav_type_code',
|
2543
|
+
'fund_valuation_request'
|
2544
|
+
]
|
2545
|
+
_all_params.extend(
|
2546
|
+
[
|
2547
|
+
'async_req',
|
2548
|
+
'_return_http_data_only',
|
2549
|
+
'_preload_content',
|
2550
|
+
'_request_timeout',
|
2551
|
+
'_request_auth',
|
2552
|
+
'_content_type',
|
2553
|
+
'_headers',
|
2554
|
+
'opts'
|
2555
|
+
]
|
2556
|
+
)
|
2557
|
+
|
2558
|
+
# validate the arguments
|
2559
|
+
for _key, _val in _params['kwargs'].items():
|
2560
|
+
if _key not in _all_params:
|
2561
|
+
raise ApiTypeError(
|
2562
|
+
"Got an unexpected keyword argument '%s'"
|
2563
|
+
" to method get_valuation_for_fund" % _key
|
2564
|
+
)
|
2565
|
+
_params[_key] = _val
|
2566
|
+
del _params['kwargs']
|
2567
|
+
|
2568
|
+
_collection_formats = {}
|
2569
|
+
|
2570
|
+
# process the path parameters
|
2571
|
+
_path_params = {}
|
2572
|
+
if _params['scope']:
|
2573
|
+
_path_params['scope'] = _params['scope']
|
2574
|
+
|
2575
|
+
if _params['code']:
|
2576
|
+
_path_params['code'] = _params['code']
|
2577
|
+
|
2578
|
+
|
2579
|
+
# process the query parameters
|
2580
|
+
_query_params = []
|
2581
|
+
if _params.get('nav_type_code') is not None: # noqa: E501
|
2582
|
+
_query_params.append(('navTypeCode', _params['nav_type_code']))
|
2583
|
+
|
2584
|
+
# process the header parameters
|
2585
|
+
_header_params = dict(_params.get('_headers', {}))
|
2586
|
+
# process the form parameters
|
2587
|
+
_form_params = []
|
2588
|
+
_files = {}
|
2589
|
+
# process the body parameter
|
2590
|
+
_body_params = None
|
2591
|
+
if _params['fund_valuation_request'] is not None:
|
2592
|
+
_body_params = _params['fund_valuation_request']
|
2593
|
+
|
2594
|
+
# set the HTTP header `Accept`
|
2595
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
2596
|
+
['text/plain', 'application/json', 'text/json']) # noqa: E501
|
2597
|
+
|
2598
|
+
# set the HTTP header `Content-Type`
|
2599
|
+
_content_types_list = _params.get('_content_type',
|
2600
|
+
self.api_client.select_header_content_type(
|
2601
|
+
['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
|
2602
|
+
if _content_types_list:
|
2603
|
+
_header_params['Content-Type'] = _content_types_list
|
2604
|
+
|
2605
|
+
# authentication setting
|
2606
|
+
_auth_settings = ['oauth2'] # noqa: E501
|
2607
|
+
|
2608
|
+
_response_types_map = {
|
2609
|
+
'200': "ListAggregationResponse",
|
2610
|
+
'400': "LusidValidationProblemDetails",
|
2611
|
+
}
|
2612
|
+
|
2613
|
+
return self.api_client.call_api(
|
2614
|
+
'/api/funds/{scope}/{code}/$valuation', 'POST',
|
2615
|
+
_path_params,
|
2616
|
+
_query_params,
|
2617
|
+
_header_params,
|
2618
|
+
body=_body_params,
|
2619
|
+
post_params=_form_params,
|
2620
|
+
files=_files,
|
2621
|
+
response_types_map=_response_types_map,
|
2622
|
+
auth_settings=_auth_settings,
|
2623
|
+
async_req=_params.get('async_req'),
|
2624
|
+
_return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
|
2625
|
+
_preload_content=_params.get('_preload_content', True),
|
2626
|
+
_request_timeout=_params.get('_request_timeout'),
|
2627
|
+
opts=_params.get('opts'),
|
2628
|
+
collection_formats=_collection_formats,
|
2629
|
+
_request_auth=_params.get('_request_auth'))
|
2630
|
+
|
2631
|
+
|
2447
2632
|
@overload
|
2448
2633
|
async def get_valuation_point_data(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the Valuation Point data")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Fund definition. Defaults to returning the latest version of the Fund definition if not specified.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, **kwargs) -> ValuationPointDataResponse: # noqa: E501
|
2449
2634
|
...
|
@@ -4606,7 +4791,7 @@ class FundsApi:
|
|
4606
4791
|
def patch_fund(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], operation : Annotated[conlist(Operation), Field(..., description="The json patch document. For more information see: https://datatracker.ietf.org/doc/html/rfc6902.")], async_req: Optional[bool]=None, **kwargs) -> Union[Fund, Awaitable[Fund]]: # noqa: E501
|
4607
4792
|
"""[EXPERIMENTAL] PatchFund: Patch a Fund. # noqa: E501
|
4608
4793
|
|
4609
|
-
Update fields on a Fund. The behaviour is defined by the JSON Patch specification. Currently supported fields are: DisplayName, Description,
|
4794
|
+
Update fields on a Fund. The behaviour is defined by the JSON Patch specification. Currently supported fields are: DisplayName, Description, PortfolioIds, FundConfigurationId, ShareClassInstruments, Type, InceptionDate, DecimalPlaces, PrimaryNavType, AdditionalNavTypes, AborId, YearEndDate. # noqa: E501
|
4610
4795
|
This method makes a synchronous HTTP request by default. To make an
|
4611
4796
|
asynchronous HTTP request, please pass async_req=True
|
4612
4797
|
|
@@ -4641,7 +4826,7 @@ class FundsApi:
|
|
4641
4826
|
def patch_fund_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], operation : Annotated[conlist(Operation), Field(..., description="The json patch document. For more information see: https://datatracker.ietf.org/doc/html/rfc6902.")], **kwargs) -> ApiResponse: # noqa: E501
|
4642
4827
|
"""[EXPERIMENTAL] PatchFund: Patch a Fund. # noqa: E501
|
4643
4828
|
|
4644
|
-
Update fields on a Fund. The behaviour is defined by the JSON Patch specification. Currently supported fields are: DisplayName, Description,
|
4829
|
+
Update fields on a Fund. The behaviour is defined by the JSON Patch specification. Currently supported fields are: DisplayName, Description, PortfolioIds, FundConfigurationId, ShareClassInstruments, Type, InceptionDate, DecimalPlaces, PrimaryNavType, AdditionalNavTypes, AborId, YearEndDate. # noqa: E501
|
4645
4830
|
This method makes a synchronous HTTP request by default. To make an
|
4646
4831
|
asynchronous HTTP request, please pass async_req=True
|
4647
4832
|
|
@@ -101,22 +101,22 @@ class TransactionPortfoliosApi:
|
|
101
101
|
|
102
102
|
|
103
103
|
@overload
|
104
|
-
async def adjust_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, **kwargs) -> AdjustHolding: # noqa: E501
|
104
|
+
async def adjust_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, **kwargs) -> AdjustHolding: # noqa: E501
|
105
105
|
...
|
106
106
|
|
107
107
|
@overload
|
108
|
-
def adjust_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, async_req: Optional[bool]=True, **kwargs) -> AdjustHolding: # noqa: E501
|
108
|
+
def adjust_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, async_req: Optional[bool]=True, **kwargs) -> AdjustHolding: # noqa: E501
|
109
109
|
...
|
110
110
|
|
111
111
|
@validate_arguments
|
112
|
-
def adjust_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[AdjustHolding, Awaitable[AdjustHolding]]: # noqa: E501
|
112
|
+
def adjust_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[AdjustHolding, Awaitable[AdjustHolding]]: # noqa: E501
|
113
113
|
"""AdjustHoldings: Adjust holdings # noqa: E501
|
114
114
|
|
115
115
|
Adjust one or more holdings of the specified transaction portfolio to the provided targets. LUSID will automatically construct adjustment transactions to ensure that the holdings which have been adjusted are always set to the provided targets for the specified effective datetime. Read more about the difference between adjusting and setting holdings here https://support.lusid.com/docs/how-do-i-manually-adjust-or-set-holdings. # noqa: E501
|
116
116
|
This method makes a synchronous HTTP request by default. To make an
|
117
117
|
asynchronous HTTP request, please pass async_req=True
|
118
118
|
|
119
|
-
>>> thread = api.adjust_holdings(scope, code, effective_at, adjust_holding_request, reconciliation_methods, async_req=True)
|
119
|
+
>>> thread = api.adjust_holdings(scope, code, effective_at, adjust_holding_request, reconciliation_methods, override_movement_name, override_offset_movement_name, async_req=True)
|
120
120
|
>>> result = thread.get()
|
121
121
|
|
122
122
|
:param scope: The scope of the transaction portfolio. (required)
|
@@ -129,6 +129,10 @@ class TransactionPortfoliosApi:
|
|
129
129
|
:type adjust_holding_request: List[AdjustHoldingRequest]
|
130
130
|
:param reconciliation_methods: Optional parameter for specifying a reconciliation method: e.g. FxForward.
|
131
131
|
:type reconciliation_methods: List[str]
|
132
|
+
:param override_movement_name: Optional parameter to override movement name for the set holdings.
|
133
|
+
:type override_movement_name: str
|
134
|
+
:param override_offset_movement_name: Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl
|
135
|
+
:type override_offset_movement_name: str
|
132
136
|
:param async_req: Whether to execute the request asynchronously.
|
133
137
|
:type async_req: bool, optional
|
134
138
|
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
@@ -145,17 +149,17 @@ class TransactionPortfoliosApi:
|
|
145
149
|
raise ValueError(message)
|
146
150
|
if async_req is not None:
|
147
151
|
kwargs['async_req'] = async_req
|
148
|
-
return self.adjust_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, **kwargs) # noqa: E501
|
152
|
+
return self.adjust_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, override_movement_name, override_offset_movement_name, **kwargs) # noqa: E501
|
149
153
|
|
150
154
|
@validate_arguments
|
151
|
-
def adjust_holdings_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
155
|
+
def adjust_holdings_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The selected set of holdings to adjust to the provided targets for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
152
156
|
"""AdjustHoldings: Adjust holdings # noqa: E501
|
153
157
|
|
154
158
|
Adjust one or more holdings of the specified transaction portfolio to the provided targets. LUSID will automatically construct adjustment transactions to ensure that the holdings which have been adjusted are always set to the provided targets for the specified effective datetime. Read more about the difference between adjusting and setting holdings here https://support.lusid.com/docs/how-do-i-manually-adjust-or-set-holdings. # noqa: E501
|
155
159
|
This method makes a synchronous HTTP request by default. To make an
|
156
160
|
asynchronous HTTP request, please pass async_req=True
|
157
161
|
|
158
|
-
>>> thread = api.adjust_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, async_req=True)
|
162
|
+
>>> thread = api.adjust_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, override_movement_name, override_offset_movement_name, async_req=True)
|
159
163
|
>>> result = thread.get()
|
160
164
|
|
161
165
|
:param scope: The scope of the transaction portfolio. (required)
|
@@ -168,6 +172,10 @@ class TransactionPortfoliosApi:
|
|
168
172
|
:type adjust_holding_request: List[AdjustHoldingRequest]
|
169
173
|
:param reconciliation_methods: Optional parameter for specifying a reconciliation method: e.g. FxForward.
|
170
174
|
:type reconciliation_methods: List[str]
|
175
|
+
:param override_movement_name: Optional parameter to override movement name for the set holdings.
|
176
|
+
:type override_movement_name: str
|
177
|
+
:param override_offset_movement_name: Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl
|
178
|
+
:type override_offset_movement_name: str
|
171
179
|
:param async_req: Whether to execute the request asynchronously.
|
172
180
|
:type async_req: bool, optional
|
173
181
|
:param _preload_content: if False, the ApiResponse.data will
|
@@ -199,7 +207,9 @@ class TransactionPortfoliosApi:
|
|
199
207
|
'code',
|
200
208
|
'effective_at',
|
201
209
|
'adjust_holding_request',
|
202
|
-
'reconciliation_methods'
|
210
|
+
'reconciliation_methods',
|
211
|
+
'override_movement_name',
|
212
|
+
'override_offset_movement_name'
|
203
213
|
]
|
204
214
|
_all_params.extend(
|
205
215
|
[
|
@@ -244,6 +254,12 @@ class TransactionPortfoliosApi:
|
|
244
254
|
_query_params.append(('reconciliationMethods', _params['reconciliation_methods']))
|
245
255
|
_collection_formats['reconciliationMethods'] = 'multi'
|
246
256
|
|
257
|
+
if _params.get('override_movement_name') is not None: # noqa: E501
|
258
|
+
_query_params.append(('overrideMovementName', _params['override_movement_name']))
|
259
|
+
|
260
|
+
if _params.get('override_offset_movement_name') is not None: # noqa: E501
|
261
|
+
_query_params.append(('overrideOffsetMovementName', _params['override_offset_movement_name']))
|
262
|
+
|
247
263
|
# process the header parameters
|
248
264
|
_header_params = dict(_params.get('_headers', {}))
|
249
265
|
# process the form parameters
|
@@ -7313,22 +7329,22 @@ class TransactionPortfoliosApi:
|
|
7313
7329
|
|
7314
7330
|
|
7315
7331
|
@overload
|
7316
|
-
async def set_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, **kwargs) -> AdjustHolding: # noqa: E501
|
7332
|
+
async def set_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, **kwargs) -> AdjustHolding: # noqa: E501
|
7317
7333
|
...
|
7318
7334
|
|
7319
7335
|
@overload
|
7320
|
-
def set_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, async_req: Optional[bool]=True, **kwargs) -> AdjustHolding: # noqa: E501
|
7336
|
+
def set_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, async_req: Optional[bool]=True, **kwargs) -> AdjustHolding: # noqa: E501
|
7321
7337
|
...
|
7322
7338
|
|
7323
7339
|
@validate_arguments
|
7324
|
-
def set_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[AdjustHolding, Awaitable[AdjustHolding]]: # noqa: E501
|
7340
|
+
def set_holdings(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[AdjustHolding, Awaitable[AdjustHolding]]: # noqa: E501
|
7325
7341
|
"""SetHoldings: Set holdings # noqa: E501
|
7326
7342
|
|
7327
7343
|
Set the holdings of the specified transaction portfolio to the provided targets. LUSID will automatically construct adjustment transactions to ensure that the entire set of holdings for the transaction portfolio are always set to the provided targets for the specified effective datetime. Read more about the difference between adjusting and setting holdings here https://support.lusid.com/docs/how-do-i-manually-adjust-or-set-holdings. # noqa: E501
|
7328
7344
|
This method makes a synchronous HTTP request by default. To make an
|
7329
7345
|
asynchronous HTTP request, please pass async_req=True
|
7330
7346
|
|
7331
|
-
>>> thread = api.set_holdings(scope, code, effective_at, adjust_holding_request, reconciliation_methods, async_req=True)
|
7347
|
+
>>> thread = api.set_holdings(scope, code, effective_at, adjust_holding_request, reconciliation_methods, override_movement_name, override_offset_movement_name, async_req=True)
|
7332
7348
|
>>> result = thread.get()
|
7333
7349
|
|
7334
7350
|
:param scope: The scope of the transaction portfolio. (required)
|
@@ -7341,6 +7357,10 @@ class TransactionPortfoliosApi:
|
|
7341
7357
|
:type adjust_holding_request: List[AdjustHoldingRequest]
|
7342
7358
|
:param reconciliation_methods: Optional parameter for specifying a reconciliation method: e.g. FxForward.
|
7343
7359
|
:type reconciliation_methods: List[str]
|
7360
|
+
:param override_movement_name: Optional parameter to override movement name for the set holdings.
|
7361
|
+
:type override_movement_name: str
|
7362
|
+
:param override_offset_movement_name: Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl
|
7363
|
+
:type override_offset_movement_name: str
|
7344
7364
|
:param async_req: Whether to execute the request asynchronously.
|
7345
7365
|
:type async_req: bool, optional
|
7346
7366
|
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
@@ -7357,17 +7377,17 @@ class TransactionPortfoliosApi:
|
|
7357
7377
|
raise ValueError(message)
|
7358
7378
|
if async_req is not None:
|
7359
7379
|
kwargs['async_req'] = async_req
|
7360
|
-
return self.set_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, **kwargs) # noqa: E501
|
7380
|
+
return self.set_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, override_movement_name, override_offset_movement_name, **kwargs) # noqa: E501
|
7361
7381
|
|
7362
7382
|
@validate_arguments
|
7363
|
-
def set_holdings_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
7383
|
+
def set_holdings_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the transaction portfolio.")], code : Annotated[StrictStr, Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[StrictStr, Field(..., description="The effective datetime or cut label at which the holdings should be set to the provided targets.")], adjust_holding_request : Annotated[conlist(AdjustHoldingRequest), Field(..., description="The complete set of target holdings for the transaction portfolio.")], reconciliation_methods : Annotated[Optional[conlist(StrictStr)], Field(description="Optional parameter for specifying a reconciliation method: e.g. FxForward.")] = None, override_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter to override movement name for the set holdings.")] = None, override_offset_movement_name : Annotated[Optional[StrictStr], Field( description="Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
7364
7384
|
"""SetHoldings: Set holdings # noqa: E501
|
7365
7385
|
|
7366
7386
|
Set the holdings of the specified transaction portfolio to the provided targets. LUSID will automatically construct adjustment transactions to ensure that the entire set of holdings for the transaction portfolio are always set to the provided targets for the specified effective datetime. Read more about the difference between adjusting and setting holdings here https://support.lusid.com/docs/how-do-i-manually-adjust-or-set-holdings. # noqa: E501
|
7367
7387
|
This method makes a synchronous HTTP request by default. To make an
|
7368
7388
|
asynchronous HTTP request, please pass async_req=True
|
7369
7389
|
|
7370
|
-
>>> thread = api.set_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, async_req=True)
|
7390
|
+
>>> thread = api.set_holdings_with_http_info(scope, code, effective_at, adjust_holding_request, reconciliation_methods, override_movement_name, override_offset_movement_name, async_req=True)
|
7371
7391
|
>>> result = thread.get()
|
7372
7392
|
|
7373
7393
|
:param scope: The scope of the transaction portfolio. (required)
|
@@ -7380,6 +7400,10 @@ class TransactionPortfoliosApi:
|
|
7380
7400
|
:type adjust_holding_request: List[AdjustHoldingRequest]
|
7381
7401
|
:param reconciliation_methods: Optional parameter for specifying a reconciliation method: e.g. FxForward.
|
7382
7402
|
:type reconciliation_methods: List[str]
|
7403
|
+
:param override_movement_name: Optional parameter to override movement name for the set holdings.
|
7404
|
+
:type override_movement_name: str
|
7405
|
+
:param override_offset_movement_name: Optional parameter will create an additional offset movement for the set holdings with this new name and transaction type: CarryAsPnl
|
7406
|
+
:type override_offset_movement_name: str
|
7383
7407
|
:param async_req: Whether to execute the request asynchronously.
|
7384
7408
|
:type async_req: bool, optional
|
7385
7409
|
:param _preload_content: if False, the ApiResponse.data will
|
@@ -7411,7 +7435,9 @@ class TransactionPortfoliosApi:
|
|
7411
7435
|
'code',
|
7412
7436
|
'effective_at',
|
7413
7437
|
'adjust_holding_request',
|
7414
|
-
'reconciliation_methods'
|
7438
|
+
'reconciliation_methods',
|
7439
|
+
'override_movement_name',
|
7440
|
+
'override_offset_movement_name'
|
7415
7441
|
]
|
7416
7442
|
_all_params.extend(
|
7417
7443
|
[
|
@@ -7456,6 +7482,12 @@ class TransactionPortfoliosApi:
|
|
7456
7482
|
_query_params.append(('reconciliationMethods', _params['reconciliation_methods']))
|
7457
7483
|
_collection_formats['reconciliationMethods'] = 'multi'
|
7458
7484
|
|
7485
|
+
if _params.get('override_movement_name') is not None: # noqa: E501
|
7486
|
+
_query_params.append(('overrideMovementName', _params['override_movement_name']))
|
7487
|
+
|
7488
|
+
if _params.get('override_offset_movement_name') is not None: # noqa: E501
|
7489
|
+
_query_params.append(('overrideOffsetMovementName', _params['override_offset_movement_name']))
|
7490
|
+
|
7459
7491
|
# process the header parameters
|
7460
7492
|
_header_params = dict(_params.get('_headers', {}))
|
7461
7493
|
# process the form parameters
|
lusid/configuration.py
CHANGED
@@ -128,7 +128,7 @@ class Configuration:
|
|
128
128
|
rate_limit_retries=DEFAULT_RATE_LIMIT_RETRIES) -> None:
|
129
129
|
"""Constructor
|
130
130
|
"""
|
131
|
-
self._base_path = "https://
|
131
|
+
self._base_path = "https://fbn-prd.lusid.com/api" if host is None else host
|
132
132
|
"""Default Base url
|
133
133
|
"""
|
134
134
|
self.server_index = 0 if server_index is None and host is None else server_index
|
@@ -445,7 +445,7 @@ class Configuration:
|
|
445
445
|
return "Python SDK Debug Report:\n"\
|
446
446
|
"OS: {env}\n"\
|
447
447
|
"Python Version: {pyversion}\n"\
|
448
|
-
"Version of the API: 0.11.
|
448
|
+
"Version of the API: 0.11.8138\n"\
|
449
449
|
"SDK Package Version: {package_version}".\
|
450
450
|
format(env=sys.platform, pyversion=sys.version, package_version=package_version)
|
451
451
|
|
@@ -456,7 +456,7 @@ class Configuration:
|
|
456
456
|
"""
|
457
457
|
return [
|
458
458
|
{
|
459
|
-
'url': "https://
|
459
|
+
'url': "https://fbn-prd.lusid.com/api",
|
460
460
|
'description': "No description provided",
|
461
461
|
}
|
462
462
|
]
|
lusid/models/__init__.py
CHANGED
@@ -445,6 +445,8 @@ from lusid.models.fund_properties import FundProperties
|
|
445
445
|
from lusid.models.fund_request import FundRequest
|
446
446
|
from lusid.models.fund_share_class import FundShareClass
|
447
447
|
from lusid.models.fund_valuation_point_data import FundValuationPointData
|
448
|
+
from lusid.models.fund_valuation_request import FundValuationRequest
|
449
|
+
from lusid.models.fund_valuation_schedule import FundValuationSchedule
|
448
450
|
from lusid.models.funding_leg import FundingLeg
|
449
451
|
from lusid.models.funding_leg_options import FundingLegOptions
|
450
452
|
from lusid.models.future import Future
|
@@ -1252,6 +1254,7 @@ from lusid.models.user import User
|
|
1252
1254
|
from lusid.models.valuation_point_data_query_parameters import ValuationPointDataQueryParameters
|
1253
1255
|
from lusid.models.valuation_point_data_request import ValuationPointDataRequest
|
1254
1256
|
from lusid.models.valuation_point_data_response import ValuationPointDataResponse
|
1257
|
+
from lusid.models.valuation_point_fund_calendar_entry import ValuationPointFundCalendarEntry
|
1255
1258
|
from lusid.models.valuation_point_overview import ValuationPointOverview
|
1256
1259
|
from lusid.models.valuation_point_resource_list_of_accounted_transaction import ValuationPointResourceListOfAccountedTransaction
|
1257
1260
|
from lusid.models.valuation_point_resource_list_of_fund_journal_entry_line import ValuationPointResourceListOfFundJournalEntryLine
|
@@ -1726,6 +1729,8 @@ __all__ = [
|
|
1726
1729
|
"FundRequest",
|
1727
1730
|
"FundShareClass",
|
1728
1731
|
"FundValuationPointData",
|
1732
|
+
"FundValuationRequest",
|
1733
|
+
"FundValuationSchedule",
|
1729
1734
|
"FundingLeg",
|
1730
1735
|
"FundingLegOptions",
|
1731
1736
|
"Future",
|
@@ -2533,6 +2538,7 @@ __all__ = [
|
|
2533
2538
|
"ValuationPointDataQueryParameters",
|
2534
2539
|
"ValuationPointDataRequest",
|
2535
2540
|
"ValuationPointDataResponse",
|
2541
|
+
"ValuationPointFundCalendarEntry",
|
2536
2542
|
"ValuationPointOverview",
|
2537
2543
|
"ValuationPointResourceListOfAccountedTransaction",
|
2538
2544
|
"ValuationPointResourceListOfFundJournalEntryLine",
|
@@ -17,25 +17,17 @@ import pprint
|
|
17
17
|
import re # noqa: F401
|
18
18
|
import json
|
19
19
|
|
20
|
-
|
21
|
-
from typing import Any, Dict,
|
22
|
-
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictStr,
|
23
|
-
|
20
|
+
|
21
|
+
from typing import Any, Dict, Union
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictStr, validator
|
23
|
+
import lusid.models
|
24
24
|
|
25
25
|
class FundCalendarEntry(BaseModel):
|
26
26
|
"""
|
27
27
|
FundCalendarEntry
|
28
28
|
"""
|
29
|
-
code: StrictStr = Field(...,alias="code", description="The unique Code of the Calendar Entry. The Calendar Entry, together with the Fund Scope and Code, uniquely identifies a Fund Calendar Entry")
|
30
|
-
display_name: StrictStr = Field(...,alias="displayName", description="The name of the Fund Calendar entry.")
|
31
|
-
description: Optional[StrictStr] = Field(None,alias="description", description="A description for the Fund Calendar entry.")
|
32
|
-
nav_type_code: StrictStr = Field(...,alias="navTypeCode", description="The navTypeCode of the Fund Calendar Entry. This is the code of the NAV type that this Calendar Entry is associated with.")
|
33
|
-
effective_at: Optional[datetime] = Field(None, alias="effectiveAt", description="The effective at of the Calendar Entry.")
|
34
|
-
as_at: Optional[datetime] = Field(None, alias="asAt", description="The asAt datetime for the Calendar Entry.")
|
35
29
|
entry_type: StrictStr = Field(...,alias="entryType", description="The type of the Fund Calendar Entry. Only 'ValuationPoint' currently supported. The available values are: ValuationPointFundCalendarEntry")
|
36
|
-
|
37
|
-
href: Optional[StrictStr] = Field(None,alias="href", description="The specific Uniform Resource Identifier (URI) for this resource at the requested asAt datetime.")
|
38
|
-
__properties = ["code", "displayName", "description", "navTypeCode", "effectiveAt", "asAt", "entryType", "version", "href"]
|
30
|
+
__properties = ["entryType"]
|
39
31
|
|
40
32
|
@validator('entry_type')
|
41
33
|
def entry_type_validate_enum(cls, value):
|
@@ -101,6 +93,23 @@ class FundCalendarEntry(BaseModel):
|
|
101
93
|
allow_population_by_field_name = True
|
102
94
|
validate_assignment = True
|
103
95
|
|
96
|
+
# JSON field name that stores the object type
|
97
|
+
__discriminator_property_name = 'entryType'
|
98
|
+
|
99
|
+
# discriminator mappings
|
100
|
+
__discriminator_value_class_map = {
|
101
|
+
'ValuationPointFundCalendarEntry': 'ValuationPointFundCalendarEntry'
|
102
|
+
}
|
103
|
+
|
104
|
+
@classmethod
|
105
|
+
def get_discriminator_value(cls, obj: dict) -> str:
|
106
|
+
"""Returns the discriminator value (object type) of the data"""
|
107
|
+
discriminator_value = obj[cls.__discriminator_property_name]
|
108
|
+
if discriminator_value:
|
109
|
+
return cls.__discriminator_value_class_map.get(discriminator_value)
|
110
|
+
else:
|
111
|
+
return None
|
112
|
+
|
104
113
|
def __str__(self):
|
105
114
|
"""For `print` and `pprint`"""
|
106
115
|
return pprint.pformat(self.dict(by_alias=False))
|
@@ -118,7 +127,7 @@ class FundCalendarEntry(BaseModel):
|
|
118
127
|
return json.dumps(self.to_dict())
|
119
128
|
|
120
129
|
@classmethod
|
121
|
-
def from_json(cls, json_str: str) ->
|
130
|
+
def from_json(cls, json_str: str) -> Union(ValuationPointFundCalendarEntry):
|
122
131
|
"""Create an instance of FundCalendarEntry from a JSON string"""
|
123
132
|
return cls.from_dict(json.loads(json_str))
|
124
133
|
|
@@ -128,39 +137,17 @@ class FundCalendarEntry(BaseModel):
|
|
128
137
|
exclude={
|
129
138
|
},
|
130
139
|
exclude_none=True)
|
131
|
-
# override the default output from pydantic by calling `to_dict()` of version
|
132
|
-
if self.version:
|
133
|
-
_dict['version'] = self.version.to_dict()
|
134
|
-
# set to None if description (nullable) is None
|
135
|
-
# and __fields_set__ contains the field
|
136
|
-
if self.description is None and "description" in self.__fields_set__:
|
137
|
-
_dict['description'] = None
|
138
|
-
|
139
|
-
# set to None if href (nullable) is None
|
140
|
-
# and __fields_set__ contains the field
|
141
|
-
if self.href is None and "href" in self.__fields_set__:
|
142
|
-
_dict['href'] = None
|
143
|
-
|
144
140
|
return _dict
|
145
141
|
|
146
142
|
@classmethod
|
147
|
-
def from_dict(cls, obj: dict) ->
|
143
|
+
def from_dict(cls, obj: dict) -> Union(ValuationPointFundCalendarEntry):
|
148
144
|
"""Create an instance of FundCalendarEntry from a dict"""
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
return
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
"description": obj.get("description"),
|
159
|
-
"nav_type_code": obj.get("navTypeCode"),
|
160
|
-
"effective_at": obj.get("effectiveAt"),
|
161
|
-
"as_at": obj.get("asAt"),
|
162
|
-
"entry_type": obj.get("entryType"),
|
163
|
-
"version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
|
164
|
-
"href": obj.get("href")
|
165
|
-
})
|
166
|
-
return _obj
|
145
|
+
# look up the object type based on discriminator mapping
|
146
|
+
object_type = cls.get_discriminator_value(obj)
|
147
|
+
if object_type:
|
148
|
+
klass = getattr(lusid.models, object_type)
|
149
|
+
return klass.from_dict(obj)
|
150
|
+
else:
|
151
|
+
raise ValueError("FundCalendarEntry failed to lookup discriminator value from " +
|
152
|
+
json.dumps(obj) + ". Discriminator property name: " + cls.__discriminator_property_name +
|
153
|
+
", mapping: " + json.dumps(cls.__discriminator_value_class_map))
|
@@ -0,0 +1,157 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID API
|
5
|
+
|
6
|
+
FINBOURNE Technology # noqa: E501
|
7
|
+
|
8
|
+
Contact: info@finbourne.com
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
10
|
+
|
11
|
+
Do not edit the class manually.
|
12
|
+
"""
|
13
|
+
|
14
|
+
|
15
|
+
from __future__ import annotations
|
16
|
+
import pprint
|
17
|
+
import re # noqa: F401
|
18
|
+
import json
|
19
|
+
|
20
|
+
from datetime import datetime
|
21
|
+
from typing import Any, Dict, List, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictBool, StrictStr, conlist
|
23
|
+
from lusid.models.aggregate_spec import AggregateSpec
|
24
|
+
from lusid.models.fund_valuation_schedule import FundValuationSchedule
|
25
|
+
from lusid.models.market_data_overrides import MarketDataOverrides
|
26
|
+
from lusid.models.order_by_spec import OrderBySpec
|
27
|
+
from lusid.models.order_flow_configuration import OrderFlowConfiguration
|
28
|
+
from lusid.models.property_filter import PropertyFilter
|
29
|
+
from lusid.models.resource_id import ResourceId
|
30
|
+
|
31
|
+
class FundValuationRequest(BaseModel):
|
32
|
+
"""
|
33
|
+
Specification object for the parameters of a valuation # noqa: E501
|
34
|
+
"""
|
35
|
+
as_at: Optional[datetime] = Field(None, alias="asAt", description="The asAt date to use.")
|
36
|
+
metrics: conlist(AggregateSpec) = Field(..., description="The set of specifications to calculate or retrieve during the valuation and present in the results. For example: AggregateSpec('Valuation/PV','Sum') for returning the PV (present value) of holdings AggregateSpec('Holding/default/Units','Sum') for returning the units of holidays AggregateSpec('Instrument/default/LusidInstrumentId','Value') for returning the Lusid Instrument identifier")
|
37
|
+
group_by: Optional[conlist(StrictStr)] = Field(None, alias="groupBy", description="The set of items by which to perform grouping. This primarily matters when one or more of the metric operators is a mapping that reduces set size, e.g. sum or proportion. The group-by statement determines the set of keys by which to break the results out.")
|
38
|
+
filters: Optional[conlist(PropertyFilter)] = Field(None, description="A set of filters to use to reduce the data found in a request. Equivalent to the 'where ...' part of a Sql select statement. For example, filter a set of values within a given range or matching a particular value.")
|
39
|
+
sort: Optional[conlist(OrderBySpec)] = Field(None, description="A (possibly empty/null) set of specifications for how to order the results.")
|
40
|
+
equip_with_subtotals: Optional[StrictBool] = Field(None, alias="equipWithSubtotals", description="Flag directing the Valuation call to populate the results with subtotals of aggregates.")
|
41
|
+
return_result_as_expanded_types: Optional[StrictBool] = Field(None, alias="returnResultAsExpandedTypes", description="Financially meaningful results can be presented as either simple flat types or more complex expanded types. For example, the present value (PV) of a holding could be represented either as a simple decimal (with currency implied) or as a decimal-currency pair. This flag allows either representation to be returned. In the PV example, the returned value would be the decimal-currency pair if this flag is true, or the decimal only if this flag is false.")
|
42
|
+
include_order_flow: Optional[OrderFlowConfiguration] = Field(None, alias="includeOrderFlow")
|
43
|
+
fund_valuation_schedule: FundValuationSchedule = Field(..., alias="fundValuationSchedule")
|
44
|
+
market_data_overrides: Optional[MarketDataOverrides] = Field(None, alias="marketDataOverrides")
|
45
|
+
corporate_action_source_id: Optional[ResourceId] = Field(None, alias="corporateActionSourceId")
|
46
|
+
__properties = ["asAt", "metrics", "groupBy", "filters", "sort", "equipWithSubtotals", "returnResultAsExpandedTypes", "includeOrderFlow", "fundValuationSchedule", "marketDataOverrides", "corporateActionSourceId"]
|
47
|
+
|
48
|
+
class Config:
|
49
|
+
"""Pydantic configuration"""
|
50
|
+
allow_population_by_field_name = True
|
51
|
+
validate_assignment = True
|
52
|
+
|
53
|
+
def __str__(self):
|
54
|
+
"""For `print` and `pprint`"""
|
55
|
+
return pprint.pformat(self.dict(by_alias=False))
|
56
|
+
|
57
|
+
def __repr__(self):
|
58
|
+
"""For `print` and `pprint`"""
|
59
|
+
return self.to_str()
|
60
|
+
|
61
|
+
def to_str(self) -> str:
|
62
|
+
"""Returns the string representation of the model using alias"""
|
63
|
+
return pprint.pformat(self.dict(by_alias=True))
|
64
|
+
|
65
|
+
def to_json(self) -> str:
|
66
|
+
"""Returns the JSON representation of the model using alias"""
|
67
|
+
return json.dumps(self.to_dict())
|
68
|
+
|
69
|
+
@classmethod
|
70
|
+
def from_json(cls, json_str: str) -> FundValuationRequest:
|
71
|
+
"""Create an instance of FundValuationRequest from a JSON string"""
|
72
|
+
return cls.from_dict(json.loads(json_str))
|
73
|
+
|
74
|
+
def to_dict(self):
|
75
|
+
"""Returns the dictionary representation of the model using alias"""
|
76
|
+
_dict = self.dict(by_alias=True,
|
77
|
+
exclude={
|
78
|
+
},
|
79
|
+
exclude_none=True)
|
80
|
+
# override the default output from pydantic by calling `to_dict()` of each item in metrics (list)
|
81
|
+
_items = []
|
82
|
+
if self.metrics:
|
83
|
+
for _item in self.metrics:
|
84
|
+
if _item:
|
85
|
+
_items.append(_item.to_dict())
|
86
|
+
_dict['metrics'] = _items
|
87
|
+
# override the default output from pydantic by calling `to_dict()` of each item in filters (list)
|
88
|
+
_items = []
|
89
|
+
if self.filters:
|
90
|
+
for _item in self.filters:
|
91
|
+
if _item:
|
92
|
+
_items.append(_item.to_dict())
|
93
|
+
_dict['filters'] = _items
|
94
|
+
# override the default output from pydantic by calling `to_dict()` of each item in sort (list)
|
95
|
+
_items = []
|
96
|
+
if self.sort:
|
97
|
+
for _item in self.sort:
|
98
|
+
if _item:
|
99
|
+
_items.append(_item.to_dict())
|
100
|
+
_dict['sort'] = _items
|
101
|
+
# override the default output from pydantic by calling `to_dict()` of include_order_flow
|
102
|
+
if self.include_order_flow:
|
103
|
+
_dict['includeOrderFlow'] = self.include_order_flow.to_dict()
|
104
|
+
# override the default output from pydantic by calling `to_dict()` of fund_valuation_schedule
|
105
|
+
if self.fund_valuation_schedule:
|
106
|
+
_dict['fundValuationSchedule'] = self.fund_valuation_schedule.to_dict()
|
107
|
+
# override the default output from pydantic by calling `to_dict()` of market_data_overrides
|
108
|
+
if self.market_data_overrides:
|
109
|
+
_dict['marketDataOverrides'] = self.market_data_overrides.to_dict()
|
110
|
+
# override the default output from pydantic by calling `to_dict()` of corporate_action_source_id
|
111
|
+
if self.corporate_action_source_id:
|
112
|
+
_dict['corporateActionSourceId'] = self.corporate_action_source_id.to_dict()
|
113
|
+
# set to None if as_at (nullable) is None
|
114
|
+
# and __fields_set__ contains the field
|
115
|
+
if self.as_at is None and "as_at" in self.__fields_set__:
|
116
|
+
_dict['asAt'] = None
|
117
|
+
|
118
|
+
# set to None if group_by (nullable) is None
|
119
|
+
# and __fields_set__ contains the field
|
120
|
+
if self.group_by is None and "group_by" in self.__fields_set__:
|
121
|
+
_dict['groupBy'] = None
|
122
|
+
|
123
|
+
# set to None if filters (nullable) is None
|
124
|
+
# and __fields_set__ contains the field
|
125
|
+
if self.filters is None and "filters" in self.__fields_set__:
|
126
|
+
_dict['filters'] = None
|
127
|
+
|
128
|
+
# set to None if sort (nullable) is None
|
129
|
+
# and __fields_set__ contains the field
|
130
|
+
if self.sort is None and "sort" in self.__fields_set__:
|
131
|
+
_dict['sort'] = None
|
132
|
+
|
133
|
+
return _dict
|
134
|
+
|
135
|
+
@classmethod
|
136
|
+
def from_dict(cls, obj: dict) -> FundValuationRequest:
|
137
|
+
"""Create an instance of FundValuationRequest from a dict"""
|
138
|
+
if obj is None:
|
139
|
+
return None
|
140
|
+
|
141
|
+
if not isinstance(obj, dict):
|
142
|
+
return FundValuationRequest.parse_obj(obj)
|
143
|
+
|
144
|
+
_obj = FundValuationRequest.parse_obj({
|
145
|
+
"as_at": obj.get("asAt"),
|
146
|
+
"metrics": [AggregateSpec.from_dict(_item) for _item in obj.get("metrics")] if obj.get("metrics") is not None else None,
|
147
|
+
"group_by": obj.get("groupBy"),
|
148
|
+
"filters": [PropertyFilter.from_dict(_item) for _item in obj.get("filters")] if obj.get("filters") is not None else None,
|
149
|
+
"sort": [OrderBySpec.from_dict(_item) for _item in obj.get("sort")] if obj.get("sort") is not None else None,
|
150
|
+
"equip_with_subtotals": obj.get("equipWithSubtotals"),
|
151
|
+
"return_result_as_expanded_types": obj.get("returnResultAsExpandedTypes"),
|
152
|
+
"include_order_flow": OrderFlowConfiguration.from_dict(obj.get("includeOrderFlow")) if obj.get("includeOrderFlow") is not None else None,
|
153
|
+
"fund_valuation_schedule": FundValuationSchedule.from_dict(obj.get("fundValuationSchedule")) if obj.get("fundValuationSchedule") is not None else None,
|
154
|
+
"market_data_overrides": MarketDataOverrides.from_dict(obj.get("marketDataOverrides")) if obj.get("marketDataOverrides") is not None else None,
|
155
|
+
"corporate_action_source_id": ResourceId.from_dict(obj.get("corporateActionSourceId")) if obj.get("corporateActionSourceId") is not None else None
|
156
|
+
})
|
157
|
+
return _obj
|
@@ -0,0 +1,131 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID API
|
5
|
+
|
6
|
+
FINBOURNE Technology # noqa: E501
|
7
|
+
|
8
|
+
Contact: info@finbourne.com
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
10
|
+
|
11
|
+
Do not edit the class manually.
|
12
|
+
"""
|
13
|
+
|
14
|
+
|
15
|
+
from __future__ import annotations
|
16
|
+
import pprint
|
17
|
+
import re # noqa: F401
|
18
|
+
import json
|
19
|
+
|
20
|
+
|
21
|
+
from typing import Any, Dict, List, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictStr, conlist, constr, validator
|
23
|
+
|
24
|
+
class FundValuationSchedule(BaseModel):
|
25
|
+
"""
|
26
|
+
Specification object for the valuation schedule, how do we determine which days we wish to perform a valuation upon. # noqa: E501
|
27
|
+
"""
|
28
|
+
effective_from: Optional[StrictStr] = Field(None,alias="effectiveFrom", description="If present, the EffectiveFrom and EffectiveAt dates are interpreted as a range of dates for which to perform a valuation. In this case, valuation is calculated for the portfolio(s) for each business day in the given range.")
|
29
|
+
effective_at: Optional[StrictStr] = Field(None,alias="effectiveAt", description="The market data time, i.e. the time to run the valuation request effective of.")
|
30
|
+
diary_entry: Optional[StrictStr] = Field(None,alias="diaryEntry", description="The diary entry to use for the valuation schedule. This is used to determine the date on which the valuation should be performed.")
|
31
|
+
tenor: Optional[StrictStr] = Field(None,alias="tenor", description="Tenor, e.g \"1D\", \"1M\" to be used in generating the date schedule when effectiveFrom and effectiveAt are both given and are not the same.")
|
32
|
+
roll_convention: Optional[StrictStr] = Field(None,alias="rollConvention", description="When Tenor is given and is \"1M\" or longer, this specifies the rule which should be used to generate the date schedule. For example, \"EndOfMonth\" to generate end of month dates, or \"1\" to specify the first day of the applicable month.")
|
33
|
+
holiday_calendars: Optional[conlist(StrictStr)] = Field(None, alias="holidayCalendars", description="The holiday calendar(s) that should be used in determining the date schedule. Holiday calendar(s) are supplied by their names, for example, \"CoppClark\". Note that when the calendars are not available (e.g. when the user has insufficient permissions), a recipe setting will be used to determine whether the whole batch should then fail or whether the calendar not being available should simply be ignored.")
|
34
|
+
valuation_date_times: Optional[conlist(StrictStr)] = Field(None, alias="valuationDateTimes", description="If given, this is the exact set of dates on which to perform a valuation. This will replace/override all other specified values if given.")
|
35
|
+
business_day_convention: Optional[StrictStr] = Field(None,alias="businessDayConvention", description="When Tenor is given and is not equal to \"1D\", there may be cases where \"date + tenor\" land on non-business days around month end. In that case, the BusinessDayConvention, e.g. modified following \"MF\" would be applied to determine the next GBD.")
|
36
|
+
__properties = ["effectiveFrom", "effectiveAt", "diaryEntry", "tenor", "rollConvention", "holidayCalendars", "valuationDateTimes", "businessDayConvention"]
|
37
|
+
|
38
|
+
class Config:
|
39
|
+
"""Pydantic configuration"""
|
40
|
+
allow_population_by_field_name = True
|
41
|
+
validate_assignment = True
|
42
|
+
|
43
|
+
def __str__(self):
|
44
|
+
"""For `print` and `pprint`"""
|
45
|
+
return pprint.pformat(self.dict(by_alias=False))
|
46
|
+
|
47
|
+
def __repr__(self):
|
48
|
+
"""For `print` and `pprint`"""
|
49
|
+
return self.to_str()
|
50
|
+
|
51
|
+
def to_str(self) -> str:
|
52
|
+
"""Returns the string representation of the model using alias"""
|
53
|
+
return pprint.pformat(self.dict(by_alias=True))
|
54
|
+
|
55
|
+
def to_json(self) -> str:
|
56
|
+
"""Returns the JSON representation of the model using alias"""
|
57
|
+
return json.dumps(self.to_dict())
|
58
|
+
|
59
|
+
@classmethod
|
60
|
+
def from_json(cls, json_str: str) -> FundValuationSchedule:
|
61
|
+
"""Create an instance of FundValuationSchedule from a JSON string"""
|
62
|
+
return cls.from_dict(json.loads(json_str))
|
63
|
+
|
64
|
+
def to_dict(self):
|
65
|
+
"""Returns the dictionary representation of the model using alias"""
|
66
|
+
_dict = self.dict(by_alias=True,
|
67
|
+
exclude={
|
68
|
+
},
|
69
|
+
exclude_none=True)
|
70
|
+
# set to None if effective_from (nullable) is None
|
71
|
+
# and __fields_set__ contains the field
|
72
|
+
if self.effective_from is None and "effective_from" in self.__fields_set__:
|
73
|
+
_dict['effectiveFrom'] = None
|
74
|
+
|
75
|
+
# set to None if effective_at (nullable) is None
|
76
|
+
# and __fields_set__ contains the field
|
77
|
+
if self.effective_at is None and "effective_at" in self.__fields_set__:
|
78
|
+
_dict['effectiveAt'] = None
|
79
|
+
|
80
|
+
# set to None if diary_entry (nullable) is None
|
81
|
+
# and __fields_set__ contains the field
|
82
|
+
if self.diary_entry is None and "diary_entry" in self.__fields_set__:
|
83
|
+
_dict['diaryEntry'] = None
|
84
|
+
|
85
|
+
# set to None if tenor (nullable) is None
|
86
|
+
# and __fields_set__ contains the field
|
87
|
+
if self.tenor is None and "tenor" in self.__fields_set__:
|
88
|
+
_dict['tenor'] = None
|
89
|
+
|
90
|
+
# set to None if roll_convention (nullable) is None
|
91
|
+
# and __fields_set__ contains the field
|
92
|
+
if self.roll_convention is None and "roll_convention" in self.__fields_set__:
|
93
|
+
_dict['rollConvention'] = None
|
94
|
+
|
95
|
+
# set to None if holiday_calendars (nullable) is None
|
96
|
+
# and __fields_set__ contains the field
|
97
|
+
if self.holiday_calendars is None and "holiday_calendars" in self.__fields_set__:
|
98
|
+
_dict['holidayCalendars'] = None
|
99
|
+
|
100
|
+
# set to None if valuation_date_times (nullable) is None
|
101
|
+
# and __fields_set__ contains the field
|
102
|
+
if self.valuation_date_times is None and "valuation_date_times" in self.__fields_set__:
|
103
|
+
_dict['valuationDateTimes'] = None
|
104
|
+
|
105
|
+
# set to None if business_day_convention (nullable) is None
|
106
|
+
# and __fields_set__ contains the field
|
107
|
+
if self.business_day_convention is None and "business_day_convention" in self.__fields_set__:
|
108
|
+
_dict['businessDayConvention'] = None
|
109
|
+
|
110
|
+
return _dict
|
111
|
+
|
112
|
+
@classmethod
|
113
|
+
def from_dict(cls, obj: dict) -> FundValuationSchedule:
|
114
|
+
"""Create an instance of FundValuationSchedule from a dict"""
|
115
|
+
if obj is None:
|
116
|
+
return None
|
117
|
+
|
118
|
+
if not isinstance(obj, dict):
|
119
|
+
return FundValuationSchedule.parse_obj(obj)
|
120
|
+
|
121
|
+
_obj = FundValuationSchedule.parse_obj({
|
122
|
+
"effective_from": obj.get("effectiveFrom"),
|
123
|
+
"effective_at": obj.get("effectiveAt"),
|
124
|
+
"diary_entry": obj.get("diaryEntry"),
|
125
|
+
"tenor": obj.get("tenor"),
|
126
|
+
"roll_convention": obj.get("rollConvention"),
|
127
|
+
"holiday_calendars": obj.get("holidayCalendars"),
|
128
|
+
"valuation_date_times": obj.get("valuationDateTimes"),
|
129
|
+
"business_day_convention": obj.get("businessDayConvention")
|
130
|
+
})
|
131
|
+
return _obj
|
@@ -0,0 +1,181 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID API
|
5
|
+
|
6
|
+
FINBOURNE Technology # noqa: E501
|
7
|
+
|
8
|
+
Contact: info@finbourne.com
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
10
|
+
|
11
|
+
Do not edit the class manually.
|
12
|
+
"""
|
13
|
+
|
14
|
+
|
15
|
+
from __future__ import annotations
|
16
|
+
import pprint
|
17
|
+
import re # noqa: F401
|
18
|
+
import json
|
19
|
+
|
20
|
+
from datetime import datetime
|
21
|
+
from typing import Any, Dict, Optional
|
22
|
+
from pydantic.v1 import StrictStr, Field, Field, StrictStr, constr, validator
|
23
|
+
from lusid.models.fund_calendar_entry import FundCalendarEntry
|
24
|
+
from lusid.models.version import Version
|
25
|
+
|
26
|
+
class ValuationPointFundCalendarEntry(FundCalendarEntry):
|
27
|
+
"""
|
28
|
+
ValuationPointFundCalendarEntry
|
29
|
+
"""
|
30
|
+
code: StrictStr = Field(...,alias="code", description="The unique Code of the Calendar Entry. The Calendar Entry, together with the Fund Scope and Code, uniquely identifies a Fund Calendar Entry")
|
31
|
+
display_name: StrictStr = Field(...,alias="displayName", description="The name of the Fund Calendar entry.")
|
32
|
+
description: Optional[StrictStr] = Field(None,alias="description", description="A description for the Fund Calendar entry.")
|
33
|
+
nav_type_code: StrictStr = Field(...,alias="navTypeCode", description="The navTypeCode of the Fund Calendar Entry. This is the code of the NAV type that this Calendar Entry is associated with.")
|
34
|
+
effective_at: datetime = Field(..., alias="effectiveAt", description="The effective at of the Calendar Entry.")
|
35
|
+
as_at: datetime = Field(..., alias="asAt", description="The asAt datetime for the Calendar Entry.")
|
36
|
+
status: StrictStr = Field(...,alias="status", description="The status of the Fund Calendar Entry. Can be 'Estimate', 'Candidate' or 'Final'.")
|
37
|
+
version: Version = Field(...)
|
38
|
+
href: Optional[StrictStr] = Field(None,alias="href", description="The specific Uniform Resource Identifier (URI) for this resource at the requested asAt datetime.")
|
39
|
+
entry_type: StrictStr = Field(...,alias="entryType", description="The type of the Fund Calendar Entry. Only 'ValuationPoint' currently supported. The available values are: ValuationPointFundCalendarEntry")
|
40
|
+
additional_properties: Dict[str, Any] = {}
|
41
|
+
__properties = ["entryType", "code", "displayName", "description", "navTypeCode", "effectiveAt", "asAt", "status", "version", "href"]
|
42
|
+
|
43
|
+
@validator('entry_type')
|
44
|
+
def entry_type_validate_enum(cls, value):
|
45
|
+
"""Validates the enum"""
|
46
|
+
|
47
|
+
# Finbourne have removed enum validation on all models, except for this use case:
|
48
|
+
# Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
|
49
|
+
# During instantiation, the value of 'type' is checked against the enum values,
|
50
|
+
|
51
|
+
|
52
|
+
# check it's a class that uses the 'type' property as a discriminator
|
53
|
+
# list of classes can be found by searching for 'actual_instance: Union[' in the generated code
|
54
|
+
if 'ValuationPointFundCalendarEntry' not in [
|
55
|
+
# For notification application classes
|
56
|
+
'AmazonSqsNotificationType',
|
57
|
+
'AmazonSqsNotificationTypeResponse',
|
58
|
+
'AmazonSqsPrincipalAuthNotificationType',
|
59
|
+
'AmazonSqsPrincipalAuthNotificationTypeResponse',
|
60
|
+
'AzureServiceBusTypeResponse',
|
61
|
+
'AzureServiceBusNotificationType',
|
62
|
+
'EmailNotificationType',
|
63
|
+
'EmailNotificationTypeResponse',
|
64
|
+
'SmsNotificationType',
|
65
|
+
'SmsNotificationTypeResponse',
|
66
|
+
'WebhookNotificationType',
|
67
|
+
'WebhookNotificationTypeResponse',
|
68
|
+
|
69
|
+
# For workflow application classes
|
70
|
+
'CreateChildTasksAction',
|
71
|
+
'RunWorkerAction',
|
72
|
+
'TriggerParentTaskAction',
|
73
|
+
'CreateChildTasksActionResponse',
|
74
|
+
'RunWorkerActionResponse',
|
75
|
+
'TriggerParentTaskActionResponse',
|
76
|
+
'CreateNewTaskActivity',
|
77
|
+
'UpdateMatchingTasksActivity',
|
78
|
+
'CreateNewTaskActivityResponse',
|
79
|
+
'UpdateMatchingTasksActivityResponse',
|
80
|
+
'Fail',
|
81
|
+
'GroupReconciliation',
|
82
|
+
'HealthCheck',
|
83
|
+
'LuminesceView',
|
84
|
+
'SchedulerJob',
|
85
|
+
'Sleep',
|
86
|
+
'FailResponse',
|
87
|
+
'GroupReconciliationResponse',
|
88
|
+
'HealthCheckResponse',
|
89
|
+
'LuminesceViewResponse',
|
90
|
+
'SchedulerJobResponse',
|
91
|
+
'SleepResponse']:
|
92
|
+
return value
|
93
|
+
|
94
|
+
# Only validate the 'type' property of the class
|
95
|
+
if "entry_type" != "type":
|
96
|
+
return value
|
97
|
+
|
98
|
+
if value not in ('ValuationPointFundCalendarEntry'):
|
99
|
+
raise ValueError("must be one of enum values ('ValuationPointFundCalendarEntry')")
|
100
|
+
return value
|
101
|
+
|
102
|
+
class Config:
|
103
|
+
"""Pydantic configuration"""
|
104
|
+
allow_population_by_field_name = True
|
105
|
+
validate_assignment = True
|
106
|
+
|
107
|
+
def __str__(self):
|
108
|
+
"""For `print` and `pprint`"""
|
109
|
+
return pprint.pformat(self.dict(by_alias=False))
|
110
|
+
|
111
|
+
def __repr__(self):
|
112
|
+
"""For `print` and `pprint`"""
|
113
|
+
return self.to_str()
|
114
|
+
|
115
|
+
def to_str(self) -> str:
|
116
|
+
"""Returns the string representation of the model using alias"""
|
117
|
+
return pprint.pformat(self.dict(by_alias=True))
|
118
|
+
|
119
|
+
def to_json(self) -> str:
|
120
|
+
"""Returns the JSON representation of the model using alias"""
|
121
|
+
return json.dumps(self.to_dict())
|
122
|
+
|
123
|
+
@classmethod
|
124
|
+
def from_json(cls, json_str: str) -> ValuationPointFundCalendarEntry:
|
125
|
+
"""Create an instance of ValuationPointFundCalendarEntry from a JSON string"""
|
126
|
+
return cls.from_dict(json.loads(json_str))
|
127
|
+
|
128
|
+
def to_dict(self):
|
129
|
+
"""Returns the dictionary representation of the model using alias"""
|
130
|
+
_dict = self.dict(by_alias=True,
|
131
|
+
exclude={
|
132
|
+
"additional_properties"
|
133
|
+
},
|
134
|
+
exclude_none=True)
|
135
|
+
# override the default output from pydantic by calling `to_dict()` of version
|
136
|
+
if self.version:
|
137
|
+
_dict['version'] = self.version.to_dict()
|
138
|
+
# puts key-value pairs in additional_properties in the top level
|
139
|
+
if self.additional_properties is not None:
|
140
|
+
for _key, _value in self.additional_properties.items():
|
141
|
+
_dict[_key] = _value
|
142
|
+
|
143
|
+
# set to None if description (nullable) is None
|
144
|
+
# and __fields_set__ contains the field
|
145
|
+
if self.description is None and "description" in self.__fields_set__:
|
146
|
+
_dict['description'] = None
|
147
|
+
|
148
|
+
# set to None if href (nullable) is None
|
149
|
+
# and __fields_set__ contains the field
|
150
|
+
if self.href is None and "href" in self.__fields_set__:
|
151
|
+
_dict['href'] = None
|
152
|
+
|
153
|
+
return _dict
|
154
|
+
|
155
|
+
@classmethod
|
156
|
+
def from_dict(cls, obj: dict) -> ValuationPointFundCalendarEntry:
|
157
|
+
"""Create an instance of ValuationPointFundCalendarEntry from a dict"""
|
158
|
+
if obj is None:
|
159
|
+
return None
|
160
|
+
|
161
|
+
if not isinstance(obj, dict):
|
162
|
+
return ValuationPointFundCalendarEntry.parse_obj(obj)
|
163
|
+
|
164
|
+
_obj = ValuationPointFundCalendarEntry.parse_obj({
|
165
|
+
"entry_type": obj.get("entryType"),
|
166
|
+
"code": obj.get("code"),
|
167
|
+
"display_name": obj.get("displayName"),
|
168
|
+
"description": obj.get("description"),
|
169
|
+
"nav_type_code": obj.get("navTypeCode"),
|
170
|
+
"effective_at": obj.get("effectiveAt"),
|
171
|
+
"as_at": obj.get("asAt"),
|
172
|
+
"status": obj.get("status"),
|
173
|
+
"version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
|
174
|
+
"href": obj.get("href")
|
175
|
+
})
|
176
|
+
# store additional fields in additional_properties
|
177
|
+
for _key in obj.keys():
|
178
|
+
if _key not in cls.__properties:
|
179
|
+
_obj.additional_properties[_key] = obj.get(_key)
|
180
|
+
|
181
|
+
return _obj
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lusid-sdk
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.899
|
4
4
|
Summary: LUSID API
|
5
5
|
Home-page: https://github.com/finbourne/lusid-sdk-python
|
6
6
|
License: MIT
|
@@ -28,7 +28,7 @@ Description-Content-Type: text/markdown
|
|
28
28
|
<a id="documentation-for-api-endpoints"></a>
|
29
29
|
## Documentation for API Endpoints
|
30
30
|
|
31
|
-
All URIs are relative to *https://
|
31
|
+
All URIs are relative to *https://fbn-prd.lusid.com/api*
|
32
32
|
|
33
33
|
Class | Method | HTTP request | Description
|
34
34
|
------------ | ------------- | ------------- | -------------
|
@@ -273,6 +273,7 @@ Class | Method | HTTP request | Description
|
|
273
273
|
*FundsApi* | [**get_fund**](docs/FundsApi.md#get_fund) | **GET** /api/funds/{scope}/{code} | [EXPERIMENTAL] GetFund: Get a Fund.
|
274
274
|
*FundsApi* | [**get_fund_properties**](docs/FundsApi.md#get_fund_properties) | **GET** /api/funds/{scope}/{code}/properties | [EXPERIMENTAL] GetFundProperties: Get Fund properties
|
275
275
|
*FundsApi* | [**get_holdings_for_fund**](docs/FundsApi.md#get_holdings_for_fund) | **POST** /api/funds/{scope}/{code}/$holdings | [EXPERIMENTAL] GetHoldingsForFund: Get holdings for transaction portfolios in a Fund.
|
276
|
+
*FundsApi* | [**get_valuation_for_fund**](docs/FundsApi.md#get_valuation_for_fund) | **POST** /api/funds/{scope}/{code}/$valuation | [EXPERIMENTAL] GetValuationForFund: Perform valuation for a Fund
|
276
277
|
*FundsApi* | [**get_valuation_point_data**](docs/FundsApi.md#get_valuation_point_data) | **POST** /api/funds/{scope}/{code}/valuationpoints/$query | [EXPERIMENTAL] GetValuationPointData: Get Valuation Point Data for a Fund.
|
277
278
|
*FundsApi* | [**get_valuation_point_journal_entry_lines**](docs/FundsApi.md#get_valuation_point_journal_entry_lines) | **POST** /api/funds/{scope}/{code}/valuationpoints/journalentrylines/$query | [EXPERIMENTAL] GetValuationPointJournalEntryLines: Get the Journal Entry lines for the given Fund.
|
278
279
|
*FundsApi* | [**get_valuation_point_pnl_summary**](docs/FundsApi.md#get_valuation_point_pnl_summary) | **POST** /api/funds/{scope}/{code}/valuationpoints/pnlsummary/$query | [EXPERIMENTAL] GetValuationPointPnlSummary: Get a PnL summary for the given Valuation Point in the Fund.
|
@@ -1116,6 +1117,8 @@ Class | Method | HTTP request | Description
|
|
1116
1117
|
- [FundRequest](docs/FundRequest.md)
|
1117
1118
|
- [FundShareClass](docs/FundShareClass.md)
|
1118
1119
|
- [FundValuationPointData](docs/FundValuationPointData.md)
|
1120
|
+
- [FundValuationRequest](docs/FundValuationRequest.md)
|
1121
|
+
- [FundValuationSchedule](docs/FundValuationSchedule.md)
|
1119
1122
|
- [FundingLeg](docs/FundingLeg.md)
|
1120
1123
|
- [FundingLegOptions](docs/FundingLegOptions.md)
|
1121
1124
|
- [Future](docs/Future.md)
|
@@ -1923,6 +1926,7 @@ Class | Method | HTTP request | Description
|
|
1923
1926
|
- [ValuationPointDataQueryParameters](docs/ValuationPointDataQueryParameters.md)
|
1924
1927
|
- [ValuationPointDataRequest](docs/ValuationPointDataRequest.md)
|
1925
1928
|
- [ValuationPointDataResponse](docs/ValuationPointDataResponse.md)
|
1929
|
+
- [ValuationPointFundCalendarEntry](docs/ValuationPointFundCalendarEntry.md)
|
1926
1930
|
- [ValuationPointOverview](docs/ValuationPointOverview.md)
|
1927
1931
|
- [ValuationPointResourceListOfAccountedTransaction](docs/ValuationPointResourceListOfAccountedTransaction.md)
|
1928
1932
|
- [ValuationPointResourceListOfFundJournalEntryLine](docs/ValuationPointResourceListOfFundJournalEntryLine.md)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
lusid/__init__.py,sha256=
|
1
|
+
lusid/__init__.py,sha256=DFi3WLP7riZhL0P5akCmxuAFzjhILvneV4jtoaV2lCg,145354
|
2
2
|
lusid/api/__init__.py,sha256=yCGwgeQBZ1RZovOUo7Jq24Txz4o6naRgnWAzQVGdHAk,6784
|
3
3
|
lusid/api/abor_api.py,sha256=N7Wsh0395mXOvpJI8z0Nrx5OY4nCP5FN9RkbtdHaZbM,165987
|
4
4
|
lusid/api/abor_configuration_api.py,sha256=xQ9HcXm02eDFhCdWUHjqFRWl1oQMxm2LNObJ9kcLauU,84216
|
@@ -29,7 +29,7 @@ lusid/api/entities_api.py,sha256=uImduqQPNkudngZn85Zwk35oAG-JEFvGEpADfJeMf_E,836
|
|
29
29
|
lusid/api/executions_api.py,sha256=ZL8xmOxGpjIJtdU7lCdwcapILElWx7FGBDr8cjskCZs,44076
|
30
30
|
lusid/api/fee_types_api.py,sha256=qRVfNS91XHBlD_CrewsPMsetIHB6M0mn3RWbD4LTuro,54620
|
31
31
|
lusid/api/fund_configuration_api.py,sha256=18oHsK1ncAobjd8_uDHAI7UbWz4Vm5bPVubFmBdoERo,72665
|
32
|
-
lusid/api/funds_api.py,sha256=
|
32
|
+
lusid/api/funds_api.py,sha256=eRpH4RR-Qt8s8ymPyb1barY-mIMZ9LdG9OIQ377zjAg,379210
|
33
33
|
lusid/api/group_reconciliations_api.py,sha256=U8qg3jGd39E1epaiOcjOV_uO8BUivbvKAdujvQ5fFNE,163197
|
34
34
|
lusid/api/identifier_definitions_api.py,sha256=x79uhIBI0BJITjwmE7oPMWFOtox60FrrL9Dq4YH60MI,64305
|
35
35
|
lusid/api/instrument_event_types_api.py,sha256=RHuGNd8Xf8x0vyvAUFwRNgEB_kpzQTtbsBwlFC3QJcs,79862
|
@@ -74,13 +74,13 @@ lusid/api/tax_rule_sets_api.py,sha256=ia8zjTdwlgLGC8KDWFBT21agOrfWgn1zC_ik75mNDJ
|
|
74
74
|
lusid/api/timelines_api.py,sha256=uxSMdLi9dI6y8LSaezsLXEVedy9I7A-k22RAKY0Rw4k,109878
|
75
75
|
lusid/api/transaction_configuration_api.py,sha256=OHs853-U1RWs2oApEO3raiMxixxiMQMcXu566qsm5v4,103968
|
76
76
|
lusid/api/transaction_fees_api.py,sha256=r8Gl44-WYZebyJ_Uw2stLsf3-hPi1bK6Ij64Kx0L6A8,62698
|
77
|
-
lusid/api/transaction_portfolios_api.py,sha256=
|
77
|
+
lusid/api/transaction_portfolios_api.py,sha256=ei-JM4lSrP1SB5fFc8UhMHw_2HjF4Dhw7pedxjbBsQ8,653380
|
78
78
|
lusid/api/transfer_agency_api.py,sha256=m-o3srFi7ZcUcWlO_lpOJiYZJvDSt2JLy7QPcXQoPh4,9545
|
79
79
|
lusid/api/translation_api.py,sha256=xpRuTfwQvYBlWe6r_L2EI_uVpXqHFnEOim-i-kVQ85E,20227
|
80
80
|
lusid/api/workspace_api.py,sha256=0pCNi3ZCRbIo0NXKa85XE7vtq0WV5YOKcQKvFlcLUaY,120708
|
81
81
|
lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
|
82
82
|
lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
|
83
|
-
lusid/configuration.py,sha256=
|
83
|
+
lusid/configuration.py,sha256=mvhRaW37KrkYJqTdW9F85j1o5CgsR7S_HvxeYyxARVc,17980
|
84
84
|
lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
|
85
85
|
lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
|
86
86
|
lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
|
@@ -95,7 +95,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
|
|
95
95
|
lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
|
96
96
|
lusid/extensions/socket_keep_alive.py,sha256=eX5ICvGfVzUCGIm80Q2RknfFZrBQAdnrcpY61M29V_k,1997
|
97
97
|
lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
|
98
|
-
lusid/models/__init__.py,sha256=
|
98
|
+
lusid/models/__init__.py,sha256=p3uXRaR67aCwt60V0VT-u1t2rndi4M7yNTIdiYz_S8E,137538
|
99
99
|
lusid/models/a2_b_breakdown.py,sha256=-FXgILrvtZXQDmvS0ARaJVGBq5LJ4AH-o3HjujFVmS4,3198
|
100
100
|
lusid/models/a2_b_category.py,sha256=WunXUgx-dCnApPeLC8Qo5tVCX8Ywxkehib1vmNqNgNs,2957
|
101
101
|
lusid/models/a2_b_data_record.py,sha256=qANTmV1_HUEo4l72-F8qzZjlQxOe0Onc9WPz7h-WWuY,9993
|
@@ -512,7 +512,7 @@ lusid/models/forward_rate_agreement.py,sha256=2huB94ltI8O9UKnFXc2oAYz278FMwPnaFE
|
|
512
512
|
lusid/models/from_recipe.py,sha256=yUnu4kUNme_mFEHE9p-N6k-ETFBNxvmjsL8u2fKIHyk,2538
|
513
513
|
lusid/models/fund.py,sha256=YWMy0wrbBPv5ExNwugI8EelMbRhHvx1ap-TgjtgnMms,11904
|
514
514
|
lusid/models/fund_amount.py,sha256=xGFl9O7wn4GTCaMq_SxSkzzo_9Pw3scDIDm3835C64Q,2132
|
515
|
-
lusid/models/fund_calendar_entry.py,sha256=
|
515
|
+
lusid/models/fund_calendar_entry.py,sha256=cZYxM3Ch9YFjL2WO8SXqHXgyN8cfmOL1SvW2kMwJ2TM,6555
|
516
516
|
lusid/models/fund_calendar_entry_type.py,sha256=QiQwfo_IXs4gOWgS4LSOVyBiflltFK4Ot1BcBP2kBJo,718
|
517
517
|
lusid/models/fund_configuration.py,sha256=wC-L5FcOKsoep9C4in6LFrDigHKdB_q2Zno2L-wpVqo,9606
|
518
518
|
lusid/models/fund_configuration_properties.py,sha256=b-4hJF9TltJf3lmaSyDjeGUhjjhxbs_-kYZ0MpM8kgk,4620
|
@@ -527,6 +527,8 @@ lusid/models/fund_properties.py,sha256=SfdvEcARxxk_Akxr92DTGxM_0Ode9T6bBcExeG6K7
|
|
527
527
|
lusid/models/fund_request.py,sha256=edLnVKYbKVHVeTCMCGueA61VRdmBgDJJ5bSnE8jnWAg,7819
|
528
528
|
lusid/models/fund_share_class.py,sha256=53IOptw8PPRMiYxzYXNDTTzAi6dUI-3ldTeB3n3Ku_w,12230
|
529
529
|
lusid/models/fund_valuation_point_data.py,sha256=e4AoY_OBFZLpMvpoChDzm7oD-KUluVPcfeWH1VdalxQ,7042
|
530
|
+
lusid/models/fund_valuation_request.py,sha256=4V-96DXA31XMa1jGVBrRFbwEzW9-bv3jBPHBouD-l6U,9094
|
531
|
+
lusid/models/fund_valuation_schedule.py,sha256=amj9iVWaTXe4YEIRoqRscEVDeETaUG13TdOB9o6K_lE,7040
|
530
532
|
lusid/models/funding_leg.py,sha256=Q9aTj-1ks89zLPXIs1pxnWxsAujLk00Yd6aZS9j1ra0,11480
|
531
533
|
lusid/models/funding_leg_options.py,sha256=_QadJmBSUzIrA_uJrbWvLwKC_E9QzBx3-veegNvEDHc,6806
|
532
534
|
lusid/models/future.py,sha256=Ff5Cx4c8zGbb9qJXurFXEPpPRy2ryidlUhsvY39Q894,14539
|
@@ -1334,6 +1336,7 @@ lusid/models/user.py,sha256=w0Ci15MQI00_eoPaUiWnHnPDzDThuAAR3g4UvlsHt9I,2273
|
|
1334
1336
|
lusid/models/valuation_point_data_query_parameters.py,sha256=y3zPKw_ygbFGIhxv9Og3xcw-zRU2IF1Koc2SoS4ci4s,2826
|
1335
1337
|
lusid/models/valuation_point_data_request.py,sha256=3haNAxaWwqsd_AhNuf5rxuPC4ehEd9LZiH2TgOG59NI,2274
|
1336
1338
|
lusid/models/valuation_point_data_response.py,sha256=b1YVkLsk4Jr1HgjYMwlqvovYgu6supAdRolHKwWwUo4,6759
|
1339
|
+
lusid/models/valuation_point_fund_calendar_entry.py,sha256=BX7hnOeLhcNV2ne8ajlozKbaGRsdHpCgnxojT8d6jNY,8756
|
1337
1340
|
lusid/models/valuation_point_overview.py,sha256=91p71fdjFacSMBc3hpd0f9oWtvjuMfmG7Z3IsPhLPHg,5952
|
1338
1341
|
lusid/models/valuation_point_resource_list_of_accounted_transaction.py,sha256=OGdk06THfLMFFXAe0Vq79KeI61dLJXz5UEEUF7rByR4,5541
|
1339
1342
|
lusid/models/valuation_point_resource_list_of_fund_journal_entry_line.py,sha256=wtoGMyc07w7IUadLy_bGIUvexvoY_M50_XDai1Oj4Mg,5543
|
@@ -1376,6 +1379,6 @@ lusid/models/year_month_day.py,sha256=gwSoxFwlD_wffKdddo1wfvAcLq3Cht3FHQidiaHzAA
|
|
1376
1379
|
lusid/models/yield_curve_data.py,sha256=I1ZSWxHMgUxj9OQt6i9a4S91KB4_XtmrfFxpN_PV3YQ,9561
|
1377
1380
|
lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1378
1381
|
lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
|
1379
|
-
lusid_sdk-2.1.
|
1380
|
-
lusid_sdk-2.1.
|
1381
|
-
lusid_sdk-2.1.
|
1382
|
+
lusid_sdk-2.1.899.dist-info/METADATA,sha256=JhAud8JksKeMfAB8yfTID9t11C2NZXgOLxTI_wgVg3o,230816
|
1383
|
+
lusid_sdk-2.1.899.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
1384
|
+
lusid_sdk-2.1.899.dist-info/RECORD,,
|
File without changes
|