lusid-sdk 2.1.242__py3-none-any.whl → 2.1.243__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.

Potentially problematic release.


This version of lusid-sdk might be problematic. Click here for more details.

lusid/__init__.py CHANGED
@@ -691,6 +691,7 @@ from lusid.models.place_blocks_request import PlaceBlocksRequest
691
691
  from lusid.models.placement import Placement
692
692
  from lusid.models.placement_request import PlacementRequest
693
693
  from lusid.models.placement_set_request import PlacementSetRequest
694
+ from lusid.models.placement_update_request import PlacementUpdateRequest
694
695
  from lusid.models.portfolio import Portfolio
695
696
  from lusid.models.portfolio_cash_flow import PortfolioCashFlow
696
697
  from lusid.models.portfolio_cash_ladder import PortfolioCashLadder
@@ -727,6 +728,7 @@ from lusid.models.pricing_model import PricingModel
727
728
  from lusid.models.pricing_options import PricingOptions
728
729
  from lusid.models.processed_command import ProcessedCommand
729
730
  from lusid.models.property_definition import PropertyDefinition
731
+ from lusid.models.property_definition_entity import PropertyDefinitionEntity
730
732
  from lusid.models.property_definition_search_result import PropertyDefinitionSearchResult
731
733
  from lusid.models.property_definition_type import PropertyDefinitionType
732
734
  from lusid.models.property_domain import PropertyDomain
@@ -1006,6 +1008,7 @@ from lusid.models.update_data_type_request import UpdateDataTypeRequest
1006
1008
  from lusid.models.update_derived_property_definition_request import UpdateDerivedPropertyDefinitionRequest
1007
1009
  from lusid.models.update_fee_type_request import UpdateFeeTypeRequest
1008
1010
  from lusid.models.update_instrument_identifier_request import UpdateInstrumentIdentifierRequest
1011
+ from lusid.models.update_placements_response import UpdatePlacementsResponse
1009
1012
  from lusid.models.update_portfolio_group_request import UpdatePortfolioGroupRequest
1010
1013
  from lusid.models.update_portfolio_request import UpdatePortfolioRequest
1011
1014
  from lusid.models.update_property_definition_request import UpdatePropertyDefinitionRequest
@@ -1767,6 +1770,7 @@ __all__ = [
1767
1770
  "Placement",
1768
1771
  "PlacementRequest",
1769
1772
  "PlacementSetRequest",
1773
+ "PlacementUpdateRequest",
1770
1774
  "Portfolio",
1771
1775
  "PortfolioCashFlow",
1772
1776
  "PortfolioCashLadder",
@@ -1803,6 +1807,7 @@ __all__ = [
1803
1807
  "PricingOptions",
1804
1808
  "ProcessedCommand",
1805
1809
  "PropertyDefinition",
1810
+ "PropertyDefinitionEntity",
1806
1811
  "PropertyDefinitionSearchResult",
1807
1812
  "PropertyDefinitionType",
1808
1813
  "PropertyDomain",
@@ -2082,6 +2087,7 @@ __all__ = [
2082
2087
  "UpdateDerivedPropertyDefinitionRequest",
2083
2088
  "UpdateFeeTypeRequest",
2084
2089
  "UpdateInstrumentIdentifierRequest",
2090
+ "UpdatePlacementsResponse",
2085
2091
  "UpdatePortfolioGroupRequest",
2086
2092
  "UpdatePortfolioRequest",
2087
2093
  "UpdatePropertyDefinitionRequest",
lusid/api/entities_api.py CHANGED
@@ -27,6 +27,7 @@ from pydantic.v1 import Field, StrictStr, conlist, constr, validator
27
27
  from typing import Optional
28
28
 
29
29
  from lusid.models.portfolio_entity import PortfolioEntity
30
+ from lusid.models.property_definition_entity import PropertyDefinitionEntity
30
31
  from lusid.models.resource_list_of_change import ResourceListOfChange
31
32
 
32
33
  from lusid.api_client import ApiClient
@@ -397,3 +398,182 @@ class EntitiesApi:
397
398
  _request_timeout=_params.get('_request_timeout'),
398
399
  collection_formats=_collection_formats,
399
400
  _request_auth=_params.get('_request_auth'))
401
+
402
+ @overload
403
+ async def get_property_definition_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the property definition.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime at which to retrieve the property definition. 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 property definition. Defaults to returning the latest version of the property definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> PropertyDefinitionEntity: # noqa: E501
404
+ ...
405
+
406
+ @overload
407
+ def get_property_definition_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the property definition.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime at which to retrieve the property definition. 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 property definition. Defaults to returning the latest version of the property definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, async_req: Optional[bool]=True, **kwargs) -> PropertyDefinitionEntity: # noqa: E501
408
+ ...
409
+
410
+ @validate_arguments
411
+ def get_property_definition_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the property definition.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime at which to retrieve the property definition. 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 property definition. Defaults to returning the latest version of the property definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PropertyDefinitionEntity, Awaitable[PropertyDefinitionEntity]]: # noqa: E501
412
+ """[EXPERIMENTAL] GetPropertyDefinitionByEntityUniqueId: Get property definition by EntityUniqueId # noqa: E501
413
+
414
+ Retrieve a particular property definition. If the property definition is deleted, this will return the state of the property definition immediately prior to deletion. # noqa: E501
415
+ This method makes a synchronous HTTP request by default. To make an
416
+ asynchronous HTTP request, please pass async_req=True
417
+
418
+ >>> thread = api.get_property_definition_by_entity_unique_id(entity_unique_id, effective_at, as_at, previews, async_req=True)
419
+ >>> result = thread.get()
420
+
421
+ :param entity_unique_id: The universally unique identifier of the property definition. (required)
422
+ :type entity_unique_id: str
423
+ :param effective_at: The effective datetime at which to retrieve the property definition. Defaults to the current LUSID system datetime if not specified.
424
+ :type effective_at: str
425
+ :param as_at: The asAt datetime at which to retrieve the property definition. Defaults to returning the latest version of the property definition if not specified.
426
+ :type as_at: datetime
427
+ :param previews: The ids of the staged modifications to be previewed in the response.
428
+ :type previews: List[str]
429
+ :param async_req: Whether to execute the request asynchronously.
430
+ :type async_req: bool, optional
431
+ :param _request_timeout: timeout setting for this request.
432
+ If one number provided, it will be total request
433
+ timeout. It can also be a pair (tuple) of
434
+ (connection, read) timeouts.
435
+ :return: Returns the result object.
436
+ If the method is called asynchronously,
437
+ returns the request thread.
438
+ :rtype: PropertyDefinitionEntity
439
+ """
440
+ kwargs['_return_http_data_only'] = True
441
+ if '_preload_content' in kwargs:
442
+ message = "Error! Please call the get_property_definition_by_entity_unique_id_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
443
+ raise ValueError(message)
444
+ if async_req is not None:
445
+ kwargs['async_req'] = async_req
446
+ return self.get_property_definition_by_entity_unique_id_with_http_info(entity_unique_id, effective_at, as_at, previews, **kwargs) # noqa: E501
447
+
448
+ @validate_arguments
449
+ def get_property_definition_by_entity_unique_id_with_http_info(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the property definition.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime at which to retrieve the property definition. 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 property definition. Defaults to returning the latest version of the property definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> ApiResponse: # noqa: E501
450
+ """[EXPERIMENTAL] GetPropertyDefinitionByEntityUniqueId: Get property definition by EntityUniqueId # noqa: E501
451
+
452
+ Retrieve a particular property definition. If the property definition is deleted, this will return the state of the property definition immediately prior to deletion. # noqa: E501
453
+ This method makes a synchronous HTTP request by default. To make an
454
+ asynchronous HTTP request, please pass async_req=True
455
+
456
+ >>> thread = api.get_property_definition_by_entity_unique_id_with_http_info(entity_unique_id, effective_at, as_at, previews, async_req=True)
457
+ >>> result = thread.get()
458
+
459
+ :param entity_unique_id: The universally unique identifier of the property definition. (required)
460
+ :type entity_unique_id: str
461
+ :param effective_at: The effective datetime at which to retrieve the property definition. Defaults to the current LUSID system datetime if not specified.
462
+ :type effective_at: str
463
+ :param as_at: The asAt datetime at which to retrieve the property definition. Defaults to returning the latest version of the property definition if not specified.
464
+ :type as_at: datetime
465
+ :param previews: The ids of the staged modifications to be previewed in the response.
466
+ :type previews: List[str]
467
+ :param async_req: Whether to execute the request asynchronously.
468
+ :type async_req: bool, optional
469
+ :param _preload_content: if False, the ApiResponse.data will
470
+ be set to none and raw_data will store the
471
+ HTTP response body without reading/decoding.
472
+ Default is True.
473
+ :type _preload_content: bool, optional
474
+ :param _return_http_data_only: response data instead of ApiResponse
475
+ object with status code, headers, etc
476
+ :type _return_http_data_only: bool, optional
477
+ :param _request_timeout: timeout setting for this request. If one
478
+ number provided, it will be total request
479
+ timeout. It can also be a pair (tuple) of
480
+ (connection, read) timeouts.
481
+ :param _request_auth: set to override the auth_settings for an a single
482
+ request; this effectively ignores the authentication
483
+ in the spec for a single request.
484
+ :type _request_auth: dict, optional
485
+ :type _content_type: string, optional: force content-type for the request
486
+ :return: Returns the result object.
487
+ If the method is called asynchronously,
488
+ returns the request thread.
489
+ :rtype: tuple(PropertyDefinitionEntity, status_code(int), headers(HTTPHeaderDict))
490
+ """
491
+
492
+ _params = locals()
493
+
494
+ _all_params = [
495
+ 'entity_unique_id',
496
+ 'effective_at',
497
+ 'as_at',
498
+ 'previews'
499
+ ]
500
+ _all_params.extend(
501
+ [
502
+ 'async_req',
503
+ '_return_http_data_only',
504
+ '_preload_content',
505
+ '_request_timeout',
506
+ '_request_auth',
507
+ '_content_type',
508
+ '_headers'
509
+ ]
510
+ )
511
+
512
+ # validate the arguments
513
+ for _key, _val in _params['kwargs'].items():
514
+ if _key not in _all_params:
515
+ raise ApiTypeError(
516
+ "Got an unexpected keyword argument '%s'"
517
+ " to method get_property_definition_by_entity_unique_id" % _key
518
+ )
519
+ _params[_key] = _val
520
+ del _params['kwargs']
521
+
522
+ _collection_formats = {}
523
+
524
+ # process the path parameters
525
+ _path_params = {}
526
+ if _params['entity_unique_id']:
527
+ _path_params['entityUniqueId'] = _params['entity_unique_id']
528
+
529
+
530
+ # process the query parameters
531
+ _query_params = []
532
+ if _params.get('effective_at') is not None: # noqa: E501
533
+ _query_params.append(('effectiveAt', _params['effective_at']))
534
+
535
+ if _params.get('as_at') is not None: # noqa: E501
536
+ if isinstance(_params['as_at'], datetime):
537
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
538
+ else:
539
+ _query_params.append(('asAt', _params['as_at']))
540
+
541
+ if _params.get('previews') is not None: # noqa: E501
542
+ _query_params.append(('previews', _params['previews']))
543
+ _collection_formats['previews'] = 'multi'
544
+
545
+ # process the header parameters
546
+ _header_params = dict(_params.get('_headers', {}))
547
+ # process the form parameters
548
+ _form_params = []
549
+ _files = {}
550
+ # process the body parameter
551
+ _body_params = None
552
+ # set the HTTP header `Accept`
553
+ _header_params['Accept'] = self.api_client.select_header_accept(
554
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
555
+
556
+ # authentication setting
557
+ _auth_settings = ['oauth2'] # noqa: E501
558
+
559
+ _response_types_map = {
560
+ '200': "PropertyDefinitionEntity",
561
+ '400': "LusidValidationProblemDetails",
562
+ }
563
+
564
+ return self.api_client.call_api(
565
+ '/api/entities/propertydefinitions/{entityUniqueId}', 'GET',
566
+ _path_params,
567
+ _query_params,
568
+ _header_params,
569
+ body=_body_params,
570
+ post_params=_form_params,
571
+ files=_files,
572
+ response_types_map=_response_types_map,
573
+ auth_settings=_auth_settings,
574
+ async_req=_params.get('async_req'),
575
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
576
+ _preload_content=_params.get('_preload_content', True),
577
+ _request_timeout=_params.get('_request_timeout'),
578
+ collection_formats=_collection_formats,
579
+ _request_auth=_params.get('_request_auth'))
@@ -22,7 +22,7 @@ from typing import overload, Optional, Union, Awaitable
22
22
  from typing_extensions import Annotated
23
23
  from pydantic.v1 import Field, StrictBool, conlist, constr, validator
24
24
 
25
- from typing import Optional
25
+ from typing import Dict, Optional
26
26
 
27
27
  from lusid.models.allocation_service_run_response import AllocationServiceRunResponse
28
28
  from lusid.models.block_and_orders_create_request import BlockAndOrdersCreateRequest
@@ -30,10 +30,12 @@ from lusid.models.book_transactions_request import BookTransactionsRequest
30
30
  from lusid.models.book_transactions_response import BookTransactionsResponse
31
31
  from lusid.models.move_orders_to_different_blocks_request import MoveOrdersToDifferentBlocksRequest
32
32
  from lusid.models.place_blocks_request import PlaceBlocksRequest
33
+ from lusid.models.placement_update_request import PlacementUpdateRequest
33
34
  from lusid.models.resource_id import ResourceId
34
35
  from lusid.models.resource_list_of_block_and_orders import ResourceListOfBlockAndOrders
35
36
  from lusid.models.resource_list_of_moved_order_to_different_block_response import ResourceListOfMovedOrderToDifferentBlockResponse
36
37
  from lusid.models.resource_list_of_placement import ResourceListOfPlacement
38
+ from lusid.models.update_placements_response import UpdatePlacementsResponse
37
39
 
38
40
  from lusid.api_client import ApiClient
39
41
  from lusid.api_response import ApiResponse
@@ -860,3 +862,161 @@ class OrderManagementApi:
860
862
  _request_timeout=_params.get('_request_timeout'),
861
863
  collection_formats=_collection_formats,
862
864
  _request_auth=_params.get('_request_auth'))
865
+
866
+ @overload
867
+ async def update_placements(self, request_body : Annotated[Dict[str, PlacementUpdateRequest], Field(..., description="The request containing the placements to be updated.")], **kwargs) -> UpdatePlacementsResponse: # noqa: E501
868
+ ...
869
+
870
+ @overload
871
+ def update_placements(self, request_body : Annotated[Dict[str, PlacementUpdateRequest], Field(..., description="The request containing the placements to be updated.")], async_req: Optional[bool]=True, **kwargs) -> UpdatePlacementsResponse: # noqa: E501
872
+ ...
873
+
874
+ @validate_arguments
875
+ def update_placements(self, request_body : Annotated[Dict[str, PlacementUpdateRequest], Field(..., description="The request containing the placements to be updated.")], async_req: Optional[bool]=None, **kwargs) -> Union[UpdatePlacementsResponse, Awaitable[UpdatePlacementsResponse]]: # noqa: E501
876
+ """[EARLY ACCESS] UpdatePlacements: Update existing placements # noqa: E501
877
+
878
+ The response returns both the collection of successfully created or updated instruments, as well as those that failed. For each failure, a reason is provided. It is important to check the failed set for unsuccessful results. # noqa: E501
879
+ This method makes a synchronous HTTP request by default. To make an
880
+ asynchronous HTTP request, please pass async_req=True
881
+
882
+ >>> thread = api.update_placements(request_body, async_req=True)
883
+ >>> result = thread.get()
884
+
885
+ :param request_body: The request containing the placements to be updated. (required)
886
+ :type request_body: Dict[str, PlacementUpdateRequest]
887
+ :param async_req: Whether to execute the request asynchronously.
888
+ :type async_req: bool, optional
889
+ :param _request_timeout: timeout setting for this request.
890
+ If one number provided, it will be total request
891
+ timeout. It can also be a pair (tuple) of
892
+ (connection, read) timeouts.
893
+ :return: Returns the result object.
894
+ If the method is called asynchronously,
895
+ returns the request thread.
896
+ :rtype: UpdatePlacementsResponse
897
+ """
898
+ kwargs['_return_http_data_only'] = True
899
+ if '_preload_content' in kwargs:
900
+ message = "Error! Please call the update_placements_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
901
+ raise ValueError(message)
902
+ if async_req is not None:
903
+ kwargs['async_req'] = async_req
904
+ return self.update_placements_with_http_info(request_body, **kwargs) # noqa: E501
905
+
906
+ @validate_arguments
907
+ def update_placements_with_http_info(self, request_body : Annotated[Dict[str, PlacementUpdateRequest], Field(..., description="The request containing the placements to be updated.")], **kwargs) -> ApiResponse: # noqa: E501
908
+ """[EARLY ACCESS] UpdatePlacements: Update existing placements # noqa: E501
909
+
910
+ The response returns both the collection of successfully created or updated instruments, as well as those that failed. For each failure, a reason is provided. It is important to check the failed set for unsuccessful results. # noqa: E501
911
+ This method makes a synchronous HTTP request by default. To make an
912
+ asynchronous HTTP request, please pass async_req=True
913
+
914
+ >>> thread = api.update_placements_with_http_info(request_body, async_req=True)
915
+ >>> result = thread.get()
916
+
917
+ :param request_body: The request containing the placements to be updated. (required)
918
+ :type request_body: Dict[str, PlacementUpdateRequest]
919
+ :param async_req: Whether to execute the request asynchronously.
920
+ :type async_req: bool, optional
921
+ :param _preload_content: if False, the ApiResponse.data will
922
+ be set to none and raw_data will store the
923
+ HTTP response body without reading/decoding.
924
+ Default is True.
925
+ :type _preload_content: bool, optional
926
+ :param _return_http_data_only: response data instead of ApiResponse
927
+ object with status code, headers, etc
928
+ :type _return_http_data_only: bool, optional
929
+ :param _request_timeout: timeout setting for this request. If one
930
+ number provided, it will be total request
931
+ timeout. It can also be a pair (tuple) of
932
+ (connection, read) timeouts.
933
+ :param _request_auth: set to override the auth_settings for an a single
934
+ request; this effectively ignores the authentication
935
+ in the spec for a single request.
936
+ :type _request_auth: dict, optional
937
+ :type _content_type: string, optional: force content-type for the request
938
+ :return: Returns the result object.
939
+ If the method is called asynchronously,
940
+ returns the request thread.
941
+ :rtype: tuple(UpdatePlacementsResponse, status_code(int), headers(HTTPHeaderDict))
942
+ """
943
+
944
+ _params = locals()
945
+
946
+ _all_params = [
947
+ 'request_body'
948
+ ]
949
+ _all_params.extend(
950
+ [
951
+ 'async_req',
952
+ '_return_http_data_only',
953
+ '_preload_content',
954
+ '_request_timeout',
955
+ '_request_auth',
956
+ '_content_type',
957
+ '_headers'
958
+ ]
959
+ )
960
+
961
+ # validate the arguments
962
+ for _key, _val in _params['kwargs'].items():
963
+ if _key not in _all_params:
964
+ raise ApiTypeError(
965
+ "Got an unexpected keyword argument '%s'"
966
+ " to method update_placements" % _key
967
+ )
968
+ _params[_key] = _val
969
+ del _params['kwargs']
970
+
971
+ _collection_formats = {}
972
+
973
+ # process the path parameters
974
+ _path_params = {}
975
+
976
+ # process the query parameters
977
+ _query_params = []
978
+ # process the header parameters
979
+ _header_params = dict(_params.get('_headers', {}))
980
+ # process the form parameters
981
+ _form_params = []
982
+ _files = {}
983
+ # process the body parameter
984
+ _body_params = None
985
+ if _params['request_body'] is not None:
986
+ _body_params = _params['request_body']
987
+
988
+ # set the HTTP header `Accept`
989
+ _header_params['Accept'] = self.api_client.select_header_accept(
990
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
991
+
992
+ # set the HTTP header `Content-Type`
993
+ _content_types_list = _params.get('_content_type',
994
+ self.api_client.select_header_content_type(
995
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
996
+ if _content_types_list:
997
+ _header_params['Content-Type'] = _content_types_list
998
+
999
+ # authentication setting
1000
+ _auth_settings = ['oauth2'] # noqa: E501
1001
+
1002
+ _response_types_map = {
1003
+ '200': "UpdatePlacementsResponse",
1004
+ '400': "LusidValidationProblemDetails",
1005
+ }
1006
+
1007
+ return self.api_client.call_api(
1008
+ '/api/ordermanagement/$updateplacements', 'POST',
1009
+ _path_params,
1010
+ _query_params,
1011
+ _header_params,
1012
+ body=_body_params,
1013
+ post_params=_form_params,
1014
+ files=_files,
1015
+ response_types_map=_response_types_map,
1016
+ auth_settings=_auth_settings,
1017
+ async_req=_params.get('async_req'),
1018
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
1019
+ _preload_content=_params.get('_preload_content', True),
1020
+ _request_timeout=_params.get('_request_timeout'),
1021
+ collection_formats=_collection_formats,
1022
+ _request_auth=_params.get('_request_auth'))
lusid/configuration.py CHANGED
@@ -373,7 +373,7 @@ class Configuration:
373
373
  return "Python SDK Debug Report:\n"\
374
374
  "OS: {env}\n"\
375
375
  "Python Version: {pyversion}\n"\
376
- "Version of the API: 0.11.6675\n"\
376
+ "Version of the API: 0.11.6676\n"\
377
377
  "SDK Package Version: {package_version}".\
378
378
  format(env=sys.platform, pyversion=sys.version, package_version=package_version)
379
379
 
lusid/models/__init__.py CHANGED
@@ -613,6 +613,7 @@ from lusid.models.place_blocks_request import PlaceBlocksRequest
613
613
  from lusid.models.placement import Placement
614
614
  from lusid.models.placement_request import PlacementRequest
615
615
  from lusid.models.placement_set_request import PlacementSetRequest
616
+ from lusid.models.placement_update_request import PlacementUpdateRequest
616
617
  from lusid.models.portfolio import Portfolio
617
618
  from lusid.models.portfolio_cash_flow import PortfolioCashFlow
618
619
  from lusid.models.portfolio_cash_ladder import PortfolioCashLadder
@@ -649,6 +650,7 @@ from lusid.models.pricing_model import PricingModel
649
650
  from lusid.models.pricing_options import PricingOptions
650
651
  from lusid.models.processed_command import ProcessedCommand
651
652
  from lusid.models.property_definition import PropertyDefinition
653
+ from lusid.models.property_definition_entity import PropertyDefinitionEntity
652
654
  from lusid.models.property_definition_search_result import PropertyDefinitionSearchResult
653
655
  from lusid.models.property_definition_type import PropertyDefinitionType
654
656
  from lusid.models.property_domain import PropertyDomain
@@ -928,6 +930,7 @@ from lusid.models.update_data_type_request import UpdateDataTypeRequest
928
930
  from lusid.models.update_derived_property_definition_request import UpdateDerivedPropertyDefinitionRequest
929
931
  from lusid.models.update_fee_type_request import UpdateFeeTypeRequest
930
932
  from lusid.models.update_instrument_identifier_request import UpdateInstrumentIdentifierRequest
933
+ from lusid.models.update_placements_response import UpdatePlacementsResponse
931
934
  from lusid.models.update_portfolio_group_request import UpdatePortfolioGroupRequest
932
935
  from lusid.models.update_portfolio_request import UpdatePortfolioRequest
933
936
  from lusid.models.update_property_definition_request import UpdatePropertyDefinitionRequest
@@ -1612,6 +1615,7 @@ __all__ = [
1612
1615
  "Placement",
1613
1616
  "PlacementRequest",
1614
1617
  "PlacementSetRequest",
1618
+ "PlacementUpdateRequest",
1615
1619
  "Portfolio",
1616
1620
  "PortfolioCashFlow",
1617
1621
  "PortfolioCashLadder",
@@ -1648,6 +1652,7 @@ __all__ = [
1648
1652
  "PricingOptions",
1649
1653
  "ProcessedCommand",
1650
1654
  "PropertyDefinition",
1655
+ "PropertyDefinitionEntity",
1651
1656
  "PropertyDefinitionSearchResult",
1652
1657
  "PropertyDefinitionType",
1653
1658
  "PropertyDomain",
@@ -1927,6 +1932,7 @@ __all__ = [
1927
1932
  "UpdateDerivedPropertyDefinitionRequest",
1928
1933
  "UpdateFeeTypeRequest",
1929
1934
  "UpdateInstrumentIdentifierRequest",
1935
+ "UpdatePlacementsResponse",
1930
1936
  "UpdatePortfolioGroupRequest",
1931
1937
  "UpdatePortfolioRequest",
1932
1938
  "UpdatePropertyDefinitionRequest",
@@ -0,0 +1,116 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, constr
23
+ from lusid.models.perpetual_property import PerpetualProperty
24
+ from lusid.models.resource_id import ResourceId
25
+
26
+ class PlacementUpdateRequest(BaseModel):
27
+ """
28
+ A request to create or update a Placement. # noqa: E501
29
+ """
30
+ id: ResourceId = Field(...)
31
+ quantity: Union[StrictFloat, StrictInt] = Field(..., description="The quantity of given instrument ordered.")
32
+ properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="Client-defined properties associated with this placement.")
33
+ counterparty: Optional[StrictStr] = Field(None, description="Optionally specifies the market entity this placement is placed with.")
34
+ execution_system: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="executionSystem", description="Optionally specifies the execution system in use.")
35
+ entry_type: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="entryType", description="Optionally specifies the entry type of this placement.")
36
+ __properties = ["id", "quantity", "properties", "counterparty", "executionSystem", "entryType"]
37
+
38
+ class Config:
39
+ """Pydantic configuration"""
40
+ allow_population_by_field_name = True
41
+ validate_assignment = True
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.dict(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> PlacementUpdateRequest:
53
+ """Create an instance of PlacementUpdateRequest from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self):
57
+ """Returns the dictionary representation of the model using alias"""
58
+ _dict = self.dict(by_alias=True,
59
+ exclude={
60
+ },
61
+ exclude_none=True)
62
+ # override the default output from pydantic by calling `to_dict()` of id
63
+ if self.id:
64
+ _dict['id'] = self.id.to_dict()
65
+ # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
66
+ _field_dict = {}
67
+ if self.properties:
68
+ for _key in self.properties:
69
+ if self.properties[_key]:
70
+ _field_dict[_key] = self.properties[_key].to_dict()
71
+ _dict['properties'] = _field_dict
72
+ # set to None if properties (nullable) is None
73
+ # and __fields_set__ contains the field
74
+ if self.properties is None and "properties" in self.__fields_set__:
75
+ _dict['properties'] = None
76
+
77
+ # set to None if counterparty (nullable) is None
78
+ # and __fields_set__ contains the field
79
+ if self.counterparty is None and "counterparty" in self.__fields_set__:
80
+ _dict['counterparty'] = None
81
+
82
+ # set to None if execution_system (nullable) is None
83
+ # and __fields_set__ contains the field
84
+ if self.execution_system is None and "execution_system" in self.__fields_set__:
85
+ _dict['executionSystem'] = None
86
+
87
+ # set to None if entry_type (nullable) is None
88
+ # and __fields_set__ contains the field
89
+ if self.entry_type is None and "entry_type" in self.__fields_set__:
90
+ _dict['entryType'] = None
91
+
92
+ return _dict
93
+
94
+ @classmethod
95
+ def from_dict(cls, obj: dict) -> PlacementUpdateRequest:
96
+ """Create an instance of PlacementUpdateRequest from a dict"""
97
+ if obj is None:
98
+ return None
99
+
100
+ if not isinstance(obj, dict):
101
+ return PlacementUpdateRequest.parse_obj(obj)
102
+
103
+ _obj = PlacementUpdateRequest.parse_obj({
104
+ "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
105
+ "quantity": obj.get("quantity"),
106
+ "properties": dict(
107
+ (_k, PerpetualProperty.from_dict(_v))
108
+ for _k, _v in obj.get("properties").items()
109
+ )
110
+ if obj.get("properties") is not None
111
+ else None,
112
+ "counterparty": obj.get("counterparty"),
113
+ "execution_system": obj.get("executionSystem"),
114
+ "entry_type": obj.get("entryType")
115
+ })
116
+ return _obj
@@ -0,0 +1,146 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr, conlist, constr
23
+ from lusid.models.link import Link
24
+ from lusid.models.property_definition import PropertyDefinition
25
+
26
+ class PropertyDefinitionEntity(BaseModel):
27
+ """
28
+ PropertyDefinitionEntity
29
+ """
30
+ href: StrictStr = Field(..., description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
31
+ entity_unique_id: constr(strict=True, min_length=1) = Field(..., alias="entityUniqueId", description="The unique id of the entity.")
32
+ as_at_version_number: Optional[StrictInt] = Field(None, alias="asAtVersionNumber", description="The integer version number for the entity (the entity was created at version 1)")
33
+ status: constr(strict=True, min_length=1) = Field(..., description="The status of the entity at the current time.")
34
+ as_at_deleted: Optional[datetime] = Field(None, alias="asAtDeleted", description="The asAt datetime at which the entity was deleted.")
35
+ user_id_deleted: Optional[StrictStr] = Field(None, alias="userIdDeleted", description="The unique id of the user who deleted the entity.")
36
+ request_id_deleted: Optional[StrictStr] = Field(None, alias="requestIdDeleted", description="The unique request id of the command that deleted the entity.")
37
+ effective_at_created: Optional[datetime] = Field(None, alias="effectiveAtCreated", description="The EffectiveAt this Entity is created, if entity does not currently exist in EffectiveAt.")
38
+ prevailing_property_definition: Optional[PropertyDefinition] = Field(None, alias="prevailingPropertyDefinition")
39
+ deleted_property_definition: Optional[PropertyDefinition] = Field(None, alias="deletedPropertyDefinition")
40
+ previewed_status: Optional[StrictStr] = Field(None, alias="previewedStatus", description="The status of the previewed entity.")
41
+ previewed_property_definition: Optional[PropertyDefinition] = Field(None, alias="previewedPropertyDefinition")
42
+ links: Optional[conlist(Link)] = None
43
+ __properties = ["href", "entityUniqueId", "asAtVersionNumber", "status", "asAtDeleted", "userIdDeleted", "requestIdDeleted", "effectiveAtCreated", "prevailingPropertyDefinition", "deletedPropertyDefinition", "previewedStatus", "previewedPropertyDefinition", "links"]
44
+
45
+ class Config:
46
+ """Pydantic configuration"""
47
+ allow_population_by_field_name = True
48
+ validate_assignment = True
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.dict(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> PropertyDefinitionEntity:
60
+ """Create an instance of PropertyDefinitionEntity from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self):
64
+ """Returns the dictionary representation of the model using alias"""
65
+ _dict = self.dict(by_alias=True,
66
+ exclude={
67
+ },
68
+ exclude_none=True)
69
+ # override the default output from pydantic by calling `to_dict()` of prevailing_property_definition
70
+ if self.prevailing_property_definition:
71
+ _dict['prevailingPropertyDefinition'] = self.prevailing_property_definition.to_dict()
72
+ # override the default output from pydantic by calling `to_dict()` of deleted_property_definition
73
+ if self.deleted_property_definition:
74
+ _dict['deletedPropertyDefinition'] = self.deleted_property_definition.to_dict()
75
+ # override the default output from pydantic by calling `to_dict()` of previewed_property_definition
76
+ if self.previewed_property_definition:
77
+ _dict['previewedPropertyDefinition'] = self.previewed_property_definition.to_dict()
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 as_at_version_number (nullable) is None
86
+ # and __fields_set__ contains the field
87
+ if self.as_at_version_number is None and "as_at_version_number" in self.__fields_set__:
88
+ _dict['asAtVersionNumber'] = None
89
+
90
+ # set to None if as_at_deleted (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.as_at_deleted is None and "as_at_deleted" in self.__fields_set__:
93
+ _dict['asAtDeleted'] = None
94
+
95
+ # set to None if user_id_deleted (nullable) is None
96
+ # and __fields_set__ contains the field
97
+ if self.user_id_deleted is None and "user_id_deleted" in self.__fields_set__:
98
+ _dict['userIdDeleted'] = None
99
+
100
+ # set to None if request_id_deleted (nullable) is None
101
+ # and __fields_set__ contains the field
102
+ if self.request_id_deleted is None and "request_id_deleted" in self.__fields_set__:
103
+ _dict['requestIdDeleted'] = None
104
+
105
+ # set to None if effective_at_created (nullable) is None
106
+ # and __fields_set__ contains the field
107
+ if self.effective_at_created is None and "effective_at_created" in self.__fields_set__:
108
+ _dict['effectiveAtCreated'] = None
109
+
110
+ # set to None if previewed_status (nullable) is None
111
+ # and __fields_set__ contains the field
112
+ if self.previewed_status is None and "previewed_status" in self.__fields_set__:
113
+ _dict['previewedStatus'] = None
114
+
115
+ # set to None if links (nullable) is None
116
+ # and __fields_set__ contains the field
117
+ if self.links is None and "links" in self.__fields_set__:
118
+ _dict['links'] = None
119
+
120
+ return _dict
121
+
122
+ @classmethod
123
+ def from_dict(cls, obj: dict) -> PropertyDefinitionEntity:
124
+ """Create an instance of PropertyDefinitionEntity from a dict"""
125
+ if obj is None:
126
+ return None
127
+
128
+ if not isinstance(obj, dict):
129
+ return PropertyDefinitionEntity.parse_obj(obj)
130
+
131
+ _obj = PropertyDefinitionEntity.parse_obj({
132
+ "href": obj.get("href"),
133
+ "entity_unique_id": obj.get("entityUniqueId"),
134
+ "as_at_version_number": obj.get("asAtVersionNumber"),
135
+ "status": obj.get("status"),
136
+ "as_at_deleted": obj.get("asAtDeleted"),
137
+ "user_id_deleted": obj.get("userIdDeleted"),
138
+ "request_id_deleted": obj.get("requestIdDeleted"),
139
+ "effective_at_created": obj.get("effectiveAtCreated"),
140
+ "prevailing_property_definition": PropertyDefinition.from_dict(obj.get("prevailingPropertyDefinition")) if obj.get("prevailingPropertyDefinition") is not None else None,
141
+ "deleted_property_definition": PropertyDefinition.from_dict(obj.get("deletedPropertyDefinition")) if obj.get("deletedPropertyDefinition") is not None else None,
142
+ "previewed_status": obj.get("previewedStatus"),
143
+ "previewed_property_definition": PropertyDefinition.from_dict(obj.get("previewedPropertyDefinition")) if obj.get("previewedPropertyDefinition") is not None else None,
144
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
145
+ })
146
+ return _obj
@@ -0,0 +1,153 @@
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.error_detail import ErrorDetail
24
+ from lusid.models.link import Link
25
+ from lusid.models.placement import Placement
26
+ from lusid.models.response_meta_data import ResponseMetaData
27
+
28
+ class UpdatePlacementsResponse(BaseModel):
29
+ """
30
+ UpdatePlacementsResponse
31
+ """
32
+ href: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
33
+ values: Optional[Dict[str, Placement]] = Field(None, description="The placements which have been successfully updated.")
34
+ failed: Optional[Dict[str, ErrorDetail]] = Field(None, description="The placements that could not be updated, along with a reason for their failure.")
35
+ metadata: Optional[Dict[str, conlist(ResponseMetaData)]] = Field(None, description="Meta data associated with the update event.")
36
+ links: Optional[conlist(Link)] = None
37
+ __properties = ["href", "values", "failed", "metadata", "links"]
38
+
39
+ class Config:
40
+ """Pydantic configuration"""
41
+ allow_population_by_field_name = True
42
+ validate_assignment = True
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.dict(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ return json.dumps(self.to_dict())
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> UpdatePlacementsResponse:
54
+ """Create an instance of UpdatePlacementsResponse from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self):
58
+ """Returns the dictionary representation of the model using alias"""
59
+ _dict = self.dict(by_alias=True,
60
+ exclude={
61
+ },
62
+ exclude_none=True)
63
+ # override the default output from pydantic by calling `to_dict()` of each value in values (dict)
64
+ _field_dict = {}
65
+ if self.values:
66
+ for _key in self.values:
67
+ if self.values[_key]:
68
+ _field_dict[_key] = self.values[_key].to_dict()
69
+ _dict['values'] = _field_dict
70
+ # override the default output from pydantic by calling `to_dict()` of each value in failed (dict)
71
+ _field_dict = {}
72
+ if self.failed:
73
+ for _key in self.failed:
74
+ if self.failed[_key]:
75
+ _field_dict[_key] = self.failed[_key].to_dict()
76
+ _dict['failed'] = _field_dict
77
+ # override the default output from pydantic by calling `to_dict()` of each value in metadata (dict of array)
78
+ _field_dict_of_array = {}
79
+ if self.metadata:
80
+ for _key in self.metadata:
81
+ if self.metadata[_key]:
82
+ _field_dict_of_array[_key] = [
83
+ _item.to_dict() for _item in self.metadata[_key]
84
+ ]
85
+ _dict['metadata'] = _field_dict_of_array
86
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
87
+ _items = []
88
+ if self.links:
89
+ for _item in self.links:
90
+ if _item:
91
+ _items.append(_item.to_dict())
92
+ _dict['links'] = _items
93
+ # set to None if href (nullable) is None
94
+ # and __fields_set__ contains the field
95
+ if self.href is None and "href" in self.__fields_set__:
96
+ _dict['href'] = None
97
+
98
+ # set to None if values (nullable) is None
99
+ # and __fields_set__ contains the field
100
+ if self.values is None and "values" in self.__fields_set__:
101
+ _dict['values'] = None
102
+
103
+ # set to None if failed (nullable) is None
104
+ # and __fields_set__ contains the field
105
+ if self.failed is None and "failed" in self.__fields_set__:
106
+ _dict['failed'] = None
107
+
108
+ # set to None if metadata (nullable) is None
109
+ # and __fields_set__ contains the field
110
+ if self.metadata is None and "metadata" in self.__fields_set__:
111
+ _dict['metadata'] = None
112
+
113
+ # set to None if links (nullable) is None
114
+ # and __fields_set__ contains the field
115
+ if self.links is None and "links" in self.__fields_set__:
116
+ _dict['links'] = None
117
+
118
+ return _dict
119
+
120
+ @classmethod
121
+ def from_dict(cls, obj: dict) -> UpdatePlacementsResponse:
122
+ """Create an instance of UpdatePlacementsResponse from a dict"""
123
+ if obj is None:
124
+ return None
125
+
126
+ if not isinstance(obj, dict):
127
+ return UpdatePlacementsResponse.parse_obj(obj)
128
+
129
+ _obj = UpdatePlacementsResponse.parse_obj({
130
+ "href": obj.get("href"),
131
+ "values": dict(
132
+ (_k, Placement.from_dict(_v))
133
+ for _k, _v in obj.get("values").items()
134
+ )
135
+ if obj.get("values") is not None
136
+ else None,
137
+ "failed": dict(
138
+ (_k, ErrorDetail.from_dict(_v))
139
+ for _k, _v in obj.get("failed").items()
140
+ )
141
+ if obj.get("failed") is not None
142
+ else None,
143
+ "metadata": dict(
144
+ (_k,
145
+ [ResponseMetaData.from_dict(_item) for _item in _v]
146
+ if _v is not None
147
+ else None
148
+ )
149
+ for _k, _v in obj.get("metadata").items()
150
+ ),
151
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
152
+ })
153
+ return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.242
3
+ Version: 2.1.243
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -29,8 +29,8 @@ FINBOURNE Technology
29
29
 
30
30
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
31
31
 
32
- - API version: 0.11.6675
33
- - Package version: 2.1.242
32
+ - API version: 0.11.6676
33
+ - Package version: 2.1.243
34
34
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
35
35
  For more information, please visit [https://www.finbourne.com](https://www.finbourne.com)
36
36
 
@@ -396,6 +396,7 @@ Class | Method | HTTP request | Description
396
396
  *DerivedTransactionPortfoliosApi* | [**delete_derived_portfolio_details**](docs/DerivedTransactionPortfoliosApi.md#delete_derived_portfolio_details) | **DELETE** /api/derivedtransactionportfolios/{scope}/{code}/details | [EARLY ACCESS] DeleteDerivedPortfolioDetails: Delete derived portfolio details
397
397
  *EntitiesApi* | [**get_portfolio_by_entity_unique_id**](docs/EntitiesApi.md#get_portfolio_by_entity_unique_id) | **GET** /api/entities/portfolios/{entityUniqueId} | [EXPERIMENTAL] GetPortfolioByEntityUniqueId: Get portfolio by EntityUniqueId
398
398
  *EntitiesApi* | [**get_portfolio_changes**](docs/EntitiesApi.md#get_portfolio_changes) | **GET** /api/entities/changes/portfolios | GetPortfolioChanges: Get the next change to each portfolio in a scope.
399
+ *EntitiesApi* | [**get_property_definition_by_entity_unique_id**](docs/EntitiesApi.md#get_property_definition_by_entity_unique_id) | **GET** /api/entities/propertydefinitions/{entityUniqueId} | [EXPERIMENTAL] GetPropertyDefinitionByEntityUniqueId: Get property definition by EntityUniqueId
399
400
  *ExecutionsApi* | [**delete_execution**](docs/ExecutionsApi.md#delete_execution) | **DELETE** /api/executions/{scope}/{code} | [EARLY ACCESS] DeleteExecution: Delete execution
400
401
  *ExecutionsApi* | [**get_execution**](docs/ExecutionsApi.md#get_execution) | **GET** /api/executions/{scope}/{code} | [EARLY ACCESS] GetExecution: Get Execution
401
402
  *ExecutionsApi* | [**list_executions**](docs/ExecutionsApi.md#list_executions) | **GET** /api/executions | ListExecutions: List Executions
@@ -492,6 +493,7 @@ Class | Method | HTTP request | Description
492
493
  *OrderManagementApi* | [**move_orders**](docs/OrderManagementApi.md#move_orders) | **POST** /api/ordermanagement/moveorders | [EARLY ACCESS] MoveOrders: Move orders to new or existing block
493
494
  *OrderManagementApi* | [**place_blocks**](docs/OrderManagementApi.md#place_blocks) | **POST** /api/ordermanagement/placeblocks | [EARLY ACCESS] PlaceBlocks: Places blocks for a given list of placement requests.
494
495
  *OrderManagementApi* | [**run_allocation_service**](docs/OrderManagementApi.md#run_allocation_service) | **POST** /api/ordermanagement/allocate | [EXPERIMENTAL] RunAllocationService: Runs the Allocation Service
496
+ *OrderManagementApi* | [**update_placements**](docs/OrderManagementApi.md#update_placements) | **POST** /api/ordermanagement/$updateplacements | [EARLY ACCESS] UpdatePlacements: Update existing placements
495
497
  *OrdersApi* | [**delete_order**](docs/OrdersApi.md#delete_order) | **DELETE** /api/orders/{scope}/{code} | [EARLY ACCESS] DeleteOrder: Delete order
496
498
  *OrdersApi* | [**get_order**](docs/OrdersApi.md#get_order) | **GET** /api/orders/{scope}/{code} | [EARLY ACCESS] GetOrder: Get Order
497
499
  *OrdersApi* | [**list_orders**](docs/OrdersApi.md#list_orders) | **GET** /api/orders | ListOrders: List Orders
@@ -1347,6 +1349,7 @@ Class | Method | HTTP request | Description
1347
1349
  - [Placement](docs/Placement.md)
1348
1350
  - [PlacementRequest](docs/PlacementRequest.md)
1349
1351
  - [PlacementSetRequest](docs/PlacementSetRequest.md)
1352
+ - [PlacementUpdateRequest](docs/PlacementUpdateRequest.md)
1350
1353
  - [Portfolio](docs/Portfolio.md)
1351
1354
  - [PortfolioCashFlow](docs/PortfolioCashFlow.md)
1352
1355
  - [PortfolioCashLadder](docs/PortfolioCashLadder.md)
@@ -1383,6 +1386,7 @@ Class | Method | HTTP request | Description
1383
1386
  - [PricingOptions](docs/PricingOptions.md)
1384
1387
  - [ProcessedCommand](docs/ProcessedCommand.md)
1385
1388
  - [PropertyDefinition](docs/PropertyDefinition.md)
1389
+ - [PropertyDefinitionEntity](docs/PropertyDefinitionEntity.md)
1386
1390
  - [PropertyDefinitionSearchResult](docs/PropertyDefinitionSearchResult.md)
1387
1391
  - [PropertyDefinitionType](docs/PropertyDefinitionType.md)
1388
1392
  - [PropertyDomain](docs/PropertyDomain.md)
@@ -1662,6 +1666,7 @@ Class | Method | HTTP request | Description
1662
1666
  - [UpdateDerivedPropertyDefinitionRequest](docs/UpdateDerivedPropertyDefinitionRequest.md)
1663
1667
  - [UpdateFeeTypeRequest](docs/UpdateFeeTypeRequest.md)
1664
1668
  - [UpdateInstrumentIdentifierRequest](docs/UpdateInstrumentIdentifierRequest.md)
1669
+ - [UpdatePlacementsResponse](docs/UpdatePlacementsResponse.md)
1665
1670
  - [UpdatePortfolioGroupRequest](docs/UpdatePortfolioGroupRequest.md)
1666
1671
  - [UpdatePortfolioRequest](docs/UpdatePortfolioRequest.md)
1667
1672
  - [UpdatePropertyDefinitionRequest](docs/UpdatePropertyDefinitionRequest.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=6Jz7sD3VlI-A26T1DvVc1YfJjjiOnlrPiKXRaCLN9Vk,110788
1
+ lusid/__init__.py,sha256=pRqHYtk3-QYlT69pJwLXxIW8YyFG5C80AEH5JMk8_2g,111109
2
2
  lusid/api/__init__.py,sha256=PFpT-ADthWd08-JqKOqQTbVW6cz9wdP_us6bg3aBFfs,5555
3
3
  lusid/api/abor_api.py,sha256=AvgsHuWE7qRSYJhKveBE2htSjHpqqS0VNJrysAfwME0,159655
4
4
  lusid/api/abor_configuration_api.py,sha256=G2bKPtMYOZ2GhUrg-nPJtCa9XIZdZYK7oafcbJWDMP8,64033
@@ -22,7 +22,7 @@ lusid/api/custom_entity_types_api.py,sha256=fLeAZaJ9Gdkfkr_UVDuqueiIxuN_5ri80dvq
22
22
  lusid/api/cut_label_definitions_api.py,sha256=7sroMqRhrOXdJlHQJ6f4NbqDRwOh7ewfY2yHGopZ7KM,47049
23
23
  lusid/api/data_types_api.py,sha256=OiQL4CRxwWd06DovdcLZbOqPx4AfbwYQ9yXYtaRqWWc,77801
24
24
  lusid/api/derived_transaction_portfolios_api.py,sha256=cKv5mKNmTiuHzWGwupwcSBibj3Ncwv88GiEJSqmAbCY,20227
25
- lusid/api/entities_api.py,sha256=G0USt3seEqbJJsB1c6IMWBQwAa65BaDLxSX8UFATa3E,22446
25
+ lusid/api/entities_api.py,sha256=wdPiI_ixCNIpkm7LL-fNlJUQhoRX0t5JToRnA4sEVEo,34600
26
26
  lusid/api/executions_api.py,sha256=u92G5bsNwzMlKt9OyV7MQy6BTJc3TC9_7qgg8xXAuL0,44375
27
27
  lusid/api/fee_types_api.py,sha256=HZN9X5s6PZvK0UXFdFXeaQoanitxNj8dUEasK81Vz7g,49609
28
28
  lusid/api/funds_api.py,sha256=pv4gajsbbbkMi5Q07ixKzzcuhPTfZ-MoenSLsj9tpJ0,196396
@@ -33,7 +33,7 @@ lusid/api/legacy_compliance_api.py,sha256=EjYqCQTemq71q2_sfHU9ptr-ULhNk1EJ0Vejrf
33
33
  lusid/api/legal_entities_api.py,sha256=DFpQxYU_illhMl8_CnlmpLKcBEaxOt7ECiHT51Xl49Q,267854
34
34
  lusid/api/order_graph_api.py,sha256=YcL-SdC42ufKcFgbzD_qwVpWRZKkRDRijGpBviizbVU,45280
35
35
  lusid/api/order_instructions_api.py,sha256=HZn9ZwVgp6bF32GIHpBwaejKKri0tG_KLfgHWfllR8U,46091
36
- lusid/api/order_management_api.py,sha256=DI7QI_ePN1lEB5uS4FmocJLLsC2aIWW2O05ihDDnh94,44646
36
+ lusid/api/order_management_api.py,sha256=G5O6ILLqhoy1C6_gzonv08-D-J6sHwtHkuPNM54asi4,52759
37
37
  lusid/api/orders_api.py,sha256=PjkqtLhbS6lQEEfZiXXAiIa5ls0jLokiqizseg7_nx0,43527
38
38
  lusid/api/packages_api.py,sha256=-2mdoL2HSQ2aCXqYUMxt-1rrlezyQhgCNtevVazqM9o,43985
39
39
  lusid/api/participations_api.py,sha256=nlVzeyfE33X9Ue9HC9rqCW3WACEPKBvcrEjFEmT8wlk,45263
@@ -67,7 +67,7 @@ lusid/api/transaction_portfolios_api.py,sha256=7G5m6iTQXTKCc6ASdxnlVJjvFascHxEgD
67
67
  lusid/api/translation_api.py,sha256=xTAaKEW96JTDIZBXCjxSguCa7Gz4oVd5jdObUE2egwo,20092
68
68
  lusid/api_client.py,sha256=dF6l9RAsdxdQjf6Qn4ny6LB-QXlJmsscWiozCvyyBFA,30709
69
69
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
70
- lusid/configuration.py,sha256=zHpJU-ELBddMTmCq0zos-Oj21oOuh1tfpaYQhNJ7Q-c,14404
70
+ lusid/configuration.py,sha256=e1Uh7rMw3YAzA-NWRuuVaCTZvMzEBf3yXV2hjA3WXVM,14404
71
71
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
72
72
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
73
73
  lusid/extensions/api_client.py,sha256=Ob06urm4Em3MLzgP_geyeeGsPCkU225msW_1kpIeABM,30567
@@ -81,7 +81,7 @@ lusid/extensions/rest.py,sha256=tjVCu-cRrYcjp-ttB975vebPKtBNyBWaeoAdO3QXG2I,1269
81
81
  lusid/extensions/retry.py,sha256=orBJ1uF1iT1IncjWX1iGHVqsCgTh0SBe9rtiV_sPnwk,11564
82
82
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
83
83
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
84
- lusid/models/__init__.py,sha256=S5zOnFdaL9v7mBApuxF60djIICUj_tJ9vth0rqWFAMo,104201
84
+ lusid/models/__init__.py,sha256=oZc5C2WgghH1QIAEjFbhvGepid0GWvQmZRNpUpCgrJA,104522
85
85
  lusid/models/a2_b_breakdown.py,sha256=Txi12EIQw3mH6NM-25QkOnHSQc3BVAWrP7yl9bZswSY,2947
86
86
  lusid/models/a2_b_category.py,sha256=k6NPAACi0CUjKyhdQac4obQSrPmp2PXD6lkAtCnyEFM,2725
87
87
  lusid/models/a2_b_data_record.py,sha256=zKGS2P4fzNpzdcGJiSIpkY4P3d_jAcawYfyuPCDeQgk,9737
@@ -681,6 +681,7 @@ lusid/models/place_blocks_request.py,sha256=RE2xCyRSQSV8wkzYvqF54fyMYi-FdoGqnqJn
681
681
  lusid/models/placement.py,sha256=5kJMz_9t07KT3NFF2Pdsq93cozl4yvNcxpyv9o5ZmRA,9106
682
682
  lusid/models/placement_request.py,sha256=qg7Yf6EQeqtC1l7lZ18_kFiGiNjBcrzMlScOWWaGkWM,7870
683
683
  lusid/models/placement_set_request.py,sha256=hkljmDDqllEbAjb7J0QAp_fyDKsizX8T9x4n1UBFCmU,2672
684
+ lusid/models/placement_update_request.py,sha256=8uMPRnrFLK-gwL-nPXxeBylbT9muvZIYu0us00bSx-w,4802
684
685
  lusid/models/portfolio.py,sha256=vLgosL-OAM9RIFkS84augDeHUkDNuidFAsy4PrB0J4k,12718
685
686
  lusid/models/portfolio_cash_flow.py,sha256=Apnb2tfP3bJrBjhH69OLwiAOvn7lApH791owxr1wC8A,8997
686
687
  lusid/models/portfolio_cash_ladder.py,sha256=cZHdUI-PZuLYXlQDxcA9zCTRPX_cHZy0-qHng9bRggU,5462
@@ -717,6 +718,7 @@ lusid/models/pricing_model.py,sha256=DqxFxGtRJHj3BIDdHqND5MwI9X3d1jh6cPc3hDkzuCk
717
718
  lusid/models/pricing_options.py,sha256=ueSekxM9_XWSVd7uVELUtY86w-ul8WnLJR2gtTQm264,7961
718
719
  lusid/models/processed_command.py,sha256=YJ13QMu5M7XCkOqabOvkh3d-w_7P_2VEgRkliLsjTn4,2970
719
720
  lusid/models/property_definition.py,sha256=_u0Qcl9SsCfWGB3sQvs_gnh062JE6hDV2a37QxdmDXM,16746
721
+ lusid/models/property_definition_entity.py,sha256=DkWIm0ap4ib-FhBaWMHbxzwDVMlGFxnCO-oiWCHT7f8,7852
720
722
  lusid/models/property_definition_search_result.py,sha256=HZDRgjbbpwzddBWAXMowLcRQC9lY3z66rf7t-CjJQpI,14861
721
723
  lusid/models/property_definition_type.py,sha256=0OhOMXLaFU6yGWTx0XfyrbQL3LSWYiVW2eFE6D9y9Pw,731
722
724
  lusid/models/property_domain.py,sha256=jL6mA2e1u8zhozuNf0IVB7GT661sQpno4d4gBjerwfs,3520
@@ -996,6 +998,7 @@ lusid/models/update_data_type_request.py,sha256=D9-a9SnXYvk6OLWTjouKu9F2e-SZxCgX
996
998
  lusid/models/update_derived_property_definition_request.py,sha256=ywIjoYEVA2VMZo_EYrmGkXIUD3gExDBhBXsW4hi9R3o,3323
997
999
  lusid/models/update_fee_type_request.py,sha256=fM6q1vKQUR5cTkPUX9uR3CZrNboo-W3UmOK7QKkY5kY,3585
998
1000
  lusid/models/update_instrument_identifier_request.py,sha256=lPZDvks6d_cuFN1AGuYJFwRrTSCsbLczkgMU5vSlOCQ,3054
1001
+ lusid/models/update_placements_response.py,sha256=VwDwHI-bsIhdQ2I1sOKdSrHJ9arhZtuJeoHYSNbFdkw,6017
999
1002
  lusid/models/update_portfolio_group_request.py,sha256=qp-jCVMlFeXY87_z9PBAz0Kzj6T_ZWALS6UVhIFvg94,2454
1000
1003
  lusid/models/update_portfolio_request.py,sha256=m6OP1BXQ4QQMv57ZGnYuNlWkYWWMZhelqgDmAa9R9Fo,2418
1001
1004
  lusid/models/update_property_definition_request.py,sha256=_837XUHsucQqyVMhHUGQR_FA_YsNXniydCb_r0ZfhBY,2575
@@ -1080,6 +1083,6 @@ lusid/models/weighted_instruments.py,sha256=1y_y_vw4-LPsbkQx4FOzWdZc5fJnzhVkf1D3
1080
1083
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1081
1084
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1082
1085
  lusid/rest.py,sha256=TNUzQ3yLNT2L053EdR7R0vNzQh2J3TlYD1T56Dye0W0,10138
1083
- lusid_sdk-2.1.242.dist-info/METADATA,sha256=0OIn4XeA6QtV45GNkjKEMUflWpvwwy1R6dUtQhItb5E,189283
1084
- lusid_sdk-2.1.242.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1085
- lusid_sdk-2.1.242.dist-info/RECORD,,
1086
+ lusid_sdk-2.1.243.dist-info/METADATA,sha256=xfijzKWvBSSfGcDbY0ne2VXZGOO4HT_sv3ahrSRt0AU,189966
1087
+ lusid_sdk-2.1.243.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1088
+ lusid_sdk-2.1.243.dist-info/RECORD,,