lusid-sdk 2.1.242__py3-none-any.whl → 2.1.320__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 (104) hide show
  1. lusid/__init__.py +66 -0
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/compliance_api.py +191 -0
  4. lusid/api/entities_api.py +360 -0
  5. lusid/api/fee_types_api.py +143 -0
  6. lusid/api/fund_configurations_api.py +944 -0
  7. lusid/api/funds_api.py +1 -1
  8. lusid/api/order_management_api.py +479 -1
  9. lusid/api/scopes_api.py +38 -9
  10. lusid/configuration.py +1 -1
  11. lusid/extensions/configuration_loaders.py +9 -1
  12. lusid/models/__init__.py +64 -0
  13. lusid/models/accounting_method.py +3 -0
  14. lusid/models/accumulation_event.py +3 -3
  15. lusid/models/amortisation_event.py +3 -3
  16. lusid/models/bond_coupon_event.py +3 -3
  17. lusid/models/bond_default_event.py +3 -3
  18. lusid/models/bond_principal_event.py +3 -3
  19. lusid/models/cancel_orders_response.py +153 -0
  20. lusid/models/cancel_placements_response.py +153 -0
  21. lusid/models/cancelled_order_result.py +73 -0
  22. lusid/models/cancelled_placement_result.py +83 -0
  23. lusid/models/capital_distribution_event.py +3 -3
  24. lusid/models/cash.py +93 -0
  25. lusid/models/cash_dividend_event.py +3 -3
  26. lusid/models/cash_flow_event.py +3 -3
  27. lusid/models/close_event.py +3 -3
  28. lusid/models/compliance_run_configuration.py +73 -0
  29. lusid/models/component_filter.py +85 -0
  30. lusid/models/component_rule.py +77 -0
  31. lusid/models/contract_for_difference.py +4 -2
  32. lusid/models/create_derived_transaction_portfolio_request.py +3 -3
  33. lusid/models/create_transaction_portfolio_request.py +3 -3
  34. lusid/models/dependency_source_filter.py +9 -2
  35. lusid/models/dividend_option_event.py +3 -3
  36. lusid/models/dividend_reinvestment_event.py +3 -3
  37. lusid/models/exercise_event.py +3 -3
  38. lusid/models/expiry_event.py +3 -3
  39. lusid/models/fee_transaction_template_specification.py +79 -0
  40. lusid/models/fund.py +6 -1
  41. lusid/models/fund_amount.py +69 -0
  42. lusid/models/fund_configuration.py +151 -0
  43. lusid/models/fund_configuration_properties.py +115 -0
  44. lusid/models/fund_configuration_request.py +136 -0
  45. lusid/models/fund_pnl_breakdown.py +110 -0
  46. lusid/models/fund_previous_nav.py +69 -0
  47. lusid/models/fund_request.py +6 -1
  48. lusid/models/fund_valuation_point_data.py +152 -0
  49. lusid/models/future_expiry_event.py +100 -0
  50. lusid/models/futures_contract_details.py +9 -2
  51. lusid/models/fx_forward_settlement_event.py +3 -3
  52. lusid/models/informational_error_event.py +3 -3
  53. lusid/models/informational_event.py +3 -3
  54. lusid/models/instrument_entity.py +146 -0
  55. lusid/models/instrument_event.py +6 -5
  56. lusid/models/instrument_event_type.py +1 -0
  57. lusid/models/lusid_instrument.py +3 -2
  58. lusid/models/market_data_key_rule.py +3 -3
  59. lusid/models/market_data_specific_rule.py +3 -3
  60. lusid/models/market_quote.py +3 -3
  61. lusid/models/maturity_event.py +3 -3
  62. lusid/models/merger_event.py +3 -3
  63. lusid/models/model_selection.py +3 -3
  64. lusid/models/open_event.py +3 -3
  65. lusid/models/paged_resource_list_of_fund_configuration.py +113 -0
  66. lusid/models/placement_update_request.py +116 -0
  67. lusid/models/portfolio.py +3 -3
  68. lusid/models/portfolio_details.py +3 -3
  69. lusid/models/portfolio_without_href.py +3 -3
  70. lusid/models/pre_trade_configuration.py +69 -0
  71. lusid/models/previous_fund_valuation_point_data.py +79 -0
  72. lusid/models/previous_nav.py +73 -0
  73. lusid/models/previous_share_class_breakdown.py +81 -0
  74. lusid/models/pricing_model.py +1 -0
  75. lusid/models/property_definition.py +7 -1
  76. lusid/models/property_definition_entity.py +146 -0
  77. lusid/models/quote_series_id.py +4 -20
  78. lusid/models/quote_type.py +3 -0
  79. lusid/models/raw_vendor_event.py +3 -3
  80. lusid/models/reset_event.py +3 -3
  81. lusid/models/reverse_stock_split_event.py +3 -3
  82. lusid/models/scrip_dividend_event.py +3 -3
  83. lusid/models/share_class_amount.py +73 -0
  84. lusid/models/share_class_breakdown.py +163 -0
  85. lusid/models/share_class_data.py +79 -0
  86. lusid/models/share_class_details.py +108 -0
  87. lusid/models/share_class_pnl_breakdown.py +110 -0
  88. lusid/models/spin_off_event.py +3 -3
  89. lusid/models/staged_modification.py +8 -1
  90. lusid/models/stock_dividend_event.py +3 -3
  91. lusid/models/stock_split_event.py +3 -3
  92. lusid/models/template_field.py +3 -1
  93. lusid/models/transaction_configuration_movement_data.py +2 -2
  94. lusid/models/transaction_configuration_movement_data_request.py +1 -1
  95. lusid/models/transaction_field_map.py +8 -3
  96. lusid/models/transaction_type_movement.py +2 -2
  97. lusid/models/transition_event.py +3 -3
  98. lusid/models/trigger_event.py +3 -3
  99. lusid/models/unitisation_data.py +73 -0
  100. lusid/models/update_placements_response.py +153 -0
  101. lusid/models/valuation_point_data_response.py +30 -9
  102. {lusid_sdk-2.1.242.dist-info → lusid_sdk-2.1.320.dist-info}/METADATA +53 -215
  103. {lusid_sdk-2.1.242.dist-info → lusid_sdk-2.1.320.dist-info}/RECORD +104 -71
  104. {lusid_sdk-2.1.242.dist-info → lusid_sdk-2.1.320.dist-info}/WHEEL +0 -0
@@ -0,0 +1,944 @@
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 Dict, Optional
28
+
29
+ from lusid.models.deleted_entity_response import DeletedEntityResponse
30
+ from lusid.models.fund_configuration import FundConfiguration
31
+ from lusid.models.fund_configuration_properties import FundConfigurationProperties
32
+ from lusid.models.fund_configuration_request import FundConfigurationRequest
33
+ from lusid.models.model_property import ModelProperty
34
+ from lusid.models.paged_resource_list_of_fund_configuration import PagedResourceListOfFundConfiguration
35
+
36
+ from lusid.api_client import ApiClient
37
+ from lusid.api_response import ApiResponse
38
+ from lusid.exceptions import ( # noqa: F401
39
+ ApiTypeError,
40
+ ApiValueError
41
+ )
42
+
43
+
44
+ class FundConfigurationsApi:
45
+ """NOTE: This class is auto generated by OpenAPI Generator
46
+ Ref: https://openapi-generator.tech
47
+
48
+ Do not edit the class manually.
49
+ """
50
+
51
+ def __init__(self, api_client=None) -> None:
52
+ if api_client is None:
53
+ api_client = ApiClient.get_default()
54
+ self.api_client = api_client
55
+
56
+ @overload
57
+ async def create_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], fund_configuration_request : Annotated[FundConfigurationRequest, Field(..., description="The definition of the FundConfiguration.")], **kwargs) -> FundConfiguration: # noqa: E501
58
+ ...
59
+
60
+ @overload
61
+ def create_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], fund_configuration_request : Annotated[FundConfigurationRequest, Field(..., description="The definition of the FundConfiguration.")], async_req: Optional[bool]=True, **kwargs) -> FundConfiguration: # noqa: E501
62
+ ...
63
+
64
+ @validate_arguments
65
+ def create_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], fund_configuration_request : Annotated[FundConfigurationRequest, Field(..., description="The definition of the FundConfiguration.")], async_req: Optional[bool]=None, **kwargs) -> Union[FundConfiguration, Awaitable[FundConfiguration]]: # noqa: E501
66
+ """[EXPERIMENTAL] CreateFundConfiguration: Create a FundConfiguration. # noqa: E501
67
+
68
+ Create the given FundConfiguration. # noqa: E501
69
+ This method makes a synchronous HTTP request by default. To make an
70
+ asynchronous HTTP request, please pass async_req=True
71
+
72
+ >>> thread = api.create_fund_configuration(scope, fund_configuration_request, async_req=True)
73
+ >>> result = thread.get()
74
+
75
+ :param scope: The scope of the FundConfiguration. (required)
76
+ :type scope: str
77
+ :param fund_configuration_request: The definition of the FundConfiguration. (required)
78
+ :type fund_configuration_request: FundConfigurationRequest
79
+ :param async_req: Whether to execute the request asynchronously.
80
+ :type async_req: bool, optional
81
+ :param _request_timeout: timeout setting for this request.
82
+ If one number provided, it will be total request
83
+ timeout. It can also be a pair (tuple) of
84
+ (connection, read) timeouts.
85
+ :return: Returns the result object.
86
+ If the method is called asynchronously,
87
+ returns the request thread.
88
+ :rtype: FundConfiguration
89
+ """
90
+ kwargs['_return_http_data_only'] = True
91
+ if '_preload_content' in kwargs:
92
+ message = "Error! Please call the create_fund_configuration_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
93
+ raise ValueError(message)
94
+ if async_req is not None:
95
+ kwargs['async_req'] = async_req
96
+ return self.create_fund_configuration_with_http_info(scope, fund_configuration_request, **kwargs) # noqa: E501
97
+
98
+ @validate_arguments
99
+ def create_fund_configuration_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], fund_configuration_request : Annotated[FundConfigurationRequest, Field(..., description="The definition of the FundConfiguration.")], **kwargs) -> ApiResponse: # noqa: E501
100
+ """[EXPERIMENTAL] CreateFundConfiguration: Create a FundConfiguration. # noqa: E501
101
+
102
+ Create the given FundConfiguration. # noqa: E501
103
+ This method makes a synchronous HTTP request by default. To make an
104
+ asynchronous HTTP request, please pass async_req=True
105
+
106
+ >>> thread = api.create_fund_configuration_with_http_info(scope, fund_configuration_request, async_req=True)
107
+ >>> result = thread.get()
108
+
109
+ :param scope: The scope of the FundConfiguration. (required)
110
+ :type scope: str
111
+ :param fund_configuration_request: The definition of the FundConfiguration. (required)
112
+ :type fund_configuration_request: FundConfigurationRequest
113
+ :param async_req: Whether to execute the request asynchronously.
114
+ :type async_req: bool, optional
115
+ :param _preload_content: if False, the ApiResponse.data will
116
+ be set to none and raw_data will store the
117
+ HTTP response body without reading/decoding.
118
+ Default is True.
119
+ :type _preload_content: bool, optional
120
+ :param _return_http_data_only: response data instead of ApiResponse
121
+ object with status code, headers, etc
122
+ :type _return_http_data_only: bool, optional
123
+ :param _request_timeout: timeout setting for this request. If one
124
+ number provided, it will be total request
125
+ timeout. It can also be a pair (tuple) of
126
+ (connection, read) timeouts.
127
+ :param _request_auth: set to override the auth_settings for an a single
128
+ request; this effectively ignores the authentication
129
+ in the spec for a single request.
130
+ :type _request_auth: dict, optional
131
+ :type _content_type: string, optional: force content-type for the request
132
+ :return: Returns the result object.
133
+ If the method is called asynchronously,
134
+ returns the request thread.
135
+ :rtype: tuple(FundConfiguration, status_code(int), headers(HTTPHeaderDict))
136
+ """
137
+
138
+ _params = locals()
139
+
140
+ _all_params = [
141
+ 'scope',
142
+ 'fund_configuration_request'
143
+ ]
144
+ _all_params.extend(
145
+ [
146
+ 'async_req',
147
+ '_return_http_data_only',
148
+ '_preload_content',
149
+ '_request_timeout',
150
+ '_request_auth',
151
+ '_content_type',
152
+ '_headers'
153
+ ]
154
+ )
155
+
156
+ # validate the arguments
157
+ for _key, _val in _params['kwargs'].items():
158
+ if _key not in _all_params:
159
+ raise ApiTypeError(
160
+ "Got an unexpected keyword argument '%s'"
161
+ " to method create_fund_configuration" % _key
162
+ )
163
+ _params[_key] = _val
164
+ del _params['kwargs']
165
+
166
+ _collection_formats = {}
167
+
168
+ # process the path parameters
169
+ _path_params = {}
170
+ if _params['scope']:
171
+ _path_params['scope'] = _params['scope']
172
+
173
+
174
+ # process the query parameters
175
+ _query_params = []
176
+ # process the header parameters
177
+ _header_params = dict(_params.get('_headers', {}))
178
+ # process the form parameters
179
+ _form_params = []
180
+ _files = {}
181
+ # process the body parameter
182
+ _body_params = None
183
+ if _params['fund_configuration_request'] is not None:
184
+ _body_params = _params['fund_configuration_request']
185
+
186
+ # set the HTTP header `Accept`
187
+ _header_params['Accept'] = self.api_client.select_header_accept(
188
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
189
+
190
+ # set the HTTP header `Content-Type`
191
+ _content_types_list = _params.get('_content_type',
192
+ self.api_client.select_header_content_type(
193
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
194
+ if _content_types_list:
195
+ _header_params['Content-Type'] = _content_types_list
196
+
197
+ # authentication setting
198
+ _auth_settings = ['oauth2'] # noqa: E501
199
+
200
+ _response_types_map = {
201
+ '201': "FundConfiguration",
202
+ '400': "LusidValidationProblemDetails",
203
+ }
204
+
205
+ return self.api_client.call_api(
206
+ '/api/fundconfigurations/{scope}', 'POST',
207
+ _path_params,
208
+ _query_params,
209
+ _header_params,
210
+ body=_body_params,
211
+ post_params=_form_params,
212
+ files=_files,
213
+ response_types_map=_response_types_map,
214
+ auth_settings=_auth_settings,
215
+ async_req=_params.get('async_req'),
216
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
217
+ _preload_content=_params.get('_preload_content', True),
218
+ _request_timeout=_params.get('_request_timeout'),
219
+ collection_formats=_collection_formats,
220
+ _request_auth=_params.get('_request_auth'))
221
+
222
+ @overload
223
+ async def delete_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to be deleted.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to be deleted. Together with the scope this uniquely identifies the FundConfiguration.")], **kwargs) -> DeletedEntityResponse: # noqa: E501
224
+ ...
225
+
226
+ @overload
227
+ def delete_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to be deleted.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to be deleted. Together with the scope this uniquely identifies the FundConfiguration.")], async_req: Optional[bool]=True, **kwargs) -> DeletedEntityResponse: # noqa: E501
228
+ ...
229
+
230
+ @validate_arguments
231
+ def delete_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to be deleted.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to be deleted. Together with the scope this uniquely identifies the FundConfiguration.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
232
+ """[EXPERIMENTAL] DeleteFundConfiguration: Delete a FundConfiguration. # noqa: E501
233
+
234
+ Delete the given FundConfiguration. # noqa: E501
235
+ This method makes a synchronous HTTP request by default. To make an
236
+ asynchronous HTTP request, please pass async_req=True
237
+
238
+ >>> thread = api.delete_fund_configuration(scope, code, async_req=True)
239
+ >>> result = thread.get()
240
+
241
+ :param scope: The scope of the FundConfiguration to be deleted. (required)
242
+ :type scope: str
243
+ :param code: The code of the FundConfiguration to be deleted. Together with the scope this uniquely identifies the FundConfiguration. (required)
244
+ :type code: str
245
+ :param async_req: Whether to execute the request asynchronously.
246
+ :type async_req: bool, optional
247
+ :param _request_timeout: timeout setting for this request.
248
+ If one number provided, it will be total request
249
+ timeout. It can also be a pair (tuple) of
250
+ (connection, read) timeouts.
251
+ :return: Returns the result object.
252
+ If the method is called asynchronously,
253
+ returns the request thread.
254
+ :rtype: DeletedEntityResponse
255
+ """
256
+ kwargs['_return_http_data_only'] = True
257
+ if '_preload_content' in kwargs:
258
+ message = "Error! Please call the delete_fund_configuration_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
259
+ raise ValueError(message)
260
+ if async_req is not None:
261
+ kwargs['async_req'] = async_req
262
+ return self.delete_fund_configuration_with_http_info(scope, code, **kwargs) # noqa: E501
263
+
264
+ @validate_arguments
265
+ def delete_fund_configuration_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to be deleted.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to be deleted. Together with the scope this uniquely identifies the FundConfiguration.")], **kwargs) -> ApiResponse: # noqa: E501
266
+ """[EXPERIMENTAL] DeleteFundConfiguration: Delete a FundConfiguration. # noqa: E501
267
+
268
+ Delete the given FundConfiguration. # noqa: E501
269
+ This method makes a synchronous HTTP request by default. To make an
270
+ asynchronous HTTP request, please pass async_req=True
271
+
272
+ >>> thread = api.delete_fund_configuration_with_http_info(scope, code, async_req=True)
273
+ >>> result = thread.get()
274
+
275
+ :param scope: The scope of the FundConfiguration to be deleted. (required)
276
+ :type scope: str
277
+ :param code: The code of the FundConfiguration to be deleted. Together with the scope this uniquely identifies the FundConfiguration. (required)
278
+ :type code: str
279
+ :param async_req: Whether to execute the request asynchronously.
280
+ :type async_req: bool, optional
281
+ :param _preload_content: if False, the ApiResponse.data will
282
+ be set to none and raw_data will store the
283
+ HTTP response body without reading/decoding.
284
+ Default is True.
285
+ :type _preload_content: bool, optional
286
+ :param _return_http_data_only: response data instead of ApiResponse
287
+ object with status code, headers, etc
288
+ :type _return_http_data_only: bool, optional
289
+ :param _request_timeout: timeout setting for this request. If one
290
+ number provided, it will be total request
291
+ timeout. It can also be a pair (tuple) of
292
+ (connection, read) timeouts.
293
+ :param _request_auth: set to override the auth_settings for an a single
294
+ request; this effectively ignores the authentication
295
+ in the spec for a single request.
296
+ :type _request_auth: dict, optional
297
+ :type _content_type: string, optional: force content-type for the request
298
+ :return: Returns the result object.
299
+ If the method is called asynchronously,
300
+ returns the request thread.
301
+ :rtype: tuple(DeletedEntityResponse, status_code(int), headers(HTTPHeaderDict))
302
+ """
303
+
304
+ _params = locals()
305
+
306
+ _all_params = [
307
+ 'scope',
308
+ 'code'
309
+ ]
310
+ _all_params.extend(
311
+ [
312
+ 'async_req',
313
+ '_return_http_data_only',
314
+ '_preload_content',
315
+ '_request_timeout',
316
+ '_request_auth',
317
+ '_content_type',
318
+ '_headers'
319
+ ]
320
+ )
321
+
322
+ # validate the arguments
323
+ for _key, _val in _params['kwargs'].items():
324
+ if _key not in _all_params:
325
+ raise ApiTypeError(
326
+ "Got an unexpected keyword argument '%s'"
327
+ " to method delete_fund_configuration" % _key
328
+ )
329
+ _params[_key] = _val
330
+ del _params['kwargs']
331
+
332
+ _collection_formats = {}
333
+
334
+ # process the path parameters
335
+ _path_params = {}
336
+ if _params['scope']:
337
+ _path_params['scope'] = _params['scope']
338
+
339
+ if _params['code']:
340
+ _path_params['code'] = _params['code']
341
+
342
+
343
+ # process the query parameters
344
+ _query_params = []
345
+ # process the header parameters
346
+ _header_params = dict(_params.get('_headers', {}))
347
+ # process the form parameters
348
+ _form_params = []
349
+ _files = {}
350
+ # process the body parameter
351
+ _body_params = None
352
+ # set the HTTP header `Accept`
353
+ _header_params['Accept'] = self.api_client.select_header_accept(
354
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
355
+
356
+ # authentication setting
357
+ _auth_settings = ['oauth2'] # noqa: E501
358
+
359
+ _response_types_map = {
360
+ '200': "DeletedEntityResponse",
361
+ '400': "LusidValidationProblemDetails",
362
+ }
363
+
364
+ return self.api_client.call_api(
365
+ '/api/fundconfigurations/{scope}/{code}', 'DELETE',
366
+ _path_params,
367
+ _query_params,
368
+ _header_params,
369
+ body=_body_params,
370
+ post_params=_form_params,
371
+ files=_files,
372
+ response_types_map=_response_types_map,
373
+ auth_settings=_auth_settings,
374
+ async_req=_params.get('async_req'),
375
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
376
+ _preload_content=_params.get('_preload_content', True),
377
+ _request_timeout=_params.get('_request_timeout'),
378
+ collection_formats=_collection_formats,
379
+ _request_auth=_params.get('_request_auth'))
380
+
381
+ @overload
382
+ async def get_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration. Together with the scope this uniquely identifies the FundConfiguration.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the FundConfiguration properties. 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 FundConfiguration definition. Defaults to returning the latest version of the FundConfiguration definition if not specified.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto the FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'. If no properties are specified, then no properties will be returned.")] = None, **kwargs) -> FundConfiguration: # noqa: E501
383
+ ...
384
+
385
+ @overload
386
+ def get_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration. Together with the scope this uniquely identifies the FundConfiguration.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the FundConfiguration properties. 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 FundConfiguration definition. Defaults to returning the latest version of the FundConfiguration definition if not specified.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto the FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'. If no properties are specified, then no properties will be returned.")] = None, async_req: Optional[bool]=True, **kwargs) -> FundConfiguration: # noqa: E501
387
+ ...
388
+
389
+ @validate_arguments
390
+ def get_fund_configuration(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration. Together with the scope this uniquely identifies the FundConfiguration.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the FundConfiguration properties. 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 FundConfiguration definition. Defaults to returning the latest version of the FundConfiguration definition if not specified.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto the FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'. If no properties are specified, then no properties will be returned.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[FundConfiguration, Awaitable[FundConfiguration]]: # noqa: E501
391
+ """[EXPERIMENTAL] GetFundConfiguration: Get FundConfiguration. # noqa: E501
392
+
393
+ Retrieve the definition of a particular FundConfiguration. # noqa: E501
394
+ This method makes a synchronous HTTP request by default. To make an
395
+ asynchronous HTTP request, please pass async_req=True
396
+
397
+ >>> thread = api.get_fund_configuration(scope, code, effective_at, as_at, property_keys, async_req=True)
398
+ >>> result = thread.get()
399
+
400
+ :param scope: The scope of the FundConfiguration. (required)
401
+ :type scope: str
402
+ :param code: The code of the FundConfiguration. Together with the scope this uniquely identifies the FundConfiguration. (required)
403
+ :type code: str
404
+ :param effective_at: The effective datetime or cut label at which to retrieve the FundConfiguration properties. Defaults to the current LUSID system datetime if not specified.
405
+ :type effective_at: str
406
+ :param as_at: The asAt datetime at which to retrieve the FundConfiguration definition. Defaults to returning the latest version of the FundConfiguration definition if not specified.
407
+ :type as_at: datetime
408
+ :param property_keys: A list of property keys from the 'FundConfiguration' domain to decorate onto the FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'. If no properties are specified, then no properties will be returned.
409
+ :type property_keys: List[str]
410
+ :param async_req: Whether to execute the request asynchronously.
411
+ :type async_req: bool, optional
412
+ :param _request_timeout: timeout setting for this request.
413
+ If one number provided, it will be total request
414
+ timeout. It can also be a pair (tuple) of
415
+ (connection, read) timeouts.
416
+ :return: Returns the result object.
417
+ If the method is called asynchronously,
418
+ returns the request thread.
419
+ :rtype: FundConfiguration
420
+ """
421
+ kwargs['_return_http_data_only'] = True
422
+ if '_preload_content' in kwargs:
423
+ message = "Error! Please call the get_fund_configuration_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
424
+ raise ValueError(message)
425
+ if async_req is not None:
426
+ kwargs['async_req'] = async_req
427
+ return self.get_fund_configuration_with_http_info(scope, code, effective_at, as_at, property_keys, **kwargs) # noqa: E501
428
+
429
+ @validate_arguments
430
+ def get_fund_configuration_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration. Together with the scope this uniquely identifies the FundConfiguration.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the FundConfiguration properties. 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 FundConfiguration definition. Defaults to returning the latest version of the FundConfiguration definition if not specified.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto the FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'. If no properties are specified, then no properties will be returned.")] = None, **kwargs) -> ApiResponse: # noqa: E501
431
+ """[EXPERIMENTAL] GetFundConfiguration: Get FundConfiguration. # noqa: E501
432
+
433
+ Retrieve the definition of a particular FundConfiguration. # noqa: E501
434
+ This method makes a synchronous HTTP request by default. To make an
435
+ asynchronous HTTP request, please pass async_req=True
436
+
437
+ >>> thread = api.get_fund_configuration_with_http_info(scope, code, effective_at, as_at, property_keys, async_req=True)
438
+ >>> result = thread.get()
439
+
440
+ :param scope: The scope of the FundConfiguration. (required)
441
+ :type scope: str
442
+ :param code: The code of the FundConfiguration. Together with the scope this uniquely identifies the FundConfiguration. (required)
443
+ :type code: str
444
+ :param effective_at: The effective datetime or cut label at which to retrieve the FundConfiguration properties. Defaults to the current LUSID system datetime if not specified.
445
+ :type effective_at: str
446
+ :param as_at: The asAt datetime at which to retrieve the FundConfiguration definition. Defaults to returning the latest version of the FundConfiguration definition if not specified.
447
+ :type as_at: datetime
448
+ :param property_keys: A list of property keys from the 'FundConfiguration' domain to decorate onto the FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'. If no properties are specified, then no properties will be returned.
449
+ :type property_keys: List[str]
450
+ :param async_req: Whether to execute the request asynchronously.
451
+ :type async_req: bool, optional
452
+ :param _preload_content: if False, the ApiResponse.data will
453
+ be set to none and raw_data will store the
454
+ HTTP response body without reading/decoding.
455
+ Default is True.
456
+ :type _preload_content: bool, optional
457
+ :param _return_http_data_only: response data instead of ApiResponse
458
+ object with status code, headers, etc
459
+ :type _return_http_data_only: bool, optional
460
+ :param _request_timeout: timeout setting for this request. If one
461
+ number provided, it will be total request
462
+ timeout. It can also be a pair (tuple) of
463
+ (connection, read) timeouts.
464
+ :param _request_auth: set to override the auth_settings for an a single
465
+ request; this effectively ignores the authentication
466
+ in the spec for a single request.
467
+ :type _request_auth: dict, optional
468
+ :type _content_type: string, optional: force content-type for the request
469
+ :return: Returns the result object.
470
+ If the method is called asynchronously,
471
+ returns the request thread.
472
+ :rtype: tuple(FundConfiguration, status_code(int), headers(HTTPHeaderDict))
473
+ """
474
+
475
+ _params = locals()
476
+
477
+ _all_params = [
478
+ 'scope',
479
+ 'code',
480
+ 'effective_at',
481
+ 'as_at',
482
+ 'property_keys'
483
+ ]
484
+ _all_params.extend(
485
+ [
486
+ 'async_req',
487
+ '_return_http_data_only',
488
+ '_preload_content',
489
+ '_request_timeout',
490
+ '_request_auth',
491
+ '_content_type',
492
+ '_headers'
493
+ ]
494
+ )
495
+
496
+ # validate the arguments
497
+ for _key, _val in _params['kwargs'].items():
498
+ if _key not in _all_params:
499
+ raise ApiTypeError(
500
+ "Got an unexpected keyword argument '%s'"
501
+ " to method get_fund_configuration" % _key
502
+ )
503
+ _params[_key] = _val
504
+ del _params['kwargs']
505
+
506
+ _collection_formats = {}
507
+
508
+ # process the path parameters
509
+ _path_params = {}
510
+ if _params['scope']:
511
+ _path_params['scope'] = _params['scope']
512
+
513
+ if _params['code']:
514
+ _path_params['code'] = _params['code']
515
+
516
+
517
+ # process the query parameters
518
+ _query_params = []
519
+ if _params.get('effective_at') is not None: # noqa: E501
520
+ _query_params.append(('effectiveAt', _params['effective_at']))
521
+
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('property_keys') is not None: # noqa: E501
529
+ _query_params.append(('propertyKeys', _params['property_keys']))
530
+ _collection_formats['propertyKeys'] = 'multi'
531
+
532
+ # process the header parameters
533
+ _header_params = dict(_params.get('_headers', {}))
534
+ # process the form parameters
535
+ _form_params = []
536
+ _files = {}
537
+ # process the body parameter
538
+ _body_params = None
539
+ # set the HTTP header `Accept`
540
+ _header_params['Accept'] = self.api_client.select_header_accept(
541
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
542
+
543
+ # authentication setting
544
+ _auth_settings = ['oauth2'] # noqa: E501
545
+
546
+ _response_types_map = {
547
+ '200': "FundConfiguration",
548
+ '400': "LusidValidationProblemDetails",
549
+ }
550
+
551
+ return self.api_client.call_api(
552
+ '/api/fundconfigurations/{scope}/{code}', 'GET',
553
+ _path_params,
554
+ _query_params,
555
+ _header_params,
556
+ body=_body_params,
557
+ post_params=_form_params,
558
+ files=_files,
559
+ response_types_map=_response_types_map,
560
+ auth_settings=_auth_settings,
561
+ async_req=_params.get('async_req'),
562
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
563
+ _preload_content=_params.get('_preload_content', True),
564
+ _request_timeout=_params.get('_request_timeout'),
565
+ collection_formats=_collection_formats,
566
+ _request_auth=_params.get('_request_auth'))
567
+
568
+ @overload
569
+ async def list_fund_configurations(self, effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to list the TimeVariant properties for the FundConfiguration. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the FundConfiguration. Defaults to returning the latest version of each FundConfiguration 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 FundConfiguration; 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 results to this number. 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 results. For example, to filter on the FundConfiguration type, specify \"id.Code eq 'FundConfiguration1'\". For more information about filtering results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto each FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'.")] = None, **kwargs) -> PagedResourceListOfFundConfiguration: # noqa: E501
570
+ ...
571
+
572
+ @overload
573
+ def list_fund_configurations(self, effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to list the TimeVariant properties for the FundConfiguration. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the FundConfiguration. Defaults to returning the latest version of each FundConfiguration 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 FundConfiguration; 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 results to this number. 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 results. For example, to filter on the FundConfiguration type, specify \"id.Code eq 'FundConfiguration1'\". For more information about filtering results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto each FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'.")] = None, async_req: Optional[bool]=True, **kwargs) -> PagedResourceListOfFundConfiguration: # noqa: E501
574
+ ...
575
+
576
+ @validate_arguments
577
+ def list_fund_configurations(self, effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to list the TimeVariant properties for the FundConfiguration. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the FundConfiguration. Defaults to returning the latest version of each FundConfiguration 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 FundConfiguration; 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 results to this number. 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 results. For example, to filter on the FundConfiguration type, specify \"id.Code eq 'FundConfiguration1'\". For more information about filtering results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto each FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PagedResourceListOfFundConfiguration, Awaitable[PagedResourceListOfFundConfiguration]]: # noqa: E501
578
+ """[EXPERIMENTAL] ListFundConfigurations: List FundConfiguration. # noqa: E501
579
+
580
+ List all the FundConfiguration matching particular criteria. # noqa: E501
581
+ This method makes a synchronous HTTP request by default. To make an
582
+ asynchronous HTTP request, please pass async_req=True
583
+
584
+ >>> thread = api.list_fund_configurations(effective_at, as_at, page, limit, filter, sort_by, property_keys, async_req=True)
585
+ >>> result = thread.get()
586
+
587
+ :param effective_at: The effective datetime or cut label at which to list the TimeVariant properties for the FundConfiguration. Defaults to the current LUSID system datetime if not specified.
588
+ :type effective_at: str
589
+ :param as_at: The asAt datetime at which to list the FundConfiguration. Defaults to returning the latest version of each FundConfiguration if not specified.
590
+ :type as_at: datetime
591
+ :param page: The pagination token to use to continue listing FundConfiguration; 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.
592
+ :type page: str
593
+ :param limit: When paginating, limit the results to this number. Defaults to 100 if not specified.
594
+ :type limit: int
595
+ :param filter: Expression to filter the results. For example, to filter on the FundConfiguration type, specify \"id.Code eq 'FundConfiguration1'\". For more information about filtering results, see https://support.lusid.com/knowledgebase/article/KA-01914.
596
+ :type filter: str
597
+ :param sort_by: A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".
598
+ :type sort_by: List[str]
599
+ :param property_keys: A list of property keys from the 'FundConfiguration' domain to decorate onto each FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'.
600
+ :type property_keys: List[str]
601
+ :param async_req: Whether to execute the request asynchronously.
602
+ :type async_req: bool, optional
603
+ :param _request_timeout: timeout setting for this request.
604
+ If one number provided, it will be total request
605
+ timeout. It can also be a pair (tuple) of
606
+ (connection, read) timeouts.
607
+ :return: Returns the result object.
608
+ If the method is called asynchronously,
609
+ returns the request thread.
610
+ :rtype: PagedResourceListOfFundConfiguration
611
+ """
612
+ kwargs['_return_http_data_only'] = True
613
+ if '_preload_content' in kwargs:
614
+ message = "Error! Please call the list_fund_configurations_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
615
+ raise ValueError(message)
616
+ if async_req is not None:
617
+ kwargs['async_req'] = async_req
618
+ return self.list_fund_configurations_with_http_info(effective_at, as_at, page, limit, filter, sort_by, property_keys, **kwargs) # noqa: E501
619
+
620
+ @validate_arguments
621
+ def list_fund_configurations_with_http_info(self, effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to list the TimeVariant properties for the FundConfiguration. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the FundConfiguration. Defaults to returning the latest version of each FundConfiguration 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 FundConfiguration; 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 results to this number. 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 results. For example, to filter on the FundConfiguration type, specify \"id.Code eq 'FundConfiguration1'\". For more information about filtering results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'FundConfiguration' domain to decorate onto each FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'.")] = None, **kwargs) -> ApiResponse: # noqa: E501
622
+ """[EXPERIMENTAL] ListFundConfigurations: List FundConfiguration. # noqa: E501
623
+
624
+ List all the FundConfiguration matching particular criteria. # noqa: E501
625
+ This method makes a synchronous HTTP request by default. To make an
626
+ asynchronous HTTP request, please pass async_req=True
627
+
628
+ >>> thread = api.list_fund_configurations_with_http_info(effective_at, as_at, page, limit, filter, sort_by, property_keys, async_req=True)
629
+ >>> result = thread.get()
630
+
631
+ :param effective_at: The effective datetime or cut label at which to list the TimeVariant properties for the FundConfiguration. Defaults to the current LUSID system datetime if not specified.
632
+ :type effective_at: str
633
+ :param as_at: The asAt datetime at which to list the FundConfiguration. Defaults to returning the latest version of each FundConfiguration if not specified.
634
+ :type as_at: datetime
635
+ :param page: The pagination token to use to continue listing FundConfiguration; 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.
636
+ :type page: str
637
+ :param limit: When paginating, limit the results to this number. Defaults to 100 if not specified.
638
+ :type limit: int
639
+ :param filter: Expression to filter the results. For example, to filter on the FundConfiguration type, specify \"id.Code eq 'FundConfiguration1'\". For more information about filtering results, see https://support.lusid.com/knowledgebase/article/KA-01914.
640
+ :type filter: str
641
+ :param sort_by: A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".
642
+ :type sort_by: List[str]
643
+ :param property_keys: A list of property keys from the 'FundConfiguration' domain to decorate onto each FundConfiguration. These must take the format {domain}/{scope}/{code}, for example 'FundConfiguration/Manager/Id'.
644
+ :type property_keys: List[str]
645
+ :param async_req: Whether to execute the request asynchronously.
646
+ :type async_req: bool, optional
647
+ :param _preload_content: if False, the ApiResponse.data will
648
+ be set to none and raw_data will store the
649
+ HTTP response body without reading/decoding.
650
+ Default is True.
651
+ :type _preload_content: bool, optional
652
+ :param _return_http_data_only: response data instead of ApiResponse
653
+ object with status code, headers, etc
654
+ :type _return_http_data_only: bool, optional
655
+ :param _request_timeout: timeout setting for this request. If one
656
+ number provided, it will be total request
657
+ timeout. It can also be a pair (tuple) of
658
+ (connection, read) timeouts.
659
+ :param _request_auth: set to override the auth_settings for an a single
660
+ request; this effectively ignores the authentication
661
+ in the spec for a single request.
662
+ :type _request_auth: dict, optional
663
+ :type _content_type: string, optional: force content-type for the request
664
+ :return: Returns the result object.
665
+ If the method is called asynchronously,
666
+ returns the request thread.
667
+ :rtype: tuple(PagedResourceListOfFundConfiguration, status_code(int), headers(HTTPHeaderDict))
668
+ """
669
+
670
+ _params = locals()
671
+
672
+ _all_params = [
673
+ 'effective_at',
674
+ 'as_at',
675
+ 'page',
676
+ 'limit',
677
+ 'filter',
678
+ 'sort_by',
679
+ 'property_keys'
680
+ ]
681
+ _all_params.extend(
682
+ [
683
+ 'async_req',
684
+ '_return_http_data_only',
685
+ '_preload_content',
686
+ '_request_timeout',
687
+ '_request_auth',
688
+ '_content_type',
689
+ '_headers'
690
+ ]
691
+ )
692
+
693
+ # validate the arguments
694
+ for _key, _val in _params['kwargs'].items():
695
+ if _key not in _all_params:
696
+ raise ApiTypeError(
697
+ "Got an unexpected keyword argument '%s'"
698
+ " to method list_fund_configurations" % _key
699
+ )
700
+ _params[_key] = _val
701
+ del _params['kwargs']
702
+
703
+ _collection_formats = {}
704
+
705
+ # process the path parameters
706
+ _path_params = {}
707
+
708
+ # process the query parameters
709
+ _query_params = []
710
+ if _params.get('effective_at') is not None: # noqa: E501
711
+ _query_params.append(('effectiveAt', _params['effective_at']))
712
+
713
+ if _params.get('as_at') is not None: # noqa: E501
714
+ if isinstance(_params['as_at'], datetime):
715
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
716
+ else:
717
+ _query_params.append(('asAt', _params['as_at']))
718
+
719
+ if _params.get('page') is not None: # noqa: E501
720
+ _query_params.append(('page', _params['page']))
721
+
722
+ if _params.get('limit') is not None: # noqa: E501
723
+ _query_params.append(('limit', _params['limit']))
724
+
725
+ if _params.get('filter') is not None: # noqa: E501
726
+ _query_params.append(('filter', _params['filter']))
727
+
728
+ if _params.get('sort_by') is not None: # noqa: E501
729
+ _query_params.append(('sortBy', _params['sort_by']))
730
+ _collection_formats['sortBy'] = 'multi'
731
+
732
+ if _params.get('property_keys') is not None: # noqa: E501
733
+ _query_params.append(('propertyKeys', _params['property_keys']))
734
+ _collection_formats['propertyKeys'] = 'multi'
735
+
736
+ # process the header parameters
737
+ _header_params = dict(_params.get('_headers', {}))
738
+ # process the form parameters
739
+ _form_params = []
740
+ _files = {}
741
+ # process the body parameter
742
+ _body_params = None
743
+ # set the HTTP header `Accept`
744
+ _header_params['Accept'] = self.api_client.select_header_accept(
745
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
746
+
747
+ # authentication setting
748
+ _auth_settings = ['oauth2'] # noqa: E501
749
+
750
+ _response_types_map = {
751
+ '200': "PagedResourceListOfFundConfiguration",
752
+ '400': "LusidValidationProblemDetails",
753
+ }
754
+
755
+ return self.api_client.call_api(
756
+ '/api/fundconfigurations', 'GET',
757
+ _path_params,
758
+ _query_params,
759
+ _header_params,
760
+ body=_body_params,
761
+ post_params=_form_params,
762
+ files=_files,
763
+ response_types_map=_response_types_map,
764
+ auth_settings=_auth_settings,
765
+ async_req=_params.get('async_req'),
766
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
767
+ _preload_content=_params.get('_preload_content', True),
768
+ _request_timeout=_params.get('_request_timeout'),
769
+ collection_formats=_collection_formats,
770
+ _request_auth=_params.get('_request_auth'))
771
+
772
+ @overload
773
+ async def upsert_fund_configuration_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to update or insert the properties onto. Together with the scope this uniquely identifies the FundConfiguration.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund Configuration. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"FundConfiguration/Manager/Id\".")] = None, **kwargs) -> FundConfigurationProperties: # noqa: E501
774
+ ...
775
+
776
+ @overload
777
+ def upsert_fund_configuration_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to update or insert the properties onto. Together with the scope this uniquely identifies the FundConfiguration.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund Configuration. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"FundConfiguration/Manager/Id\".")] = None, async_req: Optional[bool]=True, **kwargs) -> FundConfigurationProperties: # noqa: E501
778
+ ...
779
+
780
+ @validate_arguments
781
+ def upsert_fund_configuration_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to update or insert the properties onto. Together with the scope this uniquely identifies the FundConfiguration.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund Configuration. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"FundConfiguration/Manager/Id\".")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[FundConfigurationProperties, Awaitable[FundConfigurationProperties]]: # noqa: E501
782
+ """[EXPERIMENTAL] UpsertFundConfigurationProperties: Upsert FundConfiguration properties # noqa: E501
783
+
784
+ Update or insert one or more properties onto a single FundConfiguration. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'FundConfiguration'. Upserting a property that exists for an FundConfiguration, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
785
+ This method makes a synchronous HTTP request by default. To make an
786
+ asynchronous HTTP request, please pass async_req=True
787
+
788
+ >>> thread = api.upsert_fund_configuration_properties(scope, code, request_body, async_req=True)
789
+ >>> result = thread.get()
790
+
791
+ :param scope: The scope of the FundConfiguration to update or insert the properties onto. (required)
792
+ :type scope: str
793
+ :param code: The code of the FundConfiguration to update or insert the properties onto. Together with the scope this uniquely identifies the FundConfiguration. (required)
794
+ :type code: str
795
+ :param request_body: The properties to be updated or inserted onto the Fund Configuration. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"FundConfiguration/Manager/Id\".
796
+ :type request_body: Dict[str, ModelProperty]
797
+ :param async_req: Whether to execute the request asynchronously.
798
+ :type async_req: bool, optional
799
+ :param _request_timeout: timeout setting for this request.
800
+ If one number provided, it will be total request
801
+ timeout. It can also be a pair (tuple) of
802
+ (connection, read) timeouts.
803
+ :return: Returns the result object.
804
+ If the method is called asynchronously,
805
+ returns the request thread.
806
+ :rtype: FundConfigurationProperties
807
+ """
808
+ kwargs['_return_http_data_only'] = True
809
+ if '_preload_content' in kwargs:
810
+ message = "Error! Please call the upsert_fund_configuration_properties_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
811
+ raise ValueError(message)
812
+ if async_req is not None:
813
+ kwargs['async_req'] = async_req
814
+ return self.upsert_fund_configuration_properties_with_http_info(scope, code, request_body, **kwargs) # noqa: E501
815
+
816
+ @validate_arguments
817
+ def upsert_fund_configuration_properties_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the FundConfiguration to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the FundConfiguration to update or insert the properties onto. Together with the scope this uniquely identifies the FundConfiguration.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund Configuration. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"FundConfiguration/Manager/Id\".")] = None, **kwargs) -> ApiResponse: # noqa: E501
818
+ """[EXPERIMENTAL] UpsertFundConfigurationProperties: Upsert FundConfiguration properties # noqa: E501
819
+
820
+ Update or insert one or more properties onto a single FundConfiguration. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'FundConfiguration'. Upserting a property that exists for an FundConfiguration, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
821
+ This method makes a synchronous HTTP request by default. To make an
822
+ asynchronous HTTP request, please pass async_req=True
823
+
824
+ >>> thread = api.upsert_fund_configuration_properties_with_http_info(scope, code, request_body, async_req=True)
825
+ >>> result = thread.get()
826
+
827
+ :param scope: The scope of the FundConfiguration to update or insert the properties onto. (required)
828
+ :type scope: str
829
+ :param code: The code of the FundConfiguration to update or insert the properties onto. Together with the scope this uniquely identifies the FundConfiguration. (required)
830
+ :type code: str
831
+ :param request_body: The properties to be updated or inserted onto the Fund Configuration. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"FundConfiguration/Manager/Id\".
832
+ :type request_body: Dict[str, ModelProperty]
833
+ :param async_req: Whether to execute the request asynchronously.
834
+ :type async_req: bool, optional
835
+ :param _preload_content: if False, the ApiResponse.data will
836
+ be set to none and raw_data will store the
837
+ HTTP response body without reading/decoding.
838
+ Default is True.
839
+ :type _preload_content: bool, optional
840
+ :param _return_http_data_only: response data instead of ApiResponse
841
+ object with status code, headers, etc
842
+ :type _return_http_data_only: bool, optional
843
+ :param _request_timeout: timeout setting for this request. If one
844
+ number provided, it will be total request
845
+ timeout. It can also be a pair (tuple) of
846
+ (connection, read) timeouts.
847
+ :param _request_auth: set to override the auth_settings for an a single
848
+ request; this effectively ignores the authentication
849
+ in the spec for a single request.
850
+ :type _request_auth: dict, optional
851
+ :type _content_type: string, optional: force content-type for the request
852
+ :return: Returns the result object.
853
+ If the method is called asynchronously,
854
+ returns the request thread.
855
+ :rtype: tuple(FundConfigurationProperties, status_code(int), headers(HTTPHeaderDict))
856
+ """
857
+
858
+ _params = locals()
859
+
860
+ _all_params = [
861
+ 'scope',
862
+ 'code',
863
+ 'request_body'
864
+ ]
865
+ _all_params.extend(
866
+ [
867
+ 'async_req',
868
+ '_return_http_data_only',
869
+ '_preload_content',
870
+ '_request_timeout',
871
+ '_request_auth',
872
+ '_content_type',
873
+ '_headers'
874
+ ]
875
+ )
876
+
877
+ # validate the arguments
878
+ for _key, _val in _params['kwargs'].items():
879
+ if _key not in _all_params:
880
+ raise ApiTypeError(
881
+ "Got an unexpected keyword argument '%s'"
882
+ " to method upsert_fund_configuration_properties" % _key
883
+ )
884
+ _params[_key] = _val
885
+ del _params['kwargs']
886
+
887
+ _collection_formats = {}
888
+
889
+ # process the path parameters
890
+ _path_params = {}
891
+ if _params['scope']:
892
+ _path_params['scope'] = _params['scope']
893
+
894
+ if _params['code']:
895
+ _path_params['code'] = _params['code']
896
+
897
+
898
+ # process the query parameters
899
+ _query_params = []
900
+ # process the header parameters
901
+ _header_params = dict(_params.get('_headers', {}))
902
+ # process the form parameters
903
+ _form_params = []
904
+ _files = {}
905
+ # process the body parameter
906
+ _body_params = None
907
+ if _params['request_body'] is not None:
908
+ _body_params = _params['request_body']
909
+
910
+ # set the HTTP header `Accept`
911
+ _header_params['Accept'] = self.api_client.select_header_accept(
912
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
913
+
914
+ # set the HTTP header `Content-Type`
915
+ _content_types_list = _params.get('_content_type',
916
+ self.api_client.select_header_content_type(
917
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
918
+ if _content_types_list:
919
+ _header_params['Content-Type'] = _content_types_list
920
+
921
+ # authentication setting
922
+ _auth_settings = ['oauth2'] # noqa: E501
923
+
924
+ _response_types_map = {
925
+ '200': "FundConfigurationProperties",
926
+ '400': "LusidValidationProblemDetails",
927
+ }
928
+
929
+ return self.api_client.call_api(
930
+ '/api/fundconfigurations/{scope}/{code}/properties/$upsert', 'POST',
931
+ _path_params,
932
+ _query_params,
933
+ _header_params,
934
+ body=_body_params,
935
+ post_params=_form_params,
936
+ files=_files,
937
+ response_types_map=_response_types_map,
938
+ auth_settings=_auth_settings,
939
+ async_req=_params.get('async_req'),
940
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
941
+ _preload_content=_params.get('_preload_content', True),
942
+ _request_timeout=_params.get('_request_timeout'),
943
+ collection_formats=_collection_formats,
944
+ _request_auth=_params.get('_request_auth'))