lusid-sdk 2.1.805__py3-none-any.whl → 2.1.806__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/investor_records_api.py +218 -3
- lusid/configuration.py +1 -1
- lusid/models/__init__.py +6 -0
- lusid/models/bucket.py +137 -0
- lusid/models/change_interval.py +8 -1
- lusid/models/change_interval_with_order_management_detail.py +8 -1
- lusid/models/economics.py +119 -0
- lusid/models/market_data_key_rule.py +3 -3
- lusid/models/market_data_specific_rule.py +3 -3
- lusid/models/market_quote.py +3 -3
- lusid/models/output_transaction.py +17 -2
- lusid/models/quote_series_id.py +3 -3
- lusid/models/quote_type.py +1 -0
- lusid/models/resource_list_of_investor_record.py +121 -0
- lusid/models/transaction_query_parameters.py +4 -2
- {lusid_sdk-2.1.805.dist-info → lusid_sdk-2.1.806.dist-info}/METADATA +6 -2
- {lusid_sdk-2.1.805.dist-info → lusid_sdk-2.1.806.dist-info}/RECORD +19 -16
- {lusid_sdk-2.1.805.dist-info → lusid_sdk-2.1.806.dist-info}/WHEEL +0 -0
lusid/__init__.py
CHANGED
@@ -207,6 +207,7 @@ from lusid.models.bool_list_compliance_parameter import BoolListComplianceParame
|
|
207
207
|
from lusid.models.branch_step import BranchStep
|
208
208
|
from lusid.models.branch_step_request import BranchStepRequest
|
209
209
|
from lusid.models.break_code_source import BreakCodeSource
|
210
|
+
from lusid.models.bucket import Bucket
|
210
211
|
from lusid.models.bucketed_cash_flow_request import BucketedCashFlowRequest
|
211
212
|
from lusid.models.bucketed_cash_flow_response import BucketedCashFlowResponse
|
212
213
|
from lusid.models.bucketing_schedule import BucketingSchedule
|
@@ -437,6 +438,7 @@ from lusid.models.economic_dependency import EconomicDependency
|
|
437
438
|
from lusid.models.economic_dependency_type import EconomicDependencyType
|
438
439
|
from lusid.models.economic_dependency_with_complex_market_data import EconomicDependencyWithComplexMarketData
|
439
440
|
from lusid.models.economic_dependency_with_quote import EconomicDependencyWithQuote
|
441
|
+
from lusid.models.economics import Economics
|
440
442
|
from lusid.models.effective_range import EffectiveRange
|
441
443
|
from lusid.models.election_specification import ElectionSpecification
|
442
444
|
from lusid.models.eligibility_calculation import EligibilityCalculation
|
@@ -1007,6 +1009,7 @@ from lusid.models.resource_list_of_i_unit_definition_dto import ResourceListOfIU
|
|
1007
1009
|
from lusid.models.resource_list_of_instrument_cash_flow import ResourceListOfInstrumentCashFlow
|
1008
1010
|
from lusid.models.resource_list_of_instrument_event_holder import ResourceListOfInstrumentEventHolder
|
1009
1011
|
from lusid.models.resource_list_of_instrument_id_type_descriptor import ResourceListOfInstrumentIdTypeDescriptor
|
1012
|
+
from lusid.models.resource_list_of_investor_record import ResourceListOfInvestorRecord
|
1010
1013
|
from lusid.models.resource_list_of_legal_entity import ResourceListOfLegalEntity
|
1011
1014
|
from lusid.models.resource_list_of_list_complex_market_data_with_meta_data_response import ResourceListOfListComplexMarketDataWithMetaDataResponse
|
1012
1015
|
from lusid.models.resource_list_of_mapping import ResourceListOfMapping
|
@@ -1515,6 +1518,7 @@ __all__ = [
|
|
1515
1518
|
"BranchStep",
|
1516
1519
|
"BranchStepRequest",
|
1517
1520
|
"BreakCodeSource",
|
1521
|
+
"Bucket",
|
1518
1522
|
"BucketedCashFlowRequest",
|
1519
1523
|
"BucketedCashFlowResponse",
|
1520
1524
|
"BucketingSchedule",
|
@@ -1745,6 +1749,7 @@ __all__ = [
|
|
1745
1749
|
"EconomicDependencyType",
|
1746
1750
|
"EconomicDependencyWithComplexMarketData",
|
1747
1751
|
"EconomicDependencyWithQuote",
|
1752
|
+
"Economics",
|
1748
1753
|
"EffectiveRange",
|
1749
1754
|
"ElectionSpecification",
|
1750
1755
|
"EligibilityCalculation",
|
@@ -2315,6 +2320,7 @@ __all__ = [
|
|
2315
2320
|
"ResourceListOfInstrumentCashFlow",
|
2316
2321
|
"ResourceListOfInstrumentEventHolder",
|
2317
2322
|
"ResourceListOfInstrumentIdTypeDescriptor",
|
2323
|
+
"ResourceListOfInvestorRecord",
|
2318
2324
|
"ResourceListOfLegalEntity",
|
2319
2325
|
"ResourceListOfListComplexMarketDataWithMetaDataResponse",
|
2320
2326
|
"ResourceListOfMapping",
|
@@ -22,12 +22,13 @@ from typing import overload, Optional, Union, Awaitable
|
|
22
22
|
from typing_extensions import Annotated
|
23
23
|
from datetime import datetime
|
24
24
|
|
25
|
-
from pydantic.v1 import Field, StrictStr, conlist, constr, validator
|
25
|
+
from pydantic.v1 import Field, StrictStr, conint, conlist, constr, validator
|
26
26
|
|
27
27
|
from typing import Dict, Optional
|
28
28
|
|
29
29
|
from lusid.models.deleted_entity_response import DeletedEntityResponse
|
30
30
|
from lusid.models.investor_record import InvestorRecord
|
31
|
+
from lusid.models.resource_list_of_investor_record import ResourceListOfInvestorRecord
|
31
32
|
from lusid.models.upsert_investor_record_request import UpsertInvestorRecordRequest
|
32
33
|
from lusid.models.upsert_investor_records_response import UpsertInvestorRecordsResponse
|
33
34
|
|
@@ -67,7 +68,7 @@ class InvestorRecordsApi:
|
|
67
68
|
|
68
69
|
@validate_arguments
|
69
70
|
def delete_investor_record(self, id_type_scope : Annotated[StrictStr, Field(..., description="The scope of the investor record identifier type.")], id_type_code : Annotated[StrictStr, Field(..., description="The code of the investor record identifier type.")], code : Annotated[StrictStr, Field(..., description="Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
|
70
|
-
"""DeleteInvestorRecord: Delete Investor Record # noqa: E501
|
71
|
+
"""[EARLY ACCESS] DeleteInvestorRecord: Delete Investor Record # noqa: E501
|
71
72
|
|
72
73
|
Delete an investor record. Deletion will be valid from the investor record's creation datetime. This means that the investor record will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
|
73
74
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -102,7 +103,7 @@ class InvestorRecordsApi:
|
|
102
103
|
|
103
104
|
@validate_arguments
|
104
105
|
def delete_investor_record_with_http_info(self, id_type_scope : Annotated[StrictStr, Field(..., description="The scope of the investor record identifier type.")], id_type_code : Annotated[StrictStr, Field(..., description="The code of the investor record identifier type.")], code : Annotated[StrictStr, Field(..., description="Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete.")], **kwargs) -> ApiResponse: # noqa: E501
|
105
|
-
"""DeleteInvestorRecord: Delete Investor Record # noqa: E501
|
106
|
+
"""[EARLY ACCESS] DeleteInvestorRecord: Delete Investor Record # noqa: E501
|
106
107
|
|
107
108
|
Delete an investor record. Deletion will be valid from the investor record's creation datetime. This means that the investor record will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
|
108
109
|
This method makes a synchronous HTTP request by default. To make an
|
@@ -430,6 +431,220 @@ class InvestorRecordsApi:
|
|
430
431
|
_request_auth=_params.get('_request_auth'))
|
431
432
|
|
432
433
|
|
434
|
+
@overload
|
435
|
+
async def list_all_investor_records(self, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to list the investor records. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the investor records. Defaults to return the latest version of each investor records if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing investor records from a previous call to list investor records. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt, sortBy and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 5000 if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys or identifier types (as property keys) from the \"InvestorRecord\" domain to include for each investor record, or from any domain that supports relationships to decorate onto related entities. These take the format {domain}/{scope}/{code} e.g. \"InvestorRecord/ContactDetails/Address\".")] = None, relationship_definition_ids : Annotated[Optional[conlist(StrictStr)], Field(description="A list of relationship definitions that are used to decorate related entities onto each portfolio in the response. These must take the form {relationshipDefinitionScope}/{relationshipDefinitionCode}.")] = None, **kwargs) -> ResourceListOfInvestorRecord: # noqa: E501
|
436
|
+
...
|
437
|
+
|
438
|
+
@overload
|
439
|
+
def list_all_investor_records(self, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to list the investor records. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the investor records. Defaults to return the latest version of each investor records if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing investor records from a previous call to list investor records. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt, sortBy and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 5000 if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys or identifier types (as property keys) from the \"InvestorRecord\" domain to include for each investor record, or from any domain that supports relationships to decorate onto related entities. These take the format {domain}/{scope}/{code} e.g. \"InvestorRecord/ContactDetails/Address\".")] = None, relationship_definition_ids : Annotated[Optional[conlist(StrictStr)], Field(description="A list of relationship definitions that are used to decorate related entities onto each portfolio in the response. These must take the form {relationshipDefinitionScope}/{relationshipDefinitionCode}.")] = None, async_req: Optional[bool]=True, **kwargs) -> ResourceListOfInvestorRecord: # noqa: E501
|
440
|
+
...
|
441
|
+
|
442
|
+
@validate_arguments
|
443
|
+
def list_all_investor_records(self, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to list the investor records. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the investor records. Defaults to return the latest version of each investor records if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing investor records from a previous call to list investor records. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt, sortBy and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 5000 if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys or identifier types (as property keys) from the \"InvestorRecord\" domain to include for each investor record, or from any domain that supports relationships to decorate onto related entities. These take the format {domain}/{scope}/{code} e.g. \"InvestorRecord/ContactDetails/Address\".")] = None, relationship_definition_ids : Annotated[Optional[conlist(StrictStr)], Field(description="A list of relationship definitions that are used to decorate related entities onto each portfolio in the response. These must take the form {relationshipDefinitionScope}/{relationshipDefinitionCode}.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfInvestorRecord, Awaitable[ResourceListOfInvestorRecord]]: # noqa: E501
|
444
|
+
"""[EARLY ACCESS] ListAllInvestorRecords: List Investor Records # noqa: E501
|
445
|
+
|
446
|
+
List all investor records which the user is entitled to see. # noqa: E501
|
447
|
+
This method makes a synchronous HTTP request by default. To make an
|
448
|
+
asynchronous HTTP request, please pass async_req=True
|
449
|
+
|
450
|
+
>>> thread = api.list_all_investor_records(effective_at, as_at, page, limit, filter, sort_by, property_keys, relationship_definition_ids, async_req=True)
|
451
|
+
>>> result = thread.get()
|
452
|
+
|
453
|
+
:param effective_at: The effective datetime or cut label at which to list the investor records. Defaults to the current LUSID system datetime if not specified.
|
454
|
+
:type effective_at: str
|
455
|
+
:param as_at: The asAt datetime at which to list the investor records. Defaults to return the latest version of each investor records if not specified.
|
456
|
+
:type as_at: datetime
|
457
|
+
:param page: The pagination token to use to continue listing investor records from a previous call to list investor records. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt, sortBy and asAt fields must not have changed since the original request.
|
458
|
+
:type page: str
|
459
|
+
:param limit: When paginating, limit the number of returned results to this many. Defaults to 5000 if not specified.
|
460
|
+
:type limit: int
|
461
|
+
:param filter: Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
|
462
|
+
:type filter: str
|
463
|
+
:param sort_by: A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".
|
464
|
+
:type sort_by: List[str]
|
465
|
+
:param property_keys: A list of property keys or identifier types (as property keys) from the \"InvestorRecord\" domain to include for each investor record, or from any domain that supports relationships to decorate onto related entities. These take the format {domain}/{scope}/{code} e.g. \"InvestorRecord/ContactDetails/Address\".
|
466
|
+
:type property_keys: List[str]
|
467
|
+
:param relationship_definition_ids: A list of relationship definitions that are used to decorate related entities onto each portfolio in the response. These must take the form {relationshipDefinitionScope}/{relationshipDefinitionCode}.
|
468
|
+
:type relationship_definition_ids: List[str]
|
469
|
+
:param async_req: Whether to execute the request asynchronously.
|
470
|
+
:type async_req: bool, optional
|
471
|
+
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
472
|
+
:param opts: Configuration options for this request
|
473
|
+
:type opts: ConfigurationOptions, optional
|
474
|
+
:return: Returns the result object.
|
475
|
+
If the method is called asynchronously,
|
476
|
+
returns the request thread.
|
477
|
+
:rtype: ResourceListOfInvestorRecord
|
478
|
+
"""
|
479
|
+
kwargs['_return_http_data_only'] = True
|
480
|
+
if '_preload_content' in kwargs:
|
481
|
+
message = "Error! Please call the list_all_investor_records_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
|
482
|
+
raise ValueError(message)
|
483
|
+
if async_req is not None:
|
484
|
+
kwargs['async_req'] = async_req
|
485
|
+
return self.list_all_investor_records_with_http_info(effective_at, as_at, page, limit, filter, sort_by, property_keys, relationship_definition_ids, **kwargs) # noqa: E501
|
486
|
+
|
487
|
+
@validate_arguments
|
488
|
+
def list_all_investor_records_with_http_info(self, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to list the investor records. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the investor records. Defaults to return the latest version of each investor records if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing investor records from a previous call to list investor records. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt, sortBy and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 5000 if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys or identifier types (as property keys) from the \"InvestorRecord\" domain to include for each investor record, or from any domain that supports relationships to decorate onto related entities. These take the format {domain}/{scope}/{code} e.g. \"InvestorRecord/ContactDetails/Address\".")] = None, relationship_definition_ids : Annotated[Optional[conlist(StrictStr)], Field(description="A list of relationship definitions that are used to decorate related entities onto each portfolio in the response. These must take the form {relationshipDefinitionScope}/{relationshipDefinitionCode}.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
489
|
+
"""[EARLY ACCESS] ListAllInvestorRecords: List Investor Records # noqa: E501
|
490
|
+
|
491
|
+
List all investor records which the user is entitled to see. # noqa: E501
|
492
|
+
This method makes a synchronous HTTP request by default. To make an
|
493
|
+
asynchronous HTTP request, please pass async_req=True
|
494
|
+
|
495
|
+
>>> thread = api.list_all_investor_records_with_http_info(effective_at, as_at, page, limit, filter, sort_by, property_keys, relationship_definition_ids, async_req=True)
|
496
|
+
>>> result = thread.get()
|
497
|
+
|
498
|
+
:param effective_at: The effective datetime or cut label at which to list the investor records. Defaults to the current LUSID system datetime if not specified.
|
499
|
+
:type effective_at: str
|
500
|
+
:param as_at: The asAt datetime at which to list the investor records. Defaults to return the latest version of each investor records if not specified.
|
501
|
+
:type as_at: datetime
|
502
|
+
:param page: The pagination token to use to continue listing investor records from a previous call to list investor records. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt, sortBy and asAt fields must not have changed since the original request.
|
503
|
+
:type page: str
|
504
|
+
:param limit: When paginating, limit the number of returned results to this many. Defaults to 5000 if not specified.
|
505
|
+
:type limit: int
|
506
|
+
:param filter: Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
|
507
|
+
:type filter: str
|
508
|
+
:param sort_by: A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".
|
509
|
+
:type sort_by: List[str]
|
510
|
+
:param property_keys: A list of property keys or identifier types (as property keys) from the \"InvestorRecord\" domain to include for each investor record, or from any domain that supports relationships to decorate onto related entities. These take the format {domain}/{scope}/{code} e.g. \"InvestorRecord/ContactDetails/Address\".
|
511
|
+
:type property_keys: List[str]
|
512
|
+
:param relationship_definition_ids: A list of relationship definitions that are used to decorate related entities onto each portfolio in the response. These must take the form {relationshipDefinitionScope}/{relationshipDefinitionCode}.
|
513
|
+
:type relationship_definition_ids: List[str]
|
514
|
+
:param async_req: Whether to execute the request asynchronously.
|
515
|
+
:type async_req: bool, optional
|
516
|
+
:param _preload_content: if False, the ApiResponse.data will
|
517
|
+
be set to none and raw_data will store the
|
518
|
+
HTTP response body without reading/decoding.
|
519
|
+
Default is True.
|
520
|
+
:type _preload_content: bool, optional
|
521
|
+
:param _return_http_data_only: response data instead of ApiResponse
|
522
|
+
object with status code, headers, etc
|
523
|
+
:type _return_http_data_only: bool, optional
|
524
|
+
:param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
|
525
|
+
:param opts: Configuration options for this request
|
526
|
+
:type opts: ConfigurationOptions, optional
|
527
|
+
:param _request_auth: set to override the auth_settings for an a single
|
528
|
+
request; this effectively ignores the authentication
|
529
|
+
in the spec for a single request.
|
530
|
+
:type _request_auth: dict, optional
|
531
|
+
:type _content_type: string, optional: force content-type for the request
|
532
|
+
:return: Returns the result object.
|
533
|
+
If the method is called asynchronously,
|
534
|
+
returns the request thread.
|
535
|
+
:rtype: tuple(ResourceListOfInvestorRecord, status_code(int), headers(HTTPHeaderDict))
|
536
|
+
"""
|
537
|
+
|
538
|
+
_params = locals()
|
539
|
+
|
540
|
+
_all_params = [
|
541
|
+
'effective_at',
|
542
|
+
'as_at',
|
543
|
+
'page',
|
544
|
+
'limit',
|
545
|
+
'filter',
|
546
|
+
'sort_by',
|
547
|
+
'property_keys',
|
548
|
+
'relationship_definition_ids'
|
549
|
+
]
|
550
|
+
_all_params.extend(
|
551
|
+
[
|
552
|
+
'async_req',
|
553
|
+
'_return_http_data_only',
|
554
|
+
'_preload_content',
|
555
|
+
'_request_timeout',
|
556
|
+
'_request_auth',
|
557
|
+
'_content_type',
|
558
|
+
'_headers',
|
559
|
+
'opts'
|
560
|
+
]
|
561
|
+
)
|
562
|
+
|
563
|
+
# validate the arguments
|
564
|
+
for _key, _val in _params['kwargs'].items():
|
565
|
+
if _key not in _all_params:
|
566
|
+
raise ApiTypeError(
|
567
|
+
"Got an unexpected keyword argument '%s'"
|
568
|
+
" to method list_all_investor_records" % _key
|
569
|
+
)
|
570
|
+
_params[_key] = _val
|
571
|
+
del _params['kwargs']
|
572
|
+
|
573
|
+
_collection_formats = {}
|
574
|
+
|
575
|
+
# process the path parameters
|
576
|
+
_path_params = {}
|
577
|
+
|
578
|
+
# process the query parameters
|
579
|
+
_query_params = []
|
580
|
+
if _params.get('effective_at') is not None: # noqa: E501
|
581
|
+
_query_params.append(('effectiveAt', _params['effective_at']))
|
582
|
+
|
583
|
+
if _params.get('as_at') is not None: # noqa: E501
|
584
|
+
if isinstance(_params['as_at'], datetime):
|
585
|
+
_query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
|
586
|
+
else:
|
587
|
+
_query_params.append(('asAt', _params['as_at']))
|
588
|
+
|
589
|
+
if _params.get('page') is not None: # noqa: E501
|
590
|
+
_query_params.append(('page', _params['page']))
|
591
|
+
|
592
|
+
if _params.get('limit') is not None: # noqa: E501
|
593
|
+
_query_params.append(('limit', _params['limit']))
|
594
|
+
|
595
|
+
if _params.get('filter') is not None: # noqa: E501
|
596
|
+
_query_params.append(('filter', _params['filter']))
|
597
|
+
|
598
|
+
if _params.get('sort_by') is not None: # noqa: E501
|
599
|
+
_query_params.append(('sortBy', _params['sort_by']))
|
600
|
+
_collection_formats['sortBy'] = 'multi'
|
601
|
+
|
602
|
+
if _params.get('property_keys') is not None: # noqa: E501
|
603
|
+
_query_params.append(('propertyKeys', _params['property_keys']))
|
604
|
+
_collection_formats['propertyKeys'] = 'multi'
|
605
|
+
|
606
|
+
if _params.get('relationship_definition_ids') is not None: # noqa: E501
|
607
|
+
_query_params.append(('relationshipDefinitionIds', _params['relationship_definition_ids']))
|
608
|
+
_collection_formats['relationshipDefinitionIds'] = 'multi'
|
609
|
+
|
610
|
+
# process the header parameters
|
611
|
+
_header_params = dict(_params.get('_headers', {}))
|
612
|
+
# process the form parameters
|
613
|
+
_form_params = []
|
614
|
+
_files = {}
|
615
|
+
# process the body parameter
|
616
|
+
_body_params = None
|
617
|
+
# set the HTTP header `Accept`
|
618
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
619
|
+
['text/plain', 'application/json', 'text/json']) # noqa: E501
|
620
|
+
|
621
|
+
# authentication setting
|
622
|
+
_auth_settings = ['oauth2'] # noqa: E501
|
623
|
+
|
624
|
+
_response_types_map = {
|
625
|
+
'200': "ResourceListOfInvestorRecord",
|
626
|
+
'400': "LusidValidationProblemDetails",
|
627
|
+
}
|
628
|
+
|
629
|
+
return self.api_client.call_api(
|
630
|
+
'/api/investorrecords', 'GET',
|
631
|
+
_path_params,
|
632
|
+
_query_params,
|
633
|
+
_header_params,
|
634
|
+
body=_body_params,
|
635
|
+
post_params=_form_params,
|
636
|
+
files=_files,
|
637
|
+
response_types_map=_response_types_map,
|
638
|
+
auth_settings=_auth_settings,
|
639
|
+
async_req=_params.get('async_req'),
|
640
|
+
_return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
|
641
|
+
_preload_content=_params.get('_preload_content', True),
|
642
|
+
_request_timeout=_params.get('_request_timeout'),
|
643
|
+
opts=_params.get('opts'),
|
644
|
+
collection_formats=_collection_formats,
|
645
|
+
_request_auth=_params.get('_request_auth'))
|
646
|
+
|
647
|
+
|
433
648
|
@overload
|
434
649
|
async def upsert_investor_records(self, success_mode : Annotated[StrictStr, Field(..., description="Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial")], request_body : Annotated[Dict[str, UpsertInvestorRecordRequest], Field(..., description="A collection of requests to create or update Investor Records.")], **kwargs) -> UpsertInvestorRecordsResponse: # noqa: E501
|
435
650
|
...
|
lusid/configuration.py
CHANGED
@@ -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.7831\n"\
|
449
449
|
"SDK Package Version: {package_version}".\
|
450
450
|
format(env=sys.platform, pyversion=sys.version, package_version=package_version)
|
451
451
|
|
lusid/models/__init__.py
CHANGED
@@ -120,6 +120,7 @@ from lusid.models.bool_list_compliance_parameter import BoolListComplianceParame
|
|
120
120
|
from lusid.models.branch_step import BranchStep
|
121
121
|
from lusid.models.branch_step_request import BranchStepRequest
|
122
122
|
from lusid.models.break_code_source import BreakCodeSource
|
123
|
+
from lusid.models.bucket import Bucket
|
123
124
|
from lusid.models.bucketed_cash_flow_request import BucketedCashFlowRequest
|
124
125
|
from lusid.models.bucketed_cash_flow_response import BucketedCashFlowResponse
|
125
126
|
from lusid.models.bucketing_schedule import BucketingSchedule
|
@@ -350,6 +351,7 @@ from lusid.models.economic_dependency import EconomicDependency
|
|
350
351
|
from lusid.models.economic_dependency_type import EconomicDependencyType
|
351
352
|
from lusid.models.economic_dependency_with_complex_market_data import EconomicDependencyWithComplexMarketData
|
352
353
|
from lusid.models.economic_dependency_with_quote import EconomicDependencyWithQuote
|
354
|
+
from lusid.models.economics import Economics
|
353
355
|
from lusid.models.effective_range import EffectiveRange
|
354
356
|
from lusid.models.election_specification import ElectionSpecification
|
355
357
|
from lusid.models.eligibility_calculation import EligibilityCalculation
|
@@ -920,6 +922,7 @@ from lusid.models.resource_list_of_i_unit_definition_dto import ResourceListOfIU
|
|
920
922
|
from lusid.models.resource_list_of_instrument_cash_flow import ResourceListOfInstrumentCashFlow
|
921
923
|
from lusid.models.resource_list_of_instrument_event_holder import ResourceListOfInstrumentEventHolder
|
922
924
|
from lusid.models.resource_list_of_instrument_id_type_descriptor import ResourceListOfInstrumentIdTypeDescriptor
|
925
|
+
from lusid.models.resource_list_of_investor_record import ResourceListOfInvestorRecord
|
923
926
|
from lusid.models.resource_list_of_legal_entity import ResourceListOfLegalEntity
|
924
927
|
from lusid.models.resource_list_of_list_complex_market_data_with_meta_data_response import ResourceListOfListComplexMarketDataWithMetaDataResponse
|
925
928
|
from lusid.models.resource_list_of_mapping import ResourceListOfMapping
|
@@ -1342,6 +1345,7 @@ __all__ = [
|
|
1342
1345
|
"BranchStep",
|
1343
1346
|
"BranchStepRequest",
|
1344
1347
|
"BreakCodeSource",
|
1348
|
+
"Bucket",
|
1345
1349
|
"BucketedCashFlowRequest",
|
1346
1350
|
"BucketedCashFlowResponse",
|
1347
1351
|
"BucketingSchedule",
|
@@ -1572,6 +1576,7 @@ __all__ = [
|
|
1572
1576
|
"EconomicDependencyType",
|
1573
1577
|
"EconomicDependencyWithComplexMarketData",
|
1574
1578
|
"EconomicDependencyWithQuote",
|
1579
|
+
"Economics",
|
1575
1580
|
"EffectiveRange",
|
1576
1581
|
"ElectionSpecification",
|
1577
1582
|
"EligibilityCalculation",
|
@@ -2142,6 +2147,7 @@ __all__ = [
|
|
2142
2147
|
"ResourceListOfInstrumentCashFlow",
|
2143
2148
|
"ResourceListOfInstrumentEventHolder",
|
2144
2149
|
"ResourceListOfInstrumentIdTypeDescriptor",
|
2150
|
+
"ResourceListOfInvestorRecord",
|
2145
2151
|
"ResourceListOfLegalEntity",
|
2146
2152
|
"ResourceListOfListComplexMarketDataWithMetaDataResponse",
|
2147
2153
|
"ResourceListOfMapping",
|
lusid/models/bucket.py
ADDED
@@ -0,0 +1,137 @@
|
|
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, Optional, Union
|
22
|
+
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictFloat, StrictInt, StrictStr
|
23
|
+
from lusid.models.currency_and_amount import CurrencyAndAmount
|
24
|
+
|
25
|
+
class Bucket(BaseModel):
|
26
|
+
"""
|
27
|
+
Bucket
|
28
|
+
"""
|
29
|
+
tax_lot_id: Optional[StrictStr] = Field(None,alias="taxLotId", description="The identifier of the tax lot this bucket is for.")
|
30
|
+
movement_name: Optional[StrictStr] = Field(None,alias="movementName", description="The name of the movement.")
|
31
|
+
holding_type: Optional[StrictStr] = Field(None,alias="holdingType", description="The type of the holding.")
|
32
|
+
economic_bucket: Optional[StrictStr] = Field(None,alias="economicBucket", description="The economic bucket.")
|
33
|
+
economic_bucket_component: Optional[StrictStr] = Field(None,alias="economicBucketComponent", description="The economic bucket component.")
|
34
|
+
economic_bucket_variant: Optional[StrictStr] = Field(None,alias="economicBucketVariant", description="The economic bucket component.")
|
35
|
+
holding_sign: Optional[StrictStr] = Field(None,alias="holdingSign", description="The holding sign.")
|
36
|
+
local: Optional[CurrencyAndAmount] = None
|
37
|
+
base: Optional[CurrencyAndAmount] = None
|
38
|
+
units: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="The units.")
|
39
|
+
__properties = ["taxLotId", "movementName", "holdingType", "economicBucket", "economicBucketComponent", "economicBucketVariant", "holdingSign", "local", "base", "units"]
|
40
|
+
|
41
|
+
class Config:
|
42
|
+
"""Pydantic configuration"""
|
43
|
+
allow_population_by_field_name = True
|
44
|
+
validate_assignment = True
|
45
|
+
|
46
|
+
def __str__(self):
|
47
|
+
"""For `print` and `pprint`"""
|
48
|
+
return pprint.pformat(self.dict(by_alias=False))
|
49
|
+
|
50
|
+
def __repr__(self):
|
51
|
+
"""For `print` and `pprint`"""
|
52
|
+
return self.to_str()
|
53
|
+
|
54
|
+
def to_str(self) -> str:
|
55
|
+
"""Returns the string representation of the model using alias"""
|
56
|
+
return pprint.pformat(self.dict(by_alias=True))
|
57
|
+
|
58
|
+
def to_json(self) -> str:
|
59
|
+
"""Returns the JSON representation of the model using alias"""
|
60
|
+
return json.dumps(self.to_dict())
|
61
|
+
|
62
|
+
@classmethod
|
63
|
+
def from_json(cls, json_str: str) -> Bucket:
|
64
|
+
"""Create an instance of Bucket from a JSON string"""
|
65
|
+
return cls.from_dict(json.loads(json_str))
|
66
|
+
|
67
|
+
def to_dict(self):
|
68
|
+
"""Returns the dictionary representation of the model using alias"""
|
69
|
+
_dict = self.dict(by_alias=True,
|
70
|
+
exclude={
|
71
|
+
},
|
72
|
+
exclude_none=True)
|
73
|
+
# override the default output from pydantic by calling `to_dict()` of local
|
74
|
+
if self.local:
|
75
|
+
_dict['local'] = self.local.to_dict()
|
76
|
+
# override the default output from pydantic by calling `to_dict()` of base
|
77
|
+
if self.base:
|
78
|
+
_dict['base'] = self.base.to_dict()
|
79
|
+
# set to None if tax_lot_id (nullable) is None
|
80
|
+
# and __fields_set__ contains the field
|
81
|
+
if self.tax_lot_id is None and "tax_lot_id" in self.__fields_set__:
|
82
|
+
_dict['taxLotId'] = None
|
83
|
+
|
84
|
+
# set to None if movement_name (nullable) is None
|
85
|
+
# and __fields_set__ contains the field
|
86
|
+
if self.movement_name is None and "movement_name" in self.__fields_set__:
|
87
|
+
_dict['movementName'] = None
|
88
|
+
|
89
|
+
# set to None if holding_type (nullable) is None
|
90
|
+
# and __fields_set__ contains the field
|
91
|
+
if self.holding_type is None and "holding_type" in self.__fields_set__:
|
92
|
+
_dict['holdingType'] = None
|
93
|
+
|
94
|
+
# set to None if economic_bucket (nullable) is None
|
95
|
+
# and __fields_set__ contains the field
|
96
|
+
if self.economic_bucket is None and "economic_bucket" in self.__fields_set__:
|
97
|
+
_dict['economicBucket'] = None
|
98
|
+
|
99
|
+
# set to None if economic_bucket_component (nullable) is None
|
100
|
+
# and __fields_set__ contains the field
|
101
|
+
if self.economic_bucket_component is None and "economic_bucket_component" in self.__fields_set__:
|
102
|
+
_dict['economicBucketComponent'] = None
|
103
|
+
|
104
|
+
# set to None if economic_bucket_variant (nullable) is None
|
105
|
+
# and __fields_set__ contains the field
|
106
|
+
if self.economic_bucket_variant is None and "economic_bucket_variant" in self.__fields_set__:
|
107
|
+
_dict['economicBucketVariant'] = None
|
108
|
+
|
109
|
+
# set to None if holding_sign (nullable) is None
|
110
|
+
# and __fields_set__ contains the field
|
111
|
+
if self.holding_sign is None and "holding_sign" in self.__fields_set__:
|
112
|
+
_dict['holdingSign'] = None
|
113
|
+
|
114
|
+
return _dict
|
115
|
+
|
116
|
+
@classmethod
|
117
|
+
def from_dict(cls, obj: dict) -> Bucket:
|
118
|
+
"""Create an instance of Bucket from a dict"""
|
119
|
+
if obj is None:
|
120
|
+
return None
|
121
|
+
|
122
|
+
if not isinstance(obj, dict):
|
123
|
+
return Bucket.parse_obj(obj)
|
124
|
+
|
125
|
+
_obj = Bucket.parse_obj({
|
126
|
+
"tax_lot_id": obj.get("taxLotId"),
|
127
|
+
"movement_name": obj.get("movementName"),
|
128
|
+
"holding_type": obj.get("holdingType"),
|
129
|
+
"economic_bucket": obj.get("economicBucket"),
|
130
|
+
"economic_bucket_component": obj.get("economicBucketComponent"),
|
131
|
+
"economic_bucket_variant": obj.get("economicBucketVariant"),
|
132
|
+
"holding_sign": obj.get("holdingSign"),
|
133
|
+
"local": CurrencyAndAmount.from_dict(obj.get("local")) if obj.get("local") is not None else None,
|
134
|
+
"base": CurrencyAndAmount.from_dict(obj.get("base")) if obj.get("base") is not None else None,
|
135
|
+
"units": obj.get("units")
|
136
|
+
})
|
137
|
+
return _obj
|
lusid/models/change_interval.py
CHANGED
@@ -30,6 +30,7 @@ class ChangeInterval(BaseModel):
|
|
30
30
|
as_at_modified: Optional[datetime] = Field(None, alias="asAtModified", description="The date/time of the change.")
|
31
31
|
user_id_modified: Optional[StrictStr] = Field(None,alias="userIdModified", description="The unique identifier of the user that made the change.")
|
32
32
|
request_id_modified: Optional[StrictStr] = Field(None,alias="requestIdModified", description="The unique identifier of the request that the changes were part of.")
|
33
|
+
reason_modified: Optional[StrictStr] = Field(None,alias="reasonModified", description="The reason for an entity modification.")
|
33
34
|
as_at_version_number: Optional[StrictInt] = Field(None, alias="asAtVersionNumber", description="The version number for the entity (the entity was created at version 1). This may refer to the version number of a changed related entity, not a change for the entity itself.")
|
34
35
|
staged_modification_id_modified: Optional[StrictStr] = Field(None,alias="stagedModificationIdModified", description="The id of the staged modification that was approved. Will be null if the change didn't come from a staged modification.")
|
35
36
|
action: Optional[StrictStr] = Field(None,alias="action", description="The action performed on the field.")
|
@@ -37,7 +38,7 @@ class ChangeInterval(BaseModel):
|
|
37
38
|
previous_value: Optional[PropertyValue] = Field(None, alias="previousValue")
|
38
39
|
new_value: Optional[PropertyValue] = Field(None, alias="newValue")
|
39
40
|
effective_range: Optional[EffectiveRange] = Field(None, alias="effectiveRange")
|
40
|
-
__properties = ["asAtModified", "userIdModified", "requestIdModified", "asAtVersionNumber", "stagedModificationIdModified", "action", "attributeName", "previousValue", "newValue", "effectiveRange"]
|
41
|
+
__properties = ["asAtModified", "userIdModified", "requestIdModified", "reasonModified", "asAtVersionNumber", "stagedModificationIdModified", "action", "attributeName", "previousValue", "newValue", "effectiveRange"]
|
41
42
|
|
42
43
|
class Config:
|
43
44
|
"""Pydantic configuration"""
|
@@ -90,6 +91,11 @@ class ChangeInterval(BaseModel):
|
|
90
91
|
if self.request_id_modified is None and "request_id_modified" in self.__fields_set__:
|
91
92
|
_dict['requestIdModified'] = None
|
92
93
|
|
94
|
+
# set to None if reason_modified (nullable) is None
|
95
|
+
# and __fields_set__ contains the field
|
96
|
+
if self.reason_modified is None and "reason_modified" in self.__fields_set__:
|
97
|
+
_dict['reasonModified'] = None
|
98
|
+
|
93
99
|
# set to None if staged_modification_id_modified (nullable) is None
|
94
100
|
# and __fields_set__ contains the field
|
95
101
|
if self.staged_modification_id_modified is None and "staged_modification_id_modified" in self.__fields_set__:
|
@@ -120,6 +126,7 @@ class ChangeInterval(BaseModel):
|
|
120
126
|
"as_at_modified": obj.get("asAtModified"),
|
121
127
|
"user_id_modified": obj.get("userIdModified"),
|
122
128
|
"request_id_modified": obj.get("requestIdModified"),
|
129
|
+
"reason_modified": obj.get("reasonModified"),
|
123
130
|
"as_at_version_number": obj.get("asAtVersionNumber"),
|
124
131
|
"staged_modification_id_modified": obj.get("stagedModificationIdModified"),
|
125
132
|
"action": obj.get("action"),
|
@@ -32,6 +32,7 @@ class ChangeIntervalWithOrderManagementDetail(BaseModel):
|
|
32
32
|
as_at_modified: Optional[datetime] = Field(None, alias="asAtModified", description="The date/time of the change.")
|
33
33
|
user_id_modified: Optional[StrictStr] = Field(None,alias="userIdModified", description="The unique identifier of the user that made the change.")
|
34
34
|
request_id_modified: Optional[StrictStr] = Field(None,alias="requestIdModified", description="The unique identifier of the request that the changes were part of.")
|
35
|
+
reason_modified: Optional[StrictStr] = Field(None,alias="reasonModified", description="The reason for an entity modification.")
|
35
36
|
as_at_version_number: Optional[StrictInt] = Field(None, alias="asAtVersionNumber", description="The version number for the entity (the entity was created at version 1). This may refer to the version number of a changed related entity, not a change for the entity itself.")
|
36
37
|
staged_modification_id_modified: Optional[StrictStr] = Field(None,alias="stagedModificationIdModified", description="The id of the staged modification that was approved. Will be null if the change didn't come from a staged modification.")
|
37
38
|
action: Optional[StrictStr] = Field(None,alias="action", description="The action performed on the field.")
|
@@ -39,7 +40,7 @@ class ChangeIntervalWithOrderManagementDetail(BaseModel):
|
|
39
40
|
previous_value: Optional[PropertyValue] = Field(None, alias="previousValue")
|
40
41
|
new_value: Optional[PropertyValue] = Field(None, alias="newValue")
|
41
42
|
effective_range: Optional[EffectiveRange] = Field(None, alias="effectiveRange")
|
42
|
-
__properties = ["detail", "actionDescription", "asAtModified", "userIdModified", "requestIdModified", "asAtVersionNumber", "stagedModificationIdModified", "action", "attributeName", "previousValue", "newValue", "effectiveRange"]
|
43
|
+
__properties = ["detail", "actionDescription", "asAtModified", "userIdModified", "requestIdModified", "reasonModified", "asAtVersionNumber", "stagedModificationIdModified", "action", "attributeName", "previousValue", "newValue", "effectiveRange"]
|
43
44
|
|
44
45
|
class Config:
|
45
46
|
"""Pydantic configuration"""
|
@@ -102,6 +103,11 @@ class ChangeIntervalWithOrderManagementDetail(BaseModel):
|
|
102
103
|
if self.request_id_modified is None and "request_id_modified" in self.__fields_set__:
|
103
104
|
_dict['requestIdModified'] = None
|
104
105
|
|
106
|
+
# set to None if reason_modified (nullable) is None
|
107
|
+
# and __fields_set__ contains the field
|
108
|
+
if self.reason_modified is None and "reason_modified" in self.__fields_set__:
|
109
|
+
_dict['reasonModified'] = None
|
110
|
+
|
105
111
|
# set to None if staged_modification_id_modified (nullable) is None
|
106
112
|
# and __fields_set__ contains the field
|
107
113
|
if self.staged_modification_id_modified is None and "staged_modification_id_modified" in self.__fields_set__:
|
@@ -134,6 +140,7 @@ class ChangeIntervalWithOrderManagementDetail(BaseModel):
|
|
134
140
|
"as_at_modified": obj.get("asAtModified"),
|
135
141
|
"user_id_modified": obj.get("userIdModified"),
|
136
142
|
"request_id_modified": obj.get("requestIdModified"),
|
143
|
+
"reason_modified": obj.get("reasonModified"),
|
137
144
|
"as_at_version_number": obj.get("asAtVersionNumber"),
|
138
145
|
"staged_modification_id_modified": obj.get("stagedModificationIdModified"),
|
139
146
|
"action": obj.get("action"),
|
@@ -0,0 +1,119 @@
|
|
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
|
23
|
+
from lusid.models.bucket import Bucket
|
24
|
+
from lusid.models.perpetual_property import PerpetualProperty
|
25
|
+
|
26
|
+
class Economics(BaseModel):
|
27
|
+
"""
|
28
|
+
Economics
|
29
|
+
"""
|
30
|
+
instrument_scope: Optional[StrictStr] = Field(None,alias="instrumentScope", description="The scope in which the instrument lies.")
|
31
|
+
lusid_instrument_id: StrictStr = Field(...,alias="lusidInstrumentId", description="The unique Lusid Instrument Id (LUID) of the instrument that economics are for.")
|
32
|
+
sub_holding_keys: Optional[Dict[str, PerpetualProperty]] = Field(None, alias="subHoldingKeys", description="The sub-holding properties which identify the Economic. Each property will be from the 'Transaction' domain. These are configured on a transaction portfolio.")
|
33
|
+
buckets: Optional[conlist(Bucket)] = Field(None, description="Set of economic data related with each of the side impact of the transaction.")
|
34
|
+
__properties = ["instrumentScope", "lusidInstrumentId", "subHoldingKeys", "buckets"]
|
35
|
+
|
36
|
+
class Config:
|
37
|
+
"""Pydantic configuration"""
|
38
|
+
allow_population_by_field_name = True
|
39
|
+
validate_assignment = True
|
40
|
+
|
41
|
+
def __str__(self):
|
42
|
+
"""For `print` and `pprint`"""
|
43
|
+
return pprint.pformat(self.dict(by_alias=False))
|
44
|
+
|
45
|
+
def __repr__(self):
|
46
|
+
"""For `print` and `pprint`"""
|
47
|
+
return self.to_str()
|
48
|
+
|
49
|
+
def to_str(self) -> str:
|
50
|
+
"""Returns the string representation of the model using alias"""
|
51
|
+
return pprint.pformat(self.dict(by_alias=True))
|
52
|
+
|
53
|
+
def to_json(self) -> str:
|
54
|
+
"""Returns the JSON representation of the model using alias"""
|
55
|
+
return json.dumps(self.to_dict())
|
56
|
+
|
57
|
+
@classmethod
|
58
|
+
def from_json(cls, json_str: str) -> Economics:
|
59
|
+
"""Create an instance of Economics from a JSON string"""
|
60
|
+
return cls.from_dict(json.loads(json_str))
|
61
|
+
|
62
|
+
def to_dict(self):
|
63
|
+
"""Returns the dictionary representation of the model using alias"""
|
64
|
+
_dict = self.dict(by_alias=True,
|
65
|
+
exclude={
|
66
|
+
},
|
67
|
+
exclude_none=True)
|
68
|
+
# override the default output from pydantic by calling `to_dict()` of each value in sub_holding_keys (dict)
|
69
|
+
_field_dict = {}
|
70
|
+
if self.sub_holding_keys:
|
71
|
+
for _key in self.sub_holding_keys:
|
72
|
+
if self.sub_holding_keys[_key]:
|
73
|
+
_field_dict[_key] = self.sub_holding_keys[_key].to_dict()
|
74
|
+
_dict['subHoldingKeys'] = _field_dict
|
75
|
+
# override the default output from pydantic by calling `to_dict()` of each item in buckets (list)
|
76
|
+
_items = []
|
77
|
+
if self.buckets:
|
78
|
+
for _item in self.buckets:
|
79
|
+
if _item:
|
80
|
+
_items.append(_item.to_dict())
|
81
|
+
_dict['buckets'] = _items
|
82
|
+
# set to None if instrument_scope (nullable) is None
|
83
|
+
# and __fields_set__ contains the field
|
84
|
+
if self.instrument_scope is None and "instrument_scope" in self.__fields_set__:
|
85
|
+
_dict['instrumentScope'] = None
|
86
|
+
|
87
|
+
# set to None if sub_holding_keys (nullable) is None
|
88
|
+
# and __fields_set__ contains the field
|
89
|
+
if self.sub_holding_keys is None and "sub_holding_keys" in self.__fields_set__:
|
90
|
+
_dict['subHoldingKeys'] = None
|
91
|
+
|
92
|
+
# set to None if buckets (nullable) is None
|
93
|
+
# and __fields_set__ contains the field
|
94
|
+
if self.buckets is None and "buckets" in self.__fields_set__:
|
95
|
+
_dict['buckets'] = None
|
96
|
+
|
97
|
+
return _dict
|
98
|
+
|
99
|
+
@classmethod
|
100
|
+
def from_dict(cls, obj: dict) -> Economics:
|
101
|
+
"""Create an instance of Economics from a dict"""
|
102
|
+
if obj is None:
|
103
|
+
return None
|
104
|
+
|
105
|
+
if not isinstance(obj, dict):
|
106
|
+
return Economics.parse_obj(obj)
|
107
|
+
|
108
|
+
_obj = Economics.parse_obj({
|
109
|
+
"instrument_scope": obj.get("instrumentScope"),
|
110
|
+
"lusid_instrument_id": obj.get("lusidInstrumentId"),
|
111
|
+
"sub_holding_keys": dict(
|
112
|
+
(_k, PerpetualProperty.from_dict(_v))
|
113
|
+
for _k, _v in obj.get("subHoldingKeys").items()
|
114
|
+
)
|
115
|
+
if obj.get("subHoldingKeys") is not None
|
116
|
+
else None,
|
117
|
+
"buckets": [Bucket.from_dict(_item) for _item in obj.get("buckets")] if obj.get("buckets") is not None else None
|
118
|
+
})
|
119
|
+
return _obj
|
@@ -28,7 +28,7 @@ class MarketDataKeyRule(BaseModel):
|
|
28
28
|
key: StrictStr = Field(...,alias="key", description="A dot-separated string that defines a pattern for matching market data dependencies. The form of the string depends on the type of the dependency; see below for basic types and the Knowledge Base for further info. Quote lookup: \"Quote.{CodeType}.*\" e.g. \"Quote.RIC.*\" refers to 'any RIC quote' Fx rates: \"Fx.CurrencyPair.*\", which refers to 'any FX rate' Discounting curves: \"Rates.{Currency}.{Currency}OIS e.g. \"Rates.USD.USDOIS\" refers to the OIS USD discounting curve For non-fx and non-quote rules, trailing parameters can be replaced by the wildcard character '*'. e.g. \"Rates.*.*\" matches any dependency on a discounting curve.")
|
29
29
|
supplier: StrictStr = Field(...,alias="supplier", description="The market data supplier (where the data comes from)")
|
30
30
|
data_scope: StrictStr = Field(...,alias="dataScope", description="The scope in which the data should be found when using this rule.")
|
31
|
-
quote_type: StrictStr = Field(...,alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
|
31
|
+
quote_type: StrictStr = Field(...,alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall, ConstituentWeightFactor")
|
32
32
|
field: Optional[StrictStr] = Field(None,alias="field", description="The conceptual qualification for the field, typically 'bid', 'mid' (default), or 'ask', but can also be 'open', 'close', etc. When resolving quotes from LUSID's database, only quotes whose Field is identical to the Field specified here will be accepted as market data. When resolving data from an external supplier, the Field must be one of a defined set for the given supplier. Note: Applies to the retrieval of quotes only. Has no impact on the resolution of complex market data.")
|
33
33
|
quote_interval: Optional[StrictStr] = Field(None,alias="quoteInterval", description="Shorthand for the time interval used to select market data. This must be a dot-separated string nominating a start and end date, for example '5D.0D' to look back 5 days from today (0 days ago). The syntax is <i>int</i><i>char</i>.<i>int</i><i>char</i>, where <i>char</i> is one of D(ay), Bd(business day), W(eek), M(onth) or Y(ear). Business days are calculated using the calendars specified on the Valuation Request. If no calendar is provided in the request, then it will default to only skipping weekends. For example, if the valuation date is a Monday, then a quote interval of \"1Bd\" would behave as \"3D\", looking back to the Friday. Data with effectiveAt on the weekend will still be found in that window.")
|
34
34
|
as_at: Optional[datetime] = Field(None, alias="asAt", description="Deprecated field which no longer has any effect on market data resolution.")
|
@@ -93,8 +93,8 @@ class MarketDataKeyRule(BaseModel):
|
|
93
93
|
if "quote_type" != "type":
|
94
94
|
return value
|
95
95
|
|
96
|
-
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
|
97
|
-
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
|
96
|
+
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor'):
|
97
|
+
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor')")
|
98
98
|
return value
|
99
99
|
|
100
100
|
class Config:
|
@@ -29,7 +29,7 @@ class MarketDataSpecificRule(BaseModel):
|
|
29
29
|
key: StrictStr = Field(...,alias="key", description="The market data key pattern which this is a rule for. A dot separated string (A.B.C.D.*)")
|
30
30
|
supplier: StrictStr = Field(...,alias="supplier", description="The market data supplier (where the data comes from)")
|
31
31
|
data_scope: StrictStr = Field(...,alias="dataScope", description="The scope in which the data should be found when using this rule.")
|
32
|
-
quote_type: StrictStr = Field(...,alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
|
32
|
+
quote_type: StrictStr = Field(...,alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall, ConstituentWeightFactor")
|
33
33
|
field: StrictStr = Field(...,alias="field", description="The conceptual qualification for the field, such as bid, mid, or ask. The field must be one of a defined set for the given supplier, in the same way as it is for the Finbourne.WebApi.Interface.Dto.Quotes.QuoteSeriesId")
|
34
34
|
quote_interval: Optional[StrictStr] = Field(None,alias="quoteInterval", description="Shorthand for the time interval used to select market data. This must be a dot-separated string nominating a start and end date, for example '5D.0D' to look back 5 days from today (0 days ago). The syntax is <i>int</i><i>char</i>.<i>int</i><i>char</i>, where <i>char</i> is one of D(ay), W(eek), M(onth) or Y(ear).")
|
35
35
|
as_at: Optional[datetime] = Field(None, alias="asAt", description="Deprecated field which no longer has any effect on market data resolution.")
|
@@ -95,8 +95,8 @@ class MarketDataSpecificRule(BaseModel):
|
|
95
95
|
if "quote_type" != "type":
|
96
96
|
return value
|
97
97
|
|
98
|
-
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
|
99
|
-
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
|
98
|
+
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor'):
|
99
|
+
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor')")
|
100
100
|
return value
|
101
101
|
|
102
102
|
class Config:
|
lusid/models/market_quote.py
CHANGED
@@ -25,7 +25,7 @@ class MarketQuote(BaseModel):
|
|
25
25
|
"""
|
26
26
|
The market quote for an observable which will be used to calibrate the market data, including the format of the quote. e.g. a volatility quote for a specific strike and expiry the par rate of a swap This is a slimmed down version of a full Quote that can be stored in our QuoteStore to remove lineage, price source etc. for ease of use when creating complex market data. # noqa: E501
|
27
27
|
"""
|
28
|
-
quote_type: StrictStr = Field(...,alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
|
28
|
+
quote_type: StrictStr = Field(...,alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall, ConstituentWeightFactor")
|
29
29
|
value: Union[StrictFloat, StrictInt] = Field(..., description="Numeric value of the quote")
|
30
30
|
__properties = ["quoteType", "value"]
|
31
31
|
|
@@ -84,8 +84,8 @@ class MarketQuote(BaseModel):
|
|
84
84
|
if "quote_type" != "type":
|
85
85
|
return value
|
86
86
|
|
87
|
-
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
|
88
|
-
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
|
87
|
+
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor'):
|
88
|
+
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor')")
|
89
89
|
return value
|
90
90
|
|
91
91
|
class Config:
|
@@ -22,6 +22,7 @@ from typing import Any, Dict, List, Optional, Union
|
|
22
22
|
from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
|
23
23
|
from lusid.models.currency_and_amount import CurrencyAndAmount
|
24
24
|
from lusid.models.custodian_account import CustodianAccount
|
25
|
+
from lusid.models.economics import Economics
|
25
26
|
from lusid.models.otc_confirmation import OtcConfirmation
|
26
27
|
from lusid.models.perpetual_property import PerpetualProperty
|
27
28
|
from lusid.models.realised_gain_loss import RealisedGainLoss
|
@@ -66,7 +67,8 @@ class OutputTransaction(BaseModel):
|
|
66
67
|
order_id: Optional[ResourceId] = Field(None, alias="orderId")
|
67
68
|
allocation_id: Optional[ResourceId] = Field(None, alias="allocationId")
|
68
69
|
accounting_date: Optional[datetime] = Field(None, alias="accountingDate", description="The accounting date of the transaction.")
|
69
|
-
|
70
|
+
economics: Optional[conlist(Economics)] = Field(None, description="Set of economic data related with the transaction impacts.")
|
71
|
+
__properties = ["transactionId", "type", "description", "instrumentIdentifiers", "instrumentScope", "instrumentUid", "transactionDate", "settlementDate", "units", "transactionAmount", "transactionPrice", "totalConsideration", "exchangeRate", "transactionToPortfolioRate", "transactionCurrency", "properties", "counterpartyId", "source", "transactionStatus", "entryDateTime", "cancelDateTime", "realisedGainLoss", "holdingIds", "sourceType", "sourceInstrumentEventId", "custodianAccount", "transactionGroupId", "resolvedTransactionTypeDetails", "grossTransactionAmount", "otcConfirmation", "orderId", "allocationId", "accountingDate", "economics"]
|
70
72
|
|
71
73
|
@validator('transaction_status')
|
72
74
|
def transaction_status_validate_enum(cls, value):
|
@@ -197,6 +199,13 @@ class OutputTransaction(BaseModel):
|
|
197
199
|
# override the default output from pydantic by calling `to_dict()` of allocation_id
|
198
200
|
if self.allocation_id:
|
199
201
|
_dict['allocationId'] = self.allocation_id.to_dict()
|
202
|
+
# override the default output from pydantic by calling `to_dict()` of each item in economics (list)
|
203
|
+
_items = []
|
204
|
+
if self.economics:
|
205
|
+
for _item in self.economics:
|
206
|
+
if _item:
|
207
|
+
_items.append(_item.to_dict())
|
208
|
+
_dict['economics'] = _items
|
200
209
|
# set to None if description (nullable) is None
|
201
210
|
# and __fields_set__ contains the field
|
202
211
|
if self.description is None and "description" in self.__fields_set__:
|
@@ -272,6 +281,11 @@ class OutputTransaction(BaseModel):
|
|
272
281
|
if self.accounting_date is None and "accounting_date" in self.__fields_set__:
|
273
282
|
_dict['accountingDate'] = None
|
274
283
|
|
284
|
+
# set to None if economics (nullable) is None
|
285
|
+
# and __fields_set__ contains the field
|
286
|
+
if self.economics is None and "economics" in self.__fields_set__:
|
287
|
+
_dict['economics'] = None
|
288
|
+
|
275
289
|
return _dict
|
276
290
|
|
277
291
|
@classmethod
|
@@ -321,6 +335,7 @@ class OutputTransaction(BaseModel):
|
|
321
335
|
"otc_confirmation": OtcConfirmation.from_dict(obj.get("otcConfirmation")) if obj.get("otcConfirmation") is not None else None,
|
322
336
|
"order_id": ResourceId.from_dict(obj.get("orderId")) if obj.get("orderId") is not None else None,
|
323
337
|
"allocation_id": ResourceId.from_dict(obj.get("allocationId")) if obj.get("allocationId") is not None else None,
|
324
|
-
"accounting_date": obj.get("accountingDate")
|
338
|
+
"accounting_date": obj.get("accountingDate"),
|
339
|
+
"economics": [Economics.from_dict(_item) for _item in obj.get("economics")] if obj.get("economics") is not None else None
|
325
340
|
})
|
326
341
|
return _obj
|
lusid/models/quote_series_id.py
CHANGED
@@ -29,7 +29,7 @@ class QuoteSeriesId(BaseModel):
|
|
29
29
|
price_source: Optional[StrictStr] = Field(None,alias="priceSource", description="The source or originator of the quote, e.g. a bank or financial institution.")
|
30
30
|
instrument_id: StrictStr = Field(...,alias="instrumentId", description="The value of the instrument identifier that uniquely identifies the instrument that the quote is for, e.g. 'BBG00JX0P539'.")
|
31
31
|
instrument_id_type: StrictStr = Field(...,alias="instrumentIdType", description="The type of instrument identifier used to uniquely identify the instrument that the quote is for, e.g. 'Figi'. The available values are: LusidInstrumentId, Figi, RIC, QuotePermId, Isin, CurrencyPair, ClientInternal, Sedol, Cusip")
|
32
|
-
quote_type: StrictStr = Field(...,alias="quoteType", description="The type of the quote. This allows for quotes other than prices e.g. rates or spreads to be used. The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
|
32
|
+
quote_type: StrictStr = Field(...,alias="quoteType", description="The type of the quote. This allows for quotes other than prices e.g. rates or spreads to be used. The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall, ConstituentWeightFactor")
|
33
33
|
field: StrictStr = Field(...,alias="field", description="The field of the quote e.g. bid, mid, ask etc. This should be consistent across a time series of quotes. The allowed values depend on the provider according to the following rules: Client : *Any value is accepted*; DataScope : 'bid', 'mid', 'ask'; Lusid : *Any value is accepted*; Edi : 'bid', 'mid', 'ask', 'open', 'close', 'last'; TraderMade : 'bid', 'mid', 'ask', 'open', 'close', 'high', 'low'; FactSet : 'bid', 'mid', 'ask', 'open', 'close'; SIX : 'bid', 'mid', 'ask', 'open', 'close', 'last', 'referencePrice', 'highPrice', 'lowPrice', 'maxRedemptionPrice', 'maxSubscriptionPrice', 'openPrice', 'bestBidPrice', 'lastBidPrice', 'bestAskPrice', 'lastAskPrice', 'finalSettlementOptions', 'finalSettlementFutures', 'valuationPriceAmount'; Bloomberg : 'bid', 'mid', 'ask', 'open', 'close', 'last'; Rimes : 'bid', 'mid', 'ask', 'open', 'close', 'last'; ICE : 'ask', 'bid', 'close', 'high', 'low', 'open', 'primaryExchangeTradePrice', 'vwap', 'mid'; LSEG : 'ASK', 'BID', 'MID_PRICE'")
|
34
34
|
__properties = ["provider", "priceSource", "instrumentId", "instrumentIdType", "quoteType", "field"]
|
35
35
|
|
@@ -147,8 +147,8 @@ class QuoteSeriesId(BaseModel):
|
|
147
147
|
if "quote_type" != "type":
|
148
148
|
return value
|
149
149
|
|
150
|
-
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
|
151
|
-
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
|
150
|
+
if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor'):
|
151
|
+
raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall', 'ConstituentWeightFactor')")
|
152
152
|
return value
|
153
153
|
|
154
154
|
class Config:
|
lusid/models/quote_type.py
CHANGED
@@ -46,6 +46,7 @@ class QuoteType(str, Enum):
|
|
46
46
|
PRINCIPALWRITEOFF = 'PrincipalWriteOff'
|
47
47
|
INTERESTDEFERRED = 'InterestDeferred'
|
48
48
|
INTERESTSHORTFALL = 'InterestShortfall'
|
49
|
+
CONSTITUENTWEIGHTFACTOR = 'ConstituentWeightFactor'
|
49
50
|
|
50
51
|
@classmethod
|
51
52
|
def from_json(cls, json_str: str) -> QuoteType:
|
@@ -0,0 +1,121 @@
|
|
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
|
23
|
+
from lusid.models.investor_record import InvestorRecord
|
24
|
+
from lusid.models.link import Link
|
25
|
+
|
26
|
+
class ResourceListOfInvestorRecord(BaseModel):
|
27
|
+
"""
|
28
|
+
ResourceListOfInvestorRecord
|
29
|
+
"""
|
30
|
+
values: conlist(InvestorRecord) = Field(...)
|
31
|
+
href: Optional[StrictStr] = Field(None,alias="href")
|
32
|
+
links: Optional[conlist(Link)] = None
|
33
|
+
next_page: Optional[StrictStr] = Field(None,alias="nextPage")
|
34
|
+
previous_page: Optional[StrictStr] = Field(None,alias="previousPage")
|
35
|
+
__properties = ["values", "href", "links", "nextPage", "previousPage"]
|
36
|
+
|
37
|
+
class Config:
|
38
|
+
"""Pydantic configuration"""
|
39
|
+
allow_population_by_field_name = True
|
40
|
+
validate_assignment = True
|
41
|
+
|
42
|
+
def __str__(self):
|
43
|
+
"""For `print` and `pprint`"""
|
44
|
+
return pprint.pformat(self.dict(by_alias=False))
|
45
|
+
|
46
|
+
def __repr__(self):
|
47
|
+
"""For `print` and `pprint`"""
|
48
|
+
return self.to_str()
|
49
|
+
|
50
|
+
def to_str(self) -> str:
|
51
|
+
"""Returns the string representation of the model using alias"""
|
52
|
+
return pprint.pformat(self.dict(by_alias=True))
|
53
|
+
|
54
|
+
def to_json(self) -> str:
|
55
|
+
"""Returns the JSON representation of the model using alias"""
|
56
|
+
return json.dumps(self.to_dict())
|
57
|
+
|
58
|
+
@classmethod
|
59
|
+
def from_json(cls, json_str: str) -> ResourceListOfInvestorRecord:
|
60
|
+
"""Create an instance of ResourceListOfInvestorRecord from a JSON string"""
|
61
|
+
return cls.from_dict(json.loads(json_str))
|
62
|
+
|
63
|
+
def to_dict(self):
|
64
|
+
"""Returns the dictionary representation of the model using alias"""
|
65
|
+
_dict = self.dict(by_alias=True,
|
66
|
+
exclude={
|
67
|
+
},
|
68
|
+
exclude_none=True)
|
69
|
+
# override the default output from pydantic by calling `to_dict()` of each item in values (list)
|
70
|
+
_items = []
|
71
|
+
if self.values:
|
72
|
+
for _item in self.values:
|
73
|
+
if _item:
|
74
|
+
_items.append(_item.to_dict())
|
75
|
+
_dict['values'] = _items
|
76
|
+
# override the default output from pydantic by calling `to_dict()` of each item in links (list)
|
77
|
+
_items = []
|
78
|
+
if self.links:
|
79
|
+
for _item in self.links:
|
80
|
+
if _item:
|
81
|
+
_items.append(_item.to_dict())
|
82
|
+
_dict['links'] = _items
|
83
|
+
# set to None if href (nullable) is None
|
84
|
+
# and __fields_set__ contains the field
|
85
|
+
if self.href is None and "href" in self.__fields_set__:
|
86
|
+
_dict['href'] = None
|
87
|
+
|
88
|
+
# set to None if links (nullable) is None
|
89
|
+
# and __fields_set__ contains the field
|
90
|
+
if self.links is None and "links" in self.__fields_set__:
|
91
|
+
_dict['links'] = None
|
92
|
+
|
93
|
+
# set to None if next_page (nullable) is None
|
94
|
+
# and __fields_set__ contains the field
|
95
|
+
if self.next_page is None and "next_page" in self.__fields_set__:
|
96
|
+
_dict['nextPage'] = None
|
97
|
+
|
98
|
+
# set to None if previous_page (nullable) is None
|
99
|
+
# and __fields_set__ contains the field
|
100
|
+
if self.previous_page is None and "previous_page" in self.__fields_set__:
|
101
|
+
_dict['previousPage'] = None
|
102
|
+
|
103
|
+
return _dict
|
104
|
+
|
105
|
+
@classmethod
|
106
|
+
def from_dict(cls, obj: dict) -> ResourceListOfInvestorRecord:
|
107
|
+
"""Create an instance of ResourceListOfInvestorRecord from a dict"""
|
108
|
+
if obj is None:
|
109
|
+
return None
|
110
|
+
|
111
|
+
if not isinstance(obj, dict):
|
112
|
+
return ResourceListOfInvestorRecord.parse_obj(obj)
|
113
|
+
|
114
|
+
_obj = ResourceListOfInvestorRecord.parse_obj({
|
115
|
+
"values": [InvestorRecord.from_dict(_item) for _item in obj.get("values")] if obj.get("values") is not None else None,
|
116
|
+
"href": obj.get("href"),
|
117
|
+
"links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None,
|
118
|
+
"next_page": obj.get("nextPage"),
|
119
|
+
"previous_page": obj.get("previousPage")
|
120
|
+
})
|
121
|
+
return _obj
|
@@ -31,7 +31,8 @@ class TransactionQueryParameters(BaseModel):
|
|
31
31
|
show_cancelled_transactions: Optional[StrictBool] = Field(None, alias="showCancelledTransactions", description="Option to specify whether or not to include cancelled transactions in the output. Defaults to False if not specified.")
|
32
32
|
timeline_scope: Optional[StrictStr] = Field(None,alias="timelineScope", description="Scope of the Timeline for the Portfolio. The Timeline to be used while building transactions")
|
33
33
|
timeline_code: Optional[StrictStr] = Field(None,alias="timelineCode", description="Code of the Timeline for the Portfolio. The Timeline to be used while building transactions")
|
34
|
-
|
34
|
+
include_economics: Optional[StrictBool] = Field(None, alias="includeEconomics", description="By default is false. When set to true the Economics data would be populated in the response.")
|
35
|
+
__properties = ["startDate", "endDate", "queryMode", "showCancelledTransactions", "timelineScope", "timelineCode", "includeEconomics"]
|
35
36
|
|
36
37
|
@validator('query_mode')
|
37
38
|
def query_mode_validate_enum(cls, value):
|
@@ -154,6 +155,7 @@ class TransactionQueryParameters(BaseModel):
|
|
154
155
|
"query_mode": obj.get("queryMode"),
|
155
156
|
"show_cancelled_transactions": obj.get("showCancelledTransactions"),
|
156
157
|
"timeline_scope": obj.get("timelineScope"),
|
157
|
-
"timeline_code": obj.get("timelineCode")
|
158
|
+
"timeline_code": obj.get("timelineCode"),
|
159
|
+
"include_economics": obj.get("includeEconomics")
|
158
160
|
})
|
159
161
|
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.806
|
4
4
|
Summary: LUSID API
|
5
5
|
Home-page: https://github.com/finbourne/lusid-sdk-python
|
6
6
|
License: MIT
|
@@ -329,8 +329,9 @@ Class | Method | HTTP request | Description
|
|
329
329
|
*InstrumentsApi* | [**update_instrument_identifier**](docs/InstrumentsApi.md#update_instrument_identifier) | **POST** /api/instruments/{identifierType}/{identifier} | UpdateInstrumentIdentifier: Update instrument identifier
|
330
330
|
*InstrumentsApi* | [**upsert_instruments**](docs/InstrumentsApi.md#upsert_instruments) | **POST** /api/instruments | UpsertInstruments: Upsert instruments
|
331
331
|
*InstrumentsApi* | [**upsert_instruments_properties**](docs/InstrumentsApi.md#upsert_instruments_properties) | **POST** /api/instruments/$upsertproperties | UpsertInstrumentsProperties: Upsert instruments properties
|
332
|
-
*InvestorRecordsApi* | [**delete_investor_record**](docs/InvestorRecordsApi.md#delete_investor_record) | **DELETE** /api/investorrecords/{idTypeScope}/{idTypeCode}/{code} | DeleteInvestorRecord: Delete Investor Record
|
332
|
+
*InvestorRecordsApi* | [**delete_investor_record**](docs/InvestorRecordsApi.md#delete_investor_record) | **DELETE** /api/investorrecords/{idTypeScope}/{idTypeCode}/{code} | [EARLY ACCESS] DeleteInvestorRecord: Delete Investor Record
|
333
333
|
*InvestorRecordsApi* | [**get_investor_record**](docs/InvestorRecordsApi.md#get_investor_record) | **GET** /api/investorrecords/{idTypeScope}/{idTypeCode}/{code} | [EARLY ACCESS] GetInvestorRecord: Get Investor Record
|
334
|
+
*InvestorRecordsApi* | [**list_all_investor_records**](docs/InvestorRecordsApi.md#list_all_investor_records) | **GET** /api/investorrecords | [EARLY ACCESS] ListAllInvestorRecords: List Investor Records
|
334
335
|
*InvestorRecordsApi* | [**upsert_investor_records**](docs/InvestorRecordsApi.md#upsert_investor_records) | **POST** /api/investorrecords/$batchUpsert | [EARLY ACCESS] UpsertInvestorRecords: Pluralised upsert of Investor Records
|
335
336
|
*LegacyComplianceApi* | [**delete_legacy_compliance_rule**](docs/LegacyComplianceApi.md#delete_legacy_compliance_rule) | **DELETE** /api/legacy/compliance/rules/{scope}/{code} | [EXPERIMENTAL] DeleteLegacyComplianceRule: Deletes a compliance rule.
|
336
337
|
*LegacyComplianceApi* | [**get_legacy_breached_orders_info**](docs/LegacyComplianceApi.md#get_legacy_breached_orders_info) | **GET** /api/legacy/compliance/runs/breached/{runId} | [EXPERIMENTAL] GetLegacyBreachedOrdersInfo: Get the Ids of Breached orders in a given compliance run and the corresponding list of rules that could have caused it.
|
@@ -766,6 +767,7 @@ Class | Method | HTTP request | Description
|
|
766
767
|
- [BranchStep](docs/BranchStep.md)
|
767
768
|
- [BranchStepRequest](docs/BranchStepRequest.md)
|
768
769
|
- [BreakCodeSource](docs/BreakCodeSource.md)
|
770
|
+
- [Bucket](docs/Bucket.md)
|
769
771
|
- [BucketedCashFlowRequest](docs/BucketedCashFlowRequest.md)
|
770
772
|
- [BucketedCashFlowResponse](docs/BucketedCashFlowResponse.md)
|
771
773
|
- [BucketingSchedule](docs/BucketingSchedule.md)
|
@@ -996,6 +998,7 @@ Class | Method | HTTP request | Description
|
|
996
998
|
- [EconomicDependencyType](docs/EconomicDependencyType.md)
|
997
999
|
- [EconomicDependencyWithComplexMarketData](docs/EconomicDependencyWithComplexMarketData.md)
|
998
1000
|
- [EconomicDependencyWithQuote](docs/EconomicDependencyWithQuote.md)
|
1001
|
+
- [Economics](docs/Economics.md)
|
999
1002
|
- [EffectiveRange](docs/EffectiveRange.md)
|
1000
1003
|
- [ElectionSpecification](docs/ElectionSpecification.md)
|
1001
1004
|
- [EligibilityCalculation](docs/EligibilityCalculation.md)
|
@@ -1566,6 +1569,7 @@ Class | Method | HTTP request | Description
|
|
1566
1569
|
- [ResourceListOfInstrumentCashFlow](docs/ResourceListOfInstrumentCashFlow.md)
|
1567
1570
|
- [ResourceListOfInstrumentEventHolder](docs/ResourceListOfInstrumentEventHolder.md)
|
1568
1571
|
- [ResourceListOfInstrumentIdTypeDescriptor](docs/ResourceListOfInstrumentIdTypeDescriptor.md)
|
1572
|
+
- [ResourceListOfInvestorRecord](docs/ResourceListOfInvestorRecord.md)
|
1569
1573
|
- [ResourceListOfLegalEntity](docs/ResourceListOfLegalEntity.md)
|
1570
1574
|
- [ResourceListOfListComplexMarketDataWithMetaDataResponse](docs/ResourceListOfListComplexMarketDataWithMetaDataResponse.md)
|
1571
1575
|
- [ResourceListOfMapping](docs/ResourceListOfMapping.md)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
lusid/__init__.py,sha256=
|
1
|
+
lusid/__init__.py,sha256=p798jyuPeJVwvWUxgMm5YrdrIUGV-1Pa_KWtEhBaRTU,138124
|
2
2
|
lusid/api/__init__.py,sha256=EQ3XKHP9QY2QeLD97_6ePDtx6g6tykdAzwWWHaW0dYo,6386
|
3
3
|
lusid/api/abor_api.py,sha256=oAvtx9mQGWa5ZQRKjhzkJJH110GiIqiPIefIYNoiT14,166017
|
4
4
|
lusid/api/abor_configuration_api.py,sha256=3Y3KwOOJqPsCsl7rfP-ScCYrKvVsQSP5adbsAsJ9G1s,74238
|
@@ -34,7 +34,7 @@ lusid/api/identifier_definitions_api.py,sha256=x79uhIBI0BJITjwmE7oPMWFOtox60FrrL
|
|
34
34
|
lusid/api/instrument_event_types_api.py,sha256=RHuGNd8Xf8x0vyvAUFwRNgEB_kpzQTtbsBwlFC3QJcs,79862
|
35
35
|
lusid/api/instrument_events_api.py,sha256=o_VlUMrovreM3P6N84W5jMUrZmc6tVsvD7Ckhf05sfw,57764
|
36
36
|
lusid/api/instruments_api.py,sha256=-pOWq9bPcXvXULKV-FPWlRugZuBEPwVp2oPX91PEzTs,298533
|
37
|
-
lusid/api/investor_records_api.py,sha256=
|
37
|
+
lusid/api/investor_records_api.py,sha256=AFKyHa5kFyddjqXYtT7x3PUlQzLEbuxt4fuodVVmuCg,58633
|
38
38
|
lusid/api/legacy_compliance_api.py,sha256=DvApZDZ-_yzZ72e9oqKBK7Ey8oEaavGtw5cgxhEkV0s,93819
|
39
39
|
lusid/api/legal_entities_api.py,sha256=3rCwRIrEXwKH2T8-16ZizKx_Hyi8YeEfrZFpCJX5Hfs,257649
|
40
40
|
lusid/api/order_graph_api.py,sha256=-oaauVeAJxJsK6AHscON1nODEDbv8dcXlKNb6ilBOAU,44022
|
@@ -76,7 +76,7 @@ lusid/api/translation_api.py,sha256=xpRuTfwQvYBlWe6r_L2EI_uVpXqHFnEOim-i-kVQ85E,
|
|
76
76
|
lusid/api/workspace_api.py,sha256=0pCNi3ZCRbIo0NXKa85XE7vtq0WV5YOKcQKvFlcLUaY,120708
|
77
77
|
lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
|
78
78
|
lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
|
79
|
-
lusid/configuration.py,sha256=
|
79
|
+
lusid/configuration.py,sha256=yLEviPYX2KBNA9VoSPZ-Y5CbHAO97yMOwd0Uo6rlu5w,17972
|
80
80
|
lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
|
81
81
|
lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
|
82
82
|
lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
|
@@ -91,7 +91,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
|
|
91
91
|
lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
|
92
92
|
lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
|
93
93
|
lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
|
94
|
-
lusid/models/__init__.py,sha256
|
94
|
+
lusid/models/__init__.py,sha256=-mNYBDBp1XpfQBPr8hGCwKmJpUbxlVfhUAhSNtbbNO0,130706
|
95
95
|
lusid/models/a2_b_breakdown.py,sha256=-FXgILrvtZXQDmvS0ARaJVGBq5LJ4AH-o3HjujFVmS4,3198
|
96
96
|
lusid/models/a2_b_category.py,sha256=WunXUgx-dCnApPeLC8Qo5tVCX8Ywxkehib1vmNqNgNs,2957
|
97
97
|
lusid/models/a2_b_data_record.py,sha256=qANTmV1_HUEo4l72-F8qzZjlQxOe0Onc9WPz7h-WWuY,9993
|
@@ -198,6 +198,7 @@ lusid/models/bool_list_compliance_parameter.py,sha256=BCbKh84VPQBh26pZIlhXhEznns
|
|
198
198
|
lusid/models/branch_step.py,sha256=AaX3CSgsfqLKbJ65w4tsOszI9VO5IriZo5RjVdaZdQw,7161
|
199
199
|
lusid/models/branch_step_request.py,sha256=xCYu1UMm-OF2In9zVjQbZ3WoTMlN5aJIWiPGb6U-qVw,6685
|
200
200
|
lusid/models/break_code_source.py,sha256=6eGWx_Do3h18MrGN0CgX-amdrfL9n6lusdWyMmzLbiM,2384
|
201
|
+
lusid/models/bucket.py,sha256=1yLnFMTFHkbtI91UnczpMLcbabVC3ekF9mgfQQ1V1TE,5872
|
201
202
|
lusid/models/bucketed_cash_flow_request.py,sha256=kLK-PFcbIihoiBWYO-c_e6mlL9T_Em1yUoNXbz0Hi2I,10289
|
202
203
|
lusid/models/bucketed_cash_flow_response.py,sha256=DFdxnP1H8ymR-mETx3d0FTYBYQGplkRU28tEOPonESk,5866
|
203
204
|
lusid/models/bucketing_schedule.py,sha256=NPKNhLsz5_trw048YicdQNLaBpSF7ocoQD2imLYhpPU,2348
|
@@ -236,8 +237,8 @@ lusid/models/cdx_credit_event.py,sha256=JYqFWigXH482RZ_vVTSsu9JAqJiWtzut3QHh2ZlV
|
|
236
237
|
lusid/models/change.py,sha256=gt2vAck5JDScjVZI27AJUJl4PbXrorp3iXl29pKpyI8,5330
|
237
238
|
lusid/models/change_history.py,sha256=UuF4fGRzB395PNnOcy02LAnbevC8qI6H7qbLPDit37w,7464
|
238
239
|
lusid/models/change_history_action.py,sha256=LJipvCPce31vtmb4j7EQBaoolJVrf8wycx7lim33Kzg,702
|
239
|
-
lusid/models/change_interval.py,sha256=
|
240
|
-
lusid/models/change_interval_with_order_management_detail.py,sha256=
|
240
|
+
lusid/models/change_interval.py,sha256=rQidf0L457Kclf3U1A3yeVsFkdQJX3EHydow1SP2Hjk,6858
|
241
|
+
lusid/models/change_interval_with_order_management_detail.py,sha256=lQDNOJqFxy2_YRa0LPjvHqUrcQhABW3eGGtuhqiArNI,8106
|
241
242
|
lusid/models/change_item.py,sha256=BcApB0DPFzb2BWm0h3US0thhntOOypBSEUHUEk1oYQc,4048
|
242
243
|
lusid/models/chart_of_accounts.py,sha256=gMjWXbR5_-xljYujxYjPyvcZmD0UAOHaznOH_0UWZik,5661
|
243
244
|
lusid/models/chart_of_accounts_properties.py,sha256=Hg6QRlKLW98Wn2WZ6bEVY93RQ-sT0W5edFEVK6AAfnY,4601
|
@@ -428,6 +429,7 @@ lusid/models/economic_dependency.py,sha256=HU1z1DuKPwiJcb4Ep8R8IoKOrb5ZuKUGWtRut
|
|
428
429
|
lusid/models/economic_dependency_type.py,sha256=tx37PkXssBSTW8Rqm1PN8XFEKR4lEkTgnLwL0EvMh3k,1290
|
429
430
|
lusid/models/economic_dependency_with_complex_market_data.py,sha256=szRO1DFJPRbsuwo5P6ovq7v8b7QViNVgWY7el7G36po,3283
|
430
431
|
lusid/models/economic_dependency_with_quote.py,sha256=uOhpwpxlEK3tvjZi1W_lA24-isT_oUO4yDV24Wy6MUs,3590
|
432
|
+
lusid/models/economics.py,sha256=Q3LgYr3YzZIyLZfQLlkyf8bwCkkoGcgY5HM95bWuDHs,4739
|
431
433
|
lusid/models/effective_range.py,sha256=QS0EvY8L0-kAuHo9I9RM4n--gbYIexnYSmtw2MPB_ts,2383
|
432
434
|
lusid/models/election_specification.py,sha256=3VJre2H4qid96ZR5SXhXfPhvA5Oq_qqnN77I_LCmhHg,2434
|
433
435
|
lusid/models/eligibility_calculation.py,sha256=97wEddIjii77XbgiFbEDj7W1J-t83eNMY_Vip_Qi2ZI,2558
|
@@ -676,15 +678,15 @@ lusid/models/mapping_rule.py,sha256=y6MqGlbd4XEY50xfwT9xQpFXOASxUrVyNOp0RiWZ_6E,
|
|
676
678
|
lusid/models/mark_to_market_conventions.py,sha256=p7KJh6MPdI762O1zFyu05-wqca7odbIL4u_891fnfVo,2692
|
677
679
|
lusid/models/market_context.py,sha256=N5ePFJA2G33zy1oGgWifd7V1UafKnQKqfEsQeXWa8X0,7828
|
678
680
|
lusid/models/market_context_suppliers.py,sha256=Ew7wwO1kctTrgcz5iwnz3Otl8YXJQgBpjL3---pLHso,2751
|
679
|
-
lusid/models/market_data_key_rule.py,sha256=
|
681
|
+
lusid/models/market_data_key_rule.py,sha256=WnTDRvEUhEXAV1KgjnyfFnrMbzE40nf8-7VywP3zD9A,13125
|
680
682
|
lusid/models/market_data_options.py,sha256=FTcTycC2xaHfy5dzC4HHNzAvuIUIE6h1vaaPA1aIeTw,6831
|
681
683
|
lusid/models/market_data_options_type.py,sha256=NlFpXuMw8cVK5czQY0h0GJhjYP_wpPuOIpin_AzXKwM,697
|
682
684
|
lusid/models/market_data_overrides.py,sha256=iwTO6VDQEBHfqUYixnYiqVYsImN0EE4qrjEQkngrxLg,4153
|
683
|
-
lusid/models/market_data_specific_rule.py,sha256=
|
685
|
+
lusid/models/market_data_specific_rule.py,sha256=LN5jBSJcUil0A4talEHd5NwqS4Jba52pMtye2BRz_io,12135
|
684
686
|
lusid/models/market_data_type.py,sha256=4NyCfdwiQjP1MZK_SovXB6IVrspTU56JhmxfSdNRweU,1583
|
685
687
|
lusid/models/market_observable_type.py,sha256=E1cl-6yHelmR1b7CarmYNgRHWxhPrFknNrXZlwYywAk,801
|
686
688
|
lusid/models/market_options.py,sha256=bGW0MGm6cHG_BtGQ_ixI_C0ahr1AQq0rpv4oqiJYqxs,5250
|
687
|
-
lusid/models/market_quote.py,sha256=
|
689
|
+
lusid/models/market_quote.py,sha256=cKWzVco42O1x-vDPMQLUJ3lUDbBwLUqNHFiIcPo82Fo,6649
|
688
690
|
lusid/models/mastered_instrument.py,sha256=ZBxWEgN0ULPkrCeX4481feXPcMKmMHvFVhuQMzYLPVE,11871
|
689
691
|
lusid/models/match_criterion.py,sha256=iNh9Zv1-5wTq-WKHmHgyKn2xkU780noLtCJJq7aUjRw,6820
|
690
692
|
lusid/models/maturity_event.py,sha256=0NbjTi2KVIDQyY0Fskiad_xzDR7qDa0FBWDM4NY4h9s,10477
|
@@ -752,7 +754,7 @@ lusid/models/order_request.py,sha256=vA90s8q8Y58x--4KpJJ6O5fWtoauOBBhusMdpherXDA
|
|
752
754
|
lusid/models/order_set_request.py,sha256=b7FHKZWawLGR83gRHpShjtdYxvlvyMdLhQGLi2HTjmQ,2948
|
753
755
|
lusid/models/order_update_request.py,sha256=eXPD9g6f-W5C42JGpNyOijrnPO7jmYERWNgXMfu46VU,5371
|
754
756
|
lusid/models/otc_confirmation.py,sha256=05mvXvcPLgyCNIHXN7g9L5nqAZORKrQA_wHW-fHe2O0,2651
|
755
|
-
lusid/models/output_transaction.py,sha256=
|
757
|
+
lusid/models/output_transaction.py,sha256=9icL7XvV2xlSnqqhISgf8H4pagX0wBml7xcxxwtPeLQ,21951
|
756
758
|
lusid/models/output_transition.py,sha256=R_EGRE5yzpcgTth20s58MA5a3QVRA7ZvNtkxfAKtNCU,4219
|
757
759
|
lusid/models/package.py,sha256=MjIyvz3UaXqJoS_0KiR6BKikHcBaJBV4iZYqo7AmslQ,5685
|
758
760
|
lusid/models/package_request.py,sha256=4sYvxIYutClYd8qLoZxZW96XMZn5jeyhcfpsvyXZfek,4615
|
@@ -916,8 +918,8 @@ lusid/models/quote_access_metadata_rule_id.py,sha256=P0qZPdCTH1O8ZKwFIVG_lqV_xM-
|
|
916
918
|
lusid/models/quote_dependency.py,sha256=OM9lo-nq1ytDmafBJ9P5d8TSPc3Z9A5FIdJA0nq08rg,7802
|
917
919
|
lusid/models/quote_id.py,sha256=w0SLJOhCtOB9GM2eFKdjeYerX3efm017Q_0UkhMSHh4,2628
|
918
920
|
lusid/models/quote_instrument_id_type.py,sha256=xLx1GjV_zFUIJcpw2JmCyWmzd9QR6S7ORFajcjtAHBw,886
|
919
|
-
lusid/models/quote_series_id.py,sha256=
|
920
|
-
lusid/models/quote_type.py,sha256=
|
921
|
+
lusid/models/quote_series_id.py,sha256=qZQBx0N4oYgQHVVdOLyAB8zxkwu5QSZrrwEHbrWxS-U,12420
|
922
|
+
lusid/models/quote_type.py,sha256=PcgNMkDIwcHRwNejD4cQOKdo-NQfRDXb1Cr25QQvAKY,1144
|
921
923
|
lusid/models/raw_vendor_event.py,sha256=0zGWGBZlgLNygRZwnvkZiKIC00GiYLYCZquUWqYVkQQ,11248
|
922
924
|
lusid/models/re_open_period_diary_entry_request.py,sha256=cbx4lBx2lCXSe2eaVTSMaDhWcPmBCg5WchApthismAc,2620
|
923
925
|
lusid/models/realised_gain_loss.py,sha256=JG2_H7LIxOQFsKjSyLdHQzmbqWvXpsxbqm_qy70GE68,7400
|
@@ -998,6 +1000,7 @@ lusid/models/resource_list_of_i_unit_definition_dto.py,sha256=LjAYsbkiNd7IqusJ38
|
|
998
1000
|
lusid/models/resource_list_of_instrument_cash_flow.py,sha256=M5myVdhSbr3DGzYQNeysXMqP1AnRhjqjwXBZDgFmWyI,4408
|
999
1001
|
lusid/models/resource_list_of_instrument_event_holder.py,sha256=YTl-QFbe5zhYhcft0F0FiwZ1mmBHlhmVdoc8ITSzgkE,4444
|
1000
1002
|
lusid/models/resource_list_of_instrument_id_type_descriptor.py,sha256=wvSt9-3hPMGxxewZMXB09xHtIWc9qpzUho1Saa5h6-c,4505
|
1003
|
+
lusid/models/resource_list_of_investor_record.py,sha256=BlYAemlwpa_s2fx35Y6P5-TUCimjawZY-ENiVJ4qqLM,4359
|
1001
1004
|
lusid/models/resource_list_of_legal_entity.py,sha256=DrOUEHsXTuxTeZJ7d4Il4EjKe2fp7NTdmx81Xk-CrnM,4323
|
1002
1005
|
lusid/models/resource_list_of_list_complex_market_data_with_meta_data_response.py,sha256=XRA9Fb5yJjj7FaNoWvfZuF6EPobEiXAKvob1d_GImqs,4689
|
1003
1006
|
lusid/models/resource_list_of_mapping.py,sha256=_CdwA1OEdaeE75hTupxL1eVrJeFTKokx6s0-cKPXoL4,4274
|
@@ -1152,7 +1155,7 @@ lusid/models/transaction_property_map.py,sha256=-wHRWG3detIms7R03Z1LP8Ll_5h1OKtU
|
|
1152
1155
|
lusid/models/transaction_property_mapping.py,sha256=zR68kn6GCZnWPxq9d0bof8-TnZj-jSrWfHGOrfN5kTo,3056
|
1153
1156
|
lusid/models/transaction_property_mapping_request.py,sha256=1gRNyMZDfayaDSY5fp7nxTWFTMIjzabLIvfwxMk0BT8,3111
|
1154
1157
|
lusid/models/transaction_query_mode.py,sha256=q3QNcFSP-LwfdQF_yRUOZMd6ElemQm03yOEQdQrCjvE,699
|
1155
|
-
lusid/models/transaction_query_parameters.py,sha256=
|
1158
|
+
lusid/models/transaction_query_parameters.py,sha256=AIGQLau7ZeogFvvxFYnT94Di4tQPaW8GDbk9N_8y4Eo,7829
|
1156
1159
|
lusid/models/transaction_reconciliation_request.py,sha256=0MtuzOqdGdToiO7tbffVR4drmNAR8Ygzcosqt4sECt4,4526
|
1157
1160
|
lusid/models/transaction_reconciliation_request_v2.py,sha256=cgzBwUa3lIRYksf1xiKEN85iUHKp2_cEnFhHBlsvp-4,6178
|
1158
1161
|
lusid/models/transaction_request.py,sha256=s6OVPLAxPDbUMU4gLN_XNX9ngdlKdPBgGeRDBg7QzdA,10982
|
@@ -1313,6 +1316,6 @@ lusid/models/year_month_day.py,sha256=gwSoxFwlD_wffKdddo1wfvAcLq3Cht3FHQidiaHzAA
|
|
1313
1316
|
lusid/models/yield_curve_data.py,sha256=I1ZSWxHMgUxj9OQt6i9a4S91KB4_XtmrfFxpN_PV3YQ,9561
|
1314
1317
|
lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1315
1318
|
lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
|
1316
|
-
lusid_sdk-2.1.
|
1317
|
-
lusid_sdk-2.1.
|
1318
|
-
lusid_sdk-2.1.
|
1319
|
+
lusid_sdk-2.1.806.dist-info/METADATA,sha256=H6Zj0f0xhmJOhxYd2Hu6teak91CzzUVOtYs-lWvXDlc,220719
|
1320
|
+
lusid_sdk-2.1.806.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
1321
|
+
lusid_sdk-2.1.806.dist-info/RECORD,,
|
File without changes
|