lusid-sdk 2.1.790__py3-none-any.whl → 2.1.792__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
@@ -652,6 +652,7 @@ from lusid.models.investor_record import InvestorRecord
652
652
  from lusid.models.ir_vol_cube_data import IrVolCubeData
653
653
  from lusid.models.ir_vol_dependency import IrVolDependency
654
654
  from lusid.models.is_business_day_response import IsBusinessDayResponse
655
+ from lusid.models.item_and_workspace import ItemAndWorkspace
655
656
  from lusid.models.journal_entry_line import JournalEntryLine
656
657
  from lusid.models.journal_entry_line_share_class_breakdown import JournalEntryLineShareClassBreakdown
657
658
  from lusid.models.journal_entry_lines_query_parameters import JournalEntryLinesQueryParameters
@@ -802,6 +803,7 @@ from lusid.models.paged_resource_list_of_identifier_definition import PagedResou
802
803
  from lusid.models.paged_resource_list_of_instrument import PagedResourceListOfInstrument
803
804
  from lusid.models.paged_resource_list_of_instrument_event_holder import PagedResourceListOfInstrumentEventHolder
804
805
  from lusid.models.paged_resource_list_of_instrument_event_instruction import PagedResourceListOfInstrumentEventInstruction
806
+ from lusid.models.paged_resource_list_of_item_and_workspace import PagedResourceListOfItemAndWorkspace
805
807
  from lusid.models.paged_resource_list_of_legal_entity import PagedResourceListOfLegalEntity
806
808
  from lusid.models.paged_resource_list_of_order import PagedResourceListOfOrder
807
809
  from lusid.models.paged_resource_list_of_order_graph_block import PagedResourceListOfOrderGraphBlock
@@ -1958,6 +1960,7 @@ __all__ = [
1958
1960
  "IrVolCubeData",
1959
1961
  "IrVolDependency",
1960
1962
  "IsBusinessDayResponse",
1963
+ "ItemAndWorkspace",
1961
1964
  "JournalEntryLine",
1962
1965
  "JournalEntryLineShareClassBreakdown",
1963
1966
  "JournalEntryLinesQueryParameters",
@@ -2108,6 +2111,7 @@ __all__ = [
2108
2111
  "PagedResourceListOfInstrument",
2109
2112
  "PagedResourceListOfInstrumentEventHolder",
2110
2113
  "PagedResourceListOfInstrumentEventInstruction",
2114
+ "PagedResourceListOfItemAndWorkspace",
2111
2115
  "PagedResourceListOfLegalEntity",
2112
2116
  "PagedResourceListOfOrder",
2113
2117
  "PagedResourceListOfOrderGraphBlock",
@@ -26,6 +26,7 @@ from pydantic.v1 import Field, StrictStr, conlist, constr, validator
26
26
 
27
27
  from typing import Dict, Optional
28
28
 
29
+ from lusid.models.deleted_entity_response import DeletedEntityResponse
29
30
  from lusid.models.investor_record import InvestorRecord
30
31
  from lusid.models.upsert_investor_record_request import UpsertInvestorRecordRequest
31
32
  from lusid.models.upsert_investor_records_response import UpsertInvestorRecordsResponse
@@ -56,6 +57,174 @@ class InvestorRecordsApi:
56
57
  self.api_client = api_client
57
58
 
58
59
 
60
+ @overload
61
+ async def delete_investor_record(self, id_type_scope : Annotated[StrictStr, Field(..., description="The scope of the investor record identifier type.")], id_type_code : Annotated[StrictStr, Field(..., description="The code of the investor record identifier type.")], code : Annotated[StrictStr, Field(..., description="Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete.")], **kwargs) -> DeletedEntityResponse: # noqa: E501
62
+ ...
63
+
64
+ @overload
65
+ def delete_investor_record(self, id_type_scope : Annotated[StrictStr, Field(..., description="The scope of the investor record identifier type.")], id_type_code : Annotated[StrictStr, Field(..., description="The code of the investor record identifier type.")], code : Annotated[StrictStr, Field(..., description="Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete.")], async_req: Optional[bool]=True, **kwargs) -> DeletedEntityResponse: # noqa: E501
66
+ ...
67
+
68
+ @validate_arguments
69
+ def delete_investor_record(self, id_type_scope : Annotated[StrictStr, Field(..., description="The scope of the investor record identifier type.")], id_type_code : Annotated[StrictStr, Field(..., description="The code of the investor record identifier type.")], code : Annotated[StrictStr, Field(..., description="Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
70
+ """DeleteInvestorRecord: Delete Investor Record # noqa: E501
71
+
72
+ Delete an investor record. Deletion will be valid from the investor record's creation datetime. This means that the investor record will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
73
+ This method makes a synchronous HTTP request by default. To make an
74
+ asynchronous HTTP request, please pass async_req=True
75
+
76
+ >>> thread = api.delete_investor_record(id_type_scope, id_type_code, code, async_req=True)
77
+ >>> result = thread.get()
78
+
79
+ :param id_type_scope: The scope of the investor record identifier type. (required)
80
+ :type id_type_scope: str
81
+ :param id_type_code: The code of the investor record identifier type. (required)
82
+ :type id_type_code: str
83
+ :param code: Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete. (required)
84
+ :type code: str
85
+ :param async_req: Whether to execute the request asynchronously.
86
+ :type async_req: bool, optional
87
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
88
+ :param opts: Configuration options for this request
89
+ :type opts: ConfigurationOptions, optional
90
+ :return: Returns the result object.
91
+ If the method is called asynchronously,
92
+ returns the request thread.
93
+ :rtype: DeletedEntityResponse
94
+ """
95
+ kwargs['_return_http_data_only'] = True
96
+ if '_preload_content' in kwargs:
97
+ message = "Error! Please call the delete_investor_record_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
98
+ raise ValueError(message)
99
+ if async_req is not None:
100
+ kwargs['async_req'] = async_req
101
+ return self.delete_investor_record_with_http_info(id_type_scope, id_type_code, code, **kwargs) # noqa: E501
102
+
103
+ @validate_arguments
104
+ def delete_investor_record_with_http_info(self, id_type_scope : Annotated[StrictStr, Field(..., description="The scope of the investor record identifier type.")], id_type_code : Annotated[StrictStr, Field(..., description="The code of the investor record identifier type.")], code : Annotated[StrictStr, Field(..., description="Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete.")], **kwargs) -> ApiResponse: # noqa: E501
105
+ """DeleteInvestorRecord: Delete Investor Record # noqa: E501
106
+
107
+ Delete an investor record. Deletion will be valid from the investor record's creation datetime. This means that the investor record will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
108
+ This method makes a synchronous HTTP request by default. To make an
109
+ asynchronous HTTP request, please pass async_req=True
110
+
111
+ >>> thread = api.delete_investor_record_with_http_info(id_type_scope, id_type_code, code, async_req=True)
112
+ >>> result = thread.get()
113
+
114
+ :param id_type_scope: The scope of the investor record identifier type. (required)
115
+ :type id_type_scope: str
116
+ :param id_type_code: The code of the investor record identifier type. (required)
117
+ :type id_type_code: str
118
+ :param code: Code of the investor record under specified identifier type's scope and code. This together with defined identifier type uniquely identifies the investor record to delete. (required)
119
+ :type code: str
120
+ :param async_req: Whether to execute the request asynchronously.
121
+ :type async_req: bool, optional
122
+ :param _preload_content: if False, the ApiResponse.data will
123
+ be set to none and raw_data will store the
124
+ HTTP response body without reading/decoding.
125
+ Default is True.
126
+ :type _preload_content: bool, optional
127
+ :param _return_http_data_only: response data instead of ApiResponse
128
+ object with status code, headers, etc
129
+ :type _return_http_data_only: bool, optional
130
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
131
+ :param opts: Configuration options for this request
132
+ :type opts: ConfigurationOptions, optional
133
+ :param _request_auth: set to override the auth_settings for an a single
134
+ request; this effectively ignores the authentication
135
+ in the spec for a single request.
136
+ :type _request_auth: dict, optional
137
+ :type _content_type: string, optional: force content-type for the request
138
+ :return: Returns the result object.
139
+ If the method is called asynchronously,
140
+ returns the request thread.
141
+ :rtype: tuple(DeletedEntityResponse, status_code(int), headers(HTTPHeaderDict))
142
+ """
143
+
144
+ _params = locals()
145
+
146
+ _all_params = [
147
+ 'id_type_scope',
148
+ 'id_type_code',
149
+ 'code'
150
+ ]
151
+ _all_params.extend(
152
+ [
153
+ 'async_req',
154
+ '_return_http_data_only',
155
+ '_preload_content',
156
+ '_request_timeout',
157
+ '_request_auth',
158
+ '_content_type',
159
+ '_headers',
160
+ 'opts'
161
+ ]
162
+ )
163
+
164
+ # validate the arguments
165
+ for _key, _val in _params['kwargs'].items():
166
+ if _key not in _all_params:
167
+ raise ApiTypeError(
168
+ "Got an unexpected keyword argument '%s'"
169
+ " to method delete_investor_record" % _key
170
+ )
171
+ _params[_key] = _val
172
+ del _params['kwargs']
173
+
174
+ _collection_formats = {}
175
+
176
+ # process the path parameters
177
+ _path_params = {}
178
+ if _params['id_type_scope']:
179
+ _path_params['idTypeScope'] = _params['id_type_scope']
180
+
181
+ if _params['id_type_code']:
182
+ _path_params['idTypeCode'] = _params['id_type_code']
183
+
184
+ if _params['code']:
185
+ _path_params['code'] = _params['code']
186
+
187
+
188
+ # process the query parameters
189
+ _query_params = []
190
+ # process the header parameters
191
+ _header_params = dict(_params.get('_headers', {}))
192
+ # process the form parameters
193
+ _form_params = []
194
+ _files = {}
195
+ # process the body parameter
196
+ _body_params = None
197
+ # set the HTTP header `Accept`
198
+ _header_params['Accept'] = self.api_client.select_header_accept(
199
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
200
+
201
+ # authentication setting
202
+ _auth_settings = ['oauth2'] # noqa: E501
203
+
204
+ _response_types_map = {
205
+ '200': "DeletedEntityResponse",
206
+ '400': "LusidValidationProblemDetails",
207
+ }
208
+
209
+ return self.api_client.call_api(
210
+ '/api/investorrecords/{idTypeScope}/{idTypeCode}/{code}', 'DELETE',
211
+ _path_params,
212
+ _query_params,
213
+ _header_params,
214
+ body=_body_params,
215
+ post_params=_form_params,
216
+ files=_files,
217
+ response_types_map=_response_types_map,
218
+ auth_settings=_auth_settings,
219
+ async_req=_params.get('async_req'),
220
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
221
+ _preload_content=_params.get('_preload_content', True),
222
+ _request_timeout=_params.get('_request_timeout'),
223
+ opts=_params.get('opts'),
224
+ collection_formats=_collection_formats,
225
+ _request_auth=_params.get('_request_auth'))
226
+
227
+
59
228
  @overload
60
229
  async def get_investor_record(self, id_type_scope : Annotated[StrictStr, Field(..., description="Scope of the investor record identifier type.")], id_type_code : Annotated[StrictStr, Field(..., description="Code of the investor record identifier type.")], code : Annotated[StrictStr, Field(..., description="Code of the investor record under specified identifier type's scope and code. This together with stated identifier type uniquely identifies the investor record.")], property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys or identifier types (as property keys) from the \"InvestorRecord\" domain to include for found investor record, or from any domain that supports relationships to decorate onto related entities. These take the format {domain}/{scope}/{code} e.g. \"InvestorRecord/ContactDetails/Address\".")] = None, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to retrieve the investor record. 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 investor record. Defaults to return the latest version of the investor record if not specified.")] = None, relationship_definition_ids : Annotated[Optional[conlist(StrictStr)], Field(description="A list of relationship definitions that are used to decorate related entities onto the investor record in the response. These must take the form {relationshipDefinitionScope}/{relationshipDefinitionCode}.")] = None, **kwargs) -> InvestorRecord: # noqa: E501
61
230
  ...
@@ -75,22 +75,22 @@ class OrderManagementApi:
75
75
 
76
76
 
77
77
  @overload
78
- 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, use_preview_transactions_for_pricing : Annotated[Optional[StrictBool], Field(description="Whether to use calculators for the transaction type to work out pricing fields on the booked transactions")] = None, **kwargs) -> BookTransactionsResponse: # noqa: E501
78
+ 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
79
79
  ...
80
80
 
81
81
  @overload
82
- 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, use_preview_transactions_for_pricing : Annotated[Optional[StrictBool], Field(description="Whether to use calculators for the transaction type to work out pricing fields on the booked transactions")] = None, async_req: Optional[bool]=True, **kwargs) -> BookTransactionsResponse: # noqa: E501
82
+ 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
83
83
  ...
84
84
 
85
85
  @validate_arguments
86
- 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, use_preview_transactions_for_pricing : Annotated[Optional[StrictBool], Field(description="Whether to use calculators for the transaction type to work out pricing fields on the booked transactions")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BookTransactionsResponse, Awaitable[BookTransactionsResponse]]: # noqa: E501
87
- """[EXPERIMENTAL] BookTransactions: Books transactions using specific allocations as a source. # noqa: E501
86
+ 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
87
+ """BookTransactions: Books transactions using specific allocations as a source. # noqa: E501
88
88
 
89
89
  Takes a collection of allocation IDs, and maps fields from those allocations and related orders onto new transactions. # noqa: E501
90
90
  This method makes a synchronous HTTP request by default. To make an
91
91
  asynchronous HTTP request, please pass async_req=True
92
92
 
93
- >>> thread = api.book_transactions(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, use_preview_transactions_for_pricing, async_req=True)
93
+ >>> thread = api.book_transactions(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, async_req=True)
94
94
  >>> result = thread.get()
95
95
 
96
96
  :param book_transactions_request: The allocations to create transactions for (required)
@@ -99,8 +99,6 @@ class OrderManagementApi:
99
99
  :type apply_fees_and_commission: bool
100
100
  :param mark_orders_and_allocations_as_booked: Whether to mark allocations and fully-booked orders with state Booked
101
101
  :type mark_orders_and_allocations_as_booked: bool
102
- :param use_preview_transactions_for_pricing: Whether to use calculators for the transaction type to work out pricing fields on the booked transactions
103
- :type use_preview_transactions_for_pricing: bool
104
102
  :param async_req: Whether to execute the request asynchronously.
105
103
  :type async_req: bool, optional
106
104
  :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
@@ -117,17 +115,17 @@ class OrderManagementApi:
117
115
  raise ValueError(message)
118
116
  if async_req is not None:
119
117
  kwargs['async_req'] = async_req
120
- return self.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, use_preview_transactions_for_pricing, **kwargs) # noqa: E501
118
+ return self.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, **kwargs) # noqa: E501
121
119
 
122
120
  @validate_arguments
123
- 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, use_preview_transactions_for_pricing : Annotated[Optional[StrictBool], Field(description="Whether to use calculators for the transaction type to work out pricing fields on the booked transactions")] = None, **kwargs) -> ApiResponse: # noqa: E501
124
- """[EXPERIMENTAL] BookTransactions: Books transactions using specific allocations as a source. # noqa: E501
121
+ 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
122
+ """BookTransactions: Books transactions using specific allocations as a source. # noqa: E501
125
123
 
126
124
  Takes a collection of allocation IDs, and maps fields from those allocations and related orders onto new transactions. # noqa: E501
127
125
  This method makes a synchronous HTTP request by default. To make an
128
126
  asynchronous HTTP request, please pass async_req=True
129
127
 
130
- >>> thread = api.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, use_preview_transactions_for_pricing, async_req=True)
128
+ >>> thread = api.book_transactions_with_http_info(book_transactions_request, apply_fees_and_commission, mark_orders_and_allocations_as_booked, async_req=True)
131
129
  >>> result = thread.get()
132
130
 
133
131
  :param book_transactions_request: The allocations to create transactions for (required)
@@ -136,8 +134,6 @@ class OrderManagementApi:
136
134
  :type apply_fees_and_commission: bool
137
135
  :param mark_orders_and_allocations_as_booked: Whether to mark allocations and fully-booked orders with state Booked
138
136
  :type mark_orders_and_allocations_as_booked: bool
139
- :param use_preview_transactions_for_pricing: Whether to use calculators for the transaction type to work out pricing fields on the booked transactions
140
- :type use_preview_transactions_for_pricing: bool
141
137
  :param async_req: Whether to execute the request asynchronously.
142
138
  :type async_req: bool, optional
143
139
  :param _preload_content: if False, the ApiResponse.data will
@@ -167,8 +163,7 @@ class OrderManagementApi:
167
163
  _all_params = [
168
164
  'book_transactions_request',
169
165
  'apply_fees_and_commission',
170
- 'mark_orders_and_allocations_as_booked',
171
- 'use_preview_transactions_for_pricing'
166
+ 'mark_orders_and_allocations_as_booked'
172
167
  ]
173
168
  _all_params.extend(
174
169
  [
@@ -206,9 +201,6 @@ class OrderManagementApi:
206
201
  if _params.get('mark_orders_and_allocations_as_booked') is not None: # noqa: E501
207
202
  _query_params.append(('markOrdersAndAllocationsAsBooked', _params['mark_orders_and_allocations_as_booked']))
208
203
 
209
- if _params.get('use_preview_transactions_for_pricing') is not None: # noqa: E501
210
- _query_params.append(('usePreviewTransactionsForPricing', _params['use_preview_transactions_for_pricing']))
211
-
212
204
  # process the header parameters
213
205
  _header_params = dict(_params.get('_headers', {}))
214
206
  # process the form parameters
@@ -744,9 +736,9 @@ class OrderManagementApi:
744
736
 
745
737
  @validate_arguments
746
738
  def create_orders(self, block_and_orders_create_request : Annotated[BlockAndOrdersCreateRequest, Field(..., description="The collection of block and orders requests.")], async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfBlockAndOrders, Awaitable[ResourceListOfBlockAndOrders]]: # noqa: E501
747
- """[EARLY ACCESS] CreateOrders: Upsert a Block and associated orders # noqa: E501
739
+ """CreateOrders: Upsert a Block and associated orders # noqa: E501
748
740
 
749
- Upsert a Block and create associated orders. This will fail if the block exists and already references orders with differing fields to the upsert request. # noqa: E501
741
+ Create orders, and blocks if they don't already exist. This will fail if the block exists and already references orders with differing blocking fields. # noqa: E501
750
742
  This method makes a synchronous HTTP request by default. To make an
751
743
  asynchronous HTTP request, please pass async_req=True
752
744
 
@@ -775,9 +767,9 @@ class OrderManagementApi:
775
767
 
776
768
  @validate_arguments
777
769
  def create_orders_with_http_info(self, block_and_orders_create_request : Annotated[BlockAndOrdersCreateRequest, Field(..., description="The collection of block and orders requests.")], **kwargs) -> ApiResponse: # noqa: E501
778
- """[EARLY ACCESS] CreateOrders: Upsert a Block and associated orders # noqa: E501
770
+ """CreateOrders: Upsert a Block and associated orders # noqa: E501
779
771
 
780
- Upsert a Block and create associated orders. This will fail if the block exists and already references orders with differing fields to the upsert request. # noqa: E501
772
+ Create orders, and blocks if they don't already exist. This will fail if the block exists and already references orders with differing blocking fields. # noqa: E501
781
773
  This method makes a synchronous HTTP request by default. To make an
782
774
  asynchronous HTTP request, please pass async_req=True
783
775
 
@@ -903,7 +895,7 @@ class OrderManagementApi:
903
895
 
904
896
  @validate_arguments
905
897
  def get_order_history(self, scope : Annotated[StrictStr, Field(..., description="The scope of the order.")], code : Annotated[StrictStr, Field(..., description="The code of the order.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfChangeIntervalWithOrderManagementDetail, Awaitable[ResourceListOfChangeIntervalWithOrderManagementDetail]]: # noqa: E501
906
- """[EXPERIMENTAL] GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
898
+ """GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
907
899
 
908
900
  Get the changes that have happened to an order and related entities. # noqa: E501
909
901
  This method makes a synchronous HTTP request by default. To make an
@@ -938,7 +930,7 @@ class OrderManagementApi:
938
930
 
939
931
  @validate_arguments
940
932
  def get_order_history_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the order.")], code : Annotated[StrictStr, Field(..., description="The code of the order.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
941
- """[EXPERIMENTAL] GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
933
+ """GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
942
934
 
943
935
  Get the changes that have happened to an order and related entities. # noqa: E501
944
936
  This method makes a synchronous HTTP request by default. To make an
@@ -1384,25 +1376,25 @@ class OrderManagementApi:
1384
1376
 
1385
1377
 
1386
1378
  @overload
1387
- async def run_allocation_service(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, **kwargs) -> AllocationServiceRunResponse: # noqa: E501
1379
+ async def run_allocation_service(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate Executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, **kwargs) -> AllocationServiceRunResponse: # noqa: E501
1388
1380
  ...
1389
1381
 
1390
1382
  @overload
1391
- def run_allocation_service(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, async_req: Optional[bool]=True, **kwargs) -> AllocationServiceRunResponse: # noqa: E501
1383
+ def run_allocation_service(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate Executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, async_req: Optional[bool]=True, **kwargs) -> AllocationServiceRunResponse: # noqa: E501
1392
1384
  ...
1393
1385
 
1394
1386
  @validate_arguments
1395
- def run_allocation_service(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[AllocationServiceRunResponse, Awaitable[AllocationServiceRunResponse]]: # noqa: E501
1396
- """[EXPERIMENTAL] RunAllocationService: Runs the Allocation Service # noqa: E501
1387
+ def run_allocation_service(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate Executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[AllocationServiceRunResponse, Awaitable[AllocationServiceRunResponse]]: # noqa: E501
1388
+ """RunAllocationService: Runs the Allocation Service # noqa: E501
1397
1389
 
1398
- This will allocate executions for a given list of placements back to their originating orders. # noqa: E501
1390
+ Allocates Executions for a given list of placements back to their originating orders using one of the LUSID algorithms, creating Allocations to record the results. # noqa: E501
1399
1391
  This method makes a synchronous HTTP request by default. To make an
1400
1392
  asynchronous HTTP request, please pass async_req=True
1401
1393
 
1402
1394
  >>> thread = api.run_allocation_service(resource_id, allocation_algorithm, async_req=True)
1403
1395
  >>> result = thread.get()
1404
1396
 
1405
- :param resource_id: The List of Placement IDs for which you wish to allocate executions. (required)
1397
+ :param resource_id: The List of Placement IDs for which you wish to allocate Executions. (required)
1406
1398
  :type resource_id: List[ResourceId]
1407
1399
  :param allocation_algorithm: A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".
1408
1400
  :type allocation_algorithm: str
@@ -1425,17 +1417,17 @@ class OrderManagementApi:
1425
1417
  return self.run_allocation_service_with_http_info(resource_id, allocation_algorithm, **kwargs) # noqa: E501
1426
1418
 
1427
1419
  @validate_arguments
1428
- def run_allocation_service_with_http_info(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, **kwargs) -> ApiResponse: # noqa: E501
1429
- """[EXPERIMENTAL] RunAllocationService: Runs the Allocation Service # noqa: E501
1420
+ def run_allocation_service_with_http_info(self, resource_id : Annotated[conlist(ResourceId), Field(..., description="The List of Placement IDs for which you wish to allocate Executions.")], allocation_algorithm : Annotated[Optional[StrictStr], Field( description="A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".")] = None, **kwargs) -> ApiResponse: # noqa: E501
1421
+ """RunAllocationService: Runs the Allocation Service # noqa: E501
1430
1422
 
1431
- This will allocate executions for a given list of placements back to their originating orders. # noqa: E501
1423
+ Allocates Executions for a given list of placements back to their originating orders using one of the LUSID algorithms, creating Allocations to record the results. # noqa: E501
1432
1424
  This method makes a synchronous HTTP request by default. To make an
1433
1425
  asynchronous HTTP request, please pass async_req=True
1434
1426
 
1435
1427
  >>> thread = api.run_allocation_service_with_http_info(resource_id, allocation_algorithm, async_req=True)
1436
1428
  >>> result = thread.get()
1437
1429
 
1438
- :param resource_id: The List of Placement IDs for which you wish to allocate executions. (required)
1430
+ :param resource_id: The List of Placement IDs for which you wish to allocate Executions. (required)
1439
1431
  :type resource_id: List[ResourceId]
1440
1432
  :param allocation_algorithm: A string representation of the allocation algorithm you would like to use to allocate shares from executions e.g. \"PR-FIFO\". This defaults to \"PR-FIFO\".
1441
1433
  :type allocation_algorithm: str
@@ -27,6 +27,7 @@ from pydantic.v1 import Field, StrictStr, conint, conlist, constr, validator
27
27
  from typing import Optional
28
28
 
29
29
  from lusid.models.deleted_entity_response import DeletedEntityResponse
30
+ from lusid.models.paged_resource_list_of_item_and_workspace import PagedResourceListOfItemAndWorkspace
30
31
  from lusid.models.paged_resource_list_of_workspace import PagedResourceListOfWorkspace
31
32
  from lusid.models.paged_resource_list_of_workspace_item import PagedResourceListOfWorkspaceItem
32
33
  from lusid.models.workspace import Workspace
@@ -1498,6 +1499,202 @@ class WorkspaceApi:
1498
1499
  _request_auth=_params.get('_request_auth'))
1499
1500
 
1500
1501
 
1502
+ @overload
1503
+ async def search_items(self, visibility : Annotated[StrictStr, Field(..., description="The visibility for the containing workspace. Must be `shared` or `personal`; case is important.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve workspace items. Defaults to 'latest' if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing workspaces items from a previous call to list workspaces items. This value is returned from the previous call. If a pagination token is provided the sortBy, filter, effectiveAt, and asAt fields must not have changed since the original request.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here: https://support.lusid.com/filtering-results-from-lusid.")] = None, **kwargs) -> PagedResourceListOfItemAndWorkspace: # noqa: E501
1504
+ ...
1505
+
1506
+ @overload
1507
+ def search_items(self, visibility : Annotated[StrictStr, Field(..., description="The visibility for the containing workspace. Must be `shared` or `personal`; case is important.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve workspace items. Defaults to 'latest' if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing workspaces items from a previous call to list workspaces items. This value is returned from the previous call. If a pagination token is provided the sortBy, filter, effectiveAt, and asAt fields must not have changed since the original request.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here: https://support.lusid.com/filtering-results-from-lusid.")] = None, async_req: Optional[bool]=True, **kwargs) -> PagedResourceListOfItemAndWorkspace: # noqa: E501
1508
+ ...
1509
+
1510
+ @validate_arguments
1511
+ def search_items(self, visibility : Annotated[StrictStr, Field(..., description="The visibility for the containing workspace. Must be `shared` or `personal`; case is important.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve workspace items. Defaults to 'latest' if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing workspaces items from a previous call to list workspaces items. This value is returned from the previous call. If a pagination token is provided the sortBy, filter, effectiveAt, and asAt fields must not have changed since the original request.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here: https://support.lusid.com/filtering-results-from-lusid.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PagedResourceListOfItemAndWorkspace, Awaitable[PagedResourceListOfItemAndWorkspace]]: # noqa: E501
1512
+ """[EXPERIMENTAL] SearchItems: List items across all workspaces. # noqa: E501
1513
+
1514
+ List items across all workspaces. # noqa: E501
1515
+ This method makes a synchronous HTTP request by default. To make an
1516
+ asynchronous HTTP request, please pass async_req=True
1517
+
1518
+ >>> thread = api.search_items(visibility, as_at, page, sort_by, limit, filter, async_req=True)
1519
+ >>> result = thread.get()
1520
+
1521
+ :param visibility: The visibility for the containing workspace. Must be `shared` or `personal`; case is important. (required)
1522
+ :type visibility: str
1523
+ :param as_at: The asAt datetime at which to retrieve workspace items. Defaults to 'latest' if not specified.
1524
+ :type as_at: datetime
1525
+ :param page: The pagination token to use to continue listing workspaces items from a previous call to list workspaces items. This value is returned from the previous call. If a pagination token is provided the sortBy, filter, effectiveAt, and asAt fields must not have changed since the original request.
1526
+ :type page: str
1527
+ :param sort_by: A list of field names to sort by, each suffixed by \" ASC\" or \" DESC\".
1528
+ :type sort_by: List[str]
1529
+ :param limit: When paginating, limit the number of returned results to this many.
1530
+ :type limit: int
1531
+ :param filter: Expression to filter the result set. Read more about filtering results from LUSID here: https://support.lusid.com/filtering-results-from-lusid.
1532
+ :type filter: str
1533
+ :param async_req: Whether to execute the request asynchronously.
1534
+ :type async_req: bool, optional
1535
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1536
+ :param opts: Configuration options for this request
1537
+ :type opts: ConfigurationOptions, optional
1538
+ :return: Returns the result object.
1539
+ If the method is called asynchronously,
1540
+ returns the request thread.
1541
+ :rtype: PagedResourceListOfItemAndWorkspace
1542
+ """
1543
+ kwargs['_return_http_data_only'] = True
1544
+ if '_preload_content' in kwargs:
1545
+ message = "Error! Please call the search_items_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
1546
+ raise ValueError(message)
1547
+ if async_req is not None:
1548
+ kwargs['async_req'] = async_req
1549
+ return self.search_items_with_http_info(visibility, as_at, page, sort_by, limit, filter, **kwargs) # noqa: E501
1550
+
1551
+ @validate_arguments
1552
+ def search_items_with_http_info(self, visibility : Annotated[StrictStr, Field(..., description="The visibility for the containing workspace. Must be `shared` or `personal`; case is important.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve workspace items. Defaults to 'latest' if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing workspaces items from a previous call to list workspaces items. This value is returned from the previous call. If a pagination token is provided the sortBy, filter, effectiveAt, and asAt fields must not have changed since the original request.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set. Read more about filtering results from LUSID here: https://support.lusid.com/filtering-results-from-lusid.")] = None, **kwargs) -> ApiResponse: # noqa: E501
1553
+ """[EXPERIMENTAL] SearchItems: List items across all workspaces. # noqa: E501
1554
+
1555
+ List items across all workspaces. # noqa: E501
1556
+ This method makes a synchronous HTTP request by default. To make an
1557
+ asynchronous HTTP request, please pass async_req=True
1558
+
1559
+ >>> thread = api.search_items_with_http_info(visibility, as_at, page, sort_by, limit, filter, async_req=True)
1560
+ >>> result = thread.get()
1561
+
1562
+ :param visibility: The visibility for the containing workspace. Must be `shared` or `personal`; case is important. (required)
1563
+ :type visibility: str
1564
+ :param as_at: The asAt datetime at which to retrieve workspace items. Defaults to 'latest' if not specified.
1565
+ :type as_at: datetime
1566
+ :param page: The pagination token to use to continue listing workspaces items from a previous call to list workspaces items. This value is returned from the previous call. If a pagination token is provided the sortBy, filter, effectiveAt, and asAt fields must not have changed since the original request.
1567
+ :type page: str
1568
+ :param sort_by: A list of field names to sort by, each suffixed by \" ASC\" or \" DESC\".
1569
+ :type sort_by: List[str]
1570
+ :param limit: When paginating, limit the number of returned results to this many.
1571
+ :type limit: int
1572
+ :param filter: Expression to filter the result set. Read more about filtering results from LUSID here: https://support.lusid.com/filtering-results-from-lusid.
1573
+ :type filter: str
1574
+ :param async_req: Whether to execute the request asynchronously.
1575
+ :type async_req: bool, optional
1576
+ :param _preload_content: if False, the ApiResponse.data will
1577
+ be set to none and raw_data will store the
1578
+ HTTP response body without reading/decoding.
1579
+ Default is True.
1580
+ :type _preload_content: bool, optional
1581
+ :param _return_http_data_only: response data instead of ApiResponse
1582
+ object with status code, headers, etc
1583
+ :type _return_http_data_only: bool, optional
1584
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1585
+ :param opts: Configuration options for this request
1586
+ :type opts: ConfigurationOptions, optional
1587
+ :param _request_auth: set to override the auth_settings for an a single
1588
+ request; this effectively ignores the authentication
1589
+ in the spec for a single request.
1590
+ :type _request_auth: dict, optional
1591
+ :type _content_type: string, optional: force content-type for the request
1592
+ :return: Returns the result object.
1593
+ If the method is called asynchronously,
1594
+ returns the request thread.
1595
+ :rtype: tuple(PagedResourceListOfItemAndWorkspace, status_code(int), headers(HTTPHeaderDict))
1596
+ """
1597
+
1598
+ _params = locals()
1599
+
1600
+ _all_params = [
1601
+ 'visibility',
1602
+ 'as_at',
1603
+ 'page',
1604
+ 'sort_by',
1605
+ 'limit',
1606
+ 'filter'
1607
+ ]
1608
+ _all_params.extend(
1609
+ [
1610
+ 'async_req',
1611
+ '_return_http_data_only',
1612
+ '_preload_content',
1613
+ '_request_timeout',
1614
+ '_request_auth',
1615
+ '_content_type',
1616
+ '_headers',
1617
+ 'opts'
1618
+ ]
1619
+ )
1620
+
1621
+ # validate the arguments
1622
+ for _key, _val in _params['kwargs'].items():
1623
+ if _key not in _all_params:
1624
+ raise ApiTypeError(
1625
+ "Got an unexpected keyword argument '%s'"
1626
+ " to method search_items" % _key
1627
+ )
1628
+ _params[_key] = _val
1629
+ del _params['kwargs']
1630
+
1631
+ _collection_formats = {}
1632
+
1633
+ # process the path parameters
1634
+ _path_params = {}
1635
+ if _params['visibility']:
1636
+ _path_params['visibility'] = _params['visibility']
1637
+
1638
+
1639
+ # process the query parameters
1640
+ _query_params = []
1641
+ if _params.get('as_at') is not None: # noqa: E501
1642
+ if isinstance(_params['as_at'], datetime):
1643
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
1644
+ else:
1645
+ _query_params.append(('asAt', _params['as_at']))
1646
+
1647
+ if _params.get('page') is not None: # noqa: E501
1648
+ _query_params.append(('page', _params['page']))
1649
+
1650
+ if _params.get('sort_by') is not None: # noqa: E501
1651
+ _query_params.append(('sortBy', _params['sort_by']))
1652
+ _collection_formats['sortBy'] = 'multi'
1653
+
1654
+ if _params.get('limit') is not None: # noqa: E501
1655
+ _query_params.append(('limit', _params['limit']))
1656
+
1657
+ if _params.get('filter') is not None: # noqa: E501
1658
+ _query_params.append(('filter', _params['filter']))
1659
+
1660
+ # process the header parameters
1661
+ _header_params = dict(_params.get('_headers', {}))
1662
+ # process the form parameters
1663
+ _form_params = []
1664
+ _files = {}
1665
+ # process the body parameter
1666
+ _body_params = None
1667
+ # set the HTTP header `Accept`
1668
+ _header_params['Accept'] = self.api_client.select_header_accept(
1669
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
1670
+
1671
+ # authentication setting
1672
+ _auth_settings = ['oauth2'] # noqa: E501
1673
+
1674
+ _response_types_map = {
1675
+ '200': "PagedResourceListOfItemAndWorkspace",
1676
+ '400': "LusidValidationProblemDetails",
1677
+ }
1678
+
1679
+ return self.api_client.call_api(
1680
+ '/api/workspaces/{visibility}/items', 'GET',
1681
+ _path_params,
1682
+ _query_params,
1683
+ _header_params,
1684
+ body=_body_params,
1685
+ post_params=_form_params,
1686
+ files=_files,
1687
+ response_types_map=_response_types_map,
1688
+ auth_settings=_auth_settings,
1689
+ async_req=_params.get('async_req'),
1690
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
1691
+ _preload_content=_params.get('_preload_content', True),
1692
+ _request_timeout=_params.get('_request_timeout'),
1693
+ opts=_params.get('opts'),
1694
+ collection_formats=_collection_formats,
1695
+ _request_auth=_params.get('_request_auth'))
1696
+
1697
+
1501
1698
  @overload
1502
1699
  async def update_item(self, visibility : Annotated[StrictStr, Field(..., description="The visibility for the containing workspace. Must be `shared` or `personal`; case is important.")], workspace_name : Annotated[StrictStr, Field(..., description="The workspace name.")], group_name : Annotated[StrictStr, Field(..., description="The group containing the item.")], item_name : Annotated[StrictStr, Field(..., description="The item name.")], workspace_item_update_request : Annotated[Optional[WorkspaceItemUpdateRequest], Field(description="The new item details.")] = None, **kwargs) -> WorkspaceItem: # noqa: E501
1503
1700
  ...