lusid-sdk 2.1.403__py3-none-any.whl → 2.1.414__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
lusid/__init__.py CHANGED
@@ -161,6 +161,7 @@ from lusid.models.batch_adjust_holdings_response import BatchAdjustHoldingsRespo
161
161
  from lusid.models.batch_upsert_instrument_properties_response import BatchUpsertInstrumentPropertiesResponse
162
162
  from lusid.models.batch_upsert_portfolio_access_metadata_request import BatchUpsertPortfolioAccessMetadataRequest
163
163
  from lusid.models.batch_upsert_portfolio_access_metadata_response import BatchUpsertPortfolioAccessMetadataResponse
164
+ from lusid.models.batch_upsert_portfolio_access_metadata_response_item import BatchUpsertPortfolioAccessMetadataResponseItem
164
165
  from lusid.models.batch_upsert_portfolio_transactions_response import BatchUpsertPortfolioTransactionsResponse
165
166
  from lusid.models.batch_upsert_property_definition_properties_response import BatchUpsertPropertyDefinitionPropertiesResponse
166
167
  from lusid.models.block import Block
@@ -330,6 +331,7 @@ from lusid.models.custodian_account_request import CustodianAccountRequest
330
331
  from lusid.models.custodian_accounts_upsert_response import CustodianAccountsUpsertResponse
331
332
  from lusid.models.custom_entity_definition import CustomEntityDefinition
332
333
  from lusid.models.custom_entity_definition_request import CustomEntityDefinitionRequest
334
+ from lusid.models.custom_entity_entity import CustomEntityEntity
333
335
  from lusid.models.custom_entity_field import CustomEntityField
334
336
  from lusid.models.custom_entity_field_definition import CustomEntityFieldDefinition
335
337
  from lusid.models.custom_entity_id import CustomEntityId
@@ -600,8 +602,6 @@ from lusid.models.market_quote import MarketQuote
600
602
  from lusid.models.match_criterion import MatchCriterion
601
603
  from lusid.models.maturity_event import MaturityEvent
602
604
  from lusid.models.merger_event import MergerEvent
603
- from lusid.models.metadata_key_value import MetadataKeyValue
604
- from lusid.models.metadata_key_value_response import MetadataKeyValueResponse
605
605
  from lusid.models.metric_value import MetricValue
606
606
  from lusid.models.model_options import ModelOptions
607
607
  from lusid.models.model_options_type import ModelOptionsType
@@ -1311,6 +1311,7 @@ __all__ = [
1311
1311
  "BatchUpsertInstrumentPropertiesResponse",
1312
1312
  "BatchUpsertPortfolioAccessMetadataRequest",
1313
1313
  "BatchUpsertPortfolioAccessMetadataResponse",
1314
+ "BatchUpsertPortfolioAccessMetadataResponseItem",
1314
1315
  "BatchUpsertPortfolioTransactionsResponse",
1315
1316
  "BatchUpsertPropertyDefinitionPropertiesResponse",
1316
1317
  "Block",
@@ -1480,6 +1481,7 @@ __all__ = [
1480
1481
  "CustodianAccountsUpsertResponse",
1481
1482
  "CustomEntityDefinition",
1482
1483
  "CustomEntityDefinitionRequest",
1484
+ "CustomEntityEntity",
1483
1485
  "CustomEntityField",
1484
1486
  "CustomEntityFieldDefinition",
1485
1487
  "CustomEntityId",
@@ -1750,8 +1752,6 @@ __all__ = [
1750
1752
  "MatchCriterion",
1751
1753
  "MaturityEvent",
1752
1754
  "MergerEvent",
1753
- "MetadataKeyValue",
1754
- "MetadataKeyValueResponse",
1755
1755
  "MetricValue",
1756
1756
  "ModelOptions",
1757
1757
  "ModelOptionsType",
lusid/api/abor_api.py CHANGED
@@ -66,30 +66,28 @@ class AborApi:
66
66
  self.api_client = api_client
67
67
 
68
68
  @overload
69
- async def add_diary_entry(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Diary entry code")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], **kwargs) -> DiaryEntry: # noqa: E501
69
+ async def add_diary_entry(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], **kwargs) -> DiaryEntry: # noqa: E501
70
70
  ...
71
71
 
72
72
  @overload
73
- def add_diary_entry(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Diary entry code")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], async_req: Optional[bool]=True, **kwargs) -> DiaryEntry: # noqa: E501
73
+ def add_diary_entry(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], async_req: Optional[bool]=True, **kwargs) -> DiaryEntry: # noqa: E501
74
74
  ...
75
75
 
76
76
  @validate_arguments
77
- def add_diary_entry(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Diary entry code")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], async_req: Optional[bool]=None, **kwargs) -> Union[DiaryEntry, Awaitable[DiaryEntry]]: # noqa: E501
77
+ def add_diary_entry(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], async_req: Optional[bool]=None, **kwargs) -> Union[DiaryEntry, Awaitable[DiaryEntry]]: # noqa: E501
78
78
  """[EXPERIMENTAL] AddDiaryEntry: Add a diary entry to the specified Abor. # noqa: E501
79
79
 
80
80
  Adds a new diary entry to the specified Abor # noqa: E501
81
81
  This method makes a synchronous HTTP request by default. To make an
82
82
  asynchronous HTTP request, please pass async_req=True
83
83
 
84
- >>> thread = api.add_diary_entry(scope, code, diary_entry_code, diary_entry_request, async_req=True)
84
+ >>> thread = api.add_diary_entry(scope, code, diary_entry_request, async_req=True)
85
85
  >>> result = thread.get()
86
86
 
87
87
  :param scope: The scope of the Abor. (required)
88
88
  :type scope: str
89
89
  :param code: The code of the Abor. (required)
90
90
  :type code: str
91
- :param diary_entry_code: Diary entry code (required)
92
- :type diary_entry_code: str
93
91
  :param diary_entry_request: The diary entry to add. (required)
94
92
  :type diary_entry_request: DiaryEntryRequest
95
93
  :param async_req: Whether to execute the request asynchronously.
@@ -109,25 +107,23 @@ class AborApi:
109
107
  raise ValueError(message)
110
108
  if async_req is not None:
111
109
  kwargs['async_req'] = async_req
112
- return self.add_diary_entry_with_http_info(scope, code, diary_entry_code, diary_entry_request, **kwargs) # noqa: E501
110
+ return self.add_diary_entry_with_http_info(scope, code, diary_entry_request, **kwargs) # noqa: E501
113
111
 
114
112
  @validate_arguments
115
- def add_diary_entry_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Diary entry code")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], **kwargs) -> ApiResponse: # noqa: E501
113
+ def add_diary_entry_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Abor.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Abor.")], diary_entry_request : Annotated[DiaryEntryRequest, Field(..., description="The diary entry to add.")], **kwargs) -> ApiResponse: # noqa: E501
116
114
  """[EXPERIMENTAL] AddDiaryEntry: Add a diary entry to the specified Abor. # noqa: E501
117
115
 
118
116
  Adds a new diary entry to the specified Abor # noqa: E501
119
117
  This method makes a synchronous HTTP request by default. To make an
120
118
  asynchronous HTTP request, please pass async_req=True
121
119
 
122
- >>> thread = api.add_diary_entry_with_http_info(scope, code, diary_entry_code, diary_entry_request, async_req=True)
120
+ >>> thread = api.add_diary_entry_with_http_info(scope, code, diary_entry_request, async_req=True)
123
121
  >>> result = thread.get()
124
122
 
125
123
  :param scope: The scope of the Abor. (required)
126
124
  :type scope: str
127
125
  :param code: The code of the Abor. (required)
128
126
  :type code: str
129
- :param diary_entry_code: Diary entry code (required)
130
- :type diary_entry_code: str
131
127
  :param diary_entry_request: The diary entry to add. (required)
132
128
  :type diary_entry_request: DiaryEntryRequest
133
129
  :param async_req: Whether to execute the request asynchronously.
@@ -160,7 +156,6 @@ class AborApi:
160
156
  _all_params = [
161
157
  'scope',
162
158
  'code',
163
- 'diary_entry_code',
164
159
  'diary_entry_request'
165
160
  ]
166
161
  _all_params.extend(
@@ -195,9 +190,6 @@ class AborApi:
195
190
  if _params['code']:
196
191
  _path_params['code'] = _params['code']
197
192
 
198
- if _params['diary_entry_code']:
199
- _path_params['diaryEntryCode'] = _params['diary_entry_code']
200
-
201
193
 
202
194
  # process the query parameters
203
195
  _query_params = []
@@ -231,7 +223,7 @@ class AborApi:
231
223
  }
232
224
 
233
225
  return self.api_client.call_api(
234
- '/api/abor/{scope}/{code}/accountingdiary/{diaryEntryCode}', 'POST',
226
+ '/api/abor/{scope}/{code}/accountingdiary', 'POST',
235
227
  _path_params,
236
228
  _query_params,
237
229
  _header_params,
lusid/api/entities_api.py CHANGED
@@ -26,6 +26,7 @@ from pydantic.v1 import Field, StrictStr, conlist, constr, validator
26
26
 
27
27
  from typing import Optional
28
28
 
29
+ from lusid.models.custom_entity_entity import CustomEntityEntity
29
30
  from lusid.models.data_type_entity import DataTypeEntity
30
31
  from lusid.models.instrument_entity import InstrumentEntity
31
32
  from lusid.models.portfolio_entity import PortfolioEntity
@@ -52,6 +53,185 @@ class EntitiesApi:
52
53
  api_client = ApiClient.get_default()
53
54
  self.api_client = api_client
54
55
 
56
+ @overload
57
+ async def get_custom_entity_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the Custom Entity.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the Custom Entity. 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 Custom Entity. Defaults to returning the latest version of the Custom Entity if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> CustomEntityEntity: # noqa: E501
58
+ ...
59
+
60
+ @overload
61
+ def get_custom_entity_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the Custom Entity.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the Custom Entity. 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 Custom Entity. Defaults to returning the latest version of the Custom Entity if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, async_req: Optional[bool]=True, **kwargs) -> CustomEntityEntity: # noqa: E501
62
+ ...
63
+
64
+ @validate_arguments
65
+ def get_custom_entity_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the Custom Entity.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the Custom Entity. 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 Custom Entity. Defaults to returning the latest version of the Custom Entity if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CustomEntityEntity, Awaitable[CustomEntityEntity]]: # noqa: E501
66
+ """[EXPERIMENTAL] GetCustomEntityByEntityUniqueId: Get a Custom Entity instance by its EntityUniqueId # noqa: E501
67
+
68
+ Retrieve a particular Custom Entity instance. If the Custom Entity is deleted, this will return the state of the Custom Entity immediately prior to deletion. # 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.get_custom_entity_by_entity_unique_id(entity_unique_id, effective_at, as_at, previews, async_req=True)
73
+ >>> result = thread.get()
74
+
75
+ :param entity_unique_id: The universally unique identifier of the Custom Entity. (required)
76
+ :type entity_unique_id: str
77
+ :param effective_at: The effective datetime or cut label at which to retrieve the Custom Entity. Defaults to the current LUSID system datetime if not specified.
78
+ :type effective_at: str
79
+ :param as_at: The asAt datetime at which to retrieve the Custom Entity. Defaults to returning the latest version of the Custom Entity if not specified.
80
+ :type as_at: datetime
81
+ :param previews: The ids of the staged modifications to be previewed in the response.
82
+ :type previews: List[str]
83
+ :param async_req: Whether to execute the request asynchronously.
84
+ :type async_req: bool, optional
85
+ :param _request_timeout: timeout setting for this request.
86
+ If one number provided, it will be total request
87
+ timeout. It can also be a pair (tuple) of
88
+ (connection, read) timeouts.
89
+ :return: Returns the result object.
90
+ If the method is called asynchronously,
91
+ returns the request thread.
92
+ :rtype: CustomEntityEntity
93
+ """
94
+ kwargs['_return_http_data_only'] = True
95
+ if '_preload_content' in kwargs:
96
+ message = "Error! Please call the get_custom_entity_by_entity_unique_id_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
97
+ raise ValueError(message)
98
+ if async_req is not None:
99
+ kwargs['async_req'] = async_req
100
+ return self.get_custom_entity_by_entity_unique_id_with_http_info(entity_unique_id, effective_at, as_at, previews, **kwargs) # noqa: E501
101
+
102
+ @validate_arguments
103
+ def get_custom_entity_by_entity_unique_id_with_http_info(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the Custom Entity.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the Custom Entity. 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 Custom Entity. Defaults to returning the latest version of the Custom Entity if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> ApiResponse: # noqa: E501
104
+ """[EXPERIMENTAL] GetCustomEntityByEntityUniqueId: Get a Custom Entity instance by its EntityUniqueId # noqa: E501
105
+
106
+ Retrieve a particular Custom Entity instance. If the Custom Entity is deleted, this will return the state of the Custom Entity immediately prior to deletion. # noqa: E501
107
+ This method makes a synchronous HTTP request by default. To make an
108
+ asynchronous HTTP request, please pass async_req=True
109
+
110
+ >>> thread = api.get_custom_entity_by_entity_unique_id_with_http_info(entity_unique_id, effective_at, as_at, previews, async_req=True)
111
+ >>> result = thread.get()
112
+
113
+ :param entity_unique_id: The universally unique identifier of the Custom Entity. (required)
114
+ :type entity_unique_id: str
115
+ :param effective_at: The effective datetime or cut label at which to retrieve the Custom Entity. Defaults to the current LUSID system datetime if not specified.
116
+ :type effective_at: str
117
+ :param as_at: The asAt datetime at which to retrieve the Custom Entity. Defaults to returning the latest version of the Custom Entity if not specified.
118
+ :type as_at: datetime
119
+ :param previews: The ids of the staged modifications to be previewed in the response.
120
+ :type previews: List[str]
121
+ :param async_req: Whether to execute the request asynchronously.
122
+ :type async_req: bool, optional
123
+ :param _preload_content: if False, the ApiResponse.data will
124
+ be set to none and raw_data will store the
125
+ HTTP response body without reading/decoding.
126
+ Default is True.
127
+ :type _preload_content: bool, optional
128
+ :param _return_http_data_only: response data instead of ApiResponse
129
+ object with status code, headers, etc
130
+ :type _return_http_data_only: bool, optional
131
+ :param _request_timeout: timeout setting for this request. If one
132
+ number provided, it will be total request
133
+ timeout. It can also be a pair (tuple) of
134
+ (connection, read) timeouts.
135
+ :param _request_auth: set to override the auth_settings for an a single
136
+ request; this effectively ignores the authentication
137
+ in the spec for a single request.
138
+ :type _request_auth: dict, optional
139
+ :type _content_type: string, optional: force content-type for the request
140
+ :return: Returns the result object.
141
+ If the method is called asynchronously,
142
+ returns the request thread.
143
+ :rtype: tuple(CustomEntityEntity, status_code(int), headers(HTTPHeaderDict))
144
+ """
145
+
146
+ _params = locals()
147
+
148
+ _all_params = [
149
+ 'entity_unique_id',
150
+ 'effective_at',
151
+ 'as_at',
152
+ 'previews'
153
+ ]
154
+ _all_params.extend(
155
+ [
156
+ 'async_req',
157
+ '_return_http_data_only',
158
+ '_preload_content',
159
+ '_request_timeout',
160
+ '_request_auth',
161
+ '_content_type',
162
+ '_headers'
163
+ ]
164
+ )
165
+
166
+ # validate the arguments
167
+ for _key, _val in _params['kwargs'].items():
168
+ if _key not in _all_params:
169
+ raise ApiTypeError(
170
+ "Got an unexpected keyword argument '%s'"
171
+ " to method get_custom_entity_by_entity_unique_id" % _key
172
+ )
173
+ _params[_key] = _val
174
+ del _params['kwargs']
175
+
176
+ _collection_formats = {}
177
+
178
+ # process the path parameters
179
+ _path_params = {}
180
+ if _params['entity_unique_id']:
181
+ _path_params['entityUniqueId'] = _params['entity_unique_id']
182
+
183
+
184
+ # process the query parameters
185
+ _query_params = []
186
+ if _params.get('effective_at') is not None: # noqa: E501
187
+ _query_params.append(('effectiveAt', _params['effective_at']))
188
+
189
+ if _params.get('as_at') is not None: # noqa: E501
190
+ if isinstance(_params['as_at'], datetime):
191
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
192
+ else:
193
+ _query_params.append(('asAt', _params['as_at']))
194
+
195
+ if _params.get('previews') is not None: # noqa: E501
196
+ _query_params.append(('previews', _params['previews']))
197
+ _collection_formats['previews'] = 'multi'
198
+
199
+ # process the header parameters
200
+ _header_params = dict(_params.get('_headers', {}))
201
+ # process the form parameters
202
+ _form_params = []
203
+ _files = {}
204
+ # process the body parameter
205
+ _body_params = None
206
+ # set the HTTP header `Accept`
207
+ _header_params['Accept'] = self.api_client.select_header_accept(
208
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
209
+
210
+ # authentication setting
211
+ _auth_settings = ['oauth2'] # noqa: E501
212
+
213
+ _response_types_map = {
214
+ '200': "CustomEntityEntity",
215
+ '400': "LusidValidationProblemDetails",
216
+ }
217
+
218
+ return self.api_client.call_api(
219
+ '/api/entities/customentities/{entityUniqueId}', 'GET',
220
+ _path_params,
221
+ _query_params,
222
+ _header_params,
223
+ body=_body_params,
224
+ post_params=_form_params,
225
+ files=_files,
226
+ response_types_map=_response_types_map,
227
+ auth_settings=_auth_settings,
228
+ async_req=_params.get('async_req'),
229
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
230
+ _preload_content=_params.get('_preload_content', True),
231
+ _request_timeout=_params.get('_request_timeout'),
232
+ collection_formats=_collection_formats,
233
+ _request_auth=_params.get('_request_auth'))
234
+
55
235
  @overload
56
236
  async def get_data_type_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the DataType definition.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> DataTypeEntity: # noqa: E501
57
237
  ...
@@ -27,6 +27,7 @@ from pydantic.v1 import Field, constr, validator
27
27
  from typing import Optional
28
28
 
29
29
  from lusid.models.create_group_reconciliation_comparison_ruleset_request import CreateGroupReconciliationComparisonRulesetRequest
30
+ from lusid.models.deleted_entity_response import DeletedEntityResponse
30
31
  from lusid.models.group_reconciliation_comparison_ruleset import GroupReconciliationComparisonRuleset
31
32
 
32
33
  from lusid.api_client import ApiClient
@@ -207,6 +208,165 @@ class GroupReconciliationsApi:
207
208
  collection_formats=_collection_formats,
208
209
  _request_auth=_params.get('_request_auth'))
209
210
 
211
+ @overload
212
+ async def delete_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], **kwargs) -> DeletedEntityResponse: # noqa: E501
213
+ ...
214
+
215
+ @overload
216
+ def delete_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], async_req: Optional[bool]=True, **kwargs) -> DeletedEntityResponse: # noqa: E501
217
+ ...
218
+
219
+ @validate_arguments
220
+ def delete_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
221
+ """[EXPERIMENTAL] DeleteComparisonRuleset: Deletes a particular Group Reconciliation Comparison Ruleset # noqa: E501
222
+
223
+ The deletion will take effect from the reconciliation comparison ruleset deletion datetime. i.e. will no longer exist at any asAt datetime after the asAt datetime of deletion. # noqa: E501
224
+ This method makes a synchronous HTTP request by default. To make an
225
+ asynchronous HTTP request, please pass async_req=True
226
+
227
+ >>> thread = api.delete_comparison_ruleset(scope, code, async_req=True)
228
+ >>> result = thread.get()
229
+
230
+ :param scope: The scope of the specified comparison ruleset. (required)
231
+ :type scope: str
232
+ :param code: The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset. (required)
233
+ :type code: str
234
+ :param async_req: Whether to execute the request asynchronously.
235
+ :type async_req: bool, optional
236
+ :param _request_timeout: timeout setting for this request.
237
+ If one number provided, it will be total request
238
+ timeout. It can also be a pair (tuple) of
239
+ (connection, read) timeouts.
240
+ :return: Returns the result object.
241
+ If the method is called asynchronously,
242
+ returns the request thread.
243
+ :rtype: DeletedEntityResponse
244
+ """
245
+ kwargs['_return_http_data_only'] = True
246
+ if '_preload_content' in kwargs:
247
+ message = "Error! Please call the delete_comparison_ruleset_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
248
+ raise ValueError(message)
249
+ if async_req is not None:
250
+ kwargs['async_req'] = async_req
251
+ return self.delete_comparison_ruleset_with_http_info(scope, code, **kwargs) # noqa: E501
252
+
253
+ @validate_arguments
254
+ def delete_comparison_ruleset_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], **kwargs) -> ApiResponse: # noqa: E501
255
+ """[EXPERIMENTAL] DeleteComparisonRuleset: Deletes a particular Group Reconciliation Comparison Ruleset # noqa: E501
256
+
257
+ The deletion will take effect from the reconciliation comparison ruleset deletion datetime. i.e. will no longer exist at any asAt datetime after the asAt datetime of deletion. # noqa: E501
258
+ This method makes a synchronous HTTP request by default. To make an
259
+ asynchronous HTTP request, please pass async_req=True
260
+
261
+ >>> thread = api.delete_comparison_ruleset_with_http_info(scope, code, async_req=True)
262
+ >>> result = thread.get()
263
+
264
+ :param scope: The scope of the specified comparison ruleset. (required)
265
+ :type scope: str
266
+ :param code: The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset. (required)
267
+ :type code: str
268
+ :param async_req: Whether to execute the request asynchronously.
269
+ :type async_req: bool, optional
270
+ :param _preload_content: if False, the ApiResponse.data will
271
+ be set to none and raw_data will store the
272
+ HTTP response body without reading/decoding.
273
+ Default is True.
274
+ :type _preload_content: bool, optional
275
+ :param _return_http_data_only: response data instead of ApiResponse
276
+ object with status code, headers, etc
277
+ :type _return_http_data_only: bool, optional
278
+ :param _request_timeout: timeout setting for this request. If one
279
+ number provided, it will be total request
280
+ timeout. It can also be a pair (tuple) of
281
+ (connection, read) timeouts.
282
+ :param _request_auth: set to override the auth_settings for an a single
283
+ request; this effectively ignores the authentication
284
+ in the spec for a single request.
285
+ :type _request_auth: dict, optional
286
+ :type _content_type: string, optional: force content-type for the request
287
+ :return: Returns the result object.
288
+ If the method is called asynchronously,
289
+ returns the request thread.
290
+ :rtype: tuple(DeletedEntityResponse, status_code(int), headers(HTTPHeaderDict))
291
+ """
292
+
293
+ _params = locals()
294
+
295
+ _all_params = [
296
+ 'scope',
297
+ 'code'
298
+ ]
299
+ _all_params.extend(
300
+ [
301
+ 'async_req',
302
+ '_return_http_data_only',
303
+ '_preload_content',
304
+ '_request_timeout',
305
+ '_request_auth',
306
+ '_content_type',
307
+ '_headers'
308
+ ]
309
+ )
310
+
311
+ # validate the arguments
312
+ for _key, _val in _params['kwargs'].items():
313
+ if _key not in _all_params:
314
+ raise ApiTypeError(
315
+ "Got an unexpected keyword argument '%s'"
316
+ " to method delete_comparison_ruleset" % _key
317
+ )
318
+ _params[_key] = _val
319
+ del _params['kwargs']
320
+
321
+ _collection_formats = {}
322
+
323
+ # process the path parameters
324
+ _path_params = {}
325
+ if _params['scope']:
326
+ _path_params['scope'] = _params['scope']
327
+
328
+ if _params['code']:
329
+ _path_params['code'] = _params['code']
330
+
331
+
332
+ # process the query parameters
333
+ _query_params = []
334
+ # process the header parameters
335
+ _header_params = dict(_params.get('_headers', {}))
336
+ # process the form parameters
337
+ _form_params = []
338
+ _files = {}
339
+ # process the body parameter
340
+ _body_params = None
341
+ # set the HTTP header `Accept`
342
+ _header_params['Accept'] = self.api_client.select_header_accept(
343
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
344
+
345
+ # authentication setting
346
+ _auth_settings = ['oauth2'] # noqa: E501
347
+
348
+ _response_types_map = {
349
+ '200': "DeletedEntityResponse",
350
+ '400': "LusidValidationProblemDetails",
351
+ }
352
+
353
+ return self.api_client.call_api(
354
+ '/api/reconciliations/comparisonrulesets/{scope}/{code}', 'DELETE',
355
+ _path_params,
356
+ _query_params,
357
+ _header_params,
358
+ body=_body_params,
359
+ post_params=_form_params,
360
+ files=_files,
361
+ response_types_map=_response_types_map,
362
+ auth_settings=_auth_settings,
363
+ async_req=_params.get('async_req'),
364
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
365
+ _preload_content=_params.get('_preload_content', True),
366
+ _request_timeout=_params.get('_request_timeout'),
367
+ collection_formats=_collection_formats,
368
+ _request_auth=_params.get('_request_auth'))
369
+
210
370
  @overload
211
371
  async def get_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
212
372
  ...
@@ -80,30 +80,30 @@ class PortfoliosApi:
80
80
  self.api_client = api_client
81
81
 
82
82
  @overload
83
- async def batch_upsert_portfolio_access_metadata(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
83
+ async def batch_upsert_portfolio_access_metadata(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
84
84
  ...
85
85
 
86
86
  @overload
87
- def batch_upsert_portfolio_access_metadata(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=True, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
87
+ def batch_upsert_portfolio_access_metadata(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=True, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
88
88
  ...
89
89
 
90
90
  @validate_arguments
91
- def batch_upsert_portfolio_access_metadata(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BatchUpsertPortfolioAccessMetadataResponse, Awaitable[BatchUpsertPortfolioAccessMetadataResponse]]: # noqa: E501
92
- """[EXPERIMENTAL] BatchUpsertPortfolioAccessMetadata: Upsert multiple portfolio access metadata with different keys to multiple portfolios # noqa: E501
91
+ def batch_upsert_portfolio_access_metadata(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BatchUpsertPortfolioAccessMetadataResponse, Awaitable[BatchUpsertPortfolioAccessMetadataResponse]]: # noqa: E501
92
+ """[EARLY ACCESS] BatchUpsertPortfolioAccessMetadata: Upsert multiple Portfolio Access Metadata Rules to multiple Portfolios # noqa: E501
93
93
 
94
- Update or insert multiple Portfolios Access Metadata Rule in multiple scopes. Items will be updated if it already exists and inserted if it does not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or failure message if unsuccessful It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
94
+ Update or insert multiple Access Metadata rules for multiple Portfolios. Items will be updated if they already exist and inserted if they do not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or a failure message if unsuccessful Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
95
95
  This method makes a synchronous HTTP request by default. To make an
96
96
  asynchronous HTTP request, please pass async_req=True
97
97
 
98
- >>> thread = api.batch_upsert_portfolio_access_metadata(batch_upsert_portfolio_access_metadata_request, effective_at, effective_until, async_req=True)
98
+ >>> thread = api.batch_upsert_portfolio_access_metadata(request_body, effective_at, effective_until, async_req=True)
99
99
  >>> result = thread.get()
100
100
 
101
- :param batch_upsert_portfolio_access_metadata_request: The Portfolio Access Metadata Rule to update or insert (required)
102
- :type batch_upsert_portfolio_access_metadata_request: BatchUpsertPortfolioAccessMetadataRequest
103
- :param effective_at: The date this rule will effective from
101
+ :param request_body: The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for (required)
102
+ :type request_body: Dict[str, BatchUpsertPortfolioAccessMetadataRequest]
103
+ :param effective_at: The date these rules will be effective from
104
104
  :type effective_at: str
105
- :param effective_until: The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
106
- :type effective_until: datetime
105
+ :param effective_until: The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
106
+ :type effective_until: str
107
107
  :param async_req: Whether to execute the request asynchronously.
108
108
  :type async_req: bool, optional
109
109
  :param _request_timeout: timeout setting for this request.
@@ -121,25 +121,25 @@ class PortfoliosApi:
121
121
  raise ValueError(message)
122
122
  if async_req is not None:
123
123
  kwargs['async_req'] = async_req
124
- return self.batch_upsert_portfolio_access_metadata_with_http_info(batch_upsert_portfolio_access_metadata_request, effective_at, effective_until, **kwargs) # noqa: E501
124
+ return self.batch_upsert_portfolio_access_metadata_with_http_info(request_body, effective_at, effective_until, **kwargs) # noqa: E501
125
125
 
126
126
  @validate_arguments
127
- def batch_upsert_portfolio_access_metadata_with_http_info(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> ApiResponse: # noqa: E501
128
- """[EXPERIMENTAL] BatchUpsertPortfolioAccessMetadata: Upsert multiple portfolio access metadata with different keys to multiple portfolios # noqa: E501
127
+ def batch_upsert_portfolio_access_metadata_with_http_info(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> ApiResponse: # noqa: E501
128
+ """[EARLY ACCESS] BatchUpsertPortfolioAccessMetadata: Upsert multiple Portfolio Access Metadata Rules to multiple Portfolios # noqa: E501
129
129
 
130
- Update or insert multiple Portfolios Access Metadata Rule in multiple scopes. Items will be updated if it already exists and inserted if it does not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or failure message if unsuccessful It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
130
+ Update or insert multiple Access Metadata rules for multiple Portfolios. Items will be updated if they already exist and inserted if they do not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or a failure message if unsuccessful Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
131
131
  This method makes a synchronous HTTP request by default. To make an
132
132
  asynchronous HTTP request, please pass async_req=True
133
133
 
134
- >>> thread = api.batch_upsert_portfolio_access_metadata_with_http_info(batch_upsert_portfolio_access_metadata_request, effective_at, effective_until, async_req=True)
134
+ >>> thread = api.batch_upsert_portfolio_access_metadata_with_http_info(request_body, effective_at, effective_until, async_req=True)
135
135
  >>> result = thread.get()
136
136
 
137
- :param batch_upsert_portfolio_access_metadata_request: The Portfolio Access Metadata Rule to update or insert (required)
138
- :type batch_upsert_portfolio_access_metadata_request: BatchUpsertPortfolioAccessMetadataRequest
139
- :param effective_at: The date this rule will effective from
137
+ :param request_body: The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for (required)
138
+ :type request_body: Dict[str, BatchUpsertPortfolioAccessMetadataRequest]
139
+ :param effective_at: The date these rules will be effective from
140
140
  :type effective_at: str
141
- :param effective_until: The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
142
- :type effective_until: datetime
141
+ :param effective_until: The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
142
+ :type effective_until: str
143
143
  :param async_req: Whether to execute the request asynchronously.
144
144
  :type async_req: bool, optional
145
145
  :param _preload_content: if False, the ApiResponse.data will
@@ -168,7 +168,7 @@ class PortfoliosApi:
168
168
  _params = locals()
169
169
 
170
170
  _all_params = [
171
- 'batch_upsert_portfolio_access_metadata_request',
171
+ 'request_body',
172
172
  'effective_at',
173
173
  'effective_until'
174
174
  ]
@@ -205,10 +205,7 @@ class PortfoliosApi:
205
205
  _query_params.append(('effectiveAt', _params['effective_at']))
206
206
 
207
207
  if _params.get('effective_until') is not None: # noqa: E501
208
- if isinstance(_params['effective_until'], datetime):
209
- _query_params.append(('effectiveUntil', _params['effective_until'].strftime(self.api_client.configuration.datetime_format)))
210
- else:
211
- _query_params.append(('effectiveUntil', _params['effective_until']))
208
+ _query_params.append(('effectiveUntil', _params['effective_until']))
212
209
 
213
210
  # process the header parameters
214
211
  _header_params = dict(_params.get('_headers', {}))
@@ -217,8 +214,8 @@ class PortfoliosApi:
217
214
  _files = {}
218
215
  # process the body parameter
219
216
  _body_params = None
220
- if _params['batch_upsert_portfolio_access_metadata_request'] is not None:
221
- _body_params = _params['batch_upsert_portfolio_access_metadata_request']
217
+ if _params['request_body'] is not None:
218
+ _body_params = _params['request_body']
222
219
 
223
220
  # set the HTTP header `Accept`
224
221
  _header_params['Accept'] = self.api_client.select_header_accept(