lusid-sdk 2.1.985__py3-none-any.whl → 2.1.986__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lusid-sdk might be problematic. Click here for more details.

lusid/__init__.py CHANGED
@@ -433,6 +433,7 @@ from lusid.models.decimal_list_compliance_parameter import DecimalListCompliance
433
433
  from lusid.models.decorated_compliance_run_summary import DecoratedComplianceRunSummary
434
434
  from lusid.models.delete_accounts_response import DeleteAccountsResponse
435
435
  from lusid.models.delete_custodian_accounts_response import DeleteCustodianAccountsResponse
436
+ from lusid.models.delete_data_quality_rule import DeleteDataQualityRule
436
437
  from lusid.models.delete_instrument_properties_response import DeleteInstrumentPropertiesResponse
437
438
  from lusid.models.delete_instrument_response import DeleteInstrumentResponse
438
439
  from lusid.models.delete_instruments_response import DeleteInstrumentsResponse
@@ -1323,6 +1324,7 @@ from lusid.models.upsert_counterparty_agreement_request import UpsertCounterpart
1323
1324
  from lusid.models.upsert_credit_support_annex_request import UpsertCreditSupportAnnexRequest
1324
1325
  from lusid.models.upsert_custom_entities_response import UpsertCustomEntitiesResponse
1325
1326
  from lusid.models.upsert_custom_entity_access_metadata_request import UpsertCustomEntityAccessMetadataRequest
1327
+ from lusid.models.upsert_data_quality_rule import UpsertDataQualityRule
1326
1328
  from lusid.models.upsert_dialect_request import UpsertDialectRequest
1327
1329
  from lusid.models.upsert_flow_conventions_request import UpsertFlowConventionsRequest
1328
1330
  from lusid.models.upsert_fund_bookmark_request import UpsertFundBookmarkRequest
@@ -1828,6 +1830,7 @@ __all__ = [
1828
1830
  "DecoratedComplianceRunSummary",
1829
1831
  "DeleteAccountsResponse",
1830
1832
  "DeleteCustodianAccountsResponse",
1833
+ "DeleteDataQualityRule",
1831
1834
  "DeleteInstrumentPropertiesResponse",
1832
1835
  "DeleteInstrumentResponse",
1833
1836
  "DeleteInstrumentsResponse",
@@ -2718,6 +2721,7 @@ __all__ = [
2718
2721
  "UpsertCreditSupportAnnexRequest",
2719
2722
  "UpsertCustomEntitiesResponse",
2720
2723
  "UpsertCustomEntityAccessMetadataRequest",
2724
+ "UpsertDataQualityRule",
2721
2725
  "UpsertDialectRequest",
2722
2726
  "UpsertFlowConventionsRequest",
2723
2727
  "UpsertFundBookmarkRequest",
@@ -28,11 +28,13 @@ from typing import Optional
28
28
 
29
29
  from lusid.models.check_definition import CheckDefinition
30
30
  from lusid.models.create_check_definition_request import CreateCheckDefinitionRequest
31
+ from lusid.models.delete_data_quality_rule import DeleteDataQualityRule
31
32
  from lusid.models.deleted_entity_response import DeletedEntityResponse
32
33
  from lusid.models.paged_resource_list_of_check_definition import PagedResourceListOfCheckDefinition
33
34
  from lusid.models.run_check_request import RunCheckRequest
34
35
  from lusid.models.run_check_response import RunCheckResponse
35
36
  from lusid.models.update_check_definition_request import UpdateCheckDefinitionRequest
37
+ from lusid.models.upsert_data_quality_rule import UpsertDataQualityRule
36
38
 
37
39
  from lusid.api_client import ApiClient
38
40
  from lusid.api_response import ApiResponse
@@ -379,6 +381,181 @@ class CheckDefinitionsApi:
379
381
  _request_auth=_params.get('_request_auth'))
380
382
 
381
383
 
384
+ @overload
385
+ async def delete_rules(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], delete_data_quality_rule : Annotated[Optional[conlist(DeleteDataQualityRule)], Field(description="The request containing the rules to be deleted")] = None, **kwargs) -> CheckDefinition: # noqa: E501
386
+ ...
387
+
388
+ @overload
389
+ def delete_rules(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], delete_data_quality_rule : Annotated[Optional[conlist(DeleteDataQualityRule)], Field(description="The request containing the rules to be deleted")] = None, async_req: Optional[bool]=True, **kwargs) -> CheckDefinition: # noqa: E501
390
+ ...
391
+
392
+ @validate_arguments
393
+ def delete_rules(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], delete_data_quality_rule : Annotated[Optional[conlist(DeleteDataQualityRule)], Field(description="The request containing the rules to be deleted")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CheckDefinition, Awaitable[CheckDefinition]]: # noqa: E501
394
+ """[EXPERIMENTAL] DeleteRules: Delete rules on a particular Check Definition # noqa: E501
395
+
396
+ Delete rules for a given check definition. This will not affect any other rules that are not included in the request. # noqa: E501
397
+ This method makes a synchronous HTTP request by default. To make an
398
+ asynchronous HTTP request, please pass async_req=True
399
+
400
+ >>> thread = api.delete_rules(scope, code, delete_data_quality_rule, async_req=True)
401
+ >>> result = thread.get()
402
+
403
+ :param scope: The scope of the specified Check Definition. (required)
404
+ :type scope: str
405
+ :param code: The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition. (required)
406
+ :type code: str
407
+ :param delete_data_quality_rule: The request containing the rules to be deleted
408
+ :type delete_data_quality_rule: List[DeleteDataQualityRule]
409
+ :param async_req: Whether to execute the request asynchronously.
410
+ :type async_req: bool, optional
411
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
412
+ :param opts: Configuration options for this request
413
+ :type opts: ConfigurationOptions, optional
414
+ :return: Returns the result object.
415
+ If the method is called asynchronously,
416
+ returns the request thread.
417
+ :rtype: CheckDefinition
418
+ """
419
+ kwargs['_return_http_data_only'] = True
420
+ if '_preload_content' in kwargs:
421
+ message = "Error! Please call the delete_rules_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
422
+ raise ValueError(message)
423
+ if async_req is not None:
424
+ kwargs['async_req'] = async_req
425
+ return self.delete_rules_with_http_info(scope, code, delete_data_quality_rule, **kwargs) # noqa: E501
426
+
427
+ @validate_arguments
428
+ def delete_rules_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], delete_data_quality_rule : Annotated[Optional[conlist(DeleteDataQualityRule)], Field(description="The request containing the rules to be deleted")] = None, **kwargs) -> ApiResponse: # noqa: E501
429
+ """[EXPERIMENTAL] DeleteRules: Delete rules on a particular Check Definition # noqa: E501
430
+
431
+ Delete rules for a given check definition. This will not affect any other rules that are not included in the request. # noqa: E501
432
+ This method makes a synchronous HTTP request by default. To make an
433
+ asynchronous HTTP request, please pass async_req=True
434
+
435
+ >>> thread = api.delete_rules_with_http_info(scope, code, delete_data_quality_rule, async_req=True)
436
+ >>> result = thread.get()
437
+
438
+ :param scope: The scope of the specified Check Definition. (required)
439
+ :type scope: str
440
+ :param code: The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition. (required)
441
+ :type code: str
442
+ :param delete_data_quality_rule: The request containing the rules to be deleted
443
+ :type delete_data_quality_rule: List[DeleteDataQualityRule]
444
+ :param async_req: Whether to execute the request asynchronously.
445
+ :type async_req: bool, optional
446
+ :param _preload_content: if False, the ApiResponse.data will
447
+ be set to none and raw_data will store the
448
+ HTTP response body without reading/decoding.
449
+ Default is True.
450
+ :type _preload_content: bool, optional
451
+ :param _return_http_data_only: response data instead of ApiResponse
452
+ object with status code, headers, etc
453
+ :type _return_http_data_only: bool, optional
454
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
455
+ :param opts: Configuration options for this request
456
+ :type opts: ConfigurationOptions, optional
457
+ :param _request_auth: set to override the auth_settings for an a single
458
+ request; this effectively ignores the authentication
459
+ in the spec for a single request.
460
+ :type _request_auth: dict, optional
461
+ :type _content_type: string, optional: force content-type for the request
462
+ :return: Returns the result object.
463
+ If the method is called asynchronously,
464
+ returns the request thread.
465
+ :rtype: tuple(CheckDefinition, status_code(int), headers(HTTPHeaderDict))
466
+ """
467
+
468
+ _params = locals()
469
+
470
+ _all_params = [
471
+ 'scope',
472
+ 'code',
473
+ 'delete_data_quality_rule'
474
+ ]
475
+ _all_params.extend(
476
+ [
477
+ 'async_req',
478
+ '_return_http_data_only',
479
+ '_preload_content',
480
+ '_request_timeout',
481
+ '_request_auth',
482
+ '_content_type',
483
+ '_headers',
484
+ 'opts'
485
+ ]
486
+ )
487
+
488
+ # validate the arguments
489
+ for _key, _val in _params['kwargs'].items():
490
+ if _key not in _all_params:
491
+ raise ApiTypeError(
492
+ "Got an unexpected keyword argument '%s'"
493
+ " to method delete_rules" % _key
494
+ )
495
+ _params[_key] = _val
496
+ del _params['kwargs']
497
+
498
+ _collection_formats = {}
499
+
500
+ # process the path parameters
501
+ _path_params = {}
502
+ if _params['scope']:
503
+ _path_params['scope'] = _params['scope']
504
+
505
+ if _params['code']:
506
+ _path_params['code'] = _params['code']
507
+
508
+
509
+ # process the query parameters
510
+ _query_params = []
511
+ # process the header parameters
512
+ _header_params = dict(_params.get('_headers', {}))
513
+ # process the form parameters
514
+ _form_params = []
515
+ _files = {}
516
+ # process the body parameter
517
+ _body_params = None
518
+ if _params['delete_data_quality_rule'] is not None:
519
+ _body_params = _params['delete_data_quality_rule']
520
+
521
+ # set the HTTP header `Accept`
522
+ _header_params['Accept'] = self.api_client.select_header_accept(
523
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
524
+
525
+ # set the HTTP header `Content-Type`
526
+ _content_types_list = _params.get('_content_type',
527
+ self.api_client.select_header_content_type(
528
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
529
+ if _content_types_list:
530
+ _header_params['Content-Type'] = _content_types_list
531
+
532
+ # authentication setting
533
+ _auth_settings = ['oauth2'] # noqa: E501
534
+
535
+ _response_types_map = {
536
+ '200': "CheckDefinition",
537
+ '400': "LusidValidationProblemDetails",
538
+ }
539
+
540
+ return self.api_client.call_api(
541
+ '/api/dataquality/checkdefinitions/{scope}/{code}/$deleteRules', 'POST',
542
+ _path_params,
543
+ _query_params,
544
+ _header_params,
545
+ body=_body_params,
546
+ post_params=_form_params,
547
+ files=_files,
548
+ response_types_map=_response_types_map,
549
+ auth_settings=_auth_settings,
550
+ async_req=_params.get('async_req'),
551
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
552
+ _preload_content=_params.get('_preload_content', True),
553
+ _request_timeout=_params.get('_request_timeout'),
554
+ opts=_params.get('opts'),
555
+ collection_formats=_collection_formats,
556
+ _request_auth=_params.get('_request_auth'))
557
+
558
+
382
559
  @overload
383
560
  async def get_check_definition(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the scope this uniquely identifies the Check Definition.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Check Definition definition. Defaults to return the latest version of the definition if not specified.")] = None, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to retrieve the check definition properties. Defaults to the current LUSID system datetime if not specified.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'CheckDefinition' domain to decorate onto the Check Definition. These must have the format {domain}/{scope}/{code}, for example 'CheckDefinition/system/Name'.")] = None, **kwargs) -> CheckDefinition: # noqa: E501
384
561
  ...
@@ -1120,3 +1297,178 @@ class CheckDefinitionsApi:
1120
1297
  opts=_params.get('opts'),
1121
1298
  collection_formats=_collection_formats,
1122
1299
  _request_auth=_params.get('_request_auth'))
1300
+
1301
+
1302
+ @overload
1303
+ async def upsert_rules(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], upsert_data_quality_rule : Annotated[Optional[conlist(UpsertDataQualityRule)], Field(description="The request containing the rules to be upserted")] = None, **kwargs) -> CheckDefinition: # noqa: E501
1304
+ ...
1305
+
1306
+ @overload
1307
+ def upsert_rules(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], upsert_data_quality_rule : Annotated[Optional[conlist(UpsertDataQualityRule)], Field(description="The request containing the rules to be upserted")] = None, async_req: Optional[bool]=True, **kwargs) -> CheckDefinition: # noqa: E501
1308
+ ...
1309
+
1310
+ @validate_arguments
1311
+ def upsert_rules(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], upsert_data_quality_rule : Annotated[Optional[conlist(UpsertDataQualityRule)], Field(description="The request containing the rules to be upserted")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[CheckDefinition, Awaitable[CheckDefinition]]: # noqa: E501
1312
+ """[EXPERIMENTAL] UpsertRules: Upsert rules to a particular Check Definition # noqa: E501
1313
+
1314
+ Upsert rules for a given check definition. This will not affect any other rules that are not included in the request. # noqa: E501
1315
+ This method makes a synchronous HTTP request by default. To make an
1316
+ asynchronous HTTP request, please pass async_req=True
1317
+
1318
+ >>> thread = api.upsert_rules(scope, code, upsert_data_quality_rule, async_req=True)
1319
+ >>> result = thread.get()
1320
+
1321
+ :param scope: The scope of the specified Check Definition. (required)
1322
+ :type scope: str
1323
+ :param code: The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition. (required)
1324
+ :type code: str
1325
+ :param upsert_data_quality_rule: The request containing the rules to be upserted
1326
+ :type upsert_data_quality_rule: List[UpsertDataQualityRule]
1327
+ :param async_req: Whether to execute the request asynchronously.
1328
+ :type async_req: bool, optional
1329
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1330
+ :param opts: Configuration options for this request
1331
+ :type opts: ConfigurationOptions, optional
1332
+ :return: Returns the result object.
1333
+ If the method is called asynchronously,
1334
+ returns the request thread.
1335
+ :rtype: CheckDefinition
1336
+ """
1337
+ kwargs['_return_http_data_only'] = True
1338
+ if '_preload_content' in kwargs:
1339
+ message = "Error! Please call the upsert_rules_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
1340
+ raise ValueError(message)
1341
+ if async_req is not None:
1342
+ kwargs['async_req'] = async_req
1343
+ return self.upsert_rules_with_http_info(scope, code, upsert_data_quality_rule, **kwargs) # noqa: E501
1344
+
1345
+ @validate_arguments
1346
+ def upsert_rules_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the specified Check Definition.")], code : Annotated[StrictStr, Field(..., description="The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition.")], upsert_data_quality_rule : Annotated[Optional[conlist(UpsertDataQualityRule)], Field(description="The request containing the rules to be upserted")] = None, **kwargs) -> ApiResponse: # noqa: E501
1347
+ """[EXPERIMENTAL] UpsertRules: Upsert rules to a particular Check Definition # noqa: E501
1348
+
1349
+ Upsert rules for a given check definition. This will not affect any other rules that are not included in the request. # noqa: E501
1350
+ This method makes a synchronous HTTP request by default. To make an
1351
+ asynchronous HTTP request, please pass async_req=True
1352
+
1353
+ >>> thread = api.upsert_rules_with_http_info(scope, code, upsert_data_quality_rule, async_req=True)
1354
+ >>> result = thread.get()
1355
+
1356
+ :param scope: The scope of the specified Check Definition. (required)
1357
+ :type scope: str
1358
+ :param code: The code of the specified Check Definition. Together with the domain and scope this uniquely identifies the Check Definition. (required)
1359
+ :type code: str
1360
+ :param upsert_data_quality_rule: The request containing the rules to be upserted
1361
+ :type upsert_data_quality_rule: List[UpsertDataQualityRule]
1362
+ :param async_req: Whether to execute the request asynchronously.
1363
+ :type async_req: bool, optional
1364
+ :param _preload_content: if False, the ApiResponse.data will
1365
+ be set to none and raw_data will store the
1366
+ HTTP response body without reading/decoding.
1367
+ Default is True.
1368
+ :type _preload_content: bool, optional
1369
+ :param _return_http_data_only: response data instead of ApiResponse
1370
+ object with status code, headers, etc
1371
+ :type _return_http_data_only: bool, optional
1372
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
1373
+ :param opts: Configuration options for this request
1374
+ :type opts: ConfigurationOptions, optional
1375
+ :param _request_auth: set to override the auth_settings for an a single
1376
+ request; this effectively ignores the authentication
1377
+ in the spec for a single request.
1378
+ :type _request_auth: dict, optional
1379
+ :type _content_type: string, optional: force content-type for the request
1380
+ :return: Returns the result object.
1381
+ If the method is called asynchronously,
1382
+ returns the request thread.
1383
+ :rtype: tuple(CheckDefinition, status_code(int), headers(HTTPHeaderDict))
1384
+ """
1385
+
1386
+ _params = locals()
1387
+
1388
+ _all_params = [
1389
+ 'scope',
1390
+ 'code',
1391
+ 'upsert_data_quality_rule'
1392
+ ]
1393
+ _all_params.extend(
1394
+ [
1395
+ 'async_req',
1396
+ '_return_http_data_only',
1397
+ '_preload_content',
1398
+ '_request_timeout',
1399
+ '_request_auth',
1400
+ '_content_type',
1401
+ '_headers',
1402
+ 'opts'
1403
+ ]
1404
+ )
1405
+
1406
+ # validate the arguments
1407
+ for _key, _val in _params['kwargs'].items():
1408
+ if _key not in _all_params:
1409
+ raise ApiTypeError(
1410
+ "Got an unexpected keyword argument '%s'"
1411
+ " to method upsert_rules" % _key
1412
+ )
1413
+ _params[_key] = _val
1414
+ del _params['kwargs']
1415
+
1416
+ _collection_formats = {}
1417
+
1418
+ # process the path parameters
1419
+ _path_params = {}
1420
+ if _params['scope']:
1421
+ _path_params['scope'] = _params['scope']
1422
+
1423
+ if _params['code']:
1424
+ _path_params['code'] = _params['code']
1425
+
1426
+
1427
+ # process the query parameters
1428
+ _query_params = []
1429
+ # process the header parameters
1430
+ _header_params = dict(_params.get('_headers', {}))
1431
+ # process the form parameters
1432
+ _form_params = []
1433
+ _files = {}
1434
+ # process the body parameter
1435
+ _body_params = None
1436
+ if _params['upsert_data_quality_rule'] is not None:
1437
+ _body_params = _params['upsert_data_quality_rule']
1438
+
1439
+ # set the HTTP header `Accept`
1440
+ _header_params['Accept'] = self.api_client.select_header_accept(
1441
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
1442
+
1443
+ # set the HTTP header `Content-Type`
1444
+ _content_types_list = _params.get('_content_type',
1445
+ self.api_client.select_header_content_type(
1446
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
1447
+ if _content_types_list:
1448
+ _header_params['Content-Type'] = _content_types_list
1449
+
1450
+ # authentication setting
1451
+ _auth_settings = ['oauth2'] # noqa: E501
1452
+
1453
+ _response_types_map = {
1454
+ '200': "CheckDefinition",
1455
+ '400': "LusidValidationProblemDetails",
1456
+ }
1457
+
1458
+ return self.api_client.call_api(
1459
+ '/api/dataquality/checkdefinitions/{scope}/{code}/$upsertRules', 'POST',
1460
+ _path_params,
1461
+ _query_params,
1462
+ _header_params,
1463
+ body=_body_params,
1464
+ post_params=_form_params,
1465
+ files=_files,
1466
+ response_types_map=_response_types_map,
1467
+ auth_settings=_auth_settings,
1468
+ async_req=_params.get('async_req'),
1469
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
1470
+ _preload_content=_params.get('_preload_content', True),
1471
+ _request_timeout=_params.get('_request_timeout'),
1472
+ opts=_params.get('opts'),
1473
+ collection_formats=_collection_formats,
1474
+ _request_auth=_params.get('_request_auth'))
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.8388\n"\
448
+ "Version of the API: 0.11.8390\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
@@ -342,6 +342,7 @@ from lusid.models.decimal_list_compliance_parameter import DecimalListCompliance
342
342
  from lusid.models.decorated_compliance_run_summary import DecoratedComplianceRunSummary
343
343
  from lusid.models.delete_accounts_response import DeleteAccountsResponse
344
344
  from lusid.models.delete_custodian_accounts_response import DeleteCustodianAccountsResponse
345
+ from lusid.models.delete_data_quality_rule import DeleteDataQualityRule
345
346
  from lusid.models.delete_instrument_properties_response import DeleteInstrumentPropertiesResponse
346
347
  from lusid.models.delete_instrument_response import DeleteInstrumentResponse
347
348
  from lusid.models.delete_instruments_response import DeleteInstrumentsResponse
@@ -1232,6 +1233,7 @@ from lusid.models.upsert_counterparty_agreement_request import UpsertCounterpart
1232
1233
  from lusid.models.upsert_credit_support_annex_request import UpsertCreditSupportAnnexRequest
1233
1234
  from lusid.models.upsert_custom_entities_response import UpsertCustomEntitiesResponse
1234
1235
  from lusid.models.upsert_custom_entity_access_metadata_request import UpsertCustomEntityAccessMetadataRequest
1236
+ from lusid.models.upsert_data_quality_rule import UpsertDataQualityRule
1235
1237
  from lusid.models.upsert_dialect_request import UpsertDialectRequest
1236
1238
  from lusid.models.upsert_flow_conventions_request import UpsertFlowConventionsRequest
1237
1239
  from lusid.models.upsert_fund_bookmark_request import UpsertFundBookmarkRequest
@@ -1647,6 +1649,7 @@ __all__ = [
1647
1649
  "DecoratedComplianceRunSummary",
1648
1650
  "DeleteAccountsResponse",
1649
1651
  "DeleteCustodianAccountsResponse",
1652
+ "DeleteDataQualityRule",
1650
1653
  "DeleteInstrumentPropertiesResponse",
1651
1654
  "DeleteInstrumentResponse",
1652
1655
  "DeleteInstrumentsResponse",
@@ -2537,6 +2540,7 @@ __all__ = [
2537
2540
  "UpsertCreditSupportAnnexRequest",
2538
2541
  "UpsertCustomEntitiesResponse",
2539
2542
  "UpsertCustomEntityAccessMetadataRequest",
2543
+ "UpsertDataQualityRule",
2540
2544
  "UpsertDialectRequest",
2541
2545
  "UpsertFlowConventionsRequest",
2542
2546
  "UpsertFundBookmarkRequest",
@@ -0,0 +1,89 @@
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, Optional
22
+ from pydantic.v1 import StrictStr, Field, BaseModel, Field, constr
23
+
24
+ class DeleteDataQualityRule(BaseModel):
25
+ """
26
+ DeleteDataQualityRule
27
+ """
28
+ rule_set_key: Optional[StrictStr] = Field(None,alias="ruleSetKey")
29
+ rule_key: Optional[StrictStr] = Field(None,alias="ruleKey")
30
+ __properties = ["ruleSetKey", "ruleKey"]
31
+
32
+ class Config:
33
+ """Pydantic configuration"""
34
+ allow_population_by_field_name = True
35
+ validate_assignment = True
36
+
37
+ def __str__(self):
38
+ """For `print` and `pprint`"""
39
+ return pprint.pformat(self.dict(by_alias=False))
40
+
41
+ def __repr__(self):
42
+ """For `print` and `pprint`"""
43
+ return self.to_str()
44
+
45
+ def to_str(self) -> str:
46
+ """Returns the string representation of the model using alias"""
47
+ return pprint.pformat(self.dict(by_alias=True))
48
+
49
+ def to_json(self) -> str:
50
+ """Returns the JSON representation of the model using alias"""
51
+ return json.dumps(self.to_dict())
52
+
53
+ @classmethod
54
+ def from_json(cls, json_str: str) -> DeleteDataQualityRule:
55
+ """Create an instance of DeleteDataQualityRule from a JSON string"""
56
+ return cls.from_dict(json.loads(json_str))
57
+
58
+ def to_dict(self):
59
+ """Returns the dictionary representation of the model using alias"""
60
+ _dict = self.dict(by_alias=True,
61
+ exclude={
62
+ },
63
+ exclude_none=True)
64
+ # set to None if rule_set_key (nullable) is None
65
+ # and __fields_set__ contains the field
66
+ if self.rule_set_key is None and "rule_set_key" in self.__fields_set__:
67
+ _dict['ruleSetKey'] = None
68
+
69
+ # set to None if rule_key (nullable) is None
70
+ # and __fields_set__ contains the field
71
+ if self.rule_key is None and "rule_key" in self.__fields_set__:
72
+ _dict['ruleKey'] = None
73
+
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: dict) -> DeleteDataQualityRule:
78
+ """Create an instance of DeleteDataQualityRule from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return DeleteDataQualityRule.parse_obj(obj)
84
+
85
+ _obj = DeleteDataQualityRule.parse_obj({
86
+ "rule_set_key": obj.get("ruleSetKey"),
87
+ "rule_key": obj.get("ruleKey")
88
+ })
89
+ return _obj
@@ -0,0 +1,88 @@
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, Optional
22
+ from pydantic.v1 import StrictStr, Field, BaseModel, Field, constr
23
+ from lusid.models.check_definition_rule import CheckDefinitionRule
24
+
25
+ class UpsertDataQualityRule(BaseModel):
26
+ """
27
+ UpsertDataQualityRule
28
+ """
29
+ rule_set_key: Optional[StrictStr] = Field(None,alias="ruleSetKey")
30
+ rule: Optional[CheckDefinitionRule] = None
31
+ __properties = ["ruleSetKey", "rule"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def __str__(self):
39
+ """For `print` and `pprint`"""
40
+ return pprint.pformat(self.dict(by_alias=False))
41
+
42
+ def __repr__(self):
43
+ """For `print` and `pprint`"""
44
+ return self.to_str()
45
+
46
+ def to_str(self) -> str:
47
+ """Returns the string representation of the model using alias"""
48
+ return pprint.pformat(self.dict(by_alias=True))
49
+
50
+ def to_json(self) -> str:
51
+ """Returns the JSON representation of the model using alias"""
52
+ return json.dumps(self.to_dict())
53
+
54
+ @classmethod
55
+ def from_json(cls, json_str: str) -> UpsertDataQualityRule:
56
+ """Create an instance of UpsertDataQualityRule from a JSON string"""
57
+ return cls.from_dict(json.loads(json_str))
58
+
59
+ def to_dict(self):
60
+ """Returns the dictionary representation of the model using alias"""
61
+ _dict = self.dict(by_alias=True,
62
+ exclude={
63
+ },
64
+ exclude_none=True)
65
+ # override the default output from pydantic by calling `to_dict()` of rule
66
+ if self.rule:
67
+ _dict['rule'] = self.rule.to_dict()
68
+ # set to None if rule_set_key (nullable) is None
69
+ # and __fields_set__ contains the field
70
+ if self.rule_set_key is None and "rule_set_key" in self.__fields_set__:
71
+ _dict['ruleSetKey'] = None
72
+
73
+ return _dict
74
+
75
+ @classmethod
76
+ def from_dict(cls, obj: dict) -> UpsertDataQualityRule:
77
+ """Create an instance of UpsertDataQualityRule from a dict"""
78
+ if obj is None:
79
+ return None
80
+
81
+ if not isinstance(obj, dict):
82
+ return UpsertDataQualityRule.parse_obj(obj)
83
+
84
+ _obj = UpsertDataQualityRule.parse_obj({
85
+ "rule_set_key": obj.get("ruleSetKey"),
86
+ "rule": CheckDefinitionRule.from_dict(obj.get("rule")) if obj.get("rule") is not None else None
87
+ })
88
+ return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.985
3
+ Version: 2.1.986
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -132,10 +132,12 @@ Class | Method | HTTP request | Description
132
132
  *ChartOfAccountsApi* | [**upsert_chart_of_accounts_properties**](docs/ChartOfAccountsApi.md#upsert_chart_of_accounts_properties) | **POST** /api/chartofaccounts/{scope}/{code}/properties/$upsert | [EXPERIMENTAL] UpsertChartOfAccountsProperties: Upsert Chart of Accounts properties
133
133
  *CheckDefinitionsApi* | [**create_check_definition**](docs/CheckDefinitionsApi.md#create_check_definition) | **POST** /api/dataquality/checkdefinitions | [EXPERIMENTAL] CreateCheckDefinition: Create a Check Definition
134
134
  *CheckDefinitionsApi* | [**delete_check_definition**](docs/CheckDefinitionsApi.md#delete_check_definition) | **DELETE** /api/dataquality/checkdefinitions/{scope}/{code} | [EXPERIMENTAL] DeleteCheckDefinition: Deletes a particular Check Definition
135
+ *CheckDefinitionsApi* | [**delete_rules**](docs/CheckDefinitionsApi.md#delete_rules) | **POST** /api/dataquality/checkdefinitions/{scope}/{code}/$deleteRules | [EXPERIMENTAL] DeleteRules: Delete rules on a particular Check Definition
135
136
  *CheckDefinitionsApi* | [**get_check_definition**](docs/CheckDefinitionsApi.md#get_check_definition) | **GET** /api/dataquality/checkdefinitions/{scope}/{code} | [EXPERIMENTAL] GetCheckDefinition: Get a single Check Definition by scope and code.
136
137
  *CheckDefinitionsApi* | [**list_check_definitions**](docs/CheckDefinitionsApi.md#list_check_definitions) | **GET** /api/dataquality/checkdefinitions | [EXPERIMENTAL] ListCheckDefinitions: List Check Definitions
137
138
  *CheckDefinitionsApi* | [**run_check_definition**](docs/CheckDefinitionsApi.md#run_check_definition) | **PUT** /api/dataquality/checkdefinitions/{scope}/{code}/$run | [EXPERIMENTAL] RunCheckDefinition: Runs a Check Definition against given dataset.
138
139
  *CheckDefinitionsApi* | [**update_check_definition**](docs/CheckDefinitionsApi.md#update_check_definition) | **PUT** /api/dataquality/checkdefinitions/{scope}/{code} | [EXPERIMENTAL] UpdateCheckDefinition: Update Check Definition defined by scope and code
140
+ *CheckDefinitionsApi* | [**upsert_rules**](docs/CheckDefinitionsApi.md#upsert_rules) | **POST** /api/dataquality/checkdefinitions/{scope}/{code}/$upsertRules | [EXPERIMENTAL] UpsertRules: Upsert rules to a particular Check Definition
139
141
  *ComplexMarketDataApi* | [**delete_complex_market_data**](docs/ComplexMarketDataApi.md#delete_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$delete | DeleteComplexMarketData: Delete one or more items of complex market data, assuming they are present.
140
142
  *ComplexMarketDataApi* | [**get_complex_market_data**](docs/ComplexMarketDataApi.md#get_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$get | GetComplexMarketData: Get complex market data
141
143
  *ComplexMarketDataApi* | [**list_complex_market_data**](docs/ComplexMarketDataApi.md#list_complex_market_data) | **GET** /api/complexmarketdata | ListComplexMarketData: List the set of ComplexMarketData
@@ -1024,6 +1026,7 @@ Class | Method | HTTP request | Description
1024
1026
  - [DecoratedComplianceRunSummary](docs/DecoratedComplianceRunSummary.md)
1025
1027
  - [DeleteAccountsResponse](docs/DeleteAccountsResponse.md)
1026
1028
  - [DeleteCustodianAccountsResponse](docs/DeleteCustodianAccountsResponse.md)
1029
+ - [DeleteDataQualityRule](docs/DeleteDataQualityRule.md)
1027
1030
  - [DeleteInstrumentPropertiesResponse](docs/DeleteInstrumentPropertiesResponse.md)
1028
1031
  - [DeleteInstrumentResponse](docs/DeleteInstrumentResponse.md)
1029
1032
  - [DeleteInstrumentsResponse](docs/DeleteInstrumentsResponse.md)
@@ -1914,6 +1917,7 @@ Class | Method | HTTP request | Description
1914
1917
  - [UpsertCreditSupportAnnexRequest](docs/UpsertCreditSupportAnnexRequest.md)
1915
1918
  - [UpsertCustomEntitiesResponse](docs/UpsertCustomEntitiesResponse.md)
1916
1919
  - [UpsertCustomEntityAccessMetadataRequest](docs/UpsertCustomEntityAccessMetadataRequest.md)
1920
+ - [UpsertDataQualityRule](docs/UpsertDataQualityRule.md)
1917
1921
  - [UpsertDialectRequest](docs/UpsertDialectRequest.md)
1918
1922
  - [UpsertFlowConventionsRequest](docs/UpsertFlowConventionsRequest.md)
1919
1923
  - [UpsertFundBookmarkRequest](docs/UpsertFundBookmarkRequest.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=EbQBMkuCMi064zl-N5pXaMvvKrVtj1dAu1IqXZn_D9o,147939
1
+ lusid/__init__.py,sha256=i_k_TKhprFGdeLje0Xyxw0JFEgDD1OVyQ4EmIPmgHZk,148141
2
2
  lusid/api/__init__.py,sha256=yCGwgeQBZ1RZovOUo7Jq24Txz4o6naRgnWAzQVGdHAk,6784
3
3
  lusid/api/abor_api.py,sha256=EdyHrd5yRcz7MOffhFa1cgtcBaPuPJmbArHWIXv7tuQ,174322
4
4
  lusid/api/abor_configuration_api.py,sha256=xQ9HcXm02eDFhCdWUHjqFRWl1oQMxm2LNObJ9kcLauU,84216
@@ -11,7 +11,7 @@ lusid/api/application_metadata_api.py,sha256=GdueWnWdBjIhbyb6gfBgLYqQ7_UerR0J68T
11
11
  lusid/api/blocks_api.py,sha256=WvkS7tK4jY1R_SWV8FqjCr5zpF9Gx1basp62FBdyH_E,43230
12
12
  lusid/api/calendars_api.py,sha256=Z1Zo2PDggpII8e6DyKlun1EZkCqU0I9MtqTsKfu5buI,141755
13
13
  lusid/api/chart_of_accounts_api.py,sha256=cyLfNKPJpBuy61U1HqVGNh1bmwAoTDpaIGQ1SeuMU-I,404270
14
- lusid/api/check_definitions_api.py,sha256=TpMePfYFXB8NiUQYlqy7SWFIS-7ofxPGo3B97-Skg0U,70425
14
+ lusid/api/check_definitions_api.py,sha256=py8zdY_NzXmyRq1m2iw2VP_EVWgpWWVkapOVE_pHk20,90171
15
15
  lusid/api/complex_market_data_api.py,sha256=kNH08g5rGYAMg7srkVhhqjzQ8oICqiTPFZJcFOV84EA,64940
16
16
  lusid/api/compliance_api.py,sha256=zVn3TuZ97PqKKh-b666fHgs3mfVcDD9nELX7zTTsdz0,161480
17
17
  lusid/api/configuration_recipe_api.py,sha256=1hdNB1imRjVzf8KAmqnNJE10jv883s1SCza5dl8fP9Q,99363
@@ -80,7 +80,7 @@ lusid/api/translation_api.py,sha256=xpRuTfwQvYBlWe6r_L2EI_uVpXqHFnEOim-i-kVQ85E,
80
80
  lusid/api/workspace_api.py,sha256=0pCNi3ZCRbIo0NXKa85XE7vtq0WV5YOKcQKvFlcLUaY,120708
81
81
  lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
82
82
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
83
- lusid/configuration.py,sha256=maXwYXRwCJuS8vIxp8eBBB7hOopl7rs5y25enIHPNNM,17980
83
+ lusid/configuration.py,sha256=thfraMVXcEmywaO-PzQ_k7y0TH1cRzkwMU3mBJjABHU,17980
84
84
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
85
85
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
86
86
  lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
@@ -95,7 +95,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
95
95
  lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
96
96
  lusid/extensions/socket_keep_alive.py,sha256=eX5ICvGfVzUCGIm80Q2RknfFZrBQAdnrcpY61M29V_k,1997
97
97
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
98
- lusid/models/__init__.py,sha256=9umlLCsRnEkWYXQjro550_MXVFVFbKEMwPzObwIt5HY,140123
98
+ lusid/models/__init__.py,sha256=HYjldlScVm8Oz5OyysMQBEhDJ3NeE2sxJWsYvaJulUQ,140325
99
99
  lusid/models/a2_b_breakdown.py,sha256=-FXgILrvtZXQDmvS0ARaJVGBq5LJ4AH-o3HjujFVmS4,3198
100
100
  lusid/models/a2_b_category.py,sha256=WunXUgx-dCnApPeLC8Qo5tVCX8Ywxkehib1vmNqNgNs,2957
101
101
  lusid/models/a2_b_data_record.py,sha256=qANTmV1_HUEo4l72-F8qzZjlQxOe0Onc9WPz7h-WWuY,9993
@@ -424,6 +424,7 @@ lusid/models/decimal_list_compliance_parameter.py,sha256=-1oui0C92OQq-Do3YBow50Z
424
424
  lusid/models/decorated_compliance_run_summary.py,sha256=Oxwo0jkuFb_0H7D0__OuBws1m0YhJFG2C7saKurh-Nw,3062
425
425
  lusid/models/delete_accounts_response.py,sha256=g84Wjbo6ON97YZEAL4cABtBXeRi85Nl4YBTj3cjZU7U,3559
426
426
  lusid/models/delete_custodian_accounts_response.py,sha256=zW3lId3KcHaVYWmN1v7JZTGZ3G6_xJZWcpbJcEYBS6o,4224
427
+ lusid/models/delete_data_quality_rule.py,sha256=lOSSvCzOiVgxX7KYdjrqImrrgGTiGpNDMfsfvfodaxs,2717
427
428
  lusid/models/delete_instrument_properties_response.py,sha256=jGK_uXOmKvP0xknERqtx0eAWee0YckUoTf5hA9tESMk,3600
428
429
  lusid/models/delete_instrument_response.py,sha256=qotAVtBCV0gOrR8jLHxkBDDM37NP4Hv99UKDmWohrDg,3959
429
430
  lusid/models/delete_instruments_response.py,sha256=7MMyfva0raLUXOsbbHsK5qsSN76MMS0WZu3i9rhAx4U,4444
@@ -1314,6 +1315,7 @@ lusid/models/upsert_counterparty_agreement_request.py,sha256=DDlLqia-PdYgJcPoqsg
1314
1315
  lusid/models/upsert_credit_support_annex_request.py,sha256=FlwmfH-02a5ANX9GjssosbyYSFNmpnNRUMy66Uz2VeA,2763
1315
1316
  lusid/models/upsert_custom_entities_response.py,sha256=lUS_lZEn_CTz3JZRY8AnaxqiV2zMWxhjmt4K3FQBm7s,6168
1316
1317
  lusid/models/upsert_custom_entity_access_metadata_request.py,sha256=IN28cGzjdEEHaXV07Is7kN4YfLjGimJvjmQqUJIumsA,3081
1318
+ lusid/models/upsert_data_quality_rule.py,sha256=cvralRIIeEZZM45FZujc0XlgyR-tPmfOvLw9R8l4GvY,2770
1317
1319
  lusid/models/upsert_dialect_request.py,sha256=Qwb1vzd1a5wj73CHByv6z5IgIYwEYLf0GFI69keGHjg,2727
1318
1320
  lusid/models/upsert_flow_conventions_request.py,sha256=YPgaQeGGZ1UZZNNmTPoEGm_9fqWBqoAgd69mo6eCWG0,2663
1319
1321
  lusid/models/upsert_fund_bookmark_request.py,sha256=WQihsxAPikH_qF5lJl-0C82MenklSnY_BCX3r2klVG0,4508
@@ -1400,6 +1402,6 @@ lusid/models/year_month_day.py,sha256=gwSoxFwlD_wffKdddo1wfvAcLq3Cht3FHQidiaHzAA
1400
1402
  lusid/models/yield_curve_data.py,sha256=sifVmM0PAAB9wfI3aKf4dLbZS45bqiRv9ffZxQx7JRU,9663
1401
1403
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1402
1404
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1403
- lusid_sdk-2.1.985.dist-info/METADATA,sha256=yAPKj78-xLiWUFChMhVN0JYxsbkRXOj9ncDCqPK4jd0,235038
1404
- lusid_sdk-2.1.985.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1405
- lusid_sdk-2.1.985.dist-info/RECORD,,
1405
+ lusid_sdk-2.1.986.dist-info/METADATA,sha256=7AGAUTTo2sotdJVVRrQgg-59XWQ9Q8-t0tpjoG5GDYk,235622
1406
+ lusid_sdk-2.1.986.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1407
+ lusid_sdk-2.1.986.dist-info/RECORD,,