lusid-sdk 2.1.713__py3-none-any.whl → 2.1.715__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
@@ -317,6 +317,7 @@ from lusid.models.create_calendar_request import CreateCalendarRequest
317
317
  from lusid.models.create_closed_period_request import CreateClosedPeriodRequest
318
318
  from lusid.models.create_compliance_template_request import CreateComplianceTemplateRequest
319
319
  from lusid.models.create_corporate_action_source_request import CreateCorporateActionSourceRequest
320
+ from lusid.models.create_custom_data_model_request import CreateCustomDataModelRequest
320
321
  from lusid.models.create_custom_entity_type_request import CreateCustomEntityTypeRequest
321
322
  from lusid.models.create_cut_label_definition_request import CreateCutLabelDefinitionRequest
322
323
  from lusid.models.create_data_map_request import CreateDataMapRequest
@@ -1177,6 +1178,7 @@ from lusid.models.unmatched_holding_method import UnmatchedHoldingMethod
1177
1178
  from lusid.models.update_amortisation_rule_set_details_request import UpdateAmortisationRuleSetDetailsRequest
1178
1179
  from lusid.models.update_calendar_request import UpdateCalendarRequest
1179
1180
  from lusid.models.update_compliance_template_request import UpdateComplianceTemplateRequest
1181
+ from lusid.models.update_custom_data_model_request import UpdateCustomDataModelRequest
1180
1182
  from lusid.models.update_custom_entity_definition_request import UpdateCustomEntityDefinitionRequest
1181
1183
  from lusid.models.update_custom_entity_type_request import UpdateCustomEntityTypeRequest
1182
1184
  from lusid.models.update_cut_label_definition_request import UpdateCutLabelDefinitionRequest
@@ -1209,7 +1211,6 @@ from lusid.models.upsert_corporate_action_request import UpsertCorporateActionRe
1209
1211
  from lusid.models.upsert_corporate_actions_response import UpsertCorporateActionsResponse
1210
1212
  from lusid.models.upsert_counterparty_agreement_request import UpsertCounterpartyAgreementRequest
1211
1213
  from lusid.models.upsert_credit_support_annex_request import UpsertCreditSupportAnnexRequest
1212
- from lusid.models.upsert_custom_data_model_request import UpsertCustomDataModelRequest
1213
1214
  from lusid.models.upsert_custom_entities_response import UpsertCustomEntitiesResponse
1214
1215
  from lusid.models.upsert_custom_entity_access_metadata_request import UpsertCustomEntityAccessMetadataRequest
1215
1216
  from lusid.models.upsert_dialect_request import UpsertDialectRequest
@@ -1593,6 +1594,7 @@ __all__ = [
1593
1594
  "CreateClosedPeriodRequest",
1594
1595
  "CreateComplianceTemplateRequest",
1595
1596
  "CreateCorporateActionSourceRequest",
1597
+ "CreateCustomDataModelRequest",
1596
1598
  "CreateCustomEntityTypeRequest",
1597
1599
  "CreateCutLabelDefinitionRequest",
1598
1600
  "CreateDataMapRequest",
@@ -2453,6 +2455,7 @@ __all__ = [
2453
2455
  "UpdateAmortisationRuleSetDetailsRequest",
2454
2456
  "UpdateCalendarRequest",
2455
2457
  "UpdateComplianceTemplateRequest",
2458
+ "UpdateCustomDataModelRequest",
2456
2459
  "UpdateCustomEntityDefinitionRequest",
2457
2460
  "UpdateCustomEntityTypeRequest",
2458
2461
  "UpdateCutLabelDefinitionRequest",
@@ -2485,7 +2488,6 @@ __all__ = [
2485
2488
  "UpsertCorporateActionsResponse",
2486
2489
  "UpsertCounterpartyAgreementRequest",
2487
2490
  "UpsertCreditSupportAnnexRequest",
2488
- "UpsertCustomDataModelRequest",
2489
2491
  "UpsertCustomEntitiesResponse",
2490
2492
  "UpsertCustomEntityAccessMetadataRequest",
2491
2493
  "UpsertDialectRequest",
@@ -26,11 +26,12 @@ from pydantic.v1 import Field, constr, validator
26
26
 
27
27
  from typing import Optional
28
28
 
29
+ from lusid.models.create_custom_data_model_request import CreateCustomDataModelRequest
29
30
  from lusid.models.custom_data_model import CustomDataModel
30
31
  from lusid.models.deleted_entity_response import DeletedEntityResponse
31
32
  from lusid.models.resource_list_of_data_model_summary import ResourceListOfDataModelSummary
32
33
  from lusid.models.resource_list_of_string import ResourceListOfString
33
- from lusid.models.upsert_custom_data_model_request import UpsertCustomDataModelRequest
34
+ from lusid.models.update_custom_data_model_request import UpdateCustomDataModelRequest
34
35
 
35
36
  from lusid.api_client import ApiClient
36
37
  from lusid.api_response import ApiResponse
@@ -54,32 +55,28 @@ class CustomDataModelsApi:
54
55
  self.api_client = api_client
55
56
 
56
57
  @overload
57
- async def create_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> CustomDataModel: # noqa: E501
58
+ async def create_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], create_custom_data_model_request : Annotated[Optional[CreateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> CustomDataModel: # noqa: E501
58
59
  ...
59
60
 
60
61
  @overload
61
- def create_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=True, **kwargs) -> CustomDataModel: # noqa: E501
62
+ def create_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], create_custom_data_model_request : Annotated[Optional[CreateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=True, **kwargs) -> CustomDataModel: # noqa: E501
62
63
  ...
63
64
 
64
65
  @validate_arguments
65
- def create_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CustomDataModel, Awaitable[CustomDataModel]]: # noqa: E501
66
+ def create_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], create_custom_data_model_request : Annotated[Optional[CreateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CustomDataModel, Awaitable[CustomDataModel]]: # noqa: E501
66
67
  """[EXPERIMENTAL] CreateCustomDataModel: Create a Custom Data Model # noqa: E501
67
68
 
68
69
  Creates a Custom Data Model. # noqa: E501
69
70
  This method makes a synchronous HTTP request by default. To make an
70
71
  asynchronous HTTP request, please pass async_req=True
71
72
 
72
- >>> thread = api.create_custom_data_model(scope, code, entity_type, upsert_custom_data_model_request, async_req=True)
73
+ >>> thread = api.create_custom_data_model(entity_type, create_custom_data_model_request, async_req=True)
73
74
  >>> result = thread.get()
74
75
 
75
- :param scope: The scope of the specified Data Model. (required)
76
- :type scope: str
77
- :param code: The code of the specified Data Model. (required)
78
- :type code: str
79
76
  :param entity_type: The entity type of the Data Model. (required)
80
77
  :type entity_type: str
81
- :param upsert_custom_data_model_request: The request containing the details of the Data Model.
82
- :type upsert_custom_data_model_request: UpsertCustomDataModelRequest
78
+ :param create_custom_data_model_request: The request containing the details of the Data Model.
79
+ :type create_custom_data_model_request: CreateCustomDataModelRequest
83
80
  :param async_req: Whether to execute the request asynchronously.
84
81
  :type async_req: bool, optional
85
82
  :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
@@ -96,27 +93,23 @@ class CustomDataModelsApi:
96
93
  raise ValueError(message)
97
94
  if async_req is not None:
98
95
  kwargs['async_req'] = async_req
99
- return self.create_custom_data_model_with_http_info(scope, code, entity_type, upsert_custom_data_model_request, **kwargs) # noqa: E501
96
+ return self.create_custom_data_model_with_http_info(entity_type, create_custom_data_model_request, **kwargs) # noqa: E501
100
97
 
101
98
  @validate_arguments
102
- def create_custom_data_model_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> ApiResponse: # noqa: E501
99
+ def create_custom_data_model_with_http_info(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], create_custom_data_model_request : Annotated[Optional[CreateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> ApiResponse: # noqa: E501
103
100
  """[EXPERIMENTAL] CreateCustomDataModel: Create a Custom Data Model # noqa: E501
104
101
 
105
102
  Creates a Custom Data Model. # noqa: E501
106
103
  This method makes a synchronous HTTP request by default. To make an
107
104
  asynchronous HTTP request, please pass async_req=True
108
105
 
109
- >>> thread = api.create_custom_data_model_with_http_info(scope, code, entity_type, upsert_custom_data_model_request, async_req=True)
106
+ >>> thread = api.create_custom_data_model_with_http_info(entity_type, create_custom_data_model_request, async_req=True)
110
107
  >>> result = thread.get()
111
108
 
112
- :param scope: The scope of the specified Data Model. (required)
113
- :type scope: str
114
- :param code: The code of the specified Data Model. (required)
115
- :type code: str
116
109
  :param entity_type: The entity type of the Data Model. (required)
117
110
  :type entity_type: str
118
- :param upsert_custom_data_model_request: The request containing the details of the Data Model.
119
- :type upsert_custom_data_model_request: UpsertCustomDataModelRequest
111
+ :param create_custom_data_model_request: The request containing the details of the Data Model.
112
+ :type create_custom_data_model_request: CreateCustomDataModelRequest
120
113
  :param async_req: Whether to execute the request asynchronously.
121
114
  :type async_req: bool, optional
122
115
  :param _preload_content: if False, the ApiResponse.data will
@@ -144,10 +137,8 @@ class CustomDataModelsApi:
144
137
  _params = locals()
145
138
 
146
139
  _all_params = [
147
- 'scope',
148
- 'code',
149
140
  'entity_type',
150
- 'upsert_custom_data_model_request'
141
+ 'create_custom_data_model_request'
151
142
  ]
152
143
  _all_params.extend(
153
144
  [
@@ -176,12 +167,6 @@ class CustomDataModelsApi:
176
167
 
177
168
  # process the path parameters
178
169
  _path_params = {}
179
- if _params['scope']:
180
- _path_params['scope'] = _params['scope']
181
-
182
- if _params['code']:
183
- _path_params['code'] = _params['code']
184
-
185
170
  if _params['entity_type']:
186
171
  _path_params['entityType'] = _params['entity_type']
187
172
 
@@ -195,8 +180,8 @@ class CustomDataModelsApi:
195
180
  _files = {}
196
181
  # process the body parameter
197
182
  _body_params = None
198
- if _params['upsert_custom_data_model_request'] is not None:
199
- _body_params = _params['upsert_custom_data_model_request']
183
+ if _params['create_custom_data_model_request'] is not None:
184
+ _body_params = _params['create_custom_data_model_request']
200
185
 
201
186
  # set the HTTP header `Accept`
202
187
  _header_params['Accept'] = self.api_client.select_header_accept(
@@ -218,7 +203,7 @@ class CustomDataModelsApi:
218
203
  }
219
204
 
220
205
  return self.api_client.call_api(
221
- '/api/datamodel/{entityType}/{scope}/{code}', 'POST',
206
+ '/api/datamodel/{entityType}', 'POST',
222
207
  _path_params,
223
208
  _query_params,
224
209
  _header_params,
@@ -236,24 +221,26 @@ class CustomDataModelsApi:
236
221
  _request_auth=_params.get('_request_auth'))
237
222
 
238
223
  @overload
239
- async def delete_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], **kwargs) -> DeletedEntityResponse: # noqa: E501
224
+ async def delete_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], **kwargs) -> DeletedEntityResponse: # noqa: E501
240
225
  ...
241
226
 
242
227
  @overload
243
- def delete_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], async_req: Optional[bool]=True, **kwargs) -> DeletedEntityResponse: # noqa: E501
228
+ def delete_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], async_req: Optional[bool]=True, **kwargs) -> DeletedEntityResponse: # noqa: E501
244
229
  ...
245
230
 
246
231
  @validate_arguments
247
- def delete_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
232
+ def delete_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
248
233
  """[EXPERIMENTAL] DeleteCustomDataModel: Delete a Custom Data Model # noqa: E501
249
234
 
250
235
  Delete a Custom Data Model. The data model will remain viewable at previous as at times, but will no longer be part of any hierarchies. # noqa: E501
251
236
  This method makes a synchronous HTTP request by default. To make an
252
237
  asynchronous HTTP request, please pass async_req=True
253
238
 
254
- >>> thread = api.delete_custom_data_model(scope, code, async_req=True)
239
+ >>> thread = api.delete_custom_data_model(entity_type, scope, code, async_req=True)
255
240
  >>> result = thread.get()
256
241
 
242
+ :param entity_type: The entity type of the Data Model. (required)
243
+ :type entity_type: str
257
244
  :param scope: The scope of the specified Data Model. (required)
258
245
  :type scope: str
259
246
  :param code: The code of the specified Data Model. (required)
@@ -274,19 +261,21 @@ class CustomDataModelsApi:
274
261
  raise ValueError(message)
275
262
  if async_req is not None:
276
263
  kwargs['async_req'] = async_req
277
- return self.delete_custom_data_model_with_http_info(scope, code, **kwargs) # noqa: E501
264
+ return self.delete_custom_data_model_with_http_info(entity_type, scope, code, **kwargs) # noqa: E501
278
265
 
279
266
  @validate_arguments
280
- def delete_custom_data_model_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], **kwargs) -> ApiResponse: # noqa: E501
267
+ def delete_custom_data_model_with_http_info(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], **kwargs) -> ApiResponse: # noqa: E501
281
268
  """[EXPERIMENTAL] DeleteCustomDataModel: Delete a Custom Data Model # noqa: E501
282
269
 
283
270
  Delete a Custom Data Model. The data model will remain viewable at previous as at times, but will no longer be part of any hierarchies. # noqa: E501
284
271
  This method makes a synchronous HTTP request by default. To make an
285
272
  asynchronous HTTP request, please pass async_req=True
286
273
 
287
- >>> thread = api.delete_custom_data_model_with_http_info(scope, code, async_req=True)
274
+ >>> thread = api.delete_custom_data_model_with_http_info(entity_type, scope, code, async_req=True)
288
275
  >>> result = thread.get()
289
276
 
277
+ :param entity_type: The entity type of the Data Model. (required)
278
+ :type entity_type: str
290
279
  :param scope: The scope of the specified Data Model. (required)
291
280
  :type scope: str
292
281
  :param code: The code of the specified Data Model. (required)
@@ -318,6 +307,7 @@ class CustomDataModelsApi:
318
307
  _params = locals()
319
308
 
320
309
  _all_params = [
310
+ 'entity_type',
321
311
  'scope',
322
312
  'code'
323
313
  ]
@@ -348,6 +338,9 @@ class CustomDataModelsApi:
348
338
 
349
339
  # process the path parameters
350
340
  _path_params = {}
341
+ if _params['entity_type']:
342
+ _path_params['entityType'] = _params['entity_type']
343
+
351
344
  if _params['scope']:
352
345
  _path_params['scope'] = _params['scope']
353
346
 
@@ -377,7 +370,7 @@ class CustomDataModelsApi:
377
370
  }
378
371
 
379
372
  return self.api_client.call_api(
380
- '/api/datamodel/{scope}/{code}', 'DELETE',
373
+ '/api/datamodel/{entityType}/{scope}/{code}', 'DELETE',
381
374
  _path_params,
382
375
  _query_params,
383
376
  _header_params,
@@ -395,24 +388,26 @@ class CustomDataModelsApi:
395
388
  _request_auth=_params.get('_request_auth'))
396
389
 
397
390
  @overload
398
- async def get_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, **kwargs) -> CustomDataModel: # noqa: E501
391
+ async def get_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, **kwargs) -> CustomDataModel: # noqa: E501
399
392
  ...
400
393
 
401
394
  @overload
402
- def get_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> CustomDataModel: # noqa: E501
395
+ def get_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> CustomDataModel: # noqa: E501
403
396
  ...
404
397
 
405
398
  @validate_arguments
406
- def get_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CustomDataModel, Awaitable[CustomDataModel]]: # noqa: E501
399
+ def get_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CustomDataModel, Awaitable[CustomDataModel]]: # noqa: E501
407
400
  """[EXPERIMENTAL] GetCustomDataModel: Get a Custom Data Model # noqa: E501
408
401
 
409
402
  Retrieves a Custom Data Model at a given as at time. # noqa: E501
410
403
  This method makes a synchronous HTTP request by default. To make an
411
404
  asynchronous HTTP request, please pass async_req=True
412
405
 
413
- >>> thread = api.get_custom_data_model(scope, code, as_at, async_req=True)
406
+ >>> thread = api.get_custom_data_model(entity_type, scope, code, as_at, async_req=True)
414
407
  >>> result = thread.get()
415
408
 
409
+ :param entity_type: The entity type of the Data Model. (required)
410
+ :type entity_type: str
416
411
  :param scope: The scope of the specified Data Model. (required)
417
412
  :type scope: str
418
413
  :param code: The code of the specified Data Model. (required)
@@ -435,19 +430,21 @@ class CustomDataModelsApi:
435
430
  raise ValueError(message)
436
431
  if async_req is not None:
437
432
  kwargs['async_req'] = async_req
438
- return self.get_custom_data_model_with_http_info(scope, code, as_at, **kwargs) # noqa: E501
433
+ return self.get_custom_data_model_with_http_info(entity_type, scope, code, as_at, **kwargs) # noqa: E501
439
434
 
440
435
  @validate_arguments
441
- def get_custom_data_model_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
436
+ def get_custom_data_model_with_http_info(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Data Model. Defaults to return the latest version of the Data Model if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
442
437
  """[EXPERIMENTAL] GetCustomDataModel: Get a Custom Data Model # noqa: E501
443
438
 
444
439
  Retrieves a Custom Data Model at a given as at time. # noqa: E501
445
440
  This method makes a synchronous HTTP request by default. To make an
446
441
  asynchronous HTTP request, please pass async_req=True
447
442
 
448
- >>> thread = api.get_custom_data_model_with_http_info(scope, code, as_at, async_req=True)
443
+ >>> thread = api.get_custom_data_model_with_http_info(entity_type, scope, code, as_at, async_req=True)
449
444
  >>> result = thread.get()
450
445
 
446
+ :param entity_type: The entity type of the Data Model. (required)
447
+ :type entity_type: str
451
448
  :param scope: The scope of the specified Data Model. (required)
452
449
  :type scope: str
453
450
  :param code: The code of the specified Data Model. (required)
@@ -481,6 +478,7 @@ class CustomDataModelsApi:
481
478
  _params = locals()
482
479
 
483
480
  _all_params = [
481
+ 'entity_type',
484
482
  'scope',
485
483
  'code',
486
484
  'as_at'
@@ -512,6 +510,9 @@ class CustomDataModelsApi:
512
510
 
513
511
  # process the path parameters
514
512
  _path_params = {}
513
+ if _params['entity_type']:
514
+ _path_params['entityType'] = _params['entity_type']
515
+
515
516
  if _params['scope']:
516
517
  _path_params['scope'] = _params['scope']
517
518
 
@@ -547,7 +548,7 @@ class CustomDataModelsApi:
547
548
  }
548
549
 
549
550
  return self.api_client.call_api(
550
- '/api/datamodel/{scope}/{code}', 'GET',
551
+ '/api/datamodel/{entityType}/{scope}/{code}', 'GET',
551
552
  _path_params,
552
553
  _query_params,
553
554
  _header_params,
@@ -869,32 +870,32 @@ class CustomDataModelsApi:
869
870
  _request_auth=_params.get('_request_auth'))
870
871
 
871
872
  @overload
872
- async def update_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> CustomDataModel: # noqa: E501
873
+ async def update_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], update_custom_data_model_request : Annotated[Optional[UpdateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> CustomDataModel: # noqa: E501
873
874
  ...
874
875
 
875
876
  @overload
876
- def update_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=True, **kwargs) -> CustomDataModel: # noqa: E501
877
+ def update_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], update_custom_data_model_request : Annotated[Optional[UpdateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=True, **kwargs) -> CustomDataModel: # noqa: E501
877
878
  ...
878
879
 
879
880
  @validate_arguments
880
- def update_custom_data_model(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CustomDataModel, Awaitable[CustomDataModel]]: # noqa: E501
881
+ def update_custom_data_model(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], update_custom_data_model_request : Annotated[Optional[UpdateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CustomDataModel, Awaitable[CustomDataModel]]: # noqa: E501
881
882
  """[EXPERIMENTAL] UpdateCustomDataModel: Update a Custom Data Model # noqa: E501
882
883
 
883
884
  Updates a Custom Data Model. # noqa: E501
884
885
  This method makes a synchronous HTTP request by default. To make an
885
886
  asynchronous HTTP request, please pass async_req=True
886
887
 
887
- >>> thread = api.update_custom_data_model(scope, code, entity_type, upsert_custom_data_model_request, async_req=True)
888
+ >>> thread = api.update_custom_data_model(entity_type, scope, code, update_custom_data_model_request, async_req=True)
888
889
  >>> result = thread.get()
889
890
 
891
+ :param entity_type: The entity type of the Data Model. (required)
892
+ :type entity_type: str
890
893
  :param scope: The scope of the specified Data Model. (required)
891
894
  :type scope: str
892
895
  :param code: The code of the specified Data Model. (required)
893
896
  :type code: str
894
- :param entity_type: The entity type of the Data Model. (required)
895
- :type entity_type: str
896
- :param upsert_custom_data_model_request: The request containing the details of the Data Model.
897
- :type upsert_custom_data_model_request: UpsertCustomDataModelRequest
897
+ :param update_custom_data_model_request: The request containing the details of the Data Model.
898
+ :type update_custom_data_model_request: UpdateCustomDataModelRequest
898
899
  :param async_req: Whether to execute the request asynchronously.
899
900
  :type async_req: bool, optional
900
901
  :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
@@ -911,27 +912,27 @@ class CustomDataModelsApi:
911
912
  raise ValueError(message)
912
913
  if async_req is not None:
913
914
  kwargs['async_req'] = async_req
914
- return self.update_custom_data_model_with_http_info(scope, code, entity_type, upsert_custom_data_model_request, **kwargs) # noqa: E501
915
+ return self.update_custom_data_model_with_http_info(entity_type, scope, code, update_custom_data_model_request, **kwargs) # noqa: E501
915
916
 
916
917
  @validate_arguments
917
- def update_custom_data_model_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], upsert_custom_data_model_request : Annotated[Optional[UpsertCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> ApiResponse: # noqa: E501
918
+ def update_custom_data_model_with_http_info(self, entity_type : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The entity type of the Data Model.")], scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified Data Model.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified Data Model.")], update_custom_data_model_request : Annotated[Optional[UpdateCustomDataModelRequest], Field(description="The request containing the details of the Data Model.")] = None, **kwargs) -> ApiResponse: # noqa: E501
918
919
  """[EXPERIMENTAL] UpdateCustomDataModel: Update a Custom Data Model # noqa: E501
919
920
 
920
921
  Updates a Custom Data Model. # noqa: E501
921
922
  This method makes a synchronous HTTP request by default. To make an
922
923
  asynchronous HTTP request, please pass async_req=True
923
924
 
924
- >>> thread = api.update_custom_data_model_with_http_info(scope, code, entity_type, upsert_custom_data_model_request, async_req=True)
925
+ >>> thread = api.update_custom_data_model_with_http_info(entity_type, scope, code, update_custom_data_model_request, async_req=True)
925
926
  >>> result = thread.get()
926
927
 
928
+ :param entity_type: The entity type of the Data Model. (required)
929
+ :type entity_type: str
927
930
  :param scope: The scope of the specified Data Model. (required)
928
931
  :type scope: str
929
932
  :param code: The code of the specified Data Model. (required)
930
933
  :type code: str
931
- :param entity_type: The entity type of the Data Model. (required)
932
- :type entity_type: str
933
- :param upsert_custom_data_model_request: The request containing the details of the Data Model.
934
- :type upsert_custom_data_model_request: UpsertCustomDataModelRequest
934
+ :param update_custom_data_model_request: The request containing the details of the Data Model.
935
+ :type update_custom_data_model_request: UpdateCustomDataModelRequest
935
936
  :param async_req: Whether to execute the request asynchronously.
936
937
  :type async_req: bool, optional
937
938
  :param _preload_content: if False, the ApiResponse.data will
@@ -959,10 +960,10 @@ class CustomDataModelsApi:
959
960
  _params = locals()
960
961
 
961
962
  _all_params = [
963
+ 'entity_type',
962
964
  'scope',
963
965
  'code',
964
- 'entity_type',
965
- 'upsert_custom_data_model_request'
966
+ 'update_custom_data_model_request'
966
967
  ]
967
968
  _all_params.extend(
968
969
  [
@@ -991,15 +992,15 @@ class CustomDataModelsApi:
991
992
 
992
993
  # process the path parameters
993
994
  _path_params = {}
995
+ if _params['entity_type']:
996
+ _path_params['entityType'] = _params['entity_type']
997
+
994
998
  if _params['scope']:
995
999
  _path_params['scope'] = _params['scope']
996
1000
 
997
1001
  if _params['code']:
998
1002
  _path_params['code'] = _params['code']
999
1003
 
1000
- if _params['entity_type']:
1001
- _path_params['entityType'] = _params['entity_type']
1002
-
1003
1004
 
1004
1005
  # process the query parameters
1005
1006
  _query_params = []
@@ -1010,8 +1011,8 @@ class CustomDataModelsApi:
1010
1011
  _files = {}
1011
1012
  # process the body parameter
1012
1013
  _body_params = None
1013
- if _params['upsert_custom_data_model_request'] is not None:
1014
- _body_params = _params['upsert_custom_data_model_request']
1014
+ if _params['update_custom_data_model_request'] is not None:
1015
+ _body_params = _params['update_custom_data_model_request']
1015
1016
 
1016
1017
  # set the HTTP header `Accept`
1017
1018
  _header_params['Accept'] = self.api_client.select_header_accept(
lusid/configuration.py CHANGED
@@ -445,7 +445,7 @@ class Configuration:
445
445
  return "Python SDK Debug Report:\n"\
446
446
  "OS: {env}\n"\
447
447
  "Python Version: {pyversion}\n"\
448
- "Version of the API: 0.11.7433\n"\
448
+ "Version of the API: 0.11.7440\n"\
449
449
  "SDK Package Version: {package_version}".\
450
450
  format(env=sys.platform, pyversion=sys.version, package_version=package_version)
451
451
 
lusid/models/__init__.py CHANGED
@@ -232,6 +232,7 @@ from lusid.models.create_calendar_request import CreateCalendarRequest
232
232
  from lusid.models.create_closed_period_request import CreateClosedPeriodRequest
233
233
  from lusid.models.create_compliance_template_request import CreateComplianceTemplateRequest
234
234
  from lusid.models.create_corporate_action_source_request import CreateCorporateActionSourceRequest
235
+ from lusid.models.create_custom_data_model_request import CreateCustomDataModelRequest
235
236
  from lusid.models.create_custom_entity_type_request import CreateCustomEntityTypeRequest
236
237
  from lusid.models.create_cut_label_definition_request import CreateCutLabelDefinitionRequest
237
238
  from lusid.models.create_data_map_request import CreateDataMapRequest
@@ -1092,6 +1093,7 @@ from lusid.models.unmatched_holding_method import UnmatchedHoldingMethod
1092
1093
  from lusid.models.update_amortisation_rule_set_details_request import UpdateAmortisationRuleSetDetailsRequest
1093
1094
  from lusid.models.update_calendar_request import UpdateCalendarRequest
1094
1095
  from lusid.models.update_compliance_template_request import UpdateComplianceTemplateRequest
1096
+ from lusid.models.update_custom_data_model_request import UpdateCustomDataModelRequest
1095
1097
  from lusid.models.update_custom_entity_definition_request import UpdateCustomEntityDefinitionRequest
1096
1098
  from lusid.models.update_custom_entity_type_request import UpdateCustomEntityTypeRequest
1097
1099
  from lusid.models.update_cut_label_definition_request import UpdateCutLabelDefinitionRequest
@@ -1124,7 +1126,6 @@ from lusid.models.upsert_corporate_action_request import UpsertCorporateActionRe
1124
1126
  from lusid.models.upsert_corporate_actions_response import UpsertCorporateActionsResponse
1125
1127
  from lusid.models.upsert_counterparty_agreement_request import UpsertCounterpartyAgreementRequest
1126
1128
  from lusid.models.upsert_credit_support_annex_request import UpsertCreditSupportAnnexRequest
1127
- from lusid.models.upsert_custom_data_model_request import UpsertCustomDataModelRequest
1128
1129
  from lusid.models.upsert_custom_entities_response import UpsertCustomEntitiesResponse
1129
1130
  from lusid.models.upsert_custom_entity_access_metadata_request import UpsertCustomEntityAccessMetadataRequest
1130
1131
  from lusid.models.upsert_dialect_request import UpsertDialectRequest
@@ -1424,6 +1425,7 @@ __all__ = [
1424
1425
  "CreateClosedPeriodRequest",
1425
1426
  "CreateComplianceTemplateRequest",
1426
1427
  "CreateCorporateActionSourceRequest",
1428
+ "CreateCustomDataModelRequest",
1427
1429
  "CreateCustomEntityTypeRequest",
1428
1430
  "CreateCutLabelDefinitionRequest",
1429
1431
  "CreateDataMapRequest",
@@ -2284,6 +2286,7 @@ __all__ = [
2284
2286
  "UpdateAmortisationRuleSetDetailsRequest",
2285
2287
  "UpdateCalendarRequest",
2286
2288
  "UpdateComplianceTemplateRequest",
2289
+ "UpdateCustomDataModelRequest",
2287
2290
  "UpdateCustomEntityDefinitionRequest",
2288
2291
  "UpdateCustomEntityTypeRequest",
2289
2292
  "UpdateCutLabelDefinitionRequest",
@@ -2316,7 +2319,6 @@ __all__ = [
2316
2319
  "UpsertCorporateActionsResponse",
2317
2320
  "UpsertCounterpartyAgreementRequest",
2318
2321
  "UpsertCreditSupportAnnexRequest",
2319
- "UpsertCustomDataModelRequest",
2320
2322
  "UpsertCustomEntitiesResponse",
2321
2323
  "UpsertCustomEntityAccessMetadataRequest",
2322
2324
  "UpsertDialectRequest",
@@ -0,0 +1,181 @@
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
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, conlist, constr, validator
23
+ from lusid.models.alias import Alias
24
+ from lusid.models.custom_data_model_identifier_type_specification import CustomDataModelIdentifierTypeSpecification
25
+ from lusid.models.custom_data_model_property_specification import CustomDataModelPropertySpecification
26
+ from lusid.models.recommended_sort_by import RecommendedSortBy
27
+ from lusid.models.resource_id import ResourceId
28
+
29
+ class CreateCustomDataModelRequest(BaseModel):
30
+ """
31
+ CreateCustomDataModelRequest
32
+ """
33
+ id: ResourceId = Field(...)
34
+ display_name: constr(strict=True, max_length=512, min_length=0) = Field(..., alias="displayName", description="The name of the Custom Data Model.")
35
+ description: constr(strict=True, max_length=512, min_length=0) = Field(..., description="A description for the Custom Data Model.")
36
+ parent_data_model: Optional[ResourceId] = Field(None, alias="parentDataModel")
37
+ conditions: Optional[constr(strict=True, max_length=16384, min_length=0)] = Field(None, description="The conditions that the bound entity must meet to be valid.")
38
+ properties: Optional[conlist(CustomDataModelPropertySpecification)] = Field(None, description="The properties that are required or allowed on the bound entity.")
39
+ identifier_types: Optional[conlist(CustomDataModelIdentifierTypeSpecification)] = Field(None, alias="identifierTypes", description="The identifier types that are required or allowed on the bound entity.")
40
+ attribute_aliases: Optional[conlist(Alias)] = Field(None, alias="attributeAliases", description="The aliases for property keys, identifier types, and fields on the bound entity.")
41
+ recommended_sort_by: Optional[conlist(RecommendedSortBy)] = Field(None, alias="recommendedSortBy", description="The preferred default sorting instructions.")
42
+ __properties = ["id", "displayName", "description", "parentDataModel", "conditions", "properties", "identifierTypes", "attributeAliases", "recommendedSortBy"]
43
+
44
+ @validator('display_name')
45
+ def display_name_validate_regular_expression(cls, value):
46
+ """Validates the regular expression"""
47
+ if not re.match(r"^[\s\S]*$", value):
48
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
49
+ return value
50
+
51
+ @validator('description')
52
+ def description_validate_regular_expression(cls, value):
53
+ """Validates the regular expression"""
54
+ if not re.match(r"^[\s\S]*$", value):
55
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
56
+ return value
57
+
58
+ @validator('conditions')
59
+ def conditions_validate_regular_expression(cls, value):
60
+ """Validates the regular expression"""
61
+ if value is None:
62
+ return value
63
+
64
+ if not re.match(r"^[\s\S]*$", value):
65
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
66
+ return value
67
+
68
+ class Config:
69
+ """Pydantic configuration"""
70
+ allow_population_by_field_name = True
71
+ validate_assignment = True
72
+
73
+ def __str__(self):
74
+ """For `print` and `pprint`"""
75
+ return pprint.pformat(self.dict(by_alias=False))
76
+
77
+ def __repr__(self):
78
+ """For `print` and `pprint`"""
79
+ return self.to_str()
80
+
81
+ def to_str(self) -> str:
82
+ """Returns the string representation of the model using alias"""
83
+ return pprint.pformat(self.dict(by_alias=True))
84
+
85
+ def to_json(self) -> str:
86
+ """Returns the JSON representation of the model using alias"""
87
+ return json.dumps(self.to_dict())
88
+
89
+ @classmethod
90
+ def from_json(cls, json_str: str) -> CreateCustomDataModelRequest:
91
+ """Create an instance of CreateCustomDataModelRequest from a JSON string"""
92
+ return cls.from_dict(json.loads(json_str))
93
+
94
+ def to_dict(self):
95
+ """Returns the dictionary representation of the model using alias"""
96
+ _dict = self.dict(by_alias=True,
97
+ exclude={
98
+ },
99
+ exclude_none=True)
100
+ # override the default output from pydantic by calling `to_dict()` of id
101
+ if self.id:
102
+ _dict['id'] = self.id.to_dict()
103
+ # override the default output from pydantic by calling `to_dict()` of parent_data_model
104
+ if self.parent_data_model:
105
+ _dict['parentDataModel'] = self.parent_data_model.to_dict()
106
+ # override the default output from pydantic by calling `to_dict()` of each item in properties (list)
107
+ _items = []
108
+ if self.properties:
109
+ for _item in self.properties:
110
+ if _item:
111
+ _items.append(_item.to_dict())
112
+ _dict['properties'] = _items
113
+ # override the default output from pydantic by calling `to_dict()` of each item in identifier_types (list)
114
+ _items = []
115
+ if self.identifier_types:
116
+ for _item in self.identifier_types:
117
+ if _item:
118
+ _items.append(_item.to_dict())
119
+ _dict['identifierTypes'] = _items
120
+ # override the default output from pydantic by calling `to_dict()` of each item in attribute_aliases (list)
121
+ _items = []
122
+ if self.attribute_aliases:
123
+ for _item in self.attribute_aliases:
124
+ if _item:
125
+ _items.append(_item.to_dict())
126
+ _dict['attributeAliases'] = _items
127
+ # override the default output from pydantic by calling `to_dict()` of each item in recommended_sort_by (list)
128
+ _items = []
129
+ if self.recommended_sort_by:
130
+ for _item in self.recommended_sort_by:
131
+ if _item:
132
+ _items.append(_item.to_dict())
133
+ _dict['recommendedSortBy'] = _items
134
+ # set to None if conditions (nullable) is None
135
+ # and __fields_set__ contains the field
136
+ if self.conditions is None and "conditions" in self.__fields_set__:
137
+ _dict['conditions'] = None
138
+
139
+ # set to None if properties (nullable) is None
140
+ # and __fields_set__ contains the field
141
+ if self.properties is None and "properties" in self.__fields_set__:
142
+ _dict['properties'] = None
143
+
144
+ # set to None if identifier_types (nullable) is None
145
+ # and __fields_set__ contains the field
146
+ if self.identifier_types is None and "identifier_types" in self.__fields_set__:
147
+ _dict['identifierTypes'] = None
148
+
149
+ # set to None if attribute_aliases (nullable) is None
150
+ # and __fields_set__ contains the field
151
+ if self.attribute_aliases is None and "attribute_aliases" in self.__fields_set__:
152
+ _dict['attributeAliases'] = None
153
+
154
+ # set to None if recommended_sort_by (nullable) is None
155
+ # and __fields_set__ contains the field
156
+ if self.recommended_sort_by is None and "recommended_sort_by" in self.__fields_set__:
157
+ _dict['recommendedSortBy'] = None
158
+
159
+ return _dict
160
+
161
+ @classmethod
162
+ def from_dict(cls, obj: dict) -> CreateCustomDataModelRequest:
163
+ """Create an instance of CreateCustomDataModelRequest from a dict"""
164
+ if obj is None:
165
+ return None
166
+
167
+ if not isinstance(obj, dict):
168
+ return CreateCustomDataModelRequest.parse_obj(obj)
169
+
170
+ _obj = CreateCustomDataModelRequest.parse_obj({
171
+ "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
172
+ "display_name": obj.get("displayName"),
173
+ "description": obj.get("description"),
174
+ "parent_data_model": ResourceId.from_dict(obj.get("parentDataModel")) if obj.get("parentDataModel") is not None else None,
175
+ "conditions": obj.get("conditions"),
176
+ "properties": [CustomDataModelPropertySpecification.from_dict(_item) for _item in obj.get("properties")] if obj.get("properties") is not None else None,
177
+ "identifier_types": [CustomDataModelIdentifierTypeSpecification.from_dict(_item) for _item in obj.get("identifierTypes")] if obj.get("identifierTypes") is not None else None,
178
+ "attribute_aliases": [Alias.from_dict(_item) for _item in obj.get("attributeAliases")] if obj.get("attributeAliases") is not None else None,
179
+ "recommended_sort_by": [RecommendedSortBy.from_dict(_item) for _item in obj.get("recommendedSortBy")] if obj.get("recommendedSortBy") is not None else None
180
+ })
181
+ return _obj
@@ -26,9 +26,9 @@ from lusid.models.custom_data_model_property_specification import CustomDataMode
26
26
  from lusid.models.recommended_sort_by import RecommendedSortBy
27
27
  from lusid.models.resource_id import ResourceId
28
28
 
29
- class UpsertCustomDataModelRequest(BaseModel):
29
+ class UpdateCustomDataModelRequest(BaseModel):
30
30
  """
31
- UpsertCustomDataModelRequest
31
+ UpdateCustomDataModelRequest
32
32
  """
33
33
  display_name: constr(strict=True, max_length=512, min_length=0) = Field(..., alias="displayName", description="The name of the Custom Data Model.")
34
34
  description: constr(strict=True, max_length=512, min_length=0) = Field(..., description="A description for the Custom Data Model.")
@@ -86,8 +86,8 @@ class UpsertCustomDataModelRequest(BaseModel):
86
86
  return json.dumps(self.to_dict())
87
87
 
88
88
  @classmethod
89
- def from_json(cls, json_str: str) -> UpsertCustomDataModelRequest:
90
- """Create an instance of UpsertCustomDataModelRequest from a JSON string"""
89
+ def from_json(cls, json_str: str) -> UpdateCustomDataModelRequest:
90
+ """Create an instance of UpdateCustomDataModelRequest from a JSON string"""
91
91
  return cls.from_dict(json.loads(json_str))
92
92
 
93
93
  def to_dict(self):
@@ -155,15 +155,15 @@ class UpsertCustomDataModelRequest(BaseModel):
155
155
  return _dict
156
156
 
157
157
  @classmethod
158
- def from_dict(cls, obj: dict) -> UpsertCustomDataModelRequest:
159
- """Create an instance of UpsertCustomDataModelRequest from a dict"""
158
+ def from_dict(cls, obj: dict) -> UpdateCustomDataModelRequest:
159
+ """Create an instance of UpdateCustomDataModelRequest from a dict"""
160
160
  if obj is None:
161
161
  return None
162
162
 
163
163
  if not isinstance(obj, dict):
164
- return UpsertCustomDataModelRequest.parse_obj(obj)
164
+ return UpdateCustomDataModelRequest.parse_obj(obj)
165
165
 
166
- _obj = UpsertCustomDataModelRequest.parse_obj({
166
+ _obj = UpdateCustomDataModelRequest.parse_obj({
167
167
  "display_name": obj.get("displayName"),
168
168
  "description": obj.get("description"),
169
169
  "parent_data_model": ResourceId.from_dict(obj.get("parentDataModel")) if obj.get("parentDataModel") is not None else None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.713
3
+ Version: 2.1.715
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -198,9 +198,9 @@ Class | Method | HTTP request | Description
198
198
  *CustomEntityDefinitionsApi* | [**get_definition**](docs/CustomEntityDefinitionsApi.md#get_definition) | **GET** /api/customentities/entitytypes/{entityType} | [EARLY ACCESS] GetDefinition: Get a Custom Entity type definition.
199
199
  *CustomEntityDefinitionsApi* | [**list_custom_entity_definitions**](docs/CustomEntityDefinitionsApi.md#list_custom_entity_definitions) | **GET** /api/customentities/entitytypes | [EARLY ACCESS] ListCustomEntityDefinitions: List the Custom Entity type definitions
200
200
  *CustomEntityDefinitionsApi* | [**update_custom_entity_definition**](docs/CustomEntityDefinitionsApi.md#update_custom_entity_definition) | **PUT** /api/customentities/entitytypes/{entityType} | [EARLY ACCESS] UpdateCustomEntityDefinition: Modify an existing Custom Entity type.
201
- *CustomDataModelsApi* | [**create_custom_data_model**](docs/CustomDataModelsApi.md#create_custom_data_model) | **POST** /api/datamodel/{entityType}/{scope}/{code} | [EXPERIMENTAL] CreateCustomDataModel: Create a Custom Data Model
202
- *CustomDataModelsApi* | [**delete_custom_data_model**](docs/CustomDataModelsApi.md#delete_custom_data_model) | **DELETE** /api/datamodel/{scope}/{code} | [EXPERIMENTAL] DeleteCustomDataModel: Delete a Custom Data Model
203
- *CustomDataModelsApi* | [**get_custom_data_model**](docs/CustomDataModelsApi.md#get_custom_data_model) | **GET** /api/datamodel/{scope}/{code} | [EXPERIMENTAL] GetCustomDataModel: Get a Custom Data Model
201
+ *CustomDataModelsApi* | [**create_custom_data_model**](docs/CustomDataModelsApi.md#create_custom_data_model) | **POST** /api/datamodel/{entityType} | [EXPERIMENTAL] CreateCustomDataModel: Create a Custom Data Model
202
+ *CustomDataModelsApi* | [**delete_custom_data_model**](docs/CustomDataModelsApi.md#delete_custom_data_model) | **DELETE** /api/datamodel/{entityType}/{scope}/{code} | [EXPERIMENTAL] DeleteCustomDataModel: Delete a Custom Data Model
203
+ *CustomDataModelsApi* | [**get_custom_data_model**](docs/CustomDataModelsApi.md#get_custom_data_model) | **GET** /api/datamodel/{entityType}/{scope}/{code} | [EXPERIMENTAL] GetCustomDataModel: Get a Custom Data Model
204
204
  *CustomDataModelsApi* | [**list_data_model_hierarchies**](docs/CustomDataModelsApi.md#list_data_model_hierarchies) | **GET** /api/datamodel/hierarchies | [EXPERIMENTAL] ListDataModelHierarchies: List Custom Data Model hierarchies.
205
205
  *CustomDataModelsApi* | [**list_supported_entity_types**](docs/CustomDataModelsApi.md#list_supported_entity_types) | **GET** /api/datamodel/entitytype | [EXPERIMENTAL] ListSupportedEntityTypes: List the currently supported entity types for use in Custom Data Models.
206
206
  *CustomDataModelsApi* | [**update_custom_data_model**](docs/CustomDataModelsApi.md#update_custom_data_model) | **PUT** /api/datamodel/{entityType}/{scope}/{code} | [EXPERIMENTAL] UpdateCustomDataModel: Update a Custom Data Model
@@ -877,6 +877,7 @@ Class | Method | HTTP request | Description
877
877
  - [CreateClosedPeriodRequest](docs/CreateClosedPeriodRequest.md)
878
878
  - [CreateComplianceTemplateRequest](docs/CreateComplianceTemplateRequest.md)
879
879
  - [CreateCorporateActionSourceRequest](docs/CreateCorporateActionSourceRequest.md)
880
+ - [CreateCustomDataModelRequest](docs/CreateCustomDataModelRequest.md)
880
881
  - [CreateCustomEntityTypeRequest](docs/CreateCustomEntityTypeRequest.md)
881
882
  - [CreateCutLabelDefinitionRequest](docs/CreateCutLabelDefinitionRequest.md)
882
883
  - [CreateDataMapRequest](docs/CreateDataMapRequest.md)
@@ -1737,6 +1738,7 @@ Class | Method | HTTP request | Description
1737
1738
  - [UpdateAmortisationRuleSetDetailsRequest](docs/UpdateAmortisationRuleSetDetailsRequest.md)
1738
1739
  - [UpdateCalendarRequest](docs/UpdateCalendarRequest.md)
1739
1740
  - [UpdateComplianceTemplateRequest](docs/UpdateComplianceTemplateRequest.md)
1741
+ - [UpdateCustomDataModelRequest](docs/UpdateCustomDataModelRequest.md)
1740
1742
  - [UpdateCustomEntityDefinitionRequest](docs/UpdateCustomEntityDefinitionRequest.md)
1741
1743
  - [UpdateCustomEntityTypeRequest](docs/UpdateCustomEntityTypeRequest.md)
1742
1744
  - [UpdateCutLabelDefinitionRequest](docs/UpdateCutLabelDefinitionRequest.md)
@@ -1769,7 +1771,6 @@ Class | Method | HTTP request | Description
1769
1771
  - [UpsertCorporateActionsResponse](docs/UpsertCorporateActionsResponse.md)
1770
1772
  - [UpsertCounterpartyAgreementRequest](docs/UpsertCounterpartyAgreementRequest.md)
1771
1773
  - [UpsertCreditSupportAnnexRequest](docs/UpsertCreditSupportAnnexRequest.md)
1772
- - [UpsertCustomDataModelRequest](docs/UpsertCustomDataModelRequest.md)
1773
1774
  - [UpsertCustomEntitiesResponse](docs/UpsertCustomEntitiesResponse.md)
1774
1775
  - [UpsertCustomEntityAccessMetadataRequest](docs/UpsertCustomEntityAccessMetadataRequest.md)
1775
1776
  - [UpsertDialectRequest](docs/UpsertDialectRequest.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=JyPKLyQwwKg7AmWvDdEzmL8Sxvxk-oMNsqIWNz-PJ54,134542
1
+ lusid/__init__.py,sha256=VhfrAbI2BD2ea6t4GpyMHV6bB9SXwSDrwk8y5L_XgF4,134665
2
2
  lusid/api/__init__.py,sha256=b9BsX0qfl4jZSlEid6ihux1dyYgNwjtKQZk23veBuc0,6204
3
3
  lusid/api/abor_api.py,sha256=dlEEwISzI_StiKKp-VAajSocjPiXmKQskYHQp6bOljE,171294
4
4
  lusid/api/abor_configuration_api.py,sha256=ug36aCVNswcZuRZXSNl1rq9yDrceobDdbVio8EG3oPQ,76011
@@ -16,7 +16,7 @@ lusid/api/configuration_recipe_api.py,sha256=woCaSCpu4h2LgKo1-OyQWyusrOTh8HOHDqz
16
16
  lusid/api/conventions_api.py,sha256=SjKYWvmG0jdbms8ilmEZcrqf539dpPPHLEX-L7nNeFA,105995
17
17
  lusid/api/corporate_action_sources_api.py,sha256=BmhAtAaKUvzJC0EeLPNq3n7dw5oI7J39srOFBGEYVNU,101752
18
18
  lusid/api/counterparties_api.py,sha256=N5mF69Fmu0WkA8SfBAQTste5vIBEGzMJo9-0r83ccrU,72243
19
- lusid/api/custom_data_models_api.py,sha256=eAf39KTFUj3zI6NMaJI6juD0mgZx934X7FIP5ZtCKFo,55164
19
+ lusid/api/custom_data_models_api.py,sha256=LkYPqKBD8NV0NTGNrXburyHZLrWOblgvdkYBgenb-14,55413
20
20
  lusid/api/custom_entities_api.py,sha256=sOhCFgotMM-oeXrQJDmrsvJXdhitMNhW65TBtLnzEZA,165132
21
21
  lusid/api/custom_entity_definitions_api.py,sha256=ubK6lqsWH0GH24QGDHgKI_xVHjep_fKmG76vTozb2vE,40737
22
22
  lusid/api/custom_entity_types_api.py,sha256=6qWdRLigUnMba8MH-3UbnChhkRndg8pGRLfQcy_KcMk,41391
@@ -74,7 +74,7 @@ lusid/api/translation_api.py,sha256=nIyuLncCvVC5k2d7Nm32zR8AQ1dkrVm1OThkmELY_OM,
74
74
  lusid/api/workspace_api.py,sha256=Yox1q7TDY-_O3HF-N8g5kGuNgp4unWvlSZmRZ6MNZO0,196701
75
75
  lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
76
76
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
77
- lusid/configuration.py,sha256=EFmTtbW1BUbox8ItMHekGogZJ6IkBCx6VNvOmi_opjo,17972
77
+ lusid/configuration.py,sha256=WK-4xbcLxrJfr7n1eWrWrKKO4MkkZjtSkIt3TE0f0Ws,17972
78
78
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
79
79
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
80
80
  lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
@@ -89,7 +89,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
89
89
  lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
90
90
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
91
91
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
92
- lusid/models/__init__.py,sha256=1zLDRxIADjEgMwihFsdSRSjdnBN9D6AAFqLUtQShFEg,127306
92
+ lusid/models/__init__.py,sha256=oROJ-X0o6nuJ-NhbCvjjIFMvTm6l4DHGxlfN5IlGuxw,127429
93
93
  lusid/models/a2_b_breakdown.py,sha256=ReKFxiFaYdyMSV7Iv4sR4NxQsePvnVrb5po3UHP8f20,3160
94
94
  lusid/models/a2_b_category.py,sha256=cMKeavBQuk78aBXKcFVxpKjh3Td_IYklpSyxxz_DgHk,2938
95
95
  lusid/models/a2_b_data_record.py,sha256=fkR0nJazNrD3S0PaKEbPiza2EQ8j11p0EGa3dqeOsVs,9950
@@ -308,6 +308,7 @@ lusid/models/create_calendar_request.py,sha256=-S-fW2x5pb3cJCkCLCRdeja3Pd4dDVsvQ
308
308
  lusid/models/create_closed_period_request.py,sha256=ip28LgfREJY1yMrVAD-a7zt6kn3SOxC4XKpSCmtAQbQ,3887
309
309
  lusid/models/create_compliance_template_request.py,sha256=cJb9PW11g7mzi7pdXGVepOo60ob1WK2Fr3pi6bHgoHE,3781
310
310
  lusid/models/create_corporate_action_source_request.py,sha256=QBU1HOiHUmZJWmWkTRI_7QSKqVM6HYy78s8VFnZ9Mk8,4947
311
+ lusid/models/create_custom_data_model_request.py,sha256=Rd-bKnv9AwitBRNbHOYdV6jpbhvDql8UG__dZjOw19w,8737
311
312
  lusid/models/create_custom_entity_type_request.py,sha256=sJG82Esy8Yq5cCFfSw1bcJl7VyzpJC2RyXjhemQ1Oug,4161
312
313
  lusid/models/create_cut_label_definition_request.py,sha256=aDCm-XbSaDlhVZWXBlONu73fjyTwPZ1GggqxFqv00KE,3936
313
314
  lusid/models/create_data_map_request.py,sha256=U3HdWxNzis3VEzsPKy6lEmkuIEtU7iR1eebiMq-yLaY,2691
@@ -1168,6 +1169,7 @@ lusid/models/unmatched_holding_method.py,sha256=FKe4xqhL8C8Stohy89gki7Zio2Jg85bW
1168
1169
  lusid/models/update_amortisation_rule_set_details_request.py,sha256=1AWwtdtT79rJV5Ek53wZLL3Vp-m1aJqKaYcqXMq3wiE,3340
1169
1170
  lusid/models/update_calendar_request.py,sha256=i4ngFfhz-E0I8fD2PEswqMNkdVNgJGeAdg1uQj6glhU,3531
1170
1171
  lusid/models/update_compliance_template_request.py,sha256=QOuQ-uPGPnUIrL9lMONpbUHmgJ0co4NIW6UFXP0YsU8,3781
1172
+ lusid/models/update_custom_data_model_request.py,sha256=S0G93M1hAOiGch4qyR3nqtXvB_CptBk4FPkfJJuIX3c,8460
1171
1173
  lusid/models/update_custom_entity_definition_request.py,sha256=odqSLmtwpPTi3yQ8p9sXbpZgEVKUPvWSRcdsl7d95wI,3853
1172
1174
  lusid/models/update_custom_entity_type_request.py,sha256=UtYxaZfMRBmxCyqpLOBUIq_nK1B0Ani_COEfuXbrqEY,3805
1173
1175
  lusid/models/update_cut_label_definition_request.py,sha256=jHVrmd5UXYlhPktnj71BFNpyBw0JZNmvruG9MPE8wm4,3847
@@ -1200,7 +1202,6 @@ lusid/models/upsert_corporate_action_request.py,sha256=ETSun_bN-SFpGgykS8uDY6IbJ
1200
1202
  lusid/models/upsert_corporate_actions_response.py,sha256=CUYko0E3bkMjy1pW__YWrZqYXYsahVhGjMPRB9HkX0M,5173
1201
1203
  lusid/models/upsert_counterparty_agreement_request.py,sha256=9rsGHUhGycSRB_12AtvUM1Pq3vcu6530FwBov4dJQSc,2761
1202
1204
  lusid/models/upsert_credit_support_annex_request.py,sha256=ySHlCQF-fuUc2oDMQlQpKWCYKgO-QqLcyJGNZWRfMjU,2744
1203
- lusid/models/upsert_custom_data_model_request.py,sha256=ZKBcthlGKJ0BBBYDfE0z2M8rbVG1ppm7YA2CzOARbRY,8460
1204
1205
  lusid/models/upsert_custom_entities_response.py,sha256=22SZdxME1OJBFGassLPX69SuU1vAHcpv6DafgONJgRk,6134
1205
1206
  lusid/models/upsert_custom_entity_access_metadata_request.py,sha256=Q3_LvxVCaWyiQv6oOCajJZ6s9HZPBzb6Un_kdEMSdwc,3062
1206
1207
  lusid/models/upsert_dialect_request.py,sha256=S6sZTw1tXKEaQEnm9x7zoagI8BTvJrxmfpTWtES4BLU,2708
@@ -1281,6 +1282,6 @@ lusid/models/workspace_update_request.py,sha256=5N7j21uF9XV75Sl3oJbsSOKT5PrQEx3y
1281
1282
  lusid/models/yield_curve_data.py,sha256=vtOzY4t2lgHJUWcna9dEKnuZ_tinolyb8IAFPB23DZ0,6543
1282
1283
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1283
1284
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1284
- lusid_sdk-2.1.713.dist-info/METADATA,sha256=XCpdqkf4FRhTVtxIRPRdVl7UjYTxsCkPZn-sJOMu5L4,219814
1285
- lusid_sdk-2.1.713.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1286
- lusid_sdk-2.1.713.dist-info/RECORD,,
1285
+ lusid_sdk-2.1.715.dist-info/METADATA,sha256=DLij7uqGQi3xf8QtXAyXugVVjVMLcY-i5W0_JebfFXw,219897
1286
+ lusid_sdk-2.1.715.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1287
+ lusid_sdk-2.1.715.dist-info/RECORD,,