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

Files changed (62) hide show
  1. lusid/__init__.py +32 -0
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/entities_api.py +4 -4
  4. lusid/api/portfolios_api.py +554 -0
  5. lusid/api/staged_modifications_api.py +762 -0
  6. lusid/api_response.py +1 -1
  7. lusid/configuration.py +1 -1
  8. lusid/models/__init__.py +30 -0
  9. lusid/models/account.py +1 -1
  10. lusid/models/accumulation_event.py +3 -3
  11. lusid/models/amortisation_event.py +3 -3
  12. lusid/models/bond_coupon_event.py +3 -3
  13. lusid/models/bond_default_event.py +3 -3
  14. lusid/models/bond_principal_event.py +3 -3
  15. lusid/models/capital_distribution_event.py +117 -0
  16. lusid/models/cash_dividend_event.py +3 -3
  17. lusid/models/cash_flow_event.py +3 -3
  18. lusid/models/close_event.py +3 -3
  19. lusid/models/custodian_account.py +1 -1
  20. lusid/models/custodian_account_request.py +1 -1
  21. lusid/models/dividend_option_event.py +3 -3
  22. lusid/models/dividend_reinvestment_event.py +3 -3
  23. lusid/models/exercise_event.py +3 -3
  24. lusid/models/expiry_event.py +3 -3
  25. lusid/models/fx_forward.py +1 -1
  26. lusid/models/fx_forward_settlement_event.py +3 -3
  27. lusid/models/informational_error_event.py +3 -3
  28. lusid/models/informational_event.py +3 -3
  29. lusid/models/instrument_event.py +6 -5
  30. lusid/models/instrument_event_instruction.py +121 -0
  31. lusid/models/instrument_event_instruction_request.py +87 -0
  32. lusid/models/instrument_event_instructions_response.py +107 -0
  33. lusid/models/instrument_event_type.py +1 -0
  34. lusid/models/maturity_event.py +3 -3
  35. lusid/models/open_event.py +3 -3
  36. lusid/models/paged_resource_list_of_staged_modification.py +113 -0
  37. lusid/models/paged_resource_list_of_staged_modifications_requested_change_interval.py +113 -0
  38. lusid/models/portfolio.py +7 -1
  39. lusid/models/portfolio_entity.py +33 -5
  40. lusid/models/portfolio_without_href.py +7 -1
  41. lusid/models/raw_vendor_event.py +3 -3
  42. lusid/models/requested_changes.py +76 -0
  43. lusid/models/reset_event.py +3 -3
  44. lusid/models/reverse_stock_split_event.py +3 -3
  45. lusid/models/scrip_dividend_event.py +3 -3
  46. lusid/models/staged_modification.py +175 -0
  47. lusid/models/staged_modification_decision.py +97 -0
  48. lusid/models/staged_modification_decision_request.py +71 -0
  49. lusid/models/staged_modification_effective_range.py +71 -0
  50. lusid/models/staged_modification_staging_rule.py +85 -0
  51. lusid/models/staged_modifications_entity_hrefs.py +103 -0
  52. lusid/models/staged_modifications_info.py +78 -0
  53. lusid/models/staged_modifications_requested_change_interval.py +116 -0
  54. lusid/models/staging_rule_set.py +17 -2
  55. lusid/models/stock_dividend_event.py +3 -3
  56. lusid/models/stock_split_event.py +3 -3
  57. lusid/models/transition_event.py +3 -3
  58. lusid/models/trigger_event.py +3 -3
  59. lusid/models/version.py +9 -2
  60. {lusid_sdk-2.1.81.dist-info → lusid_sdk-2.1.110.dist-info}/METADATA +25 -3
  61. {lusid_sdk-2.1.81.dist-info → lusid_sdk-2.1.110.dist-info}/RECORD +62 -46
  62. {lusid_sdk-2.1.81.dist-info → lusid_sdk-2.1.110.dist-info}/WHEEL +0 -0
@@ -0,0 +1,762 @@
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, StrictStr, conint, conlist, constr, validator
26
+
27
+ from typing import Optional
28
+
29
+ from lusid.models.paged_resource_list_of_staged_modification import PagedResourceListOfStagedModification
30
+ from lusid.models.paged_resource_list_of_staged_modifications_requested_change_interval import PagedResourceListOfStagedModificationsRequestedChangeInterval
31
+ from lusid.models.staged_modification import StagedModification
32
+ from lusid.models.staged_modification_decision_request import StagedModificationDecisionRequest
33
+
34
+ from lusid.api_client import ApiClient
35
+ from lusid.api_response import ApiResponse
36
+ from lusid.exceptions import ( # noqa: F401
37
+ ApiTypeError,
38
+ ApiValueError
39
+ )
40
+
41
+
42
+ class StagedModificationsApi:
43
+ """NOTE: This class is auto generated by OpenAPI Generator
44
+ Ref: https://openapi-generator.tech
45
+
46
+ Do not edit the class manually.
47
+ """
48
+
49
+ def __init__(self, api_client=None) -> None:
50
+ if api_client is None:
51
+ api_client = ApiClient.get_default()
52
+ self.api_client = api_client
53
+
54
+ @overload
55
+ async def add_decision(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], **kwargs) -> StagedModification: # noqa: E501
56
+ ...
57
+
58
+ @overload
59
+ def add_decision(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], async_req: Optional[bool]=True, **kwargs) -> StagedModification: # noqa: E501
60
+ ...
61
+
62
+ @validate_arguments
63
+ def add_decision(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], async_req: Optional[bool]=None, **kwargs) -> Union[StagedModification, Awaitable[StagedModification]]: # noqa: E501
64
+ """[EXPERIMENTAL] AddDecision: AddDecision # noqa: E501
65
+
66
+ Add decision to staged modification, Approve or Reject. # noqa: E501
67
+ This method makes a synchronous HTTP request by default. To make an
68
+ asynchronous HTTP request, please pass async_req=True
69
+
70
+ >>> thread = api.add_decision(id, staged_modification_decision_request, async_req=True)
71
+ >>> result = thread.get()
72
+
73
+ :param id: Unique Id for a staged modification.. (required)
74
+ :type id: str
75
+ :param staged_modification_decision_request: The decision on the requested staged modification, \"Approve\" or \"Reject\". (required)
76
+ :type staged_modification_decision_request: StagedModificationDecisionRequest
77
+ :param async_req: Whether to execute the request asynchronously.
78
+ :type async_req: bool, optional
79
+ :param _request_timeout: timeout setting for this request.
80
+ If one number provided, it will be total request
81
+ timeout. It can also be a pair (tuple) of
82
+ (connection, read) timeouts.
83
+ :return: Returns the result object.
84
+ If the method is called asynchronously,
85
+ returns the request thread.
86
+ :rtype: StagedModification
87
+ """
88
+ kwargs['_return_http_data_only'] = True
89
+ if '_preload_content' in kwargs:
90
+ message = "Error! Please call the add_decision_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
91
+ raise ValueError(message)
92
+ if async_req is not None:
93
+ kwargs['async_req'] = async_req
94
+ return self.add_decision_with_http_info(id, staged_modification_decision_request, **kwargs) # noqa: E501
95
+
96
+ @validate_arguments
97
+ def add_decision_with_http_info(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], **kwargs) -> ApiResponse: # noqa: E501
98
+ """[EXPERIMENTAL] AddDecision: AddDecision # noqa: E501
99
+
100
+ Add decision to staged modification, Approve or Reject. # noqa: E501
101
+ This method makes a synchronous HTTP request by default. To make an
102
+ asynchronous HTTP request, please pass async_req=True
103
+
104
+ >>> thread = api.add_decision_with_http_info(id, staged_modification_decision_request, async_req=True)
105
+ >>> result = thread.get()
106
+
107
+ :param id: Unique Id for a staged modification.. (required)
108
+ :type id: str
109
+ :param staged_modification_decision_request: The decision on the requested staged modification, \"Approve\" or \"Reject\". (required)
110
+ :type staged_modification_decision_request: StagedModificationDecisionRequest
111
+ :param async_req: Whether to execute the request asynchronously.
112
+ :type async_req: bool, optional
113
+ :param _preload_content: if False, the ApiResponse.data will
114
+ be set to none and raw_data will store the
115
+ HTTP response body without reading/decoding.
116
+ Default is True.
117
+ :type _preload_content: bool, optional
118
+ :param _return_http_data_only: response data instead of ApiResponse
119
+ object with status code, headers, etc
120
+ :type _return_http_data_only: bool, optional
121
+ :param _request_timeout: timeout setting for this request. If one
122
+ number provided, it will be total request
123
+ timeout. It can also be a pair (tuple) of
124
+ (connection, read) timeouts.
125
+ :param _request_auth: set to override the auth_settings for an a single
126
+ request; this effectively ignores the authentication
127
+ in the spec for a single request.
128
+ :type _request_auth: dict, optional
129
+ :type _content_type: string, optional: force content-type for the request
130
+ :return: Returns the result object.
131
+ If the method is called asynchronously,
132
+ returns the request thread.
133
+ :rtype: tuple(StagedModification, status_code(int), headers(HTTPHeaderDict))
134
+ """
135
+
136
+ _params = locals()
137
+
138
+ _all_params = [
139
+ 'id',
140
+ 'staged_modification_decision_request'
141
+ ]
142
+ _all_params.extend(
143
+ [
144
+ 'async_req',
145
+ '_return_http_data_only',
146
+ '_preload_content',
147
+ '_request_timeout',
148
+ '_request_auth',
149
+ '_content_type',
150
+ '_headers'
151
+ ]
152
+ )
153
+
154
+ # validate the arguments
155
+ for _key, _val in _params['kwargs'].items():
156
+ if _key not in _all_params:
157
+ raise ApiTypeError(
158
+ "Got an unexpected keyword argument '%s'"
159
+ " to method add_decision" % _key
160
+ )
161
+ _params[_key] = _val
162
+ del _params['kwargs']
163
+
164
+ _collection_formats = {}
165
+
166
+ # process the path parameters
167
+ _path_params = {}
168
+ if _params['id']:
169
+ _path_params['id'] = _params['id']
170
+
171
+
172
+ # process the query parameters
173
+ _query_params = []
174
+ # process the header parameters
175
+ _header_params = dict(_params.get('_headers', {}))
176
+ # process the form parameters
177
+ _form_params = []
178
+ _files = {}
179
+ # process the body parameter
180
+ _body_params = None
181
+ if _params['staged_modification_decision_request'] is not None:
182
+ _body_params = _params['staged_modification_decision_request']
183
+
184
+ # set the HTTP header `Accept`
185
+ _header_params['Accept'] = self.api_client.select_header_accept(
186
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
187
+
188
+ # set the HTTP header `Content-Type`
189
+ _content_types_list = _params.get('_content_type',
190
+ self.api_client.select_header_content_type(
191
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
192
+ if _content_types_list:
193
+ _header_params['Content-Type'] = _content_types_list
194
+
195
+ # authentication setting
196
+ _auth_settings = ['oauth2'] # noqa: E501
197
+
198
+ _response_types_map = {
199
+ '200': "StagedModification",
200
+ '400': "LusidValidationProblemDetails",
201
+ }
202
+
203
+ return self.api_client.call_api(
204
+ '/api/stagedmodifications/{id}/decision', 'POST',
205
+ _path_params,
206
+ _query_params,
207
+ _header_params,
208
+ body=_body_params,
209
+ post_params=_form_params,
210
+ files=_files,
211
+ response_types_map=_response_types_map,
212
+ auth_settings=_auth_settings,
213
+ async_req=_params.get('async_req'),
214
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
215
+ _preload_content=_params.get('_preload_content', True),
216
+ _request_timeout=_params.get('_request_timeout'),
217
+ collection_formats=_collection_formats,
218
+ _request_auth=_params.get('_request_auth'))
219
+
220
+ @overload
221
+ async def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, **kwargs) -> StagedModification: # noqa: E501
222
+ ...
223
+
224
+ @overload
225
+ def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> StagedModification: # noqa: E501
226
+ ...
227
+
228
+ @validate_arguments
229
+ def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[StagedModification, Awaitable[StagedModification]]: # noqa: E501
230
+ """[EXPERIMENTAL] GetStagedModification: GetStagedModification # noqa: E501
231
+
232
+ Retrieve the details of a staged modification. # noqa: E501
233
+ This method makes a synchronous HTTP request by default. To make an
234
+ asynchronous HTTP request, please pass async_req=True
235
+
236
+ >>> thread = api.get_staged_modification(id, as_at, async_req=True)
237
+ >>> result = thread.get()
238
+
239
+ :param id: The unique identifier for a staged modification. (required)
240
+ :type id: str
241
+ :param as_at: The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.
242
+ :type as_at: datetime
243
+ :param async_req: Whether to execute the request asynchronously.
244
+ :type async_req: bool, optional
245
+ :param _request_timeout: timeout setting for this request.
246
+ If one number provided, it will be total request
247
+ timeout. It can also be a pair (tuple) of
248
+ (connection, read) timeouts.
249
+ :return: Returns the result object.
250
+ If the method is called asynchronously,
251
+ returns the request thread.
252
+ :rtype: StagedModification
253
+ """
254
+ kwargs['_return_http_data_only'] = True
255
+ if '_preload_content' in kwargs:
256
+ message = "Error! Please call the get_staged_modification_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
257
+ raise ValueError(message)
258
+ if async_req is not None:
259
+ kwargs['async_req'] = async_req
260
+ return self.get_staged_modification_with_http_info(id, as_at, **kwargs) # noqa: E501
261
+
262
+ @validate_arguments
263
+ def get_staged_modification_with_http_info(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
264
+ """[EXPERIMENTAL] GetStagedModification: GetStagedModification # noqa: E501
265
+
266
+ Retrieve the details of a staged modification. # noqa: E501
267
+ This method makes a synchronous HTTP request by default. To make an
268
+ asynchronous HTTP request, please pass async_req=True
269
+
270
+ >>> thread = api.get_staged_modification_with_http_info(id, as_at, async_req=True)
271
+ >>> result = thread.get()
272
+
273
+ :param id: The unique identifier for a staged modification. (required)
274
+ :type id: str
275
+ :param as_at: The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.
276
+ :type as_at: datetime
277
+ :param async_req: Whether to execute the request asynchronously.
278
+ :type async_req: bool, optional
279
+ :param _preload_content: if False, the ApiResponse.data will
280
+ be set to none and raw_data will store the
281
+ HTTP response body without reading/decoding.
282
+ Default is True.
283
+ :type _preload_content: bool, optional
284
+ :param _return_http_data_only: response data instead of ApiResponse
285
+ object with status code, headers, etc
286
+ :type _return_http_data_only: bool, optional
287
+ :param _request_timeout: timeout setting for this request. If one
288
+ number provided, it will be total request
289
+ timeout. It can also be a pair (tuple) of
290
+ (connection, read) timeouts.
291
+ :param _request_auth: set to override the auth_settings for an a single
292
+ request; this effectively ignores the authentication
293
+ in the spec for a single request.
294
+ :type _request_auth: dict, optional
295
+ :type _content_type: string, optional: force content-type for the request
296
+ :return: Returns the result object.
297
+ If the method is called asynchronously,
298
+ returns the request thread.
299
+ :rtype: tuple(StagedModification, status_code(int), headers(HTTPHeaderDict))
300
+ """
301
+
302
+ _params = locals()
303
+
304
+ _all_params = [
305
+ 'id',
306
+ 'as_at'
307
+ ]
308
+ _all_params.extend(
309
+ [
310
+ 'async_req',
311
+ '_return_http_data_only',
312
+ '_preload_content',
313
+ '_request_timeout',
314
+ '_request_auth',
315
+ '_content_type',
316
+ '_headers'
317
+ ]
318
+ )
319
+
320
+ # validate the arguments
321
+ for _key, _val in _params['kwargs'].items():
322
+ if _key not in _all_params:
323
+ raise ApiTypeError(
324
+ "Got an unexpected keyword argument '%s'"
325
+ " to method get_staged_modification" % _key
326
+ )
327
+ _params[_key] = _val
328
+ del _params['kwargs']
329
+
330
+ _collection_formats = {}
331
+
332
+ # process the path parameters
333
+ _path_params = {}
334
+ if _params['id']:
335
+ _path_params['id'] = _params['id']
336
+
337
+
338
+ # process the query parameters
339
+ _query_params = []
340
+ if _params.get('as_at') is not None: # noqa: E501
341
+ if isinstance(_params['as_at'], datetime):
342
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
343
+ else:
344
+ _query_params.append(('asAt', _params['as_at']))
345
+
346
+ # process the header parameters
347
+ _header_params = dict(_params.get('_headers', {}))
348
+ # process the form parameters
349
+ _form_params = []
350
+ _files = {}
351
+ # process the body parameter
352
+ _body_params = None
353
+ # set the HTTP header `Accept`
354
+ _header_params['Accept'] = self.api_client.select_header_accept(
355
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
356
+
357
+ # authentication setting
358
+ _auth_settings = ['oauth2'] # noqa: E501
359
+
360
+ _response_types_map = {
361
+ '200': "StagedModification",
362
+ '400': "LusidValidationProblemDetails",
363
+ }
364
+
365
+ return self.api_client.call_api(
366
+ '/api/stagedmodifications/{id}', 'GET',
367
+ _path_params,
368
+ _query_params,
369
+ _header_params,
370
+ body=_body_params,
371
+ post_params=_form_params,
372
+ files=_files,
373
+ response_types_map=_response_types_map,
374
+ auth_settings=_auth_settings,
375
+ async_req=_params.get('async_req'),
376
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
377
+ _preload_content=_params.get('_preload_content', True),
378
+ _request_timeout=_params.get('_request_timeout'),
379
+ collection_formats=_collection_formats,
380
+ _request_auth=_params.get('_request_auth'))
381
+
382
+ @overload
383
+ async def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, **kwargs) -> PagedResourceListOfStagedModificationsRequestedChangeInterval: # noqa: E501
384
+ ...
385
+
386
+ @overload
387
+ def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, async_req: Optional[bool]=True, **kwargs) -> PagedResourceListOfStagedModificationsRequestedChangeInterval: # noqa: E501
388
+ ...
389
+
390
+ @validate_arguments
391
+ def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PagedResourceListOfStagedModificationsRequestedChangeInterval, Awaitable[PagedResourceListOfStagedModificationsRequestedChangeInterval]]: # noqa: E501
392
+ """[EXPERIMENTAL] ListRequestedChanges: ListRequestedChanges # noqa: E501
393
+
394
+ List the requested changes for a staged modification. # noqa: E501
395
+ This method makes a synchronous HTTP request by default. To make an
396
+ asynchronous HTTP request, please pass async_req=True
397
+
398
+ >>> thread = api.list_requested_changes(id, as_at, page, limit, filter, sort_by, async_req=True)
399
+ >>> result = thread.get()
400
+
401
+ :param id: Unique Id for a staged modification.. (required)
402
+ :type id: str
403
+ :param as_at: The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.
404
+ :type as_at: datetime
405
+ :param page: The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.
406
+ :type page: str
407
+ :param limit: When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
408
+ :type limit: int
409
+ :param filter: Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
410
+ :type filter: str
411
+ :param sort_by: A list of field names suffixed by \" ASC\" or \" DESC\"
412
+ :type sort_by: List[str]
413
+ :param async_req: Whether to execute the request asynchronously.
414
+ :type async_req: bool, optional
415
+ :param _request_timeout: timeout setting for this request.
416
+ If one number provided, it will be total request
417
+ timeout. It can also be a pair (tuple) of
418
+ (connection, read) timeouts.
419
+ :return: Returns the result object.
420
+ If the method is called asynchronously,
421
+ returns the request thread.
422
+ :rtype: PagedResourceListOfStagedModificationsRequestedChangeInterval
423
+ """
424
+ kwargs['_return_http_data_only'] = True
425
+ if '_preload_content' in kwargs:
426
+ message = "Error! Please call the list_requested_changes_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
427
+ raise ValueError(message)
428
+ if async_req is not None:
429
+ kwargs['async_req'] = async_req
430
+ return self.list_requested_changes_with_http_info(id, as_at, page, limit, filter, sort_by, **kwargs) # noqa: E501
431
+
432
+ @validate_arguments
433
+ def list_requested_changes_with_http_info(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, **kwargs) -> ApiResponse: # noqa: E501
434
+ """[EXPERIMENTAL] ListRequestedChanges: ListRequestedChanges # noqa: E501
435
+
436
+ List the requested changes for a staged modification. # noqa: E501
437
+ This method makes a synchronous HTTP request by default. To make an
438
+ asynchronous HTTP request, please pass async_req=True
439
+
440
+ >>> thread = api.list_requested_changes_with_http_info(id, as_at, page, limit, filter, sort_by, async_req=True)
441
+ >>> result = thread.get()
442
+
443
+ :param id: Unique Id for a staged modification.. (required)
444
+ :type id: str
445
+ :param as_at: The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.
446
+ :type as_at: datetime
447
+ :param page: The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.
448
+ :type page: str
449
+ :param limit: When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
450
+ :type limit: int
451
+ :param filter: Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
452
+ :type filter: str
453
+ :param sort_by: A list of field names suffixed by \" ASC\" or \" DESC\"
454
+ :type sort_by: List[str]
455
+ :param async_req: Whether to execute the request asynchronously.
456
+ :type async_req: bool, optional
457
+ :param _preload_content: if False, the ApiResponse.data will
458
+ be set to none and raw_data will store the
459
+ HTTP response body without reading/decoding.
460
+ Default is True.
461
+ :type _preload_content: bool, optional
462
+ :param _return_http_data_only: response data instead of ApiResponse
463
+ object with status code, headers, etc
464
+ :type _return_http_data_only: bool, optional
465
+ :param _request_timeout: timeout setting for this request. If one
466
+ number provided, it will be total request
467
+ timeout. It can also be a pair (tuple) of
468
+ (connection, read) timeouts.
469
+ :param _request_auth: set to override the auth_settings for an a single
470
+ request; this effectively ignores the authentication
471
+ in the spec for a single request.
472
+ :type _request_auth: dict, optional
473
+ :type _content_type: string, optional: force content-type for the request
474
+ :return: Returns the result object.
475
+ If the method is called asynchronously,
476
+ returns the request thread.
477
+ :rtype: tuple(PagedResourceListOfStagedModificationsRequestedChangeInterval, status_code(int), headers(HTTPHeaderDict))
478
+ """
479
+
480
+ _params = locals()
481
+
482
+ _all_params = [
483
+ 'id',
484
+ 'as_at',
485
+ 'page',
486
+ 'limit',
487
+ 'filter',
488
+ 'sort_by'
489
+ ]
490
+ _all_params.extend(
491
+ [
492
+ 'async_req',
493
+ '_return_http_data_only',
494
+ '_preload_content',
495
+ '_request_timeout',
496
+ '_request_auth',
497
+ '_content_type',
498
+ '_headers'
499
+ ]
500
+ )
501
+
502
+ # validate the arguments
503
+ for _key, _val in _params['kwargs'].items():
504
+ if _key not in _all_params:
505
+ raise ApiTypeError(
506
+ "Got an unexpected keyword argument '%s'"
507
+ " to method list_requested_changes" % _key
508
+ )
509
+ _params[_key] = _val
510
+ del _params['kwargs']
511
+
512
+ _collection_formats = {}
513
+
514
+ # process the path parameters
515
+ _path_params = {}
516
+ if _params['id']:
517
+ _path_params['id'] = _params['id']
518
+
519
+
520
+ # process the query parameters
521
+ _query_params = []
522
+ if _params.get('as_at') is not None: # noqa: E501
523
+ if isinstance(_params['as_at'], datetime):
524
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
525
+ else:
526
+ _query_params.append(('asAt', _params['as_at']))
527
+
528
+ if _params.get('page') is not None: # noqa: E501
529
+ _query_params.append(('page', _params['page']))
530
+
531
+ if _params.get('limit') is not None: # noqa: E501
532
+ _query_params.append(('limit', _params['limit']))
533
+
534
+ if _params.get('filter') is not None: # noqa: E501
535
+ _query_params.append(('filter', _params['filter']))
536
+
537
+ if _params.get('sort_by') is not None: # noqa: E501
538
+ _query_params.append(('sortBy', _params['sort_by']))
539
+ _collection_formats['sortBy'] = 'multi'
540
+
541
+ # process the header parameters
542
+ _header_params = dict(_params.get('_headers', {}))
543
+ # process the form parameters
544
+ _form_params = []
545
+ _files = {}
546
+ # process the body parameter
547
+ _body_params = None
548
+ # set the HTTP header `Accept`
549
+ _header_params['Accept'] = self.api_client.select_header_accept(
550
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
551
+
552
+ # authentication setting
553
+ _auth_settings = ['oauth2'] # noqa: E501
554
+
555
+ _response_types_map = {
556
+ '200': "PagedResourceListOfStagedModificationsRequestedChangeInterval",
557
+ '400': "LusidValidationProblemDetails",
558
+ }
559
+
560
+ return self.api_client.call_api(
561
+ '/api/stagedmodifications/{id}/requestedChanges', 'GET',
562
+ _path_params,
563
+ _query_params,
564
+ _header_params,
565
+ body=_body_params,
566
+ post_params=_form_params,
567
+ files=_files,
568
+ response_types_map=_response_types_map,
569
+ auth_settings=_auth_settings,
570
+ async_req=_params.get('async_req'),
571
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
572
+ _preload_content=_params.get('_preload_content', True),
573
+ _request_timeout=_params.get('_request_timeout'),
574
+ collection_formats=_collection_formats,
575
+ _request_auth=_params.get('_request_auth'))
576
+
577
+ @overload
578
+ async def list_staged_modifications(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list staged modifications. Defaults to return the latest version of each staged modification if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing staged modifications from a previous call to list staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, **kwargs) -> PagedResourceListOfStagedModification: # noqa: E501
579
+ ...
580
+
581
+ @overload
582
+ def list_staged_modifications(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list staged modifications. Defaults to return the latest version of each staged modification if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing staged modifications from a previous call to list staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, async_req: Optional[bool]=True, **kwargs) -> PagedResourceListOfStagedModification: # noqa: E501
583
+ ...
584
+
585
+ @validate_arguments
586
+ def list_staged_modifications(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list staged modifications. Defaults to return the latest version of each staged modification if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing staged modifications from a previous call to list staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PagedResourceListOfStagedModification, Awaitable[PagedResourceListOfStagedModification]]: # noqa: E501
587
+ """[EXPERIMENTAL] ListStagedModifications: ListStagedModifications # noqa: E501
588
+
589
+ List summaries of the staged modifications. # noqa: E501
590
+ This method makes a synchronous HTTP request by default. To make an
591
+ asynchronous HTTP request, please pass async_req=True
592
+
593
+ >>> thread = api.list_staged_modifications(as_at, page, limit, filter, sort_by, async_req=True)
594
+ >>> result = thread.get()
595
+
596
+ :param as_at: The asAt datetime at which to list staged modifications. Defaults to return the latest version of each staged modification if not specified.
597
+ :type as_at: datetime
598
+ :param page: The pagination token to use to continue listing staged modifications from a previous call to list staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.
599
+ :type page: str
600
+ :param limit: When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
601
+ :type limit: int
602
+ :param filter: Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
603
+ :type filter: str
604
+ :param sort_by: A list of field names suffixed by \" ASC\" or \" DESC\"
605
+ :type sort_by: List[str]
606
+ :param async_req: Whether to execute the request asynchronously.
607
+ :type async_req: bool, optional
608
+ :param _request_timeout: timeout setting for this request.
609
+ If one number provided, it will be total request
610
+ timeout. It can also be a pair (tuple) of
611
+ (connection, read) timeouts.
612
+ :return: Returns the result object.
613
+ If the method is called asynchronously,
614
+ returns the request thread.
615
+ :rtype: PagedResourceListOfStagedModification
616
+ """
617
+ kwargs['_return_http_data_only'] = True
618
+ if '_preload_content' in kwargs:
619
+ message = "Error! Please call the list_staged_modifications_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
620
+ raise ValueError(message)
621
+ if async_req is not None:
622
+ kwargs['async_req'] = async_req
623
+ return self.list_staged_modifications_with_http_info(as_at, page, limit, filter, sort_by, **kwargs) # noqa: E501
624
+
625
+ @validate_arguments
626
+ def list_staged_modifications_with_http_info(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list staged modifications. Defaults to return the latest version of each staged modification if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing staged modifications from a previous call to list staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], 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, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, **kwargs) -> ApiResponse: # noqa: E501
627
+ """[EXPERIMENTAL] ListStagedModifications: ListStagedModifications # noqa: E501
628
+
629
+ List summaries of the staged modifications. # noqa: E501
630
+ This method makes a synchronous HTTP request by default. To make an
631
+ asynchronous HTTP request, please pass async_req=True
632
+
633
+ >>> thread = api.list_staged_modifications_with_http_info(as_at, page, limit, filter, sort_by, async_req=True)
634
+ >>> result = thread.get()
635
+
636
+ :param as_at: The asAt datetime at which to list staged modifications. Defaults to return the latest version of each staged modification if not specified.
637
+ :type as_at: datetime
638
+ :param page: The pagination token to use to continue listing staged modifications from a previous call to list staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.
639
+ :type page: str
640
+ :param limit: When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.
641
+ :type limit: int
642
+ :param filter: Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.
643
+ :type filter: str
644
+ :param sort_by: A list of field names suffixed by \" ASC\" or \" DESC\"
645
+ :type sort_by: List[str]
646
+ :param async_req: Whether to execute the request asynchronously.
647
+ :type async_req: bool, optional
648
+ :param _preload_content: if False, the ApiResponse.data will
649
+ be set to none and raw_data will store the
650
+ HTTP response body without reading/decoding.
651
+ Default is True.
652
+ :type _preload_content: bool, optional
653
+ :param _return_http_data_only: response data instead of ApiResponse
654
+ object with status code, headers, etc
655
+ :type _return_http_data_only: bool, optional
656
+ :param _request_timeout: timeout setting for this request. If one
657
+ number provided, it will be total request
658
+ timeout. It can also be a pair (tuple) of
659
+ (connection, read) timeouts.
660
+ :param _request_auth: set to override the auth_settings for an a single
661
+ request; this effectively ignores the authentication
662
+ in the spec for a single request.
663
+ :type _request_auth: dict, optional
664
+ :type _content_type: string, optional: force content-type for the request
665
+ :return: Returns the result object.
666
+ If the method is called asynchronously,
667
+ returns the request thread.
668
+ :rtype: tuple(PagedResourceListOfStagedModification, status_code(int), headers(HTTPHeaderDict))
669
+ """
670
+
671
+ _params = locals()
672
+
673
+ _all_params = [
674
+ 'as_at',
675
+ 'page',
676
+ 'limit',
677
+ 'filter',
678
+ 'sort_by'
679
+ ]
680
+ _all_params.extend(
681
+ [
682
+ 'async_req',
683
+ '_return_http_data_only',
684
+ '_preload_content',
685
+ '_request_timeout',
686
+ '_request_auth',
687
+ '_content_type',
688
+ '_headers'
689
+ ]
690
+ )
691
+
692
+ # validate the arguments
693
+ for _key, _val in _params['kwargs'].items():
694
+ if _key not in _all_params:
695
+ raise ApiTypeError(
696
+ "Got an unexpected keyword argument '%s'"
697
+ " to method list_staged_modifications" % _key
698
+ )
699
+ _params[_key] = _val
700
+ del _params['kwargs']
701
+
702
+ _collection_formats = {}
703
+
704
+ # process the path parameters
705
+ _path_params = {}
706
+
707
+ # process the query parameters
708
+ _query_params = []
709
+ if _params.get('as_at') is not None: # noqa: E501
710
+ if isinstance(_params['as_at'], datetime):
711
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
712
+ else:
713
+ _query_params.append(('asAt', _params['as_at']))
714
+
715
+ if _params.get('page') is not None: # noqa: E501
716
+ _query_params.append(('page', _params['page']))
717
+
718
+ if _params.get('limit') is not None: # noqa: E501
719
+ _query_params.append(('limit', _params['limit']))
720
+
721
+ if _params.get('filter') is not None: # noqa: E501
722
+ _query_params.append(('filter', _params['filter']))
723
+
724
+ if _params.get('sort_by') is not None: # noqa: E501
725
+ _query_params.append(('sortBy', _params['sort_by']))
726
+ _collection_formats['sortBy'] = 'multi'
727
+
728
+ # process the header parameters
729
+ _header_params = dict(_params.get('_headers', {}))
730
+ # process the form parameters
731
+ _form_params = []
732
+ _files = {}
733
+ # process the body parameter
734
+ _body_params = None
735
+ # set the HTTP header `Accept`
736
+ _header_params['Accept'] = self.api_client.select_header_accept(
737
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
738
+
739
+ # authentication setting
740
+ _auth_settings = ['oauth2'] # noqa: E501
741
+
742
+ _response_types_map = {
743
+ '200': "PagedResourceListOfStagedModification",
744
+ '400': "LusidValidationProblemDetails",
745
+ }
746
+
747
+ return self.api_client.call_api(
748
+ '/api/stagedmodifications', 'GET',
749
+ _path_params,
750
+ _query_params,
751
+ _header_params,
752
+ body=_body_params,
753
+ post_params=_form_params,
754
+ files=_files,
755
+ response_types_map=_response_types_map,
756
+ auth_settings=_auth_settings,
757
+ async_req=_params.get('async_req'),
758
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
759
+ _preload_content=_params.get('_preload_content', True),
760
+ _request_timeout=_params.get('_request_timeout'),
761
+ collection_formats=_collection_formats,
762
+ _request_auth=_params.get('_request_auth'))