lusid-sdk 2.1.688__py3-none-any.whl → 2.1.690__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/api/funds_api.py CHANGED
@@ -1447,6 +1447,192 @@ class FundsApi:
1447
1447
  collection_formats=_collection_formats,
1448
1448
  _request_auth=_params.get('_request_auth'))
1449
1449
 
1450
+ @overload
1451
+ async def get_fee_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to get the properties for.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fee's properties. 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 Fee's properties. Defaults to return the latest version of each property if not specified.")] = None, **kwargs) -> FeeProperties: # noqa: E501
1452
+ ...
1453
+
1454
+ @overload
1455
+ def get_fee_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to get the properties for.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fee's properties. 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 Fee's properties. Defaults to return the latest version of each property if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> FeeProperties: # noqa: E501
1456
+ ...
1457
+
1458
+ @validate_arguments
1459
+ def get_fee_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to get the properties for.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fee's properties. 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 Fee's properties. Defaults to return the latest version of each property if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[FeeProperties, Awaitable[FeeProperties]]: # noqa: E501
1460
+ """[EXPERIMENTAL] GetFeeProperties: Get Fee properties # noqa: E501
1461
+
1462
+ Get all the properties of a single fee. # noqa: E501
1463
+ This method makes a synchronous HTTP request by default. To make an
1464
+ asynchronous HTTP request, please pass async_req=True
1465
+
1466
+ >>> thread = api.get_fee_properties(scope, code, fee_code, effective_at, as_at, async_req=True)
1467
+ >>> result = thread.get()
1468
+
1469
+ :param scope: The scope of the Fund. (required)
1470
+ :type scope: str
1471
+ :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
1472
+ :type code: str
1473
+ :param fee_code: The code of the Fee to get the properties for. (required)
1474
+ :type fee_code: str
1475
+ :param effective_at: The effective datetime or cut label at which to list the Fee's properties. Defaults to the current LUSID system datetime if not specified.
1476
+ :type effective_at: str
1477
+ :param as_at: The asAt datetime at which to list the Fee's properties. Defaults to return the latest version of each property if not specified.
1478
+ :type as_at: datetime
1479
+ :param async_req: Whether to execute the request asynchronously.
1480
+ :type async_req: bool, optional
1481
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1482
+ :param opts: Configuration options for this request
1483
+ :type opts: ConfigurationOptions, optional
1484
+ :return: Returns the result object.
1485
+ If the method is called asynchronously,
1486
+ returns the request thread.
1487
+ :rtype: FeeProperties
1488
+ """
1489
+ kwargs['_return_http_data_only'] = True
1490
+ if '_preload_content' in kwargs:
1491
+ message = "Error! Please call the get_fee_properties_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
1492
+ raise ValueError(message)
1493
+ if async_req is not None:
1494
+ kwargs['async_req'] = async_req
1495
+ return self.get_fee_properties_with_http_info(scope, code, fee_code, effective_at, as_at, **kwargs) # noqa: E501
1496
+
1497
+ @validate_arguments
1498
+ def get_fee_properties_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to get the properties for.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fee's properties. 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 Fee's properties. Defaults to return the latest version of each property if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
1499
+ """[EXPERIMENTAL] GetFeeProperties: Get Fee properties # noqa: E501
1500
+
1501
+ Get all the properties of a single fee. # noqa: E501
1502
+ This method makes a synchronous HTTP request by default. To make an
1503
+ asynchronous HTTP request, please pass async_req=True
1504
+
1505
+ >>> thread = api.get_fee_properties_with_http_info(scope, code, fee_code, effective_at, as_at, async_req=True)
1506
+ >>> result = thread.get()
1507
+
1508
+ :param scope: The scope of the Fund. (required)
1509
+ :type scope: str
1510
+ :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
1511
+ :type code: str
1512
+ :param fee_code: The code of the Fee to get the properties for. (required)
1513
+ :type fee_code: str
1514
+ :param effective_at: The effective datetime or cut label at which to list the Fee's properties. Defaults to the current LUSID system datetime if not specified.
1515
+ :type effective_at: str
1516
+ :param as_at: The asAt datetime at which to list the Fee's properties. Defaults to return the latest version of each property if not specified.
1517
+ :type as_at: datetime
1518
+ :param async_req: Whether to execute the request asynchronously.
1519
+ :type async_req: bool, optional
1520
+ :param _preload_content: if False, the ApiResponse.data will
1521
+ be set to none and raw_data will store the
1522
+ HTTP response body without reading/decoding.
1523
+ Default is True.
1524
+ :type _preload_content: bool, optional
1525
+ :param _return_http_data_only: response data instead of ApiResponse
1526
+ object with status code, headers, etc
1527
+ :type _return_http_data_only: bool, optional
1528
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1529
+ :param opts: Configuration options for this request
1530
+ :type opts: ConfigurationOptions, optional
1531
+ :param _request_auth: set to override the auth_settings for an a single
1532
+ request; this effectively ignores the authentication
1533
+ in the spec for a single request.
1534
+ :type _request_auth: dict, optional
1535
+ :type _content_type: string, optional: force content-type for the request
1536
+ :return: Returns the result object.
1537
+ If the method is called asynchronously,
1538
+ returns the request thread.
1539
+ :rtype: tuple(FeeProperties, status_code(int), headers(HTTPHeaderDict))
1540
+ """
1541
+
1542
+ _params = locals()
1543
+
1544
+ _all_params = [
1545
+ 'scope',
1546
+ 'code',
1547
+ 'fee_code',
1548
+ 'effective_at',
1549
+ 'as_at'
1550
+ ]
1551
+ _all_params.extend(
1552
+ [
1553
+ 'async_req',
1554
+ '_return_http_data_only',
1555
+ '_preload_content',
1556
+ '_request_timeout',
1557
+ '_request_auth',
1558
+ '_content_type',
1559
+ '_headers',
1560
+ 'opts'
1561
+ ]
1562
+ )
1563
+
1564
+ # validate the arguments
1565
+ for _key, _val in _params['kwargs'].items():
1566
+ if _key not in _all_params:
1567
+ raise ApiTypeError(
1568
+ "Got an unexpected keyword argument '%s'"
1569
+ " to method get_fee_properties" % _key
1570
+ )
1571
+ _params[_key] = _val
1572
+ del _params['kwargs']
1573
+
1574
+ _collection_formats = {}
1575
+
1576
+ # process the path parameters
1577
+ _path_params = {}
1578
+ if _params['scope']:
1579
+ _path_params['scope'] = _params['scope']
1580
+
1581
+ if _params['code']:
1582
+ _path_params['code'] = _params['code']
1583
+
1584
+ if _params['fee_code']:
1585
+ _path_params['feeCode'] = _params['fee_code']
1586
+
1587
+
1588
+ # process the query parameters
1589
+ _query_params = []
1590
+ if _params.get('effective_at') is not None: # noqa: E501
1591
+ _query_params.append(('effectiveAt', _params['effective_at']))
1592
+
1593
+ if _params.get('as_at') is not None: # noqa: E501
1594
+ if isinstance(_params['as_at'], datetime):
1595
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
1596
+ else:
1597
+ _query_params.append(('asAt', _params['as_at']))
1598
+
1599
+ # process the header parameters
1600
+ _header_params = dict(_params.get('_headers', {}))
1601
+ # process the form parameters
1602
+ _form_params = []
1603
+ _files = {}
1604
+ # process the body parameter
1605
+ _body_params = None
1606
+ # set the HTTP header `Accept`
1607
+ _header_params['Accept'] = self.api_client.select_header_accept(
1608
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
1609
+
1610
+ # authentication setting
1611
+ _auth_settings = ['oauth2'] # noqa: E501
1612
+
1613
+ _response_types_map = {
1614
+ '200': "FeeProperties",
1615
+ '400': "LusidValidationProblemDetails",
1616
+ }
1617
+
1618
+ return self.api_client.call_api(
1619
+ '/api/funds/{scope}/{code}/fees/{feeCode}/properties', 'GET',
1620
+ _path_params,
1621
+ _query_params,
1622
+ _header_params,
1623
+ body=_body_params,
1624
+ post_params=_form_params,
1625
+ files=_files,
1626
+ response_types_map=_response_types_map,
1627
+ auth_settings=_auth_settings,
1628
+ async_req=_params.get('async_req'),
1629
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
1630
+ _preload_content=_params.get('_preload_content', True),
1631
+ _request_timeout=_params.get('_request_timeout'),
1632
+ opts=_params.get('opts'),
1633
+ collection_formats=_collection_formats,
1634
+ _request_auth=_params.get('_request_auth'))
1635
+
1450
1636
  @overload
1451
1637
  async def get_fund(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the Fund properties. Defaults to the current LUSID system datetime if not specified.")] = None, 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, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Fund' domain to decorate onto the Fund. These must take the format {domain}/{scope}/{code}, for example 'Fund/Manager/Id'. If no properties are specified, then no properties will be returned.")] = None, **kwargs) -> Fund: # noqa: E501
1452
1638
  ...
@@ -1634,6 +1820,184 @@ class FundsApi:
1634
1820
  collection_formats=_collection_formats,
1635
1821
  _request_auth=_params.get('_request_auth'))
1636
1822
 
1823
+ @overload
1824
+ async def get_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to list the properties for.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to list the properties for. Together with the scope this uniquely identifies the Fund.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fund's properties. 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 Fund's properties. Defaults to return the latest version of each property if not specified.")] = None, **kwargs) -> FundProperties: # noqa: E501
1825
+ ...
1826
+
1827
+ @overload
1828
+ def get_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to list the properties for.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to list the properties for. Together with the scope this uniquely identifies the Fund.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fund's properties. 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 Fund's properties. Defaults to return the latest version of each property if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> FundProperties: # noqa: E501
1829
+ ...
1830
+
1831
+ @validate_arguments
1832
+ def get_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to list the properties for.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to list the properties for. Together with the scope this uniquely identifies the Fund.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fund's properties. 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 Fund's properties. Defaults to return the latest version of each property if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[FundProperties, Awaitable[FundProperties]]: # noqa: E501
1833
+ """[EXPERIMENTAL] GetFundProperties: Get Fund properties # noqa: E501
1834
+
1835
+ Get all the properties of a single fund. # noqa: E501
1836
+ This method makes a synchronous HTTP request by default. To make an
1837
+ asynchronous HTTP request, please pass async_req=True
1838
+
1839
+ >>> thread = api.get_fund_properties(scope, code, effective_at, as_at, async_req=True)
1840
+ >>> result = thread.get()
1841
+
1842
+ :param scope: The scope of the Fund to list the properties for. (required)
1843
+ :type scope: str
1844
+ :param code: The code of the Fund to list the properties for. Together with the scope this uniquely identifies the Fund. (required)
1845
+ :type code: str
1846
+ :param effective_at: The effective datetime or cut label at which to list the Fund's properties. Defaults to the current LUSID system datetime if not specified.
1847
+ :type effective_at: str
1848
+ :param as_at: The asAt datetime at which to list the Fund's properties. Defaults to return the latest version of each property if not specified.
1849
+ :type as_at: datetime
1850
+ :param async_req: Whether to execute the request asynchronously.
1851
+ :type async_req: bool, optional
1852
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1853
+ :param opts: Configuration options for this request
1854
+ :type opts: ConfigurationOptions, optional
1855
+ :return: Returns the result object.
1856
+ If the method is called asynchronously,
1857
+ returns the request thread.
1858
+ :rtype: FundProperties
1859
+ """
1860
+ kwargs['_return_http_data_only'] = True
1861
+ if '_preload_content' in kwargs:
1862
+ message = "Error! Please call the get_fund_properties_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
1863
+ raise ValueError(message)
1864
+ if async_req is not None:
1865
+ kwargs['async_req'] = async_req
1866
+ return self.get_fund_properties_with_http_info(scope, code, effective_at, as_at, **kwargs) # noqa: E501
1867
+
1868
+ @validate_arguments
1869
+ def get_fund_properties_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to list the properties for.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to list the properties for. Together with the scope this uniquely identifies the Fund.")], effective_at : Annotated[Optional[constr(strict=True, max_length=256, min_length=0)], Field(description="The effective datetime or cut label at which to list the Fund's properties. 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 Fund's properties. Defaults to return the latest version of each property if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
1870
+ """[EXPERIMENTAL] GetFundProperties: Get Fund properties # noqa: E501
1871
+
1872
+ Get all the properties of a single fund. # noqa: E501
1873
+ This method makes a synchronous HTTP request by default. To make an
1874
+ asynchronous HTTP request, please pass async_req=True
1875
+
1876
+ >>> thread = api.get_fund_properties_with_http_info(scope, code, effective_at, as_at, async_req=True)
1877
+ >>> result = thread.get()
1878
+
1879
+ :param scope: The scope of the Fund to list the properties for. (required)
1880
+ :type scope: str
1881
+ :param code: The code of the Fund to list the properties for. Together with the scope this uniquely identifies the Fund. (required)
1882
+ :type code: str
1883
+ :param effective_at: The effective datetime or cut label at which to list the Fund's properties. Defaults to the current LUSID system datetime if not specified.
1884
+ :type effective_at: str
1885
+ :param as_at: The asAt datetime at which to list the Fund's properties. Defaults to return the latest version of each property if not specified.
1886
+ :type as_at: datetime
1887
+ :param async_req: Whether to execute the request asynchronously.
1888
+ :type async_req: bool, optional
1889
+ :param _preload_content: if False, the ApiResponse.data will
1890
+ be set to none and raw_data will store the
1891
+ HTTP response body without reading/decoding.
1892
+ Default is True.
1893
+ :type _preload_content: bool, optional
1894
+ :param _return_http_data_only: response data instead of ApiResponse
1895
+ object with status code, headers, etc
1896
+ :type _return_http_data_only: bool, optional
1897
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1898
+ :param opts: Configuration options for this request
1899
+ :type opts: ConfigurationOptions, optional
1900
+ :param _request_auth: set to override the auth_settings for an a single
1901
+ request; this effectively ignores the authentication
1902
+ in the spec for a single request.
1903
+ :type _request_auth: dict, optional
1904
+ :type _content_type: string, optional: force content-type for the request
1905
+ :return: Returns the result object.
1906
+ If the method is called asynchronously,
1907
+ returns the request thread.
1908
+ :rtype: tuple(FundProperties, status_code(int), headers(HTTPHeaderDict))
1909
+ """
1910
+
1911
+ _params = locals()
1912
+
1913
+ _all_params = [
1914
+ 'scope',
1915
+ 'code',
1916
+ 'effective_at',
1917
+ 'as_at'
1918
+ ]
1919
+ _all_params.extend(
1920
+ [
1921
+ 'async_req',
1922
+ '_return_http_data_only',
1923
+ '_preload_content',
1924
+ '_request_timeout',
1925
+ '_request_auth',
1926
+ '_content_type',
1927
+ '_headers',
1928
+ 'opts'
1929
+ ]
1930
+ )
1931
+
1932
+ # validate the arguments
1933
+ for _key, _val in _params['kwargs'].items():
1934
+ if _key not in _all_params:
1935
+ raise ApiTypeError(
1936
+ "Got an unexpected keyword argument '%s'"
1937
+ " to method get_fund_properties" % _key
1938
+ )
1939
+ _params[_key] = _val
1940
+ del _params['kwargs']
1941
+
1942
+ _collection_formats = {}
1943
+
1944
+ # process the path parameters
1945
+ _path_params = {}
1946
+ if _params['scope']:
1947
+ _path_params['scope'] = _params['scope']
1948
+
1949
+ if _params['code']:
1950
+ _path_params['code'] = _params['code']
1951
+
1952
+
1953
+ # process the query parameters
1954
+ _query_params = []
1955
+ if _params.get('effective_at') is not None: # noqa: E501
1956
+ _query_params.append(('effectiveAt', _params['effective_at']))
1957
+
1958
+ if _params.get('as_at') is not None: # noqa: E501
1959
+ if isinstance(_params['as_at'], datetime):
1960
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
1961
+ else:
1962
+ _query_params.append(('asAt', _params['as_at']))
1963
+
1964
+ # process the header parameters
1965
+ _header_params = dict(_params.get('_headers', {}))
1966
+ # process the form parameters
1967
+ _form_params = []
1968
+ _files = {}
1969
+ # process the body parameter
1970
+ _body_params = None
1971
+ # set the HTTP header `Accept`
1972
+ _header_params['Accept'] = self.api_client.select_header_accept(
1973
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
1974
+
1975
+ # authentication setting
1976
+ _auth_settings = ['oauth2'] # noqa: E501
1977
+
1978
+ _response_types_map = {
1979
+ '200': "FundProperties",
1980
+ '400': "LusidValidationProblemDetails",
1981
+ }
1982
+
1983
+ return self.api_client.call_api(
1984
+ '/api/funds/{scope}/{code}/properties', 'GET',
1985
+ _path_params,
1986
+ _query_params,
1987
+ _header_params,
1988
+ body=_body_params,
1989
+ post_params=_form_params,
1990
+ files=_files,
1991
+ response_types_map=_response_types_map,
1992
+ auth_settings=_auth_settings,
1993
+ async_req=_params.get('async_req'),
1994
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
1995
+ _preload_content=_params.get('_preload_content', True),
1996
+ _request_timeout=_params.get('_request_timeout'),
1997
+ opts=_params.get('opts'),
1998
+ collection_formats=_collection_formats,
1999
+ _request_auth=_params.get('_request_auth'))
2000
+
1637
2001
  @overload
1638
2002
  async def get_valuation_point_data(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), 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, **kwargs) -> ValuationPointDataResponse: # noqa: E501
1639
2003
  ...
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.7329\n"\
448
+ "Version of the API: 0.11.7336\n"\
449
449
  "SDK Package Version: {package_version}".\
450
450
  format(env=sys.platform, pyversion=sys.version, package_version=package_version)
451
451
 
@@ -28,17 +28,18 @@ class ContractForDifference(LusidInstrument):
28
28
  """
29
29
  start_date: datetime = Field(..., alias="startDate", description="The start date of the CFD.")
30
30
  maturity_date: Optional[datetime] = Field(None, alias="maturityDate", description="The maturity date for the CFD. If CFDType is Futures, this should be set to be the maturity date of the underlying future. If CFDType is Cash, this should not be set.")
31
- code: constr(strict=True, min_length=1) = Field(..., description="The code of the underlying.")
31
+ code: Optional[StrictStr] = Field(None, description="The code of the underlying.")
32
32
  contract_size: Union[StrictFloat, StrictInt] = Field(..., alias="contractSize", description="The size of the CFD contract, this should represent the total number of stocks that the CFD represents.")
33
33
  pay_ccy: StrictStr = Field(..., alias="payCcy", description="The currency that this CFD pays out, this can be different to the UnderlyingCcy.")
34
34
  reference_rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="referenceRate", description="The reference rate of the CFD, this can be set to 0 but not negative values. This field is optional, if not set it will default to 0.")
35
35
  type: constr(strict=True, min_length=1) = Field(..., description="The type of CFD. Supported string (enumeration) values are: [Cash, Futures].")
36
- underlying_ccy: StrictStr = Field(..., alias="underlyingCcy", description="The currency of the underlying")
37
- underlying_identifier: constr(strict=True, min_length=1) = Field(..., alias="underlyingIdentifier", description="External market codes and identifiers for the CFD, e.g. RIC. Supported string (enumeration) values are: [LusidInstrumentId, Isin, Sedol, Cusip, ClientInternal, Figi, RIC, QuotePermId, REDCode, BBGId, ICECode].")
36
+ underlying_ccy: Optional[StrictStr] = Field(None, alias="underlyingCcy", description="The currency of the underlying")
37
+ underlying_identifier: Optional[StrictStr] = Field(None, alias="underlyingIdentifier", description="External market codes and identifiers for the CFD, e.g. RIC. Supported string (enumeration) values are: [LusidInstrumentId, Isin, Sedol, Cusip, ClientInternal, Figi, RIC, QuotePermId, REDCode, BBGId, ICECode].")
38
38
  lot_size: Optional[StrictInt] = Field(None, alias="lotSize", description="CFD LotSize, the minimum number of shares that can be bought or sold at once. Optional, if set must be non-negative, if not set defaults to 1.")
39
+ underlying: Optional[LusidInstrument] = None
39
40
  instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
40
41
  additional_properties: Dict[str, Any] = {}
41
- __properties = ["instrumentType", "startDate", "maturityDate", "code", "contractSize", "payCcy", "referenceRate", "type", "underlyingCcy", "underlyingIdentifier", "lotSize"]
42
+ __properties = ["instrumentType", "startDate", "maturityDate", "code", "contractSize", "payCcy", "referenceRate", "type", "underlyingCcy", "underlyingIdentifier", "lotSize", "underlying"]
42
43
 
43
44
  @validator('instrument_type')
44
45
  def instrument_type_validate_enum(cls, value):
@@ -80,11 +81,29 @@ class ContractForDifference(LusidInstrument):
80
81
  "additional_properties"
81
82
  },
82
83
  exclude_none=True)
84
+ # override the default output from pydantic by calling `to_dict()` of underlying
85
+ if self.underlying:
86
+ _dict['underlying'] = self.underlying.to_dict()
83
87
  # puts key-value pairs in additional_properties in the top level
84
88
  if self.additional_properties is not None:
85
89
  for _key, _value in self.additional_properties.items():
86
90
  _dict[_key] = _value
87
91
 
92
+ # set to None if code (nullable) is None
93
+ # and __fields_set__ contains the field
94
+ if self.code is None and "code" in self.__fields_set__:
95
+ _dict['code'] = None
96
+
97
+ # set to None if underlying_ccy (nullable) is None
98
+ # and __fields_set__ contains the field
99
+ if self.underlying_ccy is None and "underlying_ccy" in self.__fields_set__:
100
+ _dict['underlyingCcy'] = None
101
+
102
+ # set to None if underlying_identifier (nullable) is None
103
+ # and __fields_set__ contains the field
104
+ if self.underlying_identifier is None and "underlying_identifier" in self.__fields_set__:
105
+ _dict['underlyingIdentifier'] = None
106
+
88
107
  return _dict
89
108
 
90
109
  @classmethod
@@ -107,7 +126,8 @@ class ContractForDifference(LusidInstrument):
107
126
  "type": obj.get("type"),
108
127
  "underlying_ccy": obj.get("underlyingCcy"),
109
128
  "underlying_identifier": obj.get("underlyingIdentifier"),
110
- "lot_size": obj.get("lotSize")
129
+ "lot_size": obj.get("lotSize"),
130
+ "underlying": LusidInstrument.from_dict(obj.get("underlying")) if obj.get("underlying") is not None else None
111
131
  })
112
132
  # store additional fields in additional_properties
113
133
  for _key in obj.keys():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.688
3
+ Version: 2.1.690
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -37,6 +37,7 @@ Class | Method | HTTP request | Description
37
37
  *AborApi* | [**create_abor**](docs/AborApi.md#create_abor) | **POST** /api/abor/{scope} | [EXPERIMENTAL] CreateAbor: Create an Abor.
38
38
  *AborApi* | [**delete_abor**](docs/AborApi.md#delete_abor) | **DELETE** /api/abor/{scope}/{code} | [EXPERIMENTAL] DeleteAbor: Delete an Abor.
39
39
  *AborApi* | [**get_abor**](docs/AborApi.md#get_abor) | **GET** /api/abor/{scope}/{code} | [EXPERIMENTAL] GetAbor: Get Abor.
40
+ *AborApi* | [**get_abor_properties**](docs/AborApi.md#get_abor_properties) | **GET** /api/abor/{scope}/{code}/properties | [EXPERIMENTAL] GetAborProperties: Get Abor properties
40
41
  *AborApi* | [**get_journal_entry_lines**](docs/AborApi.md#get_journal_entry_lines) | **POST** /api/abor/{scope}/{code}/journalentrylines/$query | [EXPERIMENTAL] GetJournalEntryLines: Get the Journal Entry lines for the given Abor.
41
42
  *AborApi* | [**get_trial_balance**](docs/AborApi.md#get_trial_balance) | **POST** /api/abor/{scope}/{code}/trialbalance/$query | [EXPERIMENTAL] GetTrialBalance: Get the Trial Balance for the given Abor.
42
43
  *AborApi* | [**list_abors**](docs/AborApi.md#list_abors) | **GET** /api/abor | [EXPERIMENTAL] ListAbors: List Abors.
@@ -48,6 +49,7 @@ Class | Method | HTTP request | Description
48
49
  *AborConfigurationApi* | [**create_abor_configuration**](docs/AborConfigurationApi.md#create_abor_configuration) | **POST** /api/aborconfiguration/{scope} | [EXPERIMENTAL] CreateAborConfiguration: Create an AborConfiguration.
49
50
  *AborConfigurationApi* | [**delete_abor_configuration**](docs/AborConfigurationApi.md#delete_abor_configuration) | **DELETE** /api/aborconfiguration/{scope}/{code} | [EXPERIMENTAL] DeleteAborConfiguration: Delete an AborConfiguration.
50
51
  *AborConfigurationApi* | [**get_abor_configuration**](docs/AborConfigurationApi.md#get_abor_configuration) | **GET** /api/aborconfiguration/{scope}/{code} | [EXPERIMENTAL] GetAborConfiguration: Get AborConfiguration.
52
+ *AborConfigurationApi* | [**get_abor_configuration_properties**](docs/AborConfigurationApi.md#get_abor_configuration_properties) | **GET** /api/aborconfiguration/{scope}/{code}/properties | [EXPERIMENTAL] GetAborConfigurationProperties: Get Abor Configuration properties
51
53
  *AborConfigurationApi* | [**list_abor_configurations**](docs/AborConfigurationApi.md#list_abor_configurations) | **GET** /api/aborconfiguration | [EXPERIMENTAL] ListAborConfigurations: List AborConfiguration.
52
54
  *AborConfigurationApi* | [**upsert_abor_configuration_properties**](docs/AborConfigurationApi.md#upsert_abor_configuration_properties) | **POST** /api/aborconfiguration/{scope}/{code}/properties/$upsert | [EXPERIMENTAL] UpsertAborConfigurationProperties: Upsert AborConfiguration properties
53
55
  *AddressKeyDefinitionApi* | [**create_address_key_definition**](docs/AddressKeyDefinitionApi.md#create_address_key_definition) | **POST** /api/addresskeydefinitions | [EARLY ACCESS] CreateAddressKeyDefinition: Create an AddressKeyDefinition.
@@ -98,7 +100,9 @@ Class | Method | HTTP request | Description
98
100
  *ChartOfAccountsApi* | [**delete_general_ledger_profile**](docs/ChartOfAccountsApi.md#delete_general_ledger_profile) | **DELETE** /api/chartofaccounts/{scope}/{code}/generalledgerprofile/{generalLedgerProfileCode} | [EXPERIMENTAL] DeleteGeneralLedgerProfile: Delete a General Ledger Profile.
99
101
  *ChartOfAccountsApi* | [**delete_posting_module**](docs/ChartOfAccountsApi.md#delete_posting_module) | **DELETE** /api/chartofaccounts/{scope}/{code}/postingmodules/{postingModuleCode} | [EXPERIMENTAL] DeletePostingModule: Delete a Posting Module.
100
102
  *ChartOfAccountsApi* | [**get_account**](docs/ChartOfAccountsApi.md#get_account) | **GET** /api/chartofaccounts/{scope}/{code}/accounts/{accountCode} | [EXPERIMENTAL] GetAccount: Get Account
103
+ *ChartOfAccountsApi* | [**get_account_properties**](docs/ChartOfAccountsApi.md#get_account_properties) | **GET** /api/chartofaccounts/{scope}/{code}/accounts/{accountCode}/properties | [EXPERIMENTAL] GetAccountProperties: Get Account properties
101
104
  *ChartOfAccountsApi* | [**get_chart_of_accounts**](docs/ChartOfAccountsApi.md#get_chart_of_accounts) | **GET** /api/chartofaccounts/{scope}/{code} | [EXPERIMENTAL] GetChartOfAccounts: Get ChartOfAccounts
105
+ *ChartOfAccountsApi* | [**get_chart_of_accounts_properties**](docs/ChartOfAccountsApi.md#get_chart_of_accounts_properties) | **GET** /api/chartofaccounts/{scope}/{code}/properties | [EXPERIMENTAL] GetChartOfAccountsProperties: Get chart of accounts properties
102
106
  *ChartOfAccountsApi* | [**get_cleardown_module**](docs/ChartOfAccountsApi.md#get_cleardown_module) | **GET** /api/chartofaccounts/{scope}/{code}/cleardownmodules/{cleardownModuleCode} | [EXPERIMENTAL] GetCleardownModule: Get a Cleardown Module
103
107
  *ChartOfAccountsApi* | [**get_general_ledger_profile**](docs/ChartOfAccountsApi.md#get_general_ledger_profile) | **GET** /api/chartofaccounts/{scope}/{code}/generalledgerprofile/{generalLedgerProfileCode} | [EXPERIMENTAL] GetGeneralLedgerProfile: Get a General Ledger Profile.
104
108
  *ChartOfAccountsApi* | [**get_posting_module**](docs/ChartOfAccountsApi.md#get_posting_module) | **GET** /api/chartofaccounts/{scope}/{code}/postingmodules/{postingModuleCode} | [EXPERIMENTAL] GetPostingModule: Get a Posting Module
@@ -251,7 +255,9 @@ Class | Method | HTTP request | Description
251
255
  *FundsApi* | [**delete_valuation_point**](docs/FundsApi.md#delete_valuation_point) | **DELETE** /api/funds/{scope}/{code}/valuationpoints/{diaryEntryCode} | [EXPERIMENTAL] DeleteValuationPoint: Delete a Valuation Point.
252
256
  *FundsApi* | [**finalise_candidate_valuation_point**](docs/FundsApi.md#finalise_candidate_valuation_point) | **POST** /api/funds/{scope}/{code}/valuationpoints/$finalisecandidate | [EXPERIMENTAL] FinaliseCandidateValuationPoint: Finalise Candidate.
253
257
  *FundsApi* | [**get_fee**](docs/FundsApi.md#get_fee) | **GET** /api/funds/{scope}/{code}/fees/{feeCode} | [EXPERIMENTAL] GetFee: Get a Fee for a specified Fund.
258
+ *FundsApi* | [**get_fee_properties**](docs/FundsApi.md#get_fee_properties) | **GET** /api/funds/{scope}/{code}/fees/{feeCode}/properties | [EXPERIMENTAL] GetFeeProperties: Get Fee properties
254
259
  *FundsApi* | [**get_fund**](docs/FundsApi.md#get_fund) | **GET** /api/funds/{scope}/{code} | [EXPERIMENTAL] GetFund: Get a Fund.
260
+ *FundsApi* | [**get_fund_properties**](docs/FundsApi.md#get_fund_properties) | **GET** /api/funds/{scope}/{code}/properties | [EXPERIMENTAL] GetFundProperties: Get Fund properties
255
261
  *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.
256
262
  *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.
257
263
  *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.
@@ -1,7 +1,7 @@
1
1
  lusid/__init__.py,sha256=eOknP-R5hkEbZppuu1ztuE_bV1Pdf-Gde9Bb20qK6bo,133015
2
2
  lusid/api/__init__.py,sha256=pATuTM6KK6IPwwgXVSv9i7ZvYP_83M05KWcVXkRn7sI,6098
3
- lusid/api/abor_api.py,sha256=eC0xjrZEL_e7JZdwjpmjVG4GMQWAGJEv4w-2UngvYUk,159896
4
- lusid/api/abor_configuration_api.py,sha256=TmssMn5ni0mZV1q7LyPXYhBqqUGJqLYZapo8By8DFuI,63875
3
+ lusid/api/abor_api.py,sha256=6bAhCnwf45obpEc3fKa6mt4GzpJsZOh4Ir45I55kBmw,171300
4
+ lusid/api/abor_configuration_api.py,sha256=ug36aCVNswcZuRZXSNl1rq9yDrceobDdbVio8EG3oPQ,76011
5
5
  lusid/api/address_key_definition_api.py,sha256=jlvpmsmvVedaMNr1sRMNj2Kj4qArNtZxXKXD0DvRUwM,31574
6
6
  lusid/api/aggregation_api.py,sha256=Hbupc46i7zS4nLAhiWZMU7gQAowBlP__iSotN2zu_Xo,38361
7
7
  lusid/api/allocations_api.py,sha256=cEmQvvj9PXScFVrs0OMTVQudWox2nnCtkcGt8gxUevA,49676
@@ -9,7 +9,7 @@ lusid/api/amortisation_rule_sets_api.py,sha256=rosYmmIQ0yP8J7abpajgTjgzN_SeVHs5S
9
9
  lusid/api/application_metadata_api.py,sha256=skiafuG8JPJIsW2aRw3D7ac9ziZw_vQAhXxQvXsisic,23158
10
10
  lusid/api/blocks_api.py,sha256=j4Y5TKivIjreHtkd3Pd8WIb4m6soFn6fYX-nxn9OdYg,43417
11
11
  lusid/api/calendars_api.py,sha256=pZMIyoFYILXfZOy9Zw1Ku5RL7HG97ZL7PQ4N090G2CM,146252
12
- lusid/api/chart_of_accounts_api.py,sha256=pE2JnPMtqAEAnWGzEHlYrwREn_Z4ng8b8J1flO00EDU,394989
12
+ lusid/api/chart_of_accounts_api.py,sha256=FP1kUDheaxopbho3jQfuxspEtkh1X72hpEz_8fqsi6A,420021
13
13
  lusid/api/complex_market_data_api.py,sha256=iDnEgT_3z_39GiCbAyYDj_pNSvW8eAG29VsBpiagjF0,48446
14
14
  lusid/api/compliance_api.py,sha256=VmPXNuTSFqgD_JxQlA90JzlauKbgGiyvUtaAGCtT6j8,152467
15
15
  lusid/api/configuration_recipe_api.py,sha256=woCaSCpu4h2LgKo1-OyQWyusrOTh8HOHDqzfkAuFPQI,101279
@@ -27,7 +27,7 @@ lusid/api/entities_api.py,sha256=XdpvE-nPjD7LjkMYAnCynBpqX_R5p8lJk4OVKSe-4ks,855
27
27
  lusid/api/executions_api.py,sha256=QW6_mT0rsZTiW1R5tG-_fa-UT6khiMYfHsnapbzlVmo,44263
28
28
  lusid/api/fee_types_api.py,sha256=vcDM_7QOAX0LjNz5Wr7lTV_LVYtrmhZ8-59-ZRjL2Sg,55933
29
29
  lusid/api/fund_configuration_api.py,sha256=sItl8nbm7PsJYVZYMLWKtGQG80y_y6LP7D_r6NjxbOc,74272
30
- lusid/api/funds_api.py,sha256=mfBk5JwbW1NHjrHR3q6SCdas2R7vDe4s-hrnbQcLhF0,299739
30
+ lusid/api/funds_api.py,sha256=0vAiyCxrTql2FH43qRDU_Kbt14OY2UGWuYC2VEbEg9E,323157
31
31
  lusid/api/group_reconciliations_api.py,sha256=0zuSvNM9c61ZhzdxSCVen_y3-y9gPeykflxgNzv9-8U,167598
32
32
  lusid/api/instrument_event_types_api.py,sha256=uqt9YusZzm6sDSxxT7HgC_QSZre1qTblR9N_EHBeB0Q,81296
33
33
  lusid/api/instrument_events_api.py,sha256=L4zPiecVr3UBwnKXAtbTGMVWPv3yeS9VSSSaBWQx-XM,58350
@@ -73,7 +73,7 @@ lusid/api/translation_api.py,sha256=nIyuLncCvVC5k2d7Nm32zR8AQ1dkrVm1OThkmELY_OM,
73
73
  lusid/api/workspace_api.py,sha256=Yox1q7TDY-_O3HF-N8g5kGuNgp4unWvlSZmRZ6MNZO0,196701
74
74
  lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
75
75
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
76
- lusid/configuration.py,sha256=5jdrT-l1XDO-paGl8E0QtA625D1SDV0Iffzu2b7y4zA,17972
76
+ lusid/configuration.py,sha256=t65dLiR9-T82XztJcIrksV7mwxOlPSAMqk3w2rrv64o,17972
77
77
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
78
78
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
79
79
  lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
@@ -289,7 +289,7 @@ lusid/models/configuration_recipe.py,sha256=uBtKpMN-BmfaYJ6wFgp-5P-XI9Txc-QrAsr1
289
289
  lusid/models/constant_volatility_surface.py,sha256=hyAp1s8ybaJ3lqKcCO4BZNQSPMiR0-HttLo84-UzJHY,5391
290
290
  lusid/models/constituents_adjustment_header.py,sha256=gcvQs8cFUvwTaOmqhM52iv5OdSJVRWrnLb4pv2w7Fvw,3446
291
291
  lusid/models/contract_details.py,sha256=MmbdRJjxDhgE7W4iJJCOFK3U3vU2hwMQeyXRN7emOhE,4381
292
- lusid/models/contract_for_difference.py,sha256=c5-JQrfgsMHbxLxB2nLqrj_QG_1WHb6VYQn_dJWG1Y8,7661
292
+ lusid/models/contract_for_difference.py,sha256=dd4P5eiQk6rqnbM-K6-nbb3amXmj9YBfybql5pQJF8w,8700
293
293
  lusid/models/contract_initialisation_event.py,sha256=GOKm5VOfX_0v9CICLD6lGPzjZzC1I8X0z-aC3AfT36c,7637
294
294
  lusid/models/contribution_to_non_passing_rule_detail.py,sha256=R1SRTCcVkjKFQgNrzBlE6nYBtJ1aEbRyJSzgPp95YSw,3769
295
295
  lusid/models/corporate_action.py,sha256=HIHj_MpVmGdxuLC53LxLILT7_AnRbQnMYbleZ71uQA8,4364
@@ -1268,6 +1268,6 @@ lusid/models/workspace_update_request.py,sha256=5N7j21uF9XV75Sl3oJbsSOKT5PrQEx3y
1268
1268
  lusid/models/yield_curve_data.py,sha256=vtOzY4t2lgHJUWcna9dEKnuZ_tinolyb8IAFPB23DZ0,6543
1269
1269
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1270
1270
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1271
- lusid_sdk-2.1.688.dist-info/METADATA,sha256=cnfizqaoZDr9r9_tSsVnNVCQO5f-mnj30PinAn1GEUw,216264
1272
- lusid_sdk-2.1.688.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1273
- lusid_sdk-2.1.688.dist-info/RECORD,,
1271
+ lusid_sdk-2.1.690.dist-info/METADATA,sha256=TPMDVY0R93s8L7O98eUsVBonZxfFCHwJ10XFQ-WCd2E,217588
1272
+ lusid_sdk-2.1.690.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1273
+ lusid_sdk-2.1.690.dist-info/RECORD,,