lusid-sdk 2.1.351__py3-none-any.whl → 2.1.405__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.
Files changed (94) hide show
  1. lusid/__init__.py +52 -0
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/funds_api.py +9 -8
  4. lusid/api/group_reconciliations_api.py +378 -0
  5. lusid/api/order_management_api.py +174 -0
  6. lusid/api/persons_api.py +4 -4
  7. lusid/api/portfolios_api.py +179 -0
  8. lusid/api/workspace_api.py +40 -40
  9. lusid/configuration.py +1 -1
  10. lusid/models/__init__.py +50 -0
  11. lusid/models/accept_estimate_valuation_point_response.py +100 -0
  12. lusid/models/accumulation_event.py +3 -3
  13. lusid/models/action_id.py +1 -1
  14. lusid/models/amortisation_event.py +3 -3
  15. lusid/models/applicable_instrument_event.py +14 -2
  16. lusid/models/batch_upsert_portfolio_access_metadata_request.py +82 -0
  17. lusid/models/batch_upsert_portfolio_access_metadata_response.py +82 -0
  18. lusid/models/bond_coupon_event.py +3 -3
  19. lusid/models/bond_default_event.py +3 -3
  20. lusid/models/bond_principal_event.py +3 -3
  21. lusid/models/calendar.py +17 -2
  22. lusid/models/capital_distribution_event.py +3 -3
  23. lusid/models/cash_dividend_event.py +3 -3
  24. lusid/models/cash_flow_event.py +3 -3
  25. lusid/models/cds_credit_event.py +105 -0
  26. lusid/models/cdx_credit_event.py +114 -0
  27. lusid/models/change_interval_with_order_management_detail.py +137 -0
  28. lusid/models/close_event.py +3 -3
  29. lusid/models/create_group_reconciliation_comparison_ruleset_request.py +97 -0
  30. lusid/models/credit_premium_cash_flow_event.py +102 -0
  31. lusid/models/custom_entity_definition.py +17 -2
  32. lusid/models/custom_entity_type.py +17 -2
  33. lusid/models/data_type.py +7 -1
  34. lusid/models/dividend_option_event.py +3 -3
  35. lusid/models/dividend_reinvestment_event.py +3 -3
  36. lusid/models/exercise_event.py +3 -3
  37. lusid/models/expiry_event.py +3 -3
  38. lusid/models/fee.py +1 -1
  39. lusid/models/fee_request.py +1 -1
  40. lusid/models/flow_conventions.py +1 -1
  41. lusid/models/fund_amount.py +1 -1
  42. lusid/models/fund_details.py +74 -0
  43. lusid/models/future_expiry_event.py +3 -3
  44. lusid/models/futures_contract_details.py +6 -1
  45. lusid/models/fx_forward_settlement_event.py +13 -5
  46. lusid/models/generated_event_diagnostics.py +75 -0
  47. lusid/models/group_reconciliation_aggregate_attribute_rule.py +84 -0
  48. lusid/models/group_reconciliation_aggregate_comparison_rule_operand.py +71 -0
  49. lusid/models/group_reconciliation_comparison_rule_string_value_map.py +73 -0
  50. lusid/models/group_reconciliation_comparison_rule_tolerance.py +71 -0
  51. lusid/models/group_reconciliation_comparison_ruleset.py +125 -0
  52. lusid/models/group_reconciliation_core_attribute_rule.py +95 -0
  53. lusid/models/group_reconciliation_core_comparison_rule_operand.py +71 -0
  54. lusid/models/holding_pricing_info.py +110 -0
  55. lusid/models/index_convention.py +1 -1
  56. lusid/models/informational_error_event.py +3 -3
  57. lusid/models/informational_event.py +3 -3
  58. lusid/models/instrument_event.py +10 -5
  59. lusid/models/instrument_event_instruction.py +19 -4
  60. lusid/models/instrument_event_type.py +5 -0
  61. lusid/models/maturity_event.py +3 -3
  62. lusid/models/merger_event.py +3 -3
  63. lusid/models/metadata_key_value.py +86 -0
  64. lusid/models/metadata_key_value_response.py +86 -0
  65. lusid/models/new_instrument.py +10 -2
  66. lusid/models/open_event.py +3 -3
  67. lusid/models/order_graph_block_order_detail.py +1 -1
  68. lusid/models/order_update_request.py +5 -0
  69. lusid/models/person.py +17 -2
  70. lusid/models/placement_update_request.py +6 -1
  71. lusid/models/previous_nav.py +3 -3
  72. lusid/models/pricing_context.py +8 -2
  73. lusid/models/raw_vendor_event.py +3 -3
  74. lusid/models/reset_event.py +3 -3
  75. lusid/models/resource_list_of_change_interval_with_order_management_detail.py +113 -0
  76. lusid/models/reverse_stock_split_event.py +3 -3
  77. lusid/models/scrip_dividend_event.py +3 -3
  78. lusid/models/share_class_amount.py +7 -9
  79. lusid/models/share_class_breakdown.py +4 -5
  80. lusid/models/specific_holding_pricing_info.py +75 -0
  81. lusid/models/spin_off_event.py +3 -3
  82. lusid/models/staged_modification.py +8 -1
  83. lusid/models/stock_dividend_event.py +3 -3
  84. lusid/models/stock_split_event.py +3 -3
  85. lusid/models/swap_cash_flow_event.py +97 -0
  86. lusid/models/swap_principal_event.py +97 -0
  87. lusid/models/transaction_diagnostics.py +71 -0
  88. lusid/models/transition_event.py +3 -3
  89. lusid/models/trigger_event.py +3 -3
  90. lusid/models/valuation_point_data_response.py +21 -1
  91. lusid/models/weighted_instrument.py +9 -2
  92. {lusid_sdk-2.1.351.dist-info → lusid_sdk-2.1.405.dist-info}/METADATA +52 -23
  93. {lusid_sdk-2.1.351.dist-info → lusid_sdk-2.1.405.dist-info}/RECORD +94 -68
  94. {lusid_sdk-2.1.351.dist-info → lusid_sdk-2.1.405.dist-info}/WHEEL +0 -0
@@ -0,0 +1,378 @@
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
+ import re # noqa: F401
16
+ import io
17
+ import warnings
18
+
19
+ from pydantic.v1 import validate_arguments, ValidationError
20
+ from typing import overload, Optional, Union, Awaitable
21
+
22
+ from typing_extensions import Annotated
23
+ from datetime import datetime
24
+
25
+ from pydantic.v1 import Field, constr, validator
26
+
27
+ from typing import Optional
28
+
29
+ from lusid.models.create_group_reconciliation_comparison_ruleset_request import CreateGroupReconciliationComparisonRulesetRequest
30
+ from lusid.models.group_reconciliation_comparison_ruleset import GroupReconciliationComparisonRuleset
31
+
32
+ from lusid.api_client import ApiClient
33
+ from lusid.api_response import ApiResponse
34
+ from lusid.exceptions import ( # noqa: F401
35
+ ApiTypeError,
36
+ ApiValueError
37
+ )
38
+
39
+
40
+ class GroupReconciliationsApi:
41
+ """NOTE: This class is auto generated by OpenAPI Generator
42
+ Ref: https://openapi-generator.tech
43
+
44
+ Do not edit the class manually.
45
+ """
46
+
47
+ def __init__(self, api_client=None) -> None:
48
+ if api_client is None:
49
+ api_client = ApiClient.get_default()
50
+ self.api_client = api_client
51
+
52
+ @overload
53
+ async def create_comparison_ruleset(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
54
+ ...
55
+
56
+ @overload
57
+ def create_comparison_ruleset(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, async_req: Optional[bool]=True, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
58
+ ...
59
+
60
+ @validate_arguments
61
+ def create_comparison_ruleset(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GroupReconciliationComparisonRuleset, Awaitable[GroupReconciliationComparisonRuleset]]: # noqa: E501
62
+ """[EXPERIMENTAL] CreateComparisonRuleset: Create a Group Reconciliation Comparison Ruleset # noqa: E501
63
+
64
+ Creates a set of core and aggregate rules to be run for a group reconciliation # noqa: E501
65
+ This method makes a synchronous HTTP request by default. To make an
66
+ asynchronous HTTP request, please pass async_req=True
67
+
68
+ >>> thread = api.create_comparison_ruleset(create_group_reconciliation_comparison_ruleset_request, async_req=True)
69
+ >>> result = thread.get()
70
+
71
+ :param create_group_reconciliation_comparison_ruleset_request: The request containing the details of the ruleset
72
+ :type create_group_reconciliation_comparison_ruleset_request: CreateGroupReconciliationComparisonRulesetRequest
73
+ :param async_req: Whether to execute the request asynchronously.
74
+ :type async_req: bool, optional
75
+ :param _request_timeout: timeout setting for this request.
76
+ If one number provided, it will be total request
77
+ timeout. It can also be a pair (tuple) of
78
+ (connection, read) timeouts.
79
+ :return: Returns the result object.
80
+ If the method is called asynchronously,
81
+ returns the request thread.
82
+ :rtype: GroupReconciliationComparisonRuleset
83
+ """
84
+ kwargs['_return_http_data_only'] = True
85
+ if '_preload_content' in kwargs:
86
+ message = "Error! Please call the create_comparison_ruleset_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
87
+ raise ValueError(message)
88
+ if async_req is not None:
89
+ kwargs['async_req'] = async_req
90
+ return self.create_comparison_ruleset_with_http_info(create_group_reconciliation_comparison_ruleset_request, **kwargs) # noqa: E501
91
+
92
+ @validate_arguments
93
+ def create_comparison_ruleset_with_http_info(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, **kwargs) -> ApiResponse: # noqa: E501
94
+ """[EXPERIMENTAL] CreateComparisonRuleset: Create a Group Reconciliation Comparison Ruleset # noqa: E501
95
+
96
+ Creates a set of core and aggregate rules to be run for a group reconciliation # noqa: E501
97
+ This method makes a synchronous HTTP request by default. To make an
98
+ asynchronous HTTP request, please pass async_req=True
99
+
100
+ >>> thread = api.create_comparison_ruleset_with_http_info(create_group_reconciliation_comparison_ruleset_request, async_req=True)
101
+ >>> result = thread.get()
102
+
103
+ :param create_group_reconciliation_comparison_ruleset_request: The request containing the details of the ruleset
104
+ :type create_group_reconciliation_comparison_ruleset_request: CreateGroupReconciliationComparisonRulesetRequest
105
+ :param async_req: Whether to execute the request asynchronously.
106
+ :type async_req: bool, optional
107
+ :param _preload_content: if False, the ApiResponse.data will
108
+ be set to none and raw_data will store the
109
+ HTTP response body without reading/decoding.
110
+ Default is True.
111
+ :type _preload_content: bool, optional
112
+ :param _return_http_data_only: response data instead of ApiResponse
113
+ object with status code, headers, etc
114
+ :type _return_http_data_only: bool, optional
115
+ :param _request_timeout: timeout setting for this request. If one
116
+ number provided, it will be total request
117
+ timeout. It can also be a pair (tuple) of
118
+ (connection, read) timeouts.
119
+ :param _request_auth: set to override the auth_settings for an a single
120
+ request; this effectively ignores the authentication
121
+ in the spec for a single request.
122
+ :type _request_auth: dict, optional
123
+ :type _content_type: string, optional: force content-type for the request
124
+ :return: Returns the result object.
125
+ If the method is called asynchronously,
126
+ returns the request thread.
127
+ :rtype: tuple(GroupReconciliationComparisonRuleset, status_code(int), headers(HTTPHeaderDict))
128
+ """
129
+
130
+ _params = locals()
131
+
132
+ _all_params = [
133
+ 'create_group_reconciliation_comparison_ruleset_request'
134
+ ]
135
+ _all_params.extend(
136
+ [
137
+ 'async_req',
138
+ '_return_http_data_only',
139
+ '_preload_content',
140
+ '_request_timeout',
141
+ '_request_auth',
142
+ '_content_type',
143
+ '_headers'
144
+ ]
145
+ )
146
+
147
+ # validate the arguments
148
+ for _key, _val in _params['kwargs'].items():
149
+ if _key not in _all_params:
150
+ raise ApiTypeError(
151
+ "Got an unexpected keyword argument '%s'"
152
+ " to method create_comparison_ruleset" % _key
153
+ )
154
+ _params[_key] = _val
155
+ del _params['kwargs']
156
+
157
+ _collection_formats = {}
158
+
159
+ # process the path parameters
160
+ _path_params = {}
161
+
162
+ # process the query parameters
163
+ _query_params = []
164
+ # process the header parameters
165
+ _header_params = dict(_params.get('_headers', {}))
166
+ # process the form parameters
167
+ _form_params = []
168
+ _files = {}
169
+ # process the body parameter
170
+ _body_params = None
171
+ if _params['create_group_reconciliation_comparison_ruleset_request'] is not None:
172
+ _body_params = _params['create_group_reconciliation_comparison_ruleset_request']
173
+
174
+ # set the HTTP header `Accept`
175
+ _header_params['Accept'] = self.api_client.select_header_accept(
176
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
177
+
178
+ # set the HTTP header `Content-Type`
179
+ _content_types_list = _params.get('_content_type',
180
+ self.api_client.select_header_content_type(
181
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
182
+ if _content_types_list:
183
+ _header_params['Content-Type'] = _content_types_list
184
+
185
+ # authentication setting
186
+ _auth_settings = ['oauth2'] # noqa: E501
187
+
188
+ _response_types_map = {
189
+ '201': "GroupReconciliationComparisonRuleset",
190
+ '400': "LusidValidationProblemDetails",
191
+ }
192
+
193
+ return self.api_client.call_api(
194
+ '/api/reconciliations/comparisonrulesets', 'POST',
195
+ _path_params,
196
+ _query_params,
197
+ _header_params,
198
+ body=_body_params,
199
+ post_params=_form_params,
200
+ files=_files,
201
+ response_types_map=_response_types_map,
202
+ auth_settings=_auth_settings,
203
+ async_req=_params.get('async_req'),
204
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
205
+ _preload_content=_params.get('_preload_content', True),
206
+ _request_timeout=_params.get('_request_timeout'),
207
+ collection_formats=_collection_formats,
208
+ _request_auth=_params.get('_request_auth'))
209
+
210
+ @overload
211
+ async def get_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
212
+ ...
213
+
214
+ @overload
215
+ def get_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
216
+ ...
217
+
218
+ @validate_arguments
219
+ def get_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GroupReconciliationComparisonRuleset, Awaitable[GroupReconciliationComparisonRuleset]]: # noqa: E501
220
+ """[EXPERIMENTAL] GetComparisonRuleset: Get a single Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
221
+
222
+ Retrieves one Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
223
+ This method makes a synchronous HTTP request by default. To make an
224
+ asynchronous HTTP request, please pass async_req=True
225
+
226
+ >>> thread = api.get_comparison_ruleset(scope, code, as_at, async_req=True)
227
+ >>> result = thread.get()
228
+
229
+ :param scope: The scope of the specified comparison ruleset. (required)
230
+ :type scope: str
231
+ :param code: The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset. (required)
232
+ :type code: str
233
+ :param as_at: The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.
234
+ :type as_at: datetime
235
+ :param async_req: Whether to execute the request asynchronously.
236
+ :type async_req: bool, optional
237
+ :param _request_timeout: timeout setting for this request.
238
+ If one number provided, it will be total request
239
+ timeout. It can also be a pair (tuple) of
240
+ (connection, read) timeouts.
241
+ :return: Returns the result object.
242
+ If the method is called asynchronously,
243
+ returns the request thread.
244
+ :rtype: GroupReconciliationComparisonRuleset
245
+ """
246
+ kwargs['_return_http_data_only'] = True
247
+ if '_preload_content' in kwargs:
248
+ message = "Error! Please call the get_comparison_ruleset_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
249
+ raise ValueError(message)
250
+ if async_req is not None:
251
+ kwargs['async_req'] = async_req
252
+ return self.get_comparison_ruleset_with_http_info(scope, code, as_at, **kwargs) # noqa: E501
253
+
254
+ @validate_arguments
255
+ def get_comparison_ruleset_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
256
+ """[EXPERIMENTAL] GetComparisonRuleset: Get a single Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
257
+
258
+ Retrieves one Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
259
+ This method makes a synchronous HTTP request by default. To make an
260
+ asynchronous HTTP request, please pass async_req=True
261
+
262
+ >>> thread = api.get_comparison_ruleset_with_http_info(scope, code, as_at, async_req=True)
263
+ >>> result = thread.get()
264
+
265
+ :param scope: The scope of the specified comparison ruleset. (required)
266
+ :type scope: str
267
+ :param code: The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset. (required)
268
+ :type code: str
269
+ :param as_at: The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.
270
+ :type as_at: datetime
271
+ :param async_req: Whether to execute the request asynchronously.
272
+ :type async_req: bool, optional
273
+ :param _preload_content: if False, the ApiResponse.data will
274
+ be set to none and raw_data will store the
275
+ HTTP response body without reading/decoding.
276
+ Default is True.
277
+ :type _preload_content: bool, optional
278
+ :param _return_http_data_only: response data instead of ApiResponse
279
+ object with status code, headers, etc
280
+ :type _return_http_data_only: bool, optional
281
+ :param _request_timeout: timeout setting for this request. If one
282
+ number provided, it will be total request
283
+ timeout. It can also be a pair (tuple) of
284
+ (connection, read) timeouts.
285
+ :param _request_auth: set to override the auth_settings for an a single
286
+ request; this effectively ignores the authentication
287
+ in the spec for a single request.
288
+ :type _request_auth: dict, optional
289
+ :type _content_type: string, optional: force content-type for the request
290
+ :return: Returns the result object.
291
+ If the method is called asynchronously,
292
+ returns the request thread.
293
+ :rtype: tuple(GroupReconciliationComparisonRuleset, status_code(int), headers(HTTPHeaderDict))
294
+ """
295
+
296
+ _params = locals()
297
+
298
+ _all_params = [
299
+ 'scope',
300
+ 'code',
301
+ 'as_at'
302
+ ]
303
+ _all_params.extend(
304
+ [
305
+ 'async_req',
306
+ '_return_http_data_only',
307
+ '_preload_content',
308
+ '_request_timeout',
309
+ '_request_auth',
310
+ '_content_type',
311
+ '_headers'
312
+ ]
313
+ )
314
+
315
+ # validate the arguments
316
+ for _key, _val in _params['kwargs'].items():
317
+ if _key not in _all_params:
318
+ raise ApiTypeError(
319
+ "Got an unexpected keyword argument '%s'"
320
+ " to method get_comparison_ruleset" % _key
321
+ )
322
+ _params[_key] = _val
323
+ del _params['kwargs']
324
+
325
+ _collection_formats = {}
326
+
327
+ # process the path parameters
328
+ _path_params = {}
329
+ if _params['scope']:
330
+ _path_params['scope'] = _params['scope']
331
+
332
+ if _params['code']:
333
+ _path_params['code'] = _params['code']
334
+
335
+
336
+ # process the query parameters
337
+ _query_params = []
338
+ if _params.get('as_at') is not None: # noqa: E501
339
+ if isinstance(_params['as_at'], datetime):
340
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
341
+ else:
342
+ _query_params.append(('asAt', _params['as_at']))
343
+
344
+ # process the header parameters
345
+ _header_params = dict(_params.get('_headers', {}))
346
+ # process the form parameters
347
+ _form_params = []
348
+ _files = {}
349
+ # process the body parameter
350
+ _body_params = None
351
+ # set the HTTP header `Accept`
352
+ _header_params['Accept'] = self.api_client.select_header_accept(
353
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
354
+
355
+ # authentication setting
356
+ _auth_settings = ['oauth2'] # noqa: E501
357
+
358
+ _response_types_map = {
359
+ '200': "GroupReconciliationComparisonRuleset",
360
+ '400': "LusidValidationProblemDetails",
361
+ }
362
+
363
+ return self.api_client.call_api(
364
+ '/api/reconciliations/comparisonrulesets/{scope}/{code}', 'GET',
365
+ _path_params,
366
+ _query_params,
367
+ _header_params,
368
+ body=_body_params,
369
+ post_params=_form_params,
370
+ files=_files,
371
+ response_types_map=_response_types_map,
372
+ auth_settings=_auth_settings,
373
+ async_req=_params.get('async_req'),
374
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
375
+ _preload_content=_params.get('_preload_content', True),
376
+ _request_timeout=_params.get('_request_timeout'),
377
+ collection_formats=_collection_formats,
378
+ _request_auth=_params.get('_request_auth'))
@@ -20,6 +20,8 @@ from pydantic.v1 import validate_arguments, ValidationError
20
20
  from typing import overload, Optional, Union, Awaitable
21
21
 
22
22
  from typing_extensions import Annotated
23
+ from datetime import datetime
24
+
23
25
  from pydantic.v1 import Field, StrictBool, conlist, constr, validator
24
26
 
25
27
  from typing import Dict, Optional
@@ -36,6 +38,7 @@ from lusid.models.place_blocks_request import PlaceBlocksRequest
36
38
  from lusid.models.placement_update_request import PlacementUpdateRequest
37
39
  from lusid.models.resource_id import ResourceId
38
40
  from lusid.models.resource_list_of_block_and_orders import ResourceListOfBlockAndOrders
41
+ from lusid.models.resource_list_of_change_interval_with_order_management_detail import ResourceListOfChangeIntervalWithOrderManagementDetail
39
42
  from lusid.models.resource_list_of_moved_order_to_different_block_response import ResourceListOfMovedOrderToDifferentBlockResponse
40
43
  from lusid.models.resource_list_of_placement import ResourceListOfPlacement
41
44
  from lusid.models.update_orders_response import UpdateOrdersResponse
@@ -701,6 +704,177 @@ class OrderManagementApi:
701
704
  collection_formats=_collection_formats,
702
705
  _request_auth=_params.get('_request_auth'))
703
706
 
707
+ @overload
708
+ async def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), 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) -> ResourceListOfChangeIntervalWithOrderManagementDetail: # noqa: E501
709
+ ...
710
+
711
+ @overload
712
+ def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), 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]=True, **kwargs) -> ResourceListOfChangeIntervalWithOrderManagementDetail: # noqa: E501
713
+ ...
714
+
715
+ @validate_arguments
716
+ def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), 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
717
+ """[EXPERIMENTAL] GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
718
+
719
+ Get the changes that have happened to an order and related entities. # noqa: E501
720
+ This method makes a synchronous HTTP request by default. To make an
721
+ asynchronous HTTP request, please pass async_req=True
722
+
723
+ >>> thread = api.get_order_history(scope, code, as_at, async_req=True)
724
+ >>> result = thread.get()
725
+
726
+ :param scope: The scope of the order. (required)
727
+ :type scope: str
728
+ :param code: The code of the order. (required)
729
+ :type code: str
730
+ :param as_at: The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.
731
+ :type as_at: datetime
732
+ :param async_req: Whether to execute the request asynchronously.
733
+ :type async_req: bool, optional
734
+ :param _request_timeout: timeout setting for this request.
735
+ If one number provided, it will be total request
736
+ timeout. It can also be a pair (tuple) of
737
+ (connection, read) timeouts.
738
+ :return: Returns the result object.
739
+ If the method is called asynchronously,
740
+ returns the request thread.
741
+ :rtype: ResourceListOfChangeIntervalWithOrderManagementDetail
742
+ """
743
+ kwargs['_return_http_data_only'] = True
744
+ if '_preload_content' in kwargs:
745
+ message = "Error! Please call the get_order_history_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
746
+ raise ValueError(message)
747
+ if async_req is not None:
748
+ kwargs['async_req'] = async_req
749
+ return self.get_order_history_with_http_info(scope, code, as_at, **kwargs) # noqa: E501
750
+
751
+ @validate_arguments
752
+ def get_order_history_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), 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
753
+ """[EXPERIMENTAL] GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
754
+
755
+ Get the changes that have happened to an order and related entities. # noqa: E501
756
+ This method makes a synchronous HTTP request by default. To make an
757
+ asynchronous HTTP request, please pass async_req=True
758
+
759
+ >>> thread = api.get_order_history_with_http_info(scope, code, as_at, async_req=True)
760
+ >>> result = thread.get()
761
+
762
+ :param scope: The scope of the order. (required)
763
+ :type scope: str
764
+ :param code: The code of the order. (required)
765
+ :type code: str
766
+ :param as_at: The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.
767
+ :type as_at: datetime
768
+ :param async_req: Whether to execute the request asynchronously.
769
+ :type async_req: bool, optional
770
+ :param _preload_content: if False, the ApiResponse.data will
771
+ be set to none and raw_data will store the
772
+ HTTP response body without reading/decoding.
773
+ Default is True.
774
+ :type _preload_content: bool, optional
775
+ :param _return_http_data_only: response data instead of ApiResponse
776
+ object with status code, headers, etc
777
+ :type _return_http_data_only: bool, optional
778
+ :param _request_timeout: timeout setting for this request. If one
779
+ number provided, it will be total request
780
+ timeout. It can also be a pair (tuple) of
781
+ (connection, read) timeouts.
782
+ :param _request_auth: set to override the auth_settings for an a single
783
+ request; this effectively ignores the authentication
784
+ in the spec for a single request.
785
+ :type _request_auth: dict, optional
786
+ :type _content_type: string, optional: force content-type for the request
787
+ :return: Returns the result object.
788
+ If the method is called asynchronously,
789
+ returns the request thread.
790
+ :rtype: tuple(ResourceListOfChangeIntervalWithOrderManagementDetail, status_code(int), headers(HTTPHeaderDict))
791
+ """
792
+
793
+ _params = locals()
794
+
795
+ _all_params = [
796
+ 'scope',
797
+ 'code',
798
+ 'as_at'
799
+ ]
800
+ _all_params.extend(
801
+ [
802
+ 'async_req',
803
+ '_return_http_data_only',
804
+ '_preload_content',
805
+ '_request_timeout',
806
+ '_request_auth',
807
+ '_content_type',
808
+ '_headers'
809
+ ]
810
+ )
811
+
812
+ # validate the arguments
813
+ for _key, _val in _params['kwargs'].items():
814
+ if _key not in _all_params:
815
+ raise ApiTypeError(
816
+ "Got an unexpected keyword argument '%s'"
817
+ " to method get_order_history" % _key
818
+ )
819
+ _params[_key] = _val
820
+ del _params['kwargs']
821
+
822
+ _collection_formats = {}
823
+
824
+ # process the path parameters
825
+ _path_params = {}
826
+ if _params['scope']:
827
+ _path_params['scope'] = _params['scope']
828
+
829
+ if _params['code']:
830
+ _path_params['code'] = _params['code']
831
+
832
+
833
+ # process the query parameters
834
+ _query_params = []
835
+ if _params.get('as_at') is not None: # noqa: E501
836
+ if isinstance(_params['as_at'], datetime):
837
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
838
+ else:
839
+ _query_params.append(('asAt', _params['as_at']))
840
+
841
+ # process the header parameters
842
+ _header_params = dict(_params.get('_headers', {}))
843
+ # process the form parameters
844
+ _form_params = []
845
+ _files = {}
846
+ # process the body parameter
847
+ _body_params = None
848
+ # set the HTTP header `Accept`
849
+ _header_params['Accept'] = self.api_client.select_header_accept(
850
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
851
+
852
+ # authentication setting
853
+ _auth_settings = ['oauth2'] # noqa: E501
854
+
855
+ _response_types_map = {
856
+ '200': "ResourceListOfChangeIntervalWithOrderManagementDetail",
857
+ '400': "LusidValidationProblemDetails",
858
+ '404': "str",
859
+ }
860
+
861
+ return self.api_client.call_api(
862
+ '/api/ordermanagement/order/{scope}/{code}/$history', 'GET',
863
+ _path_params,
864
+ _query_params,
865
+ _header_params,
866
+ body=_body_params,
867
+ post_params=_form_params,
868
+ files=_files,
869
+ response_types_map=_response_types_map,
870
+ auth_settings=_auth_settings,
871
+ async_req=_params.get('async_req'),
872
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
873
+ _preload_content=_params.get('_preload_content', True),
874
+ _request_timeout=_params.get('_request_timeout'),
875
+ collection_formats=_collection_formats,
876
+ _request_auth=_params.get('_request_auth'))
877
+
704
878
  @overload
705
879
  async def move_orders(self, move_orders_to_different_blocks_request : Annotated[MoveOrdersToDifferentBlocksRequest, Field(..., description="The collection of order and destination block ids.")], **kwargs) -> ResourceListOfMovedOrderToDifferentBlockResponse: # noqa: E501
706
880
  ...
lusid/api/persons_api.py CHANGED
@@ -72,7 +72,7 @@ class PersonsApi:
72
72
 
73
73
  @validate_arguments
74
74
  def delete_person(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the person identifier type.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the person identifier type.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the person under specified identifier type scope and code. This together with defined identifier type uniquely identifies the person to delete.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
75
- """[EARLY ACCESS] DeletePerson: Delete person # noqa: E501
75
+ """DeletePerson: Delete person # noqa: E501
76
76
 
77
77
  Delete a person. Deletion will be valid from the person's creation datetime. This means that the person will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
78
78
  This method makes a synchronous HTTP request by default. To make an
@@ -108,7 +108,7 @@ class PersonsApi:
108
108
 
109
109
  @validate_arguments
110
110
  def delete_person_with_http_info(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the person identifier type.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the person identifier type.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the person under specified identifier type scope and code. This together with defined identifier type uniquely identifies the person to delete.")], **kwargs) -> ApiResponse: # noqa: E501
111
- """[EARLY ACCESS] DeletePerson: Delete person # noqa: E501
111
+ """DeletePerson: Delete person # noqa: E501
112
112
 
113
113
  Delete a person. Deletion will be valid from the person's creation datetime. This means that the person will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
114
114
  This method makes a synchronous HTTP request by default. To make an
@@ -2990,7 +2990,7 @@ class PersonsApi:
2990
2990
 
2991
2991
  @validate_arguments
2992
2992
  def upsert_person(self, upsert_person_request : Annotated[UpsertPersonRequest, Field(..., description="Request to create or update a person.")], async_req: Optional[bool]=None, **kwargs) -> Union[Person, Awaitable[Person]]: # noqa: E501
2993
- """[EARLY ACCESS] UpsertPerson: Upsert Person # noqa: E501
2993
+ """UpsertPerson: Upsert Person # noqa: E501
2994
2994
 
2995
2995
  Create or update a new person under the specified scope. # noqa: E501
2996
2996
  This method makes a synchronous HTTP request by default. To make an
@@ -3022,7 +3022,7 @@ class PersonsApi:
3022
3022
 
3023
3023
  @validate_arguments
3024
3024
  def upsert_person_with_http_info(self, upsert_person_request : Annotated[UpsertPersonRequest, Field(..., description="Request to create or update a person.")], **kwargs) -> ApiResponse: # noqa: E501
3025
- """[EARLY ACCESS] UpsertPerson: Upsert Person # noqa: E501
3025
+ """UpsertPerson: Upsert Person # noqa: E501
3026
3026
 
3027
3027
  Create or update a new person under the specified scope. # noqa: E501
3028
3028
  This method makes a synchronous HTTP request by default. To make an