lusid-sdk 2.1.621__py3-none-any.whl → 2.1.623__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 CHANGED
@@ -114,6 +114,7 @@ from lusid.models.access_metadata_operation import AccessMetadataOperation
114
114
  from lusid.models.access_metadata_value import AccessMetadataValue
115
115
  from lusid.models.account import Account
116
116
  from lusid.models.account_properties import AccountProperties
117
+ from lusid.models.accounted_transaction import AccountedTransaction
117
118
  from lusid.models.accounting_method import AccountingMethod
118
119
  from lusid.models.accounts_upsert_response import AccountsUpsertResponse
119
120
  from lusid.models.accumulation_event import AccumulationEvent
@@ -824,6 +825,7 @@ from lusid.models.portfolio_group_id_list_compliance_parameter import PortfolioG
824
825
  from lusid.models.portfolio_group_properties import PortfolioGroupProperties
825
826
  from lusid.models.portfolio_group_search_result import PortfolioGroupSearchResult
826
827
  from lusid.models.portfolio_holding import PortfolioHolding
828
+ from lusid.models.portfolio_id import PortfolioId
827
829
  from lusid.models.portfolio_id_compliance_parameter import PortfolioIdComplianceParameter
828
830
  from lusid.models.portfolio_id_list import PortfolioIdList
829
831
  from lusid.models.portfolio_id_list_compliance_parameter import PortfolioIdListComplianceParameter
@@ -1223,6 +1225,7 @@ from lusid.models.valuation_point_data_query_parameters import ValuationPointDat
1223
1225
  from lusid.models.valuation_point_data_request import ValuationPointDataRequest
1224
1226
  from lusid.models.valuation_point_data_response import ValuationPointDataResponse
1225
1227
  from lusid.models.valuation_point_overview import ValuationPointOverview
1228
+ from lusid.models.valuation_point_resource_list_of_accounted_transaction import ValuationPointResourceListOfAccountedTransaction
1226
1229
  from lusid.models.valuation_point_resource_list_of_journal_entry_line import ValuationPointResourceListOfJournalEntryLine
1227
1230
  from lusid.models.valuation_point_resource_list_of_pnl_journal_entry_line import ValuationPointResourceListOfPnlJournalEntryLine
1228
1231
  from lusid.models.valuation_point_resource_list_of_trial_balance import ValuationPointResourceListOfTrialBalance
@@ -1361,6 +1364,7 @@ __all__ = [
1361
1364
  "AccessMetadataValue",
1362
1365
  "Account",
1363
1366
  "AccountProperties",
1367
+ "AccountedTransaction",
1364
1368
  "AccountingMethod",
1365
1369
  "AccountsUpsertResponse",
1366
1370
  "AccumulationEvent",
@@ -2071,6 +2075,7 @@ __all__ = [
2071
2075
  "PortfolioGroupProperties",
2072
2076
  "PortfolioGroupSearchResult",
2073
2077
  "PortfolioHolding",
2078
+ "PortfolioId",
2074
2079
  "PortfolioIdComplianceParameter",
2075
2080
  "PortfolioIdList",
2076
2081
  "PortfolioIdListComplianceParameter",
@@ -2470,6 +2475,7 @@ __all__ = [
2470
2475
  "ValuationPointDataRequest",
2471
2476
  "ValuationPointDataResponse",
2472
2477
  "ValuationPointOverview",
2478
+ "ValuationPointResourceListOfAccountedTransaction",
2473
2479
  "ValuationPointResourceListOfJournalEntryLine",
2474
2480
  "ValuationPointResourceListOfPnlJournalEntryLine",
2475
2481
  "ValuationPointResourceListOfTrialBalance",
lusid/api/funds_api.py CHANGED
@@ -45,6 +45,7 @@ from lusid.models.upsert_valuation_point_request import UpsertValuationPointRequ
45
45
  from lusid.models.valuation_point_data_query_parameters import ValuationPointDataQueryParameters
46
46
  from lusid.models.valuation_point_data_request import ValuationPointDataRequest
47
47
  from lusid.models.valuation_point_data_response import ValuationPointDataResponse
48
+ from lusid.models.valuation_point_resource_list_of_accounted_transaction import ValuationPointResourceListOfAccountedTransaction
48
49
  from lusid.models.valuation_point_resource_list_of_journal_entry_line import ValuationPointResourceListOfJournalEntryLine
49
50
  from lusid.models.valuation_point_resource_list_of_pnl_journal_entry_line import ValuationPointResourceListOfPnlJournalEntryLine
50
51
  from lusid.models.valuation_point_resource_list_of_trial_balance import ValuationPointResourceListOfTrialBalance
@@ -2261,6 +2262,224 @@ class FundsApi:
2261
2262
  collection_formats=_collection_formats,
2262
2263
  _request_auth=_params.get('_request_auth'))
2263
2264
 
2265
+ @overload
2266
+ async def get_valuation_point_transactions(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 is creating the unique identifier for the given Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the journal entry lines.")] = None, **kwargs) -> ValuationPointResourceListOfAccountedTransaction: # noqa: E501
2267
+ ...
2268
+
2269
+ @overload
2270
+ def get_valuation_point_transactions(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 is creating the unique identifier for the given Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the journal entry lines.")] = None, async_req: Optional[bool]=True, **kwargs) -> ValuationPointResourceListOfAccountedTransaction: # noqa: E501
2271
+ ...
2272
+
2273
+ @validate_arguments
2274
+ def get_valuation_point_transactions(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 is creating the unique identifier for the given Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the journal entry lines.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ValuationPointResourceListOfAccountedTransaction, Awaitable[ValuationPointResourceListOfAccountedTransaction]]: # noqa: E501
2275
+ """[EXPERIMENTAL] GetValuationPointTransactions: Get the Transactions for the given Fund. # noqa: E501
2276
+
2277
+ Gets the Transactions for the given Valuation Point for a Fund # noqa: E501
2278
+ This method makes a synchronous HTTP request by default. To make an
2279
+ asynchronous HTTP request, please pass async_req=True
2280
+
2281
+ >>> thread = api.get_valuation_point_transactions(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, async_req=True)
2282
+ >>> result = thread.get()
2283
+
2284
+ :param scope: The scope of the Fund. (required)
2285
+ :type scope: str
2286
+ :param code: The code of the Fund. Together with the scope is creating the unique identifier for the given Fund. (required)
2287
+ :type code: str
2288
+ :param valuation_point_data_query_parameters: The arguments to use for querying the transactions. (required)
2289
+ :type valuation_point_data_query_parameters: ValuationPointDataQueryParameters
2290
+ :param as_at: The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.
2291
+ :type as_at: datetime
2292
+ :param filter: Expression to filter the result set.
2293
+ :type filter: str
2294
+ :param limit: When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
2295
+ :type limit: int
2296
+ :param page: The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.
2297
+ :type page: str
2298
+ :param property_keys: A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the journal entry lines.
2299
+ :type property_keys: List[str]
2300
+ :param async_req: Whether to execute the request asynchronously.
2301
+ :type async_req: bool, optional
2302
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
2303
+ :param opts: Configuration options for this request
2304
+ :type opts: ConfigurationOptions, optional
2305
+ :return: Returns the result object.
2306
+ If the method is called asynchronously,
2307
+ returns the request thread.
2308
+ :rtype: ValuationPointResourceListOfAccountedTransaction
2309
+ """
2310
+ kwargs['_return_http_data_only'] = True
2311
+ if '_preload_content' in kwargs:
2312
+ message = "Error! Please call the get_valuation_point_transactions_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
2313
+ raise ValueError(message)
2314
+ if async_req is not None:
2315
+ kwargs['async_req'] = async_req
2316
+ return self.get_valuation_point_transactions_with_http_info(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, **kwargs) # noqa: E501
2317
+
2318
+ @validate_arguments
2319
+ def get_valuation_point_transactions_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 is creating the unique identifier for the given Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the journal entry lines.")] = None, **kwargs) -> ApiResponse: # noqa: E501
2320
+ """[EXPERIMENTAL] GetValuationPointTransactions: Get the Transactions for the given Fund. # noqa: E501
2321
+
2322
+ Gets the Transactions for the given Valuation Point for a Fund # noqa: E501
2323
+ This method makes a synchronous HTTP request by default. To make an
2324
+ asynchronous HTTP request, please pass async_req=True
2325
+
2326
+ >>> thread = api.get_valuation_point_transactions_with_http_info(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, async_req=True)
2327
+ >>> result = thread.get()
2328
+
2329
+ :param scope: The scope of the Fund. (required)
2330
+ :type scope: str
2331
+ :param code: The code of the Fund. Together with the scope is creating the unique identifier for the given Fund. (required)
2332
+ :type code: str
2333
+ :param valuation_point_data_query_parameters: The arguments to use for querying the transactions. (required)
2334
+ :type valuation_point_data_query_parameters: ValuationPointDataQueryParameters
2335
+ :param as_at: The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.
2336
+ :type as_at: datetime
2337
+ :param filter: Expression to filter the result set.
2338
+ :type filter: str
2339
+ :param limit: When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
2340
+ :type limit: int
2341
+ :param page: The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.
2342
+ :type page: str
2343
+ :param property_keys: A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the journal entry lines.
2344
+ :type property_keys: List[str]
2345
+ :param async_req: Whether to execute the request asynchronously.
2346
+ :type async_req: bool, optional
2347
+ :param _preload_content: if False, the ApiResponse.data will
2348
+ be set to none and raw_data will store the
2349
+ HTTP response body without reading/decoding.
2350
+ Default is True.
2351
+ :type _preload_content: bool, optional
2352
+ :param _return_http_data_only: response data instead of ApiResponse
2353
+ object with status code, headers, etc
2354
+ :type _return_http_data_only: bool, optional
2355
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
2356
+ :param opts: Configuration options for this request
2357
+ :type opts: ConfigurationOptions, optional
2358
+ :param _request_auth: set to override the auth_settings for an a single
2359
+ request; this effectively ignores the authentication
2360
+ in the spec for a single request.
2361
+ :type _request_auth: dict, optional
2362
+ :type _content_type: string, optional: force content-type for the request
2363
+ :return: Returns the result object.
2364
+ If the method is called asynchronously,
2365
+ returns the request thread.
2366
+ :rtype: tuple(ValuationPointResourceListOfAccountedTransaction, status_code(int), headers(HTTPHeaderDict))
2367
+ """
2368
+
2369
+ _params = locals()
2370
+
2371
+ _all_params = [
2372
+ 'scope',
2373
+ 'code',
2374
+ 'valuation_point_data_query_parameters',
2375
+ 'as_at',
2376
+ 'filter',
2377
+ 'limit',
2378
+ 'page',
2379
+ 'property_keys'
2380
+ ]
2381
+ _all_params.extend(
2382
+ [
2383
+ 'async_req',
2384
+ '_return_http_data_only',
2385
+ '_preload_content',
2386
+ '_request_timeout',
2387
+ '_request_auth',
2388
+ '_content_type',
2389
+ '_headers',
2390
+ 'opts'
2391
+ ]
2392
+ )
2393
+
2394
+ # validate the arguments
2395
+ for _key, _val in _params['kwargs'].items():
2396
+ if _key not in _all_params:
2397
+ raise ApiTypeError(
2398
+ "Got an unexpected keyword argument '%s'"
2399
+ " to method get_valuation_point_transactions" % _key
2400
+ )
2401
+ _params[_key] = _val
2402
+ del _params['kwargs']
2403
+
2404
+ _collection_formats = {}
2405
+
2406
+ # process the path parameters
2407
+ _path_params = {}
2408
+ if _params['scope']:
2409
+ _path_params['scope'] = _params['scope']
2410
+
2411
+ if _params['code']:
2412
+ _path_params['code'] = _params['code']
2413
+
2414
+
2415
+ # process the query parameters
2416
+ _query_params = []
2417
+ if _params.get('as_at') is not None: # noqa: E501
2418
+ if isinstance(_params['as_at'], datetime):
2419
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
2420
+ else:
2421
+ _query_params.append(('asAt', _params['as_at']))
2422
+
2423
+ if _params.get('filter') is not None: # noqa: E501
2424
+ _query_params.append(('filter', _params['filter']))
2425
+
2426
+ if _params.get('limit') is not None: # noqa: E501
2427
+ _query_params.append(('limit', _params['limit']))
2428
+
2429
+ if _params.get('page') is not None: # noqa: E501
2430
+ _query_params.append(('page', _params['page']))
2431
+
2432
+ if _params.get('property_keys') is not None: # noqa: E501
2433
+ _query_params.append(('propertyKeys', _params['property_keys']))
2434
+ _collection_formats['propertyKeys'] = 'multi'
2435
+
2436
+ # process the header parameters
2437
+ _header_params = dict(_params.get('_headers', {}))
2438
+ # process the form parameters
2439
+ _form_params = []
2440
+ _files = {}
2441
+ # process the body parameter
2442
+ _body_params = None
2443
+ if _params['valuation_point_data_query_parameters'] is not None:
2444
+ _body_params = _params['valuation_point_data_query_parameters']
2445
+
2446
+ # set the HTTP header `Accept`
2447
+ _header_params['Accept'] = self.api_client.select_header_accept(
2448
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
2449
+
2450
+ # set the HTTP header `Content-Type`
2451
+ _content_types_list = _params.get('_content_type',
2452
+ self.api_client.select_header_content_type(
2453
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
2454
+ if _content_types_list:
2455
+ _header_params['Content-Type'] = _content_types_list
2456
+
2457
+ # authentication setting
2458
+ _auth_settings = ['oauth2'] # noqa: E501
2459
+
2460
+ _response_types_map = {
2461
+ '200': "ValuationPointResourceListOfAccountedTransaction",
2462
+ '400': "LusidValidationProblemDetails",
2463
+ }
2464
+
2465
+ return self.api_client.call_api(
2466
+ '/api/funds/{scope}/{code}/valuationpoints/transactions/$query', 'POST',
2467
+ _path_params,
2468
+ _query_params,
2469
+ _header_params,
2470
+ body=_body_params,
2471
+ post_params=_form_params,
2472
+ files=_files,
2473
+ response_types_map=_response_types_map,
2474
+ auth_settings=_auth_settings,
2475
+ async_req=_params.get('async_req'),
2476
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
2477
+ _preload_content=_params.get('_preload_content', True),
2478
+ _request_timeout=_params.get('_request_timeout'),
2479
+ opts=_params.get('opts'),
2480
+ collection_formats=_collection_formats,
2481
+ _request_auth=_params.get('_request_auth'))
2482
+
2264
2483
  @overload
2265
2484
  async def get_valuation_point_trial_balance(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 query parameters used in running the generation of the Trial Balance.")], general_ledger_profile_code : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="The optional code of a general ledger profile used to decorate journal entry lines with levels.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Trial Balance. Defaults to returning the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the results by. For more information about filtering results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this number. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing Trial Balances. This token is returned from the previous call. If a pagination token is provided, the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the journal entry lines.")] = None, **kwargs) -> ValuationPointResourceListOfTrialBalance: # noqa: E501
2266
2485
  ...
@@ -68,28 +68,30 @@ class OrderManagementApi:
68
68
  self.api_client = api_client
69
69
 
70
70
  @overload
71
- async def book_transactions(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, **kwargs) -> BookTransactionsResponse: # noqa: E501
71
+ async def book_transactions(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, mark_orders_and_allocations_as_booked : Annotated[Optional[StrictBool], Field(description="Whether to mark allocations and fully-booked orders with state Booked")] = None, **kwargs) -> BookTransactionsResponse: # noqa: E501
72
72
  ...
73
73
 
74
74
  @overload
75
- def book_transactions(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, async_req: Optional[bool]=True, **kwargs) -> BookTransactionsResponse: # noqa: E501
75
+ def book_transactions(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, mark_orders_and_allocations_as_booked : Annotated[Optional[StrictBool], Field(description="Whether to mark allocations and fully-booked orders with state Booked")] = None, async_req: Optional[bool]=True, **kwargs) -> BookTransactionsResponse: # noqa: E501
76
76
  ...
77
77
 
78
78
  @validate_arguments
79
- def book_transactions(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BookTransactionsResponse, Awaitable[BookTransactionsResponse]]: # noqa: E501
79
+ def book_transactions(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, mark_orders_and_allocations_as_booked : Annotated[Optional[StrictBool], Field(description="Whether to mark allocations and fully-booked orders with state Booked")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BookTransactionsResponse, Awaitable[BookTransactionsResponse]]: # noqa: E501
80
80
  """[EXPERIMENTAL] BookTransactions: Books transactions using specific allocations as a source. # noqa: E501
81
81
 
82
82
  Takes a collection of allocation IDs, and maps fields from those allocations and related orders onto new transactions. # noqa: E501
83
83
  This method makes a synchronous HTTP request by default. To make an
84
84
  asynchronous HTTP request, please pass async_req=True
85
85
 
86
- >>> thread = api.book_transactions(book_transactions_request, apply_fees_and_commission, async_req=True)
86
+ >>> thread = api.book_transactions(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, async_req=True)
87
87
  >>> result = thread.get()
88
88
 
89
89
  :param book_transactions_request: The allocations to create transactions for (required)
90
90
  :type book_transactions_request: BookTransactionsRequest
91
91
  :param apply_fees_and_commission: Whether to apply fees and commissions to transactions (default: true)
92
92
  :type apply_fees_and_commission: bool
93
+ :param mark_orders_and_allocations_as_booked: Whether to mark allocations and fully-booked orders with state Booked
94
+ :type mark_orders_and_allocations_as_booked: bool
93
95
  :param async_req: Whether to execute the request asynchronously.
94
96
  :type async_req: bool, optional
95
97
  :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
@@ -106,23 +108,25 @@ class OrderManagementApi:
106
108
  raise ValueError(message)
107
109
  if async_req is not None:
108
110
  kwargs['async_req'] = async_req
109
- return self.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, **kwargs) # noqa: E501
111
+ return self.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, **kwargs) # noqa: E501
110
112
 
111
113
  @validate_arguments
112
- def book_transactions_with_http_info(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, **kwargs) -> ApiResponse: # noqa: E501
114
+ def book_transactions_with_http_info(self, book_transactions_request : Annotated[BookTransactionsRequest, Field(..., description="The allocations to create transactions for")], apply_fees_and_commission : Annotated[Optional[StrictBool], Field(description="Whether to apply fees and commissions to transactions (default: true)")] = None, mark_orders_and_allocations_as_booked : Annotated[Optional[StrictBool], Field(description="Whether to mark allocations and fully-booked orders with state Booked")] = None, **kwargs) -> ApiResponse: # noqa: E501
113
115
  """[EXPERIMENTAL] BookTransactions: Books transactions using specific allocations as a source. # noqa: E501
114
116
 
115
117
  Takes a collection of allocation IDs, and maps fields from those allocations and related orders onto new transactions. # noqa: E501
116
118
  This method makes a synchronous HTTP request by default. To make an
117
119
  asynchronous HTTP request, please pass async_req=True
118
120
 
119
- >>> thread = api.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, async_req=True)
121
+ >>> thread = api.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, async_req=True)
120
122
  >>> result = thread.get()
121
123
 
122
124
  :param book_transactions_request: The allocations to create transactions for (required)
123
125
  :type book_transactions_request: BookTransactionsRequest
124
126
  :param apply_fees_and_commission: Whether to apply fees and commissions to transactions (default: true)
125
127
  :type apply_fees_and_commission: bool
128
+ :param mark_orders_and_allocations_as_booked: Whether to mark allocations and fully-booked orders with state Booked
129
+ :type mark_orders_and_allocations_as_booked: bool
126
130
  :param async_req: Whether to execute the request asynchronously.
127
131
  :type async_req: bool, optional
128
132
  :param _preload_content: if False, the ApiResponse.data will
@@ -151,7 +155,8 @@ class OrderManagementApi:
151
155
 
152
156
  _all_params = [
153
157
  'book_transactions_request',
154
- 'apply_fees_and_commission'
158
+ 'apply_fees_and_commission',
159
+ 'mark_orders_and_allocations_as_booked'
155
160
  ]
156
161
  _all_params.extend(
157
162
  [
@@ -186,6 +191,9 @@ class OrderManagementApi:
186
191
  if _params.get('apply_fees_and_commission') is not None: # noqa: E501
187
192
  _query_params.append(('applyFeesAndCommission', _params['apply_fees_and_commission']))
188
193
 
194
+ if _params.get('mark_orders_and_allocations_as_booked') is not None: # noqa: E501
195
+ _query_params.append(('markOrdersAndAllocationsAsBooked', _params['mark_orders_and_allocations_as_booked']))
196
+
189
197
  # process the header parameters
190
198
  _header_params = dict(_params.get('_headers', {}))
191
199
  # process the form parameters
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.7172\n"\
448
+ "Version of the API: 0.11.7180\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
@@ -31,6 +31,7 @@ from lusid.models.access_metadata_operation import AccessMetadataOperation
31
31
  from lusid.models.access_metadata_value import AccessMetadataValue
32
32
  from lusid.models.account import Account
33
33
  from lusid.models.account_properties import AccountProperties
34
+ from lusid.models.accounted_transaction import AccountedTransaction
34
35
  from lusid.models.accounting_method import AccountingMethod
35
36
  from lusid.models.accounts_upsert_response import AccountsUpsertResponse
36
37
  from lusid.models.accumulation_event import AccumulationEvent
@@ -741,6 +742,7 @@ from lusid.models.portfolio_group_id_list_compliance_parameter import PortfolioG
741
742
  from lusid.models.portfolio_group_properties import PortfolioGroupProperties
742
743
  from lusid.models.portfolio_group_search_result import PortfolioGroupSearchResult
743
744
  from lusid.models.portfolio_holding import PortfolioHolding
745
+ from lusid.models.portfolio_id import PortfolioId
744
746
  from lusid.models.portfolio_id_compliance_parameter import PortfolioIdComplianceParameter
745
747
  from lusid.models.portfolio_id_list import PortfolioIdList
746
748
  from lusid.models.portfolio_id_list_compliance_parameter import PortfolioIdListComplianceParameter
@@ -1140,6 +1142,7 @@ from lusid.models.valuation_point_data_query_parameters import ValuationPointDat
1140
1142
  from lusid.models.valuation_point_data_request import ValuationPointDataRequest
1141
1143
  from lusid.models.valuation_point_data_response import ValuationPointDataResponse
1142
1144
  from lusid.models.valuation_point_overview import ValuationPointOverview
1145
+ from lusid.models.valuation_point_resource_list_of_accounted_transaction import ValuationPointResourceListOfAccountedTransaction
1143
1146
  from lusid.models.valuation_point_resource_list_of_journal_entry_line import ValuationPointResourceListOfJournalEntryLine
1144
1147
  from lusid.models.valuation_point_resource_list_of_pnl_journal_entry_line import ValuationPointResourceListOfPnlJournalEntryLine
1145
1148
  from lusid.models.valuation_point_resource_list_of_trial_balance import ValuationPointResourceListOfTrialBalance
@@ -1196,6 +1199,7 @@ __all__ = [
1196
1199
  "AccessMetadataValue",
1197
1200
  "Account",
1198
1201
  "AccountProperties",
1202
+ "AccountedTransaction",
1199
1203
  "AccountingMethod",
1200
1204
  "AccountsUpsertResponse",
1201
1205
  "AccumulationEvent",
@@ -1906,6 +1910,7 @@ __all__ = [
1906
1910
  "PortfolioGroupProperties",
1907
1911
  "PortfolioGroupSearchResult",
1908
1912
  "PortfolioHolding",
1913
+ "PortfolioId",
1909
1914
  "PortfolioIdComplianceParameter",
1910
1915
  "PortfolioIdList",
1911
1916
  "PortfolioIdListComplianceParameter",
@@ -2305,6 +2310,7 @@ __all__ = [
2305
2310
  "ValuationPointDataRequest",
2306
2311
  "ValuationPointDataResponse",
2307
2312
  "ValuationPointOverview",
2313
+ "ValuationPointResourceListOfAccountedTransaction",
2308
2314
  "ValuationPointResourceListOfJournalEntryLine",
2309
2315
  "ValuationPointResourceListOfPnlJournalEntryLine",
2310
2316
  "ValuationPointResourceListOfTrialBalance",
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr
23
+ from lusid.models.output_transaction import OutputTransaction
24
+ from lusid.models.portfolio_id import PortfolioId
25
+
26
+ class AccountedTransaction(BaseModel):
27
+ """
28
+ The Valuation Point Data Response for the Fund and specified date. # noqa: E501
29
+ """
30
+ accounting_date: Optional[datetime] = Field(None, alias="accountingDate", description="The transaction's accounting date.")
31
+ journal_entry_action: Optional[StrictStr] = Field(None, alias="journalEntryAction", description="The journal entry line action associated with this transaction.")
32
+ transaction: Optional[OutputTransaction] = None
33
+ portfolio_id: Optional[PortfolioId] = Field(None, alias="portfolioId")
34
+ __properties = ["accountingDate", "journalEntryAction", "transaction", "portfolioId"]
35
+
36
+ class Config:
37
+ """Pydantic configuration"""
38
+ allow_population_by_field_name = True
39
+ validate_assignment = True
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.dict(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> AccountedTransaction:
51
+ """Create an instance of AccountedTransaction from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self):
55
+ """Returns the dictionary representation of the model using alias"""
56
+ _dict = self.dict(by_alias=True,
57
+ exclude={
58
+ },
59
+ exclude_none=True)
60
+ # override the default output from pydantic by calling `to_dict()` of transaction
61
+ if self.transaction:
62
+ _dict['transaction'] = self.transaction.to_dict()
63
+ # override the default output from pydantic by calling `to_dict()` of portfolio_id
64
+ if self.portfolio_id:
65
+ _dict['portfolioId'] = self.portfolio_id.to_dict()
66
+ # set to None if journal_entry_action (nullable) is None
67
+ # and __fields_set__ contains the field
68
+ if self.journal_entry_action is None and "journal_entry_action" in self.__fields_set__:
69
+ _dict['journalEntryAction'] = None
70
+
71
+ return _dict
72
+
73
+ @classmethod
74
+ def from_dict(cls, obj: dict) -> AccountedTransaction:
75
+ """Create an instance of AccountedTransaction from a dict"""
76
+ if obj is None:
77
+ return None
78
+
79
+ if not isinstance(obj, dict):
80
+ return AccountedTransaction.parse_obj(obj)
81
+
82
+ _obj = AccountedTransaction.parse_obj({
83
+ "accounting_date": obj.get("accountingDate"),
84
+ "journal_entry_action": obj.get("journalEntryAction"),
85
+ "transaction": OutputTransaction.from_dict(obj.get("transaction")) if obj.get("transaction") is not None else None,
86
+ "portfolio_id": PortfolioId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None
87
+ })
88
+ return _obj
@@ -18,8 +18,8 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
 
21
- from typing import Any, Dict
22
- from pydantic.v1 import BaseModel, Field, constr
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictBool, constr
23
23
 
24
24
  class EligibilityCalculation(BaseModel):
25
25
  """
@@ -27,7 +27,8 @@ class EligibilityCalculation(BaseModel):
27
27
  """
28
28
  entitlement_date: constr(strict=True, min_length=1) = Field(..., alias="entitlementDate")
29
29
  eligible_units: constr(strict=True, min_length=1) = Field(..., alias="eligibleUnits")
30
- __properties = ["entitlementDate", "eligibleUnits"]
30
+ date_modifiable_by_instruction: Optional[StrictBool] = Field(None, alias="dateModifiableByInstruction")
31
+ __properties = ["entitlementDate", "eligibleUnits", "dateModifiableByInstruction"]
31
32
 
32
33
  class Config:
33
34
  """Pydantic configuration"""
@@ -66,6 +67,7 @@ class EligibilityCalculation(BaseModel):
66
67
 
67
68
  _obj = EligibilityCalculation.parse_obj({
68
69
  "entitlement_date": obj.get("entitlementDate"),
69
- "eligible_units": obj.get("eligibleUnits")
70
+ "eligible_units": obj.get("eligibleUnits"),
71
+ "date_modifiable_by_instruction": obj.get("dateModifiableByInstruction")
70
72
  })
71
73
  return _obj
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
-
20
+ from datetime import datetime
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr, conlist
23
23
  from lusid.models.link import Link
@@ -36,8 +36,9 @@ class InstrumentEventInstruction(BaseModel):
36
36
  holding_id: Optional[StrictInt] = Field(None, alias="holdingId", description="For holding instructions, the id of the holding for which the instruction will apply")
37
37
  version: Optional[Version] = None
38
38
  href: Optional[StrictStr] = Field(None, description="The uri for this version of this instruction")
39
+ entitlement_date_instructed: Optional[datetime] = Field(None, alias="entitlementDateInstructed", description="The instructed entitlement date for the event (where none is set on the event itself)")
39
40
  links: Optional[conlist(Link)] = None
40
- __properties = ["instrumentEventInstructionId", "portfolioId", "instrumentEventId", "instructionType", "electionKey", "holdingId", "version", "href", "links"]
41
+ __properties = ["instrumentEventInstructionId", "portfolioId", "instrumentEventId", "instructionType", "electionKey", "holdingId", "version", "href", "entitlementDateInstructed", "links"]
41
42
 
42
43
  class Config:
43
44
  """Pydantic configuration"""
@@ -106,6 +107,11 @@ class InstrumentEventInstruction(BaseModel):
106
107
  if self.href is None and "href" in self.__fields_set__:
107
108
  _dict['href'] = None
108
109
 
110
+ # set to None if entitlement_date_instructed (nullable) is None
111
+ # and __fields_set__ contains the field
112
+ if self.entitlement_date_instructed is None and "entitlement_date_instructed" in self.__fields_set__:
113
+ _dict['entitlementDateInstructed'] = None
114
+
109
115
  # set to None if links (nullable) is None
110
116
  # and __fields_set__ contains the field
111
117
  if self.links is None and "links" in self.__fields_set__:
@@ -131,6 +137,7 @@ class InstrumentEventInstruction(BaseModel):
131
137
  "holding_id": obj.get("holdingId"),
132
138
  "version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
133
139
  "href": obj.get("href"),
140
+ "entitlement_date_instructed": obj.get("entitlementDateInstructed"),
134
141
  "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
135
142
  })
136
143
  return _obj
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
-
20
+ from datetime import datetime
21
21
  from typing import Any, Dict, Optional
22
22
  from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr, constr
23
23
 
@@ -30,7 +30,8 @@ class InstrumentEventInstructionRequest(BaseModel):
30
30
  instruction_type: constr(strict=True, min_length=1) = Field(..., alias="instructionType", description="The type of instruction (Ignore, ElectForPortfolio, ElectForHolding)")
31
31
  election_key: Optional[StrictStr] = Field(None, alias="electionKey", description="For elected instructions, the key to be chosen")
32
32
  holding_id: Optional[StrictInt] = Field(None, alias="holdingId", description="For holding instructions, the id of the holding for which the instruction will apply")
33
- __properties = ["instrumentEventInstructionId", "instrumentEventId", "instructionType", "electionKey", "holdingId"]
33
+ entitlement_date_instructed: Optional[datetime] = Field(None, alias="entitlementDateInstructed", description="The instructed entitlement date for the event (where none is set on the event itself)")
34
+ __properties = ["instrumentEventInstructionId", "instrumentEventId", "instructionType", "electionKey", "holdingId", "entitlementDateInstructed"]
34
35
 
35
36
  class Config:
36
37
  """Pydantic configuration"""
@@ -66,6 +67,11 @@ class InstrumentEventInstructionRequest(BaseModel):
66
67
  if self.holding_id is None and "holding_id" in self.__fields_set__:
67
68
  _dict['holdingId'] = None
68
69
 
70
+ # set to None if entitlement_date_instructed (nullable) is None
71
+ # and __fields_set__ contains the field
72
+ if self.entitlement_date_instructed is None and "entitlement_date_instructed" in self.__fields_set__:
73
+ _dict['entitlementDateInstructed'] = None
74
+
69
75
  return _dict
70
76
 
71
77
  @classmethod
@@ -82,6 +88,7 @@ class InstrumentEventInstructionRequest(BaseModel):
82
88
  "instrument_event_id": obj.get("instrumentEventId"),
83
89
  "instruction_type": obj.get("instructionType"),
84
90
  "election_key": obj.get("electionKey"),
85
- "holding_id": obj.get("holdingId")
91
+ "holding_id": obj.get("holdingId"),
92
+ "entitlement_date_instructed": obj.get("entitlementDateInstructed")
86
93
  })
87
94
  return _obj
@@ -0,0 +1,80 @@
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
22
+ from pydantic.v1 import BaseModel, StrictStr
23
+ from lusid.models.data_scope import DataScope
24
+
25
+ class PortfolioId(BaseModel):
26
+ """
27
+ PortfolioId
28
+ """
29
+ scope: Optional[DataScope] = None
30
+ identifier: Optional[StrictStr] = None
31
+ __properties = ["scope", "identifier"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> PortfolioId:
48
+ """Create an instance of PortfolioId from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ # override the default output from pydantic by calling `to_dict()` of scope
58
+ if self.scope:
59
+ _dict['scope'] = self.scope.to_dict()
60
+ # set to None if identifier (nullable) is None
61
+ # and __fields_set__ contains the field
62
+ if self.identifier is None and "identifier" in self.__fields_set__:
63
+ _dict['identifier'] = None
64
+
65
+ return _dict
66
+
67
+ @classmethod
68
+ def from_dict(cls, obj: dict) -> PortfolioId:
69
+ """Create an instance of PortfolioId from a dict"""
70
+ if obj is None:
71
+ return None
72
+
73
+ if not isinstance(obj, dict):
74
+ return PortfolioId.parse_obj(obj)
75
+
76
+ _obj = PortfolioId.parse_obj({
77
+ "scope": DataScope.from_dict(obj.get("scope")) if obj.get("scope") is not None else None,
78
+ "identifier": obj.get("identifier")
79
+ })
80
+ return _obj
@@ -0,0 +1,125 @@
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 BaseModel, Field, StrictStr, conlist
23
+ from lusid.models.accounted_transaction import AccountedTransaction
24
+ from lusid.models.diary_entry import DiaryEntry
25
+ from lusid.models.link import Link
26
+ from lusid.models.version import Version
27
+
28
+ class ValuationPointResourceListOfAccountedTransaction(BaseModel):
29
+ """
30
+ ResourceList with extra header fields used by the various ValuationPoint endpoints for returning additional context related to the list of results. # noqa: E501
31
+ """
32
+ start_valuation_point: Optional[DiaryEntry] = Field(None, alias="startValuationPoint")
33
+ version: Version = Field(...)
34
+ values: conlist(AccountedTransaction) = Field(...)
35
+ href: Optional[StrictStr] = None
36
+ next_page: Optional[StrictStr] = Field(None, alias="nextPage")
37
+ previous_page: Optional[StrictStr] = Field(None, alias="previousPage")
38
+ links: Optional[conlist(Link)] = None
39
+ __properties = ["startValuationPoint", "version", "values", "href", "nextPage", "previousPage", "links"]
40
+
41
+ class Config:
42
+ """Pydantic configuration"""
43
+ allow_population_by_field_name = True
44
+ validate_assignment = True
45
+
46
+ def to_str(self) -> str:
47
+ """Returns the string representation of the model using alias"""
48
+ return pprint.pformat(self.dict(by_alias=True))
49
+
50
+ def to_json(self) -> str:
51
+ """Returns the JSON representation of the model using alias"""
52
+ return json.dumps(self.to_dict())
53
+
54
+ @classmethod
55
+ def from_json(cls, json_str: str) -> ValuationPointResourceListOfAccountedTransaction:
56
+ """Create an instance of ValuationPointResourceListOfAccountedTransaction from a JSON string"""
57
+ return cls.from_dict(json.loads(json_str))
58
+
59
+ def to_dict(self):
60
+ """Returns the dictionary representation of the model using alias"""
61
+ _dict = self.dict(by_alias=True,
62
+ exclude={
63
+ },
64
+ exclude_none=True)
65
+ # override the default output from pydantic by calling `to_dict()` of start_valuation_point
66
+ if self.start_valuation_point:
67
+ _dict['startValuationPoint'] = self.start_valuation_point.to_dict()
68
+ # override the default output from pydantic by calling `to_dict()` of version
69
+ if self.version:
70
+ _dict['version'] = self.version.to_dict()
71
+ # override the default output from pydantic by calling `to_dict()` of each item in values (list)
72
+ _items = []
73
+ if self.values:
74
+ for _item in self.values:
75
+ if _item:
76
+ _items.append(_item.to_dict())
77
+ _dict['values'] = _items
78
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
79
+ _items = []
80
+ if self.links:
81
+ for _item in self.links:
82
+ if _item:
83
+ _items.append(_item.to_dict())
84
+ _dict['links'] = _items
85
+ # set to None if href (nullable) is None
86
+ # and __fields_set__ contains the field
87
+ if self.href is None and "href" in self.__fields_set__:
88
+ _dict['href'] = None
89
+
90
+ # set to None if next_page (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.next_page is None and "next_page" in self.__fields_set__:
93
+ _dict['nextPage'] = None
94
+
95
+ # set to None if previous_page (nullable) is None
96
+ # and __fields_set__ contains the field
97
+ if self.previous_page is None and "previous_page" in self.__fields_set__:
98
+ _dict['previousPage'] = None
99
+
100
+ # set to None if links (nullable) is None
101
+ # and __fields_set__ contains the field
102
+ if self.links is None and "links" in self.__fields_set__:
103
+ _dict['links'] = None
104
+
105
+ return _dict
106
+
107
+ @classmethod
108
+ def from_dict(cls, obj: dict) -> ValuationPointResourceListOfAccountedTransaction:
109
+ """Create an instance of ValuationPointResourceListOfAccountedTransaction from a dict"""
110
+ if obj is None:
111
+ return None
112
+
113
+ if not isinstance(obj, dict):
114
+ return ValuationPointResourceListOfAccountedTransaction.parse_obj(obj)
115
+
116
+ _obj = ValuationPointResourceListOfAccountedTransaction.parse_obj({
117
+ "start_valuation_point": DiaryEntry.from_dict(obj.get("startValuationPoint")) if obj.get("startValuationPoint") is not None else None,
118
+ "version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
119
+ "values": [AccountedTransaction.from_dict(_item) for _item in obj.get("values")] if obj.get("values") is not None else None,
120
+ "href": obj.get("href"),
121
+ "next_page": obj.get("nextPage"),
122
+ "previous_page": obj.get("previousPage"),
123
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
124
+ })
125
+ return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.621
3
+ Version: 2.1.623
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -249,6 +249,7 @@ Class | Method | HTTP request | Description
249
249
  *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.
250
250
  *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.
251
251
  *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.
252
+ *FundsApi* | [**get_valuation_point_transactions**](docs/FundsApi.md#get_valuation_point_transactions) | **POST** /api/funds/{scope}/{code}/valuationpoints/transactions/$query | [EXPERIMENTAL] GetValuationPointTransactions: Get the Transactions for the given Fund.
252
253
  *FundsApi* | [**get_valuation_point_trial_balance**](docs/FundsApi.md#get_valuation_point_trial_balance) | **POST** /api/funds/{scope}/{code}/valuationpoints/trialbalance/$query | [EXPERIMENTAL] GetValuationPointTrialBalance: Get Trial Balance for the given Fund.
253
254
  *FundsApi* | [**list_fees**](docs/FundsApi.md#list_fees) | **GET** /api/funds/{scope}/{code}/fees | [EXPERIMENTAL] ListFees: List Fees for a specified Fund.
254
255
  *FundsApi* | [**list_funds**](docs/FundsApi.md#list_funds) | **GET** /api/funds | [EXPERIMENTAL] ListFunds: List Funds.
@@ -659,6 +660,7 @@ Class | Method | HTTP request | Description
659
660
  - [AccessMetadataValue](docs/AccessMetadataValue.md)
660
661
  - [Account](docs/Account.md)
661
662
  - [AccountProperties](docs/AccountProperties.md)
663
+ - [AccountedTransaction](docs/AccountedTransaction.md)
662
664
  - [AccountingMethod](docs/AccountingMethod.md)
663
665
  - [AccountsUpsertResponse](docs/AccountsUpsertResponse.md)
664
666
  - [AccumulationEvent](docs/AccumulationEvent.md)
@@ -1369,6 +1371,7 @@ Class | Method | HTTP request | Description
1369
1371
  - [PortfolioGroupProperties](docs/PortfolioGroupProperties.md)
1370
1372
  - [PortfolioGroupSearchResult](docs/PortfolioGroupSearchResult.md)
1371
1373
  - [PortfolioHolding](docs/PortfolioHolding.md)
1374
+ - [PortfolioId](docs/PortfolioId.md)
1372
1375
  - [PortfolioIdComplianceParameter](docs/PortfolioIdComplianceParameter.md)
1373
1376
  - [PortfolioIdList](docs/PortfolioIdList.md)
1374
1377
  - [PortfolioIdListComplianceParameter](docs/PortfolioIdListComplianceParameter.md)
@@ -1768,6 +1771,7 @@ Class | Method | HTTP request | Description
1768
1771
  - [ValuationPointDataRequest](docs/ValuationPointDataRequest.md)
1769
1772
  - [ValuationPointDataResponse](docs/ValuationPointDataResponse.md)
1770
1773
  - [ValuationPointOverview](docs/ValuationPointOverview.md)
1774
+ - [ValuationPointResourceListOfAccountedTransaction](docs/ValuationPointResourceListOfAccountedTransaction.md)
1771
1775
  - [ValuationPointResourceListOfJournalEntryLine](docs/ValuationPointResourceListOfJournalEntryLine.md)
1772
1776
  - [ValuationPointResourceListOfPnlJournalEntryLine](docs/ValuationPointResourceListOfPnlJournalEntryLine.md)
1773
1777
  - [ValuationPointResourceListOfTrialBalance](docs/ValuationPointResourceListOfTrialBalance.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=kqxxSRF1CmwSzQY1mkByQXRr6sBZBs3-iZq7NhPWmso,131102
1
+ lusid/__init__.py,sha256=Y6e0fBMZfKJULFc4KJhs8kc3uRelKxh2M0kSfjxuUOc,131452
2
2
  lusid/api/__init__.py,sha256=Piygs8uSSBLR2ZZZIUS2aiyUEKMrNij6nUM6nHeaXkU,5992
3
3
  lusid/api/abor_api.py,sha256=eC0xjrZEL_e7JZdwjpmjVG4GMQWAGJEv4w-2UngvYUk,159896
4
4
  lusid/api/abor_configuration_api.py,sha256=TmssMn5ni0mZV1q7LyPXYhBqqUGJqLYZapo8By8DFuI,63875
@@ -26,7 +26,7 @@ lusid/api/entities_api.py,sha256=XdpvE-nPjD7LjkMYAnCynBpqX_R5p8lJk4OVKSe-4ks,855
26
26
  lusid/api/executions_api.py,sha256=QW6_mT0rsZTiW1R5tG-_fa-UT6khiMYfHsnapbzlVmo,44263
27
27
  lusid/api/fee_types_api.py,sha256=vcDM_7QOAX0LjNz5Wr7lTV_LVYtrmhZ8-59-ZRjL2Sg,55933
28
28
  lusid/api/fund_configuration_api.py,sha256=sItl8nbm7PsJYVZYMLWKtGQG80y_y6LP7D_r6NjxbOc,74272
29
- lusid/api/funds_api.py,sha256=7l7I_-X8vdQ1c6JyPpznAcDa38fJ8YLJNT1TYd7rLUQ,282300
29
+ lusid/api/funds_api.py,sha256=mfBk5JwbW1NHjrHR3q6SCdas2R7vDe4s-hrnbQcLhF0,299739
30
30
  lusid/api/group_reconciliations_api.py,sha256=0zuSvNM9c61ZhzdxSCVen_y3-y9gPeykflxgNzv9-8U,167598
31
31
  lusid/api/instrument_event_types_api.py,sha256=G4gpfM6eWl77dtF3DC7b0lUOby_EREyLmXTxSyo9-ew,81296
32
32
  lusid/api/instrument_events_api.py,sha256=sdKGJQAcoqEPJPuYSkP3axM1o63nB8qcdyIEHZ8cRkk,58350
@@ -35,7 +35,7 @@ lusid/api/legacy_compliance_api.py,sha256=a7nqMHB7Eh9f33Hrh55kOTmIB_Gfj9y4b8xOjM
35
35
  lusid/api/legal_entities_api.py,sha256=YiKzvDknl_Yc61F4m-kbz976UWTGDjcLAJK2g_3Wn70,267038
36
36
  lusid/api/order_graph_api.py,sha256=iouv81cDentnN_yKCF3_Vb7pMtKTecbpzgfur5rjb2Y,45154
37
37
  lusid/api/order_instructions_api.py,sha256=Yi2hfOKsXdTZ98wIWj3GHEhGPgSgAop11UAwtOv3Ic0,45979
38
- lusid/api/order_management_api.py,sha256=yBsZA_Rwp2ynf82uWKQ4sK7qE_GHpU0fxvlQhmmxVMU,94883
38
+ lusid/api/order_management_api.py,sha256=3Nol9FCHUXuaHIYWTFtHdhYoymZDb0V2rm7lERQMkko,96318
39
39
  lusid/api/orders_api.py,sha256=_HC4-TH1xoVJi7JeYLcbUp2fe2XSUskzo-b4J0yCoYo,43415
40
40
  lusid/api/packages_api.py,sha256=54Hd7oO-1Ol4mNTat2A6dcyL08FPEAvCRY4OzymLpv0,43873
41
41
  lusid/api/participations_api.py,sha256=Uh3M3jZqoSL3_BpBDxhI-4rkyWsKyeCSzsN4VIKLfho,45151
@@ -72,7 +72,7 @@ lusid/api/translation_api.py,sha256=nIyuLncCvVC5k2d7Nm32zR8AQ1dkrVm1OThkmELY_OM,
72
72
  lusid/api/workspace_api.py,sha256=Yox1q7TDY-_O3HF-N8g5kGuNgp4unWvlSZmRZ6MNZO0,196701
73
73
  lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
74
74
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
75
- lusid/configuration.py,sha256=VSgkfAwOyjbaiJ9jL1KAZ4pbsemqC5F5cX9Y6HxVAxw,17972
75
+ lusid/configuration.py,sha256=3-yMqeaoWBO346dGJ9KzNcO4vETpSQBEZK9QPebYTIw,17972
76
76
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
77
77
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
78
78
  lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
@@ -87,7 +87,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
87
87
  lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
88
88
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
89
89
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
90
- lusid/models/__init__.py,sha256=jzlDVFhtX3GSMCH0ilSkhge_9TeMH8Buccg0UzNF0wU,124078
90
+ lusid/models/__init__.py,sha256=IoR61f2lMGzG9kXA49X0MRyneTpygDCoGA4XnEg9U6M,124428
91
91
  lusid/models/a2_b_breakdown.py,sha256=Txi12EIQw3mH6NM-25QkOnHSQc3BVAWrP7yl9bZswSY,2947
92
92
  lusid/models/a2_b_category.py,sha256=k6NPAACi0CUjKyhdQac4obQSrPmp2PXD6lkAtCnyEFM,2725
93
93
  lusid/models/a2_b_data_record.py,sha256=zKGS2P4fzNpzdcGJiSIpkY4P3d_jAcawYfyuPCDeQgk,9737
@@ -105,6 +105,7 @@ lusid/models/access_metadata_operation.py,sha256=As6kww7oDMa6K0N7u9fue9xgZNZlkB0
105
105
  lusid/models/access_metadata_value.py,sha256=q1p3FW2dOzJ4R8fYPHMLgmBCriSMRkW7h1aFpI_Srls,2397
106
106
  lusid/models/account.py,sha256=6sKzuazRI0NIs6HOu3y7cy5omeagVVCVxlILA8EGDQE,5124
107
107
  lusid/models/account_properties.py,sha256=fqKIfQ7tbAwodW8tZu86JTapAW5lVNNMonB6F2C1s5g,4272
108
+ lusid/models/accounted_transaction.py,sha256=ggTYqFY9i6GtHvsAAZYsgtObAIIqTqxMEGgJ7CqWTPs,3477
108
109
  lusid/models/accounting_method.py,sha256=Ei42z2hKpF_MkYlulycvPmbipAdCALy5vaSlxgrfhYw,1487
109
110
  lusid/models/accounts_upsert_response.py,sha256=qHHsFTkMqhIufYG3RBvXB1YimBluJREx-iq7bd2DL50,4120
110
111
  lusid/models/accumulation_event.py,sha256=UDUx7EGWMQLvMUxJxA9XMzeiRey3tjzXox2PVcvMFE8,7769
@@ -402,7 +403,7 @@ lusid/models/economic_dependency_with_complex_market_data.py,sha256=2iTNQhxgay9B
402
403
  lusid/models/economic_dependency_with_quote.py,sha256=VA5DsgfX_1YFhaID0DUk1yf4sAm4YfK4ZgR5DhnuHDU,3358
403
404
  lusid/models/effective_range.py,sha256=5Um_BJXbvXXs766fU1AdcYV0XScrGvFW-qUcJUNEdTw,2151
404
405
  lusid/models/election_specification.py,sha256=4Q2OcdwnZyWm8PoFgw_eLKqOOiLZ94HYTPb5QmDfKIw,2225
405
- lusid/models/eligibility_calculation.py,sha256=_uksXv61LUoEs_1yNUk3854-dafQXvCoQeLgdRB6MPc,2125
406
+ lusid/models/eligibility_calculation.py,sha256=-mDE3PhETByPa75Yk5pxlokxnE9yobAXqfbKDEuWJXE,2372
406
407
  lusid/models/empty_model_options.py,sha256=3-56_b0lcyIju_2EXduPs1rYeMK-YYPHou4R-86-Vx4,3196
407
408
  lusid/models/entity_identifier.py,sha256=3ecAwqjMqMLK6vfzfaKSZ9TzLNI12Q0D-dj0_N3H1-w,2627
408
409
  lusid/models/equity.py,sha256=QzhZ6GPnrk4ZYwrhLzY-GFdvNUyMePY1o4glp03yQCI,5988
@@ -585,8 +586,8 @@ lusid/models/instrument_entity.py,sha256=Rb9jT5z_oGK9fiKWjuU6Xi6HnYZVa6gbaFA35KC
585
586
  lusid/models/instrument_event.py,sha256=nWuMIzAkKsiHoeRrsDkOLlqLwjZthTuJovk1-3VbVpo,11846
586
587
  lusid/models/instrument_event_configuration.py,sha256=igoNv4Dvea9arqNFQXuwV_NcDUD0ZmeJ5b8_YKOGWyY,2797
587
588
  lusid/models/instrument_event_holder.py,sha256=Dgnki6_B1LCg9mKF38wn7KjMaABSl9hGI7VnDYxEmjQ,7494
588
- lusid/models/instrument_event_instruction.py,sha256=dNjk_Z04hC303eClGP6b7VFRPjCvCx0dMDqAJ0OmD5k,6179
589
- lusid/models/instrument_event_instruction_request.py,sha256=uDTvxy3TrTjrLCBl5G-zDEBWuSRYwtXJ_Bzys3NyuH0,3639
589
+ lusid/models/instrument_event_instruction.py,sha256=GthUxwbpDP-NQdQ8ypyhAubRchsM3YbdgE_Nrq3WR6I,6805
590
+ lusid/models/instrument_event_instruction_request.py,sha256=K5zRIL-WrO-2yabqgjtYjYGtLV3nIC2SYGkMwS-ztqE,4265
590
591
  lusid/models/instrument_event_instructions_response.py,sha256=Wr4XI1bNMijF7h1COCze7QXUCbl-nc8fQ3ZTNFGZFGE,3984
591
592
  lusid/models/instrument_event_type.py,sha256=vnYEOlwcb4FRQN6ued8lC1fuv8RrQTQiQydy5u7RAVE,3166
592
593
  lusid/models/instrument_id_type_descriptor.py,sha256=0p18FCVnh60RF3LiLPOsDgbqAyeGJPn_UETTaII0Dx4,2569
@@ -815,6 +816,7 @@ lusid/models/portfolio_group_id_list_compliance_parameter.py,sha256=lqAyL1Clz9QN
815
816
  lusid/models/portfolio_group_properties.py,sha256=TXoraXowbiMx0fh5_VWJWPA7NZ85eRFw0w_A6jpRpus,4343
816
817
  lusid/models/portfolio_group_search_result.py,sha256=rDJjz4MXk3f9yUd_DF4kBiOkaJsST4e0rjmU25p2CHM,6286
817
818
  lusid/models/portfolio_holding.py,sha256=mZVqQI4nYhCXPALqRxvqb1xCRlv12uMZLspvNIoRbog,11653
819
+ lusid/models/portfolio_id.py,sha256=Dd-eIobSBL04AdJ3jFUXL2wLB6YagR8KcJOyUVoz_zo,2384
818
820
  lusid/models/portfolio_id_compliance_parameter.py,sha256=iE8byznifZtPIl1qZHxBMbvndGHRUSxrts554MwxzOc,5596
819
821
  lusid/models/portfolio_id_list.py,sha256=Wj9YeiJ14XJWtzfwiL63ktN_QC7zSDpod9sTkpd0gnE,3746
820
822
  lusid/models/portfolio_id_list_compliance_parameter.py,sha256=w9qwH4M-QNb-j7JihAPShqkjpXlyMxYrUvH5Yv7Gj-Y,5628
@@ -1214,6 +1216,7 @@ lusid/models/valuation_point_data_query_parameters.py,sha256=wgoMUait7n9f9k3XnM0
1214
1216
  lusid/models/valuation_point_data_request.py,sha256=KNfLFJEFGgXlVj22bH97HhCknNEtl9uUk4jNvjf-WFk,2394
1215
1217
  lusid/models/valuation_point_data_response.py,sha256=wHtYY5VFIz3suA1pX0Kk9wnOO8a34E77BmU9PYhNMDU,8738
1216
1218
  lusid/models/valuation_point_overview.py,sha256=Z4GZTneHZBbQkdHj7JaEhILqhKkMbJDaJD6UwEFNWSs,5720
1219
+ lusid/models/valuation_point_resource_list_of_accounted_transaction.py,sha256=zIDPnOabkg08R7VNKhxkpAaL6-8KysOxIxUdKkfDkA4,5285
1217
1220
  lusid/models/valuation_point_resource_list_of_journal_entry_line.py,sha256=AV1Y2lAYrTv02dgDqKzF0KhqmvFKLq-MYuaPJcBZdpg,5242
1218
1221
  lusid/models/valuation_point_resource_list_of_pnl_journal_entry_line.py,sha256=lBCsBMvrKyx9Mn56XvMII6MPt44Ad5OVk_DvJh5TuLY,5276
1219
1222
  lusid/models/valuation_point_resource_list_of_trial_balance.py,sha256=nQdZMUa7lOhbIL-ICT83R3-B-alNXFqB0qsGWmryYgk,5197
@@ -1252,6 +1255,6 @@ lusid/models/workspace_update_request.py,sha256=uUXEpX-dJ5UiL9w1wMxIFeovSBiTJ-vi
1252
1255
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1253
1256
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1254
1257
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1255
- lusid_sdk-2.1.621.dist-info/METADATA,sha256=wjO00qYMHngglIjbjg072wCZiV0MXnHRJV-vF_qsTPA,213873
1256
- lusid_sdk-2.1.621.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1257
- lusid_sdk-2.1.621.dist-info/RECORD,,
1258
+ lusid_sdk-2.1.623.dist-info/METADATA,sha256=ytfjEfsDPzUerAEd_Ftv3XxHpfY4FA2fJw7CL9XY7yQ,214344
1259
+ lusid_sdk-2.1.623.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1260
+ lusid_sdk-2.1.623.dist-info/RECORD,,