lusid-sdk 2.1.983__py3-none-any.whl → 2.1.984__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
@@ -413,6 +413,7 @@ from lusid.models.data_map_key import DataMapKey
413
413
  from lusid.models.data_mapping import DataMapping
414
414
  from lusid.models.data_model_membership import DataModelMembership
415
415
  from lusid.models.data_model_summary import DataModelSummary
416
+ from lusid.models.data_quality_check_result import DataQualityCheckResult
416
417
  from lusid.models.data_scope import DataScope
417
418
  from lusid.models.data_type import DataType
418
419
  from lusid.models.data_type_entity import DataTypeEntity
@@ -715,6 +716,8 @@ from lusid.models.loan_interest_repayment_event import LoanInterestRepaymentEven
715
716
  from lusid.models.loan_period import LoanPeriod
716
717
  from lusid.models.loan_principal_repayment_event import LoanPrincipalRepaymentEvent
717
718
  from lusid.models.lock_period_diary_entry_request import LockPeriodDiaryEntryRequest
719
+ from lusid.models.lusid_entity_dataset import LusidEntityDataset
720
+ from lusid.models.lusid_entity_result import LusidEntityResult
718
721
  from lusid.models.lusid_instrument import LusidInstrument
719
722
  from lusid.models.lusid_problem_details import LusidProblemDetails
720
723
  from lusid.models.lusid_trade_ticket import LusidTradeTicket
@@ -1129,6 +1132,8 @@ from lusid.models.rounding_configuration import RoundingConfiguration
1129
1132
  from lusid.models.rounding_configuration_component import RoundingConfigurationComponent
1130
1133
  from lusid.models.rounding_convention import RoundingConvention
1131
1134
  from lusid.models.rules_interval import RulesInterval
1135
+ from lusid.models.run_check_request import RunCheckRequest
1136
+ from lusid.models.run_check_response import RunCheckResponse
1132
1137
  from lusid.models.scaling_methodology import ScalingMethodology
1133
1138
  from lusid.models.schedule import Schedule
1134
1139
  from lusid.models.schedule_type import ScheduleType
@@ -1803,6 +1808,7 @@ __all__ = [
1803
1808
  "DataMapping",
1804
1809
  "DataModelMembership",
1805
1810
  "DataModelSummary",
1811
+ "DataQualityCheckResult",
1806
1812
  "DataScope",
1807
1813
  "DataType",
1808
1814
  "DataTypeEntity",
@@ -2105,6 +2111,8 @@ __all__ = [
2105
2111
  "LoanPeriod",
2106
2112
  "LoanPrincipalRepaymentEvent",
2107
2113
  "LockPeriodDiaryEntryRequest",
2114
+ "LusidEntityDataset",
2115
+ "LusidEntityResult",
2108
2116
  "LusidInstrument",
2109
2117
  "LusidProblemDetails",
2110
2118
  "LusidTradeTicket",
@@ -2519,6 +2527,8 @@ __all__ = [
2519
2527
  "RoundingConfigurationComponent",
2520
2528
  "RoundingConvention",
2521
2529
  "RulesInterval",
2530
+ "RunCheckRequest",
2531
+ "RunCheckResponse",
2522
2532
  "ScalingMethodology",
2523
2533
  "Schedule",
2524
2534
  "ScheduleType",
@@ -30,6 +30,8 @@ from lusid.models.check_definition import CheckDefinition
30
30
  from lusid.models.create_check_definition_request import CreateCheckDefinitionRequest
31
31
  from lusid.models.deleted_entity_response import DeletedEntityResponse
32
32
  from lusid.models.paged_resource_list_of_check_definition import PagedResourceListOfCheckDefinition
33
+ from lusid.models.run_check_request import RunCheckRequest
34
+ from lusid.models.run_check_response import RunCheckResponse
33
35
  from lusid.models.update_check_definition_request import UpdateCheckDefinitionRequest
34
36
 
35
37
  from lusid.api_client import ApiClient
@@ -770,6 +772,181 @@ class CheckDefinitionsApi:
770
772
  _request_auth=_params.get('_request_auth'))
771
773
 
772
774
 
775
+ @overload
776
+ async def run_check_definition(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, **kwargs) -> RunCheckResponse: # noqa: E501
777
+ ...
778
+
779
+ @overload
780
+ def run_check_definition(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, async_req: Optional[bool]=True, **kwargs) -> RunCheckResponse: # noqa: E501
781
+ ...
782
+
783
+ @validate_arguments
784
+ def run_check_definition(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[RunCheckResponse, Awaitable[RunCheckResponse]]: # noqa: E501
785
+ """[EXPERIMENTAL] RunCheckDefinition: Runs a Check Definition against given dataset. # noqa: E501
786
+
787
+ Runs a Check Definition against given dataset. # noqa: E501
788
+ This method makes a synchronous HTTP request by default. To make an
789
+ asynchronous HTTP request, please pass async_req=True
790
+
791
+ >>> thread = api.run_check_definition(scope, code, run_check_request, async_req=True)
792
+ >>> result = thread.get()
793
+
794
+ :param scope: Scope of the CheckDefinition to run. (required)
795
+ :type scope: str
796
+ :param code: Code of the CheckDefinition to run. (required)
797
+ :type code: str
798
+ :param run_check_request: Run request defining what dataset to run against.
799
+ :type run_check_request: RunCheckRequest
800
+ :param async_req: Whether to execute the request asynchronously.
801
+ :type async_req: bool, optional
802
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
803
+ :param opts: Configuration options for this request
804
+ :type opts: ConfigurationOptions, optional
805
+ :return: Returns the result object.
806
+ If the method is called asynchronously,
807
+ returns the request thread.
808
+ :rtype: RunCheckResponse
809
+ """
810
+ kwargs['_return_http_data_only'] = True
811
+ if '_preload_content' in kwargs:
812
+ message = "Error! Please call the run_check_definition_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
813
+ raise ValueError(message)
814
+ if async_req is not None:
815
+ kwargs['async_req'] = async_req
816
+ return self.run_check_definition_with_http_info(scope, code, run_check_request, **kwargs) # noqa: E501
817
+
818
+ @validate_arguments
819
+ def run_check_definition_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="Scope of the CheckDefinition to run.")], code : Annotated[StrictStr, Field(..., description="Code of the CheckDefinition to run.")], run_check_request : Annotated[Optional[RunCheckRequest], Field(description="Run request defining what dataset to run against.")] = None, **kwargs) -> ApiResponse: # noqa: E501
820
+ """[EXPERIMENTAL] RunCheckDefinition: Runs a Check Definition against given dataset. # noqa: E501
821
+
822
+ Runs a Check Definition against given dataset. # noqa: E501
823
+ This method makes a synchronous HTTP request by default. To make an
824
+ asynchronous HTTP request, please pass async_req=True
825
+
826
+ >>> thread = api.run_check_definition_with_http_info(scope, code, run_check_request, async_req=True)
827
+ >>> result = thread.get()
828
+
829
+ :param scope: Scope of the CheckDefinition to run. (required)
830
+ :type scope: str
831
+ :param code: Code of the CheckDefinition to run. (required)
832
+ :type code: str
833
+ :param run_check_request: Run request defining what dataset to run against.
834
+ :type run_check_request: RunCheckRequest
835
+ :param async_req: Whether to execute the request asynchronously.
836
+ :type async_req: bool, optional
837
+ :param _preload_content: if False, the ApiResponse.data will
838
+ be set to none and raw_data will store the
839
+ HTTP response body without reading/decoding.
840
+ Default is True.
841
+ :type _preload_content: bool, optional
842
+ :param _return_http_data_only: response data instead of ApiResponse
843
+ object with status code, headers, etc
844
+ :type _return_http_data_only: bool, optional
845
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
846
+ :param opts: Configuration options for this request
847
+ :type opts: ConfigurationOptions, optional
848
+ :param _request_auth: set to override the auth_settings for an a single
849
+ request; this effectively ignores the authentication
850
+ in the spec for a single request.
851
+ :type _request_auth: dict, optional
852
+ :type _content_type: string, optional: force content-type for the request
853
+ :return: Returns the result object.
854
+ If the method is called asynchronously,
855
+ returns the request thread.
856
+ :rtype: tuple(RunCheckResponse, status_code(int), headers(HTTPHeaderDict))
857
+ """
858
+
859
+ _params = locals()
860
+
861
+ _all_params = [
862
+ 'scope',
863
+ 'code',
864
+ 'run_check_request'
865
+ ]
866
+ _all_params.extend(
867
+ [
868
+ 'async_req',
869
+ '_return_http_data_only',
870
+ '_preload_content',
871
+ '_request_timeout',
872
+ '_request_auth',
873
+ '_content_type',
874
+ '_headers',
875
+ 'opts'
876
+ ]
877
+ )
878
+
879
+ # validate the arguments
880
+ for _key, _val in _params['kwargs'].items():
881
+ if _key not in _all_params:
882
+ raise ApiTypeError(
883
+ "Got an unexpected keyword argument '%s'"
884
+ " to method run_check_definition" % _key
885
+ )
886
+ _params[_key] = _val
887
+ del _params['kwargs']
888
+
889
+ _collection_formats = {}
890
+
891
+ # process the path parameters
892
+ _path_params = {}
893
+ if _params['scope']:
894
+ _path_params['scope'] = _params['scope']
895
+
896
+ if _params['code']:
897
+ _path_params['code'] = _params['code']
898
+
899
+
900
+ # process the query parameters
901
+ _query_params = []
902
+ # process the header parameters
903
+ _header_params = dict(_params.get('_headers', {}))
904
+ # process the form parameters
905
+ _form_params = []
906
+ _files = {}
907
+ # process the body parameter
908
+ _body_params = None
909
+ if _params['run_check_request'] is not None:
910
+ _body_params = _params['run_check_request']
911
+
912
+ # set the HTTP header `Accept`
913
+ _header_params['Accept'] = self.api_client.select_header_accept(
914
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
915
+
916
+ # set the HTTP header `Content-Type`
917
+ _content_types_list = _params.get('_content_type',
918
+ self.api_client.select_header_content_type(
919
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
920
+ if _content_types_list:
921
+ _header_params['Content-Type'] = _content_types_list
922
+
923
+ # authentication setting
924
+ _auth_settings = ['oauth2'] # noqa: E501
925
+
926
+ _response_types_map = {
927
+ '200': "RunCheckResponse",
928
+ '400': "LusidValidationProblemDetails",
929
+ }
930
+
931
+ return self.api_client.call_api(
932
+ '/api/dataquality/checkdefinitions/{scope}/{code}/$run', 'PUT',
933
+ _path_params,
934
+ _query_params,
935
+ _header_params,
936
+ body=_body_params,
937
+ post_params=_form_params,
938
+ files=_files,
939
+ response_types_map=_response_types_map,
940
+ auth_settings=_auth_settings,
941
+ async_req=_params.get('async_req'),
942
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
943
+ _preload_content=_params.get('_preload_content', True),
944
+ _request_timeout=_params.get('_request_timeout'),
945
+ opts=_params.get('opts'),
946
+ collection_formats=_collection_formats,
947
+ _request_auth=_params.get('_request_auth'))
948
+
949
+
773
950
  @overload
774
951
  async def update_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 domain and scope this uniquely identifies the Check Definition.")], update_check_definition_request : Annotated[Optional[UpdateCheckDefinitionRequest], Field(description="The request containing the updated details of the Check Definition")] = None, **kwargs) -> CheckDefinition: # noqa: E501
775
952
  ...
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.8378\n"\
448
+ "Version of the API: 0.11.8386\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
@@ -322,6 +322,7 @@ from lusid.models.data_map_key import DataMapKey
322
322
  from lusid.models.data_mapping import DataMapping
323
323
  from lusid.models.data_model_membership import DataModelMembership
324
324
  from lusid.models.data_model_summary import DataModelSummary
325
+ from lusid.models.data_quality_check_result import DataQualityCheckResult
325
326
  from lusid.models.data_scope import DataScope
326
327
  from lusid.models.data_type import DataType
327
328
  from lusid.models.data_type_entity import DataTypeEntity
@@ -624,6 +625,8 @@ from lusid.models.loan_interest_repayment_event import LoanInterestRepaymentEven
624
625
  from lusid.models.loan_period import LoanPeriod
625
626
  from lusid.models.loan_principal_repayment_event import LoanPrincipalRepaymentEvent
626
627
  from lusid.models.lock_period_diary_entry_request import LockPeriodDiaryEntryRequest
628
+ from lusid.models.lusid_entity_dataset import LusidEntityDataset
629
+ from lusid.models.lusid_entity_result import LusidEntityResult
627
630
  from lusid.models.lusid_instrument import LusidInstrument
628
631
  from lusid.models.lusid_problem_details import LusidProblemDetails
629
632
  from lusid.models.lusid_trade_ticket import LusidTradeTicket
@@ -1038,6 +1041,8 @@ from lusid.models.rounding_configuration import RoundingConfiguration
1038
1041
  from lusid.models.rounding_configuration_component import RoundingConfigurationComponent
1039
1042
  from lusid.models.rounding_convention import RoundingConvention
1040
1043
  from lusid.models.rules_interval import RulesInterval
1044
+ from lusid.models.run_check_request import RunCheckRequest
1045
+ from lusid.models.run_check_response import RunCheckResponse
1041
1046
  from lusid.models.scaling_methodology import ScalingMethodology
1042
1047
  from lusid.models.schedule import Schedule
1043
1048
  from lusid.models.schedule_type import ScheduleType
@@ -1622,6 +1627,7 @@ __all__ = [
1622
1627
  "DataMapping",
1623
1628
  "DataModelMembership",
1624
1629
  "DataModelSummary",
1630
+ "DataQualityCheckResult",
1625
1631
  "DataScope",
1626
1632
  "DataType",
1627
1633
  "DataTypeEntity",
@@ -1924,6 +1930,8 @@ __all__ = [
1924
1930
  "LoanPeriod",
1925
1931
  "LoanPrincipalRepaymentEvent",
1926
1932
  "LockPeriodDiaryEntryRequest",
1933
+ "LusidEntityDataset",
1934
+ "LusidEntityResult",
1927
1935
  "LusidInstrument",
1928
1936
  "LusidProblemDetails",
1929
1937
  "LusidTradeTicket",
@@ -2338,6 +2346,8 @@ __all__ = [
2338
2346
  "RoundingConfigurationComponent",
2339
2347
  "RoundingConvention",
2340
2348
  "RulesInterval",
2349
+ "RunCheckRequest",
2350
+ "RunCheckResponse",
2341
2351
  "ScalingMethodology",
2342
2352
  "Schedule",
2343
2353
  "ScheduleType",
@@ -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
+ from datetime import datetime
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictInt, StrictStr
23
+ from lusid.models.lusid_entity_result import LusidEntityResult
24
+
25
+ class DataQualityCheckResult(BaseModel):
26
+ """
27
+ Represents the result of a data quality check operation # noqa: E501
28
+ """
29
+ check_definition_scope: Optional[StrictStr] = Field(None,alias="checkDefinitionScope", description="The scope of the check definition")
30
+ check_definition_code: Optional[StrictStr] = Field(None,alias="checkDefinitionCode", description="The code of the check definition")
31
+ check_definition_display_name: Optional[StrictStr] = Field(None,alias="checkDefinitionDisplayName", description="The display name of the check definition")
32
+ check_run_as_at: Optional[datetime] = Field(None, alias="checkRunAsAt", description="The timestamp when the check was run")
33
+ result_type: Optional[StrictStr] = Field(None,alias="resultType", description="The type of result from the check")
34
+ rule_set_key: Optional[StrictStr] = Field(None,alias="ruleSetKey", description="The key identifying the ruleset")
35
+ rule_set_display_name: Optional[StrictStr] = Field(None,alias="ruleSetDisplayName", description="The display name of the ruleset")
36
+ rule_key: Optional[StrictStr] = Field(None,alias="ruleKey", description="The key identifying the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
37
+ rule_display_name: Optional[StrictStr] = Field(None,alias="ruleDisplayName", description="The display name of the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
38
+ rule_description: Optional[StrictStr] = Field(None,alias="ruleDescription", description="The description of the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
39
+ rule_formula: Optional[StrictStr] = Field(None,alias="ruleFormula", description="The formula of the rule (for RuleInvalid, RuleBreached, RuleBreachesOverLimit)")
40
+ severity: Optional[StrictInt] = Field(None, description="The severity level")
41
+ lusid_entity: Optional[LusidEntityResult] = Field(None, alias="lusidEntity")
42
+ count_rule_breaches: Optional[StrictInt] = Field(None, alias="countRuleBreaches", description="The count of rule breaches (1 for RuleBreached, multiple for RuleBreachesOverLimit)")
43
+ error_detail: Optional[StrictStr] = Field(None,alias="errorDetail", description="Error details (for RulesetInvalid, RuleInvalid)")
44
+ result_id: Optional[StrictStr] = Field(None,alias="resultId", description="Unique identifier for the result in format: {{GUID of Check Definition}}-{{resultType}}-{{rulesetKey}}-{{ruleKey}}-{{entity GUID}}")
45
+ __properties = ["checkDefinitionScope", "checkDefinitionCode", "checkDefinitionDisplayName", "checkRunAsAt", "resultType", "ruleSetKey", "ruleSetDisplayName", "ruleKey", "ruleDisplayName", "ruleDescription", "ruleFormula", "severity", "lusidEntity", "countRuleBreaches", "errorDetail", "resultId"]
46
+
47
+ class Config:
48
+ """Pydantic configuration"""
49
+ allow_population_by_field_name = True
50
+ validate_assignment = True
51
+
52
+ def __str__(self):
53
+ """For `print` and `pprint`"""
54
+ return pprint.pformat(self.dict(by_alias=False))
55
+
56
+ def __repr__(self):
57
+ """For `print` and `pprint`"""
58
+ return self.to_str()
59
+
60
+ def to_str(self) -> str:
61
+ """Returns the string representation of the model using alias"""
62
+ return pprint.pformat(self.dict(by_alias=True))
63
+
64
+ def to_json(self) -> str:
65
+ """Returns the JSON representation of the model using alias"""
66
+ return json.dumps(self.to_dict())
67
+
68
+ @classmethod
69
+ def from_json(cls, json_str: str) -> DataQualityCheckResult:
70
+ """Create an instance of DataQualityCheckResult from a JSON string"""
71
+ return cls.from_dict(json.loads(json_str))
72
+
73
+ def to_dict(self):
74
+ """Returns the dictionary representation of the model using alias"""
75
+ _dict = self.dict(by_alias=True,
76
+ exclude={
77
+ },
78
+ exclude_none=True)
79
+ # override the default output from pydantic by calling `to_dict()` of lusid_entity
80
+ if self.lusid_entity:
81
+ _dict['lusidEntity'] = self.lusid_entity.to_dict()
82
+ # set to None if check_definition_scope (nullable) is None
83
+ # and __fields_set__ contains the field
84
+ if self.check_definition_scope is None and "check_definition_scope" in self.__fields_set__:
85
+ _dict['checkDefinitionScope'] = None
86
+
87
+ # set to None if check_definition_code (nullable) is None
88
+ # and __fields_set__ contains the field
89
+ if self.check_definition_code is None and "check_definition_code" in self.__fields_set__:
90
+ _dict['checkDefinitionCode'] = None
91
+
92
+ # set to None if check_definition_display_name (nullable) is None
93
+ # and __fields_set__ contains the field
94
+ if self.check_definition_display_name is None and "check_definition_display_name" in self.__fields_set__:
95
+ _dict['checkDefinitionDisplayName'] = None
96
+
97
+ # set to None if result_type (nullable) is None
98
+ # and __fields_set__ contains the field
99
+ if self.result_type is None and "result_type" in self.__fields_set__:
100
+ _dict['resultType'] = None
101
+
102
+ # set to None if rule_set_key (nullable) is None
103
+ # and __fields_set__ contains the field
104
+ if self.rule_set_key is None and "rule_set_key" in self.__fields_set__:
105
+ _dict['ruleSetKey'] = None
106
+
107
+ # set to None if rule_set_display_name (nullable) is None
108
+ # and __fields_set__ contains the field
109
+ if self.rule_set_display_name is None and "rule_set_display_name" in self.__fields_set__:
110
+ _dict['ruleSetDisplayName'] = None
111
+
112
+ # set to None if rule_key (nullable) is None
113
+ # and __fields_set__ contains the field
114
+ if self.rule_key is None and "rule_key" in self.__fields_set__:
115
+ _dict['ruleKey'] = None
116
+
117
+ # set to None if rule_display_name (nullable) is None
118
+ # and __fields_set__ contains the field
119
+ if self.rule_display_name is None and "rule_display_name" in self.__fields_set__:
120
+ _dict['ruleDisplayName'] = None
121
+
122
+ # set to None if rule_description (nullable) is None
123
+ # and __fields_set__ contains the field
124
+ if self.rule_description is None and "rule_description" in self.__fields_set__:
125
+ _dict['ruleDescription'] = None
126
+
127
+ # set to None if rule_formula (nullable) is None
128
+ # and __fields_set__ contains the field
129
+ if self.rule_formula is None and "rule_formula" in self.__fields_set__:
130
+ _dict['ruleFormula'] = None
131
+
132
+ # set to None if severity (nullable) is None
133
+ # and __fields_set__ contains the field
134
+ if self.severity is None and "severity" in self.__fields_set__:
135
+ _dict['severity'] = None
136
+
137
+ # set to None if count_rule_breaches (nullable) is None
138
+ # and __fields_set__ contains the field
139
+ if self.count_rule_breaches is None and "count_rule_breaches" in self.__fields_set__:
140
+ _dict['countRuleBreaches'] = None
141
+
142
+ # set to None if error_detail (nullable) is None
143
+ # and __fields_set__ contains the field
144
+ if self.error_detail is None and "error_detail" in self.__fields_set__:
145
+ _dict['errorDetail'] = None
146
+
147
+ # set to None if result_id (nullable) is None
148
+ # and __fields_set__ contains the field
149
+ if self.result_id is None and "result_id" in self.__fields_set__:
150
+ _dict['resultId'] = None
151
+
152
+ return _dict
153
+
154
+ @classmethod
155
+ def from_dict(cls, obj: dict) -> DataQualityCheckResult:
156
+ """Create an instance of DataQualityCheckResult from a dict"""
157
+ if obj is None:
158
+ return None
159
+
160
+ if not isinstance(obj, dict):
161
+ return DataQualityCheckResult.parse_obj(obj)
162
+
163
+ _obj = DataQualityCheckResult.parse_obj({
164
+ "check_definition_scope": obj.get("checkDefinitionScope"),
165
+ "check_definition_code": obj.get("checkDefinitionCode"),
166
+ "check_definition_display_name": obj.get("checkDefinitionDisplayName"),
167
+ "check_run_as_at": obj.get("checkRunAsAt"),
168
+ "result_type": obj.get("resultType"),
169
+ "rule_set_key": obj.get("ruleSetKey"),
170
+ "rule_set_display_name": obj.get("ruleSetDisplayName"),
171
+ "rule_key": obj.get("ruleKey"),
172
+ "rule_display_name": obj.get("ruleDisplayName"),
173
+ "rule_description": obj.get("ruleDescription"),
174
+ "rule_formula": obj.get("ruleFormula"),
175
+ "severity": obj.get("severity"),
176
+ "lusid_entity": LusidEntityResult.from_dict(obj.get("lusidEntity")) if obj.get("lusidEntity") is not None else None,
177
+ "count_rule_breaches": obj.get("countRuleBreaches"),
178
+ "error_detail": obj.get("errorDetail"),
179
+ "result_id": obj.get("resultId")
180
+ })
181
+ return _obj
@@ -26,11 +26,12 @@ class DerivationFormulaExplainRequest(BaseModel):
26
26
  DerivationFormulaExplainRequest
27
27
  """
28
28
  entity_type: StrictStr = Field(...,alias="entityType", description="The type of the entity for which the derived property or partial formula is to be resolved against.")
29
- scope: Optional[StrictStr] = Field(None,alias="scope", description="The scope that entity exists in. If no scope is provided, the default scope for the entity type will be used.")
30
- identifier: Optional[Dict[str, StrictStr]] = Field(None, description="An identifier key/value pair that uniquely identifies the entity to explain the derived property for. This can be either an instrument identifier, an identifier property, or a scope/code identifier which take the format {entityType}/default/code : {identifier}. If no identifiers are provided, the logical evaluation tree without resolved values is returned.")
31
- property_key: Optional[StrictStr] = Field(None,alias="propertyKey", description="The key of the derived property to explain. This takes the format {domain}/{scope}/{code}.")
32
- partial_formula: Optional[StrictStr] = Field(None,alias="partialFormula", description="A partial derivation formula to explain. Can be provided in lieu of a property key.")
33
- __properties = ["entityType", "scope", "identifier", "propertyKey", "partialFormula"]
29
+ scope: Optional[StrictStr] = Field(None,alias="scope", description="(Optional) The scope that entity exists in. If no scope is provided, the default scope for the entity type will be used.")
30
+ code: Optional[StrictStr] = Field(None,alias="code", description="(Optional) The code of the entity, to be provided for entities that support scope/code retrieval. If no code or identifier is provided, the logical evaluation tree without resolved values is returned.")
31
+ identifier: Optional[Dict[str, StrictStr]] = Field(None, description="(Optional). An identifier key/value pair that uniquely identifies the entity to explain the derived property for. This can be either an instrument identifier, or an identifier property. If no code or identifier is provided, the logical evaluation tree without resolved values is returned.")
32
+ property_key: Optional[StrictStr] = Field(None,alias="propertyKey", description="(Optional) The key of the derived property to get an explanation for. This takes the format {domain}/{scope}/{code}. One of either property key or partial formula must be provided.")
33
+ partial_formula: Optional[StrictStr] = Field(None,alias="partialFormula", description="(Optional) A partial derivation formula to get an explanation for. Can be provided in lieu of a property key. One of either property key or partial formula must be provided.")
34
+ __properties = ["entityType", "scope", "code", "identifier", "propertyKey", "partialFormula"]
34
35
 
35
36
  class Config:
36
37
  """Pydantic configuration"""
@@ -69,6 +70,11 @@ class DerivationFormulaExplainRequest(BaseModel):
69
70
  if self.scope is None and "scope" in self.__fields_set__:
70
71
  _dict['scope'] = None
71
72
 
73
+ # set to None if code (nullable) is None
74
+ # and __fields_set__ contains the field
75
+ if self.code is None and "code" in self.__fields_set__:
76
+ _dict['code'] = None
77
+
72
78
  # set to None if identifier (nullable) is None
73
79
  # and __fields_set__ contains the field
74
80
  if self.identifier is None and "identifier" in self.__fields_set__:
@@ -98,6 +104,7 @@ class DerivationFormulaExplainRequest(BaseModel):
98
104
  _obj = DerivationFormulaExplainRequest.parse_obj({
99
105
  "entity_type": obj.get("entityType"),
100
106
  "scope": obj.get("scope"),
107
+ "code": obj.get("code"),
101
108
  "identifier": obj.get("identifier"),
102
109
  "property_key": obj.get("propertyKey"),
103
110
  "partial_formula": obj.get("partialFormula")
@@ -0,0 +1,109 @@
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
+ from datetime import datetime
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import StrictStr, Field, BaseModel, Field, constr, validator
23
+
24
+ class LusidEntityDataset(BaseModel):
25
+ """
26
+ Contains the run-time parameters that are appropriate for check definitions with datasetSchema.type = \"LusidEntity\" # noqa: E501
27
+ """
28
+ as_at: Optional[datetime] = Field(None, alias="asAt", description="The asAt date to fetch the data. Nullable. Defaults to latest.")
29
+ effective_at: Optional[datetime] = Field(None, alias="effectiveAt", description="The effectiveAt date to fetch the data. Nullable. Defaults to latest.")
30
+ scope: StrictStr = Field(...,alias="scope", description="The scope of the entities to check. Required.")
31
+ as_at_modified_since: Optional[datetime] = Field(None, alias="asAtModifiedSince", description="Nullable. Filters the dataset for version.asAtModified greater than or equal to this value.")
32
+ selector_attribute: StrictStr = Field(...,alias="selectorAttribute", description="An attribute (field name, propertyKey or identifierKey) to use to sub-divide the dataset.")
33
+ selector_value: StrictStr = Field(...,alias="selectorValue", description="The value of the above attribute used to sub-divide the dataset.")
34
+ return_identifier_key: Optional[StrictStr] = Field(None,alias="returnIdentifierKey", description="The preferred identifier to return for entities with multiple external identifiers.")
35
+ __properties = ["asAt", "effectiveAt", "scope", "asAtModifiedSince", "selectorAttribute", "selectorValue", "returnIdentifierKey"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def __str__(self):
43
+ """For `print` and `pprint`"""
44
+ return pprint.pformat(self.dict(by_alias=False))
45
+
46
+ def __repr__(self):
47
+ """For `print` and `pprint`"""
48
+ return self.to_str()
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.dict(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ return json.dumps(self.to_dict())
57
+
58
+ @classmethod
59
+ def from_json(cls, json_str: str) -> LusidEntityDataset:
60
+ """Create an instance of LusidEntityDataset from a JSON string"""
61
+ return cls.from_dict(json.loads(json_str))
62
+
63
+ def to_dict(self):
64
+ """Returns the dictionary representation of the model using alias"""
65
+ _dict = self.dict(by_alias=True,
66
+ exclude={
67
+ },
68
+ exclude_none=True)
69
+ # set to None if as_at (nullable) is None
70
+ # and __fields_set__ contains the field
71
+ if self.as_at is None and "as_at" in self.__fields_set__:
72
+ _dict['asAt'] = None
73
+
74
+ # set to None if effective_at (nullable) is None
75
+ # and __fields_set__ contains the field
76
+ if self.effective_at is None and "effective_at" in self.__fields_set__:
77
+ _dict['effectiveAt'] = None
78
+
79
+ # set to None if as_at_modified_since (nullable) is None
80
+ # and __fields_set__ contains the field
81
+ if self.as_at_modified_since is None and "as_at_modified_since" in self.__fields_set__:
82
+ _dict['asAtModifiedSince'] = None
83
+
84
+ # set to None if return_identifier_key (nullable) is None
85
+ # and __fields_set__ contains the field
86
+ if self.return_identifier_key is None and "return_identifier_key" in self.__fields_set__:
87
+ _dict['returnIdentifierKey'] = None
88
+
89
+ return _dict
90
+
91
+ @classmethod
92
+ def from_dict(cls, obj: dict) -> LusidEntityDataset:
93
+ """Create an instance of LusidEntityDataset from a dict"""
94
+ if obj is None:
95
+ return None
96
+
97
+ if not isinstance(obj, dict):
98
+ return LusidEntityDataset.parse_obj(obj)
99
+
100
+ _obj = LusidEntityDataset.parse_obj({
101
+ "as_at": obj.get("asAt"),
102
+ "effective_at": obj.get("effectiveAt"),
103
+ "scope": obj.get("scope"),
104
+ "as_at_modified_since": obj.get("asAtModifiedSince"),
105
+ "selector_attribute": obj.get("selectorAttribute"),
106
+ "selector_value": obj.get("selectorValue"),
107
+ "return_identifier_key": obj.get("returnIdentifierKey")
108
+ })
109
+ return _obj
@@ -0,0 +1,121 @@
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
+ from datetime import datetime
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictStr
23
+
24
+ class LusidEntityResult(BaseModel):
25
+ """
26
+ Represents LUSID entity details for a data quality check result # noqa: E501
27
+ """
28
+ as_at: Optional[datetime] = Field(None, alias="asAt", description="The as-at timestamp for the entity")
29
+ effective_at: Optional[datetime] = Field(None, alias="effectiveAt", description="The effective-at timestamp for the entity")
30
+ entity_type: Optional[StrictStr] = Field(None,alias="entityType", description="The type of the LUSID entity")
31
+ scope: Optional[StrictStr] = Field(None,alias="scope", description="The scope of the entity")
32
+ identifier_key: Optional[StrictStr] = Field(None,alias="identifierKey", description="The identifier key for the entity")
33
+ identifier_value: Optional[StrictStr] = Field(None,alias="identifierValue", description="The identifier value for the entity")
34
+ entity_unique_id: Optional[StrictStr] = Field(None,alias="entityUniqueId", description="The unique identifier for the entity")
35
+ display_name: Optional[StrictStr] = Field(None,alias="displayName", description="The display name of the entity")
36
+ __properties = ["asAt", "effectiveAt", "entityType", "scope", "identifierKey", "identifierValue", "entityUniqueId", "displayName"]
37
+
38
+ class Config:
39
+ """Pydantic configuration"""
40
+ allow_population_by_field_name = True
41
+ validate_assignment = True
42
+
43
+ def __str__(self):
44
+ """For `print` and `pprint`"""
45
+ return pprint.pformat(self.dict(by_alias=False))
46
+
47
+ def __repr__(self):
48
+ """For `print` and `pprint`"""
49
+ return self.to_str()
50
+
51
+ def to_str(self) -> str:
52
+ """Returns the string representation of the model using alias"""
53
+ return pprint.pformat(self.dict(by_alias=True))
54
+
55
+ def to_json(self) -> str:
56
+ """Returns the JSON representation of the model using alias"""
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> LusidEntityResult:
61
+ """Create an instance of LusidEntityResult from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self):
65
+ """Returns the dictionary representation of the model using alias"""
66
+ _dict = self.dict(by_alias=True,
67
+ exclude={
68
+ },
69
+ exclude_none=True)
70
+ # set to None if entity_type (nullable) is None
71
+ # and __fields_set__ contains the field
72
+ if self.entity_type is None and "entity_type" in self.__fields_set__:
73
+ _dict['entityType'] = None
74
+
75
+ # set to None if scope (nullable) is None
76
+ # and __fields_set__ contains the field
77
+ if self.scope is None and "scope" in self.__fields_set__:
78
+ _dict['scope'] = None
79
+
80
+ # set to None if identifier_key (nullable) is None
81
+ # and __fields_set__ contains the field
82
+ if self.identifier_key is None and "identifier_key" in self.__fields_set__:
83
+ _dict['identifierKey'] = None
84
+
85
+ # set to None if identifier_value (nullable) is None
86
+ # and __fields_set__ contains the field
87
+ if self.identifier_value is None and "identifier_value" in self.__fields_set__:
88
+ _dict['identifierValue'] = None
89
+
90
+ # set to None if entity_unique_id (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.entity_unique_id is None and "entity_unique_id" in self.__fields_set__:
93
+ _dict['entityUniqueId'] = None
94
+
95
+ # set to None if display_name (nullable) is None
96
+ # and __fields_set__ contains the field
97
+ if self.display_name is None and "display_name" in self.__fields_set__:
98
+ _dict['displayName'] = None
99
+
100
+ return _dict
101
+
102
+ @classmethod
103
+ def from_dict(cls, obj: dict) -> LusidEntityResult:
104
+ """Create an instance of LusidEntityResult from a dict"""
105
+ if obj is None:
106
+ return None
107
+
108
+ if not isinstance(obj, dict):
109
+ return LusidEntityResult.parse_obj(obj)
110
+
111
+ _obj = LusidEntityResult.parse_obj({
112
+ "as_at": obj.get("asAt"),
113
+ "effective_at": obj.get("effectiveAt"),
114
+ "entity_type": obj.get("entityType"),
115
+ "scope": obj.get("scope"),
116
+ "identifier_key": obj.get("identifierKey"),
117
+ "identifier_value": obj.get("identifierValue"),
118
+ "entity_unique_id": obj.get("entityUniqueId"),
119
+ "display_name": obj.get("displayName")
120
+ })
121
+ return _obj
@@ -0,0 +1,83 @@
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, StrictInt
23
+ from lusid.models.lusid_entity_dataset import LusidEntityDataset
24
+
25
+ class RunCheckRequest(BaseModel):
26
+ """
27
+ RunCheckRequest
28
+ """
29
+ lusid_entity_dataset: Optional[LusidEntityDataset] = Field(None, alias="lusidEntityDataset")
30
+ limit_individual_breaches_per_rule: Optional[StrictInt] = Field(None, alias="limitIndividualBreachesPerRule", description="The maximum number of individual breaches to return per rule. Defaults to 100 if not specified.")
31
+ __properties = ["lusidEntityDataset", "limitIndividualBreachesPerRule"]
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) -> RunCheckRequest:
56
+ """Create an instance of RunCheckRequest 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 lusid_entity_dataset
66
+ if self.lusid_entity_dataset:
67
+ _dict['lusidEntityDataset'] = self.lusid_entity_dataset.to_dict()
68
+ return _dict
69
+
70
+ @classmethod
71
+ def from_dict(cls, obj: dict) -> RunCheckRequest:
72
+ """Create an instance of RunCheckRequest from a dict"""
73
+ if obj is None:
74
+ return None
75
+
76
+ if not isinstance(obj, dict):
77
+ return RunCheckRequest.parse_obj(obj)
78
+
79
+ _obj = RunCheckRequest.parse_obj({
80
+ "lusid_entity_dataset": LusidEntityDataset.from_dict(obj.get("lusidEntityDataset")) if obj.get("lusidEntityDataset") is not None else None,
81
+ "limit_individual_breaches_per_rule": obj.get("limitIndividualBreachesPerRule")
82
+ })
83
+ return _obj
@@ -0,0 +1,90 @@
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 StrictStr, Field, BaseModel, Field, conlist
23
+ from lusid.models.data_quality_check_result import DataQualityCheckResult
24
+
25
+ class RunCheckResponse(BaseModel):
26
+ """
27
+ Response containing the results of running data quality checks # noqa: E501
28
+ """
29
+ data_quality_check_results: Optional[conlist(DataQualityCheckResult)] = Field(None, alias="dataQualityCheckResults", description="Collection of data quality check results")
30
+ __properties = ["dataQualityCheckResults"]
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) -> RunCheckResponse:
55
+ """Create an instance of RunCheckResponse 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
+ # override the default output from pydantic by calling `to_dict()` of each item in data_quality_check_results (list)
65
+ _items = []
66
+ if self.data_quality_check_results:
67
+ for _item in self.data_quality_check_results:
68
+ if _item:
69
+ _items.append(_item.to_dict())
70
+ _dict['dataQualityCheckResults'] = _items
71
+ # set to None if data_quality_check_results (nullable) is None
72
+ # and __fields_set__ contains the field
73
+ if self.data_quality_check_results is None and "data_quality_check_results" in self.__fields_set__:
74
+ _dict['dataQualityCheckResults'] = None
75
+
76
+ return _dict
77
+
78
+ @classmethod
79
+ def from_dict(cls, obj: dict) -> RunCheckResponse:
80
+ """Create an instance of RunCheckResponse from a dict"""
81
+ if obj is None:
82
+ return None
83
+
84
+ if not isinstance(obj, dict):
85
+ return RunCheckResponse.parse_obj(obj)
86
+
87
+ _obj = RunCheckResponse.parse_obj({
88
+ "data_quality_check_results": [DataQualityCheckResult.from_dict(_item) for _item in obj.get("dataQualityCheckResults")] if obj.get("dataQualityCheckResults") is not None else None
89
+ })
90
+ return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.983
3
+ Version: 2.1.984
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -134,6 +134,7 @@ Class | Method | HTTP request | Description
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
135
  *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
136
  *CheckDefinitionsApi* | [**list_check_definitions**](docs/CheckDefinitionsApi.md#list_check_definitions) | **GET** /api/dataquality/checkdefinitions | [EXPERIMENTAL] ListCheckDefinitions: List Check Definitions
137
+ *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.
137
138
  *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
138
139
  *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.
139
140
  *ComplexMarketDataApi* | [**get_complex_market_data**](docs/ComplexMarketDataApi.md#get_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$get | GetComplexMarketData: Get complex market data
@@ -1003,6 +1004,7 @@ Class | Method | HTTP request | Description
1003
1004
  - [DataMapping](docs/DataMapping.md)
1004
1005
  - [DataModelMembership](docs/DataModelMembership.md)
1005
1006
  - [DataModelSummary](docs/DataModelSummary.md)
1007
+ - [DataQualityCheckResult](docs/DataQualityCheckResult.md)
1006
1008
  - [DataScope](docs/DataScope.md)
1007
1009
  - [DataType](docs/DataType.md)
1008
1010
  - [DataTypeEntity](docs/DataTypeEntity.md)
@@ -1305,6 +1307,8 @@ Class | Method | HTTP request | Description
1305
1307
  - [LoanPeriod](docs/LoanPeriod.md)
1306
1308
  - [LoanPrincipalRepaymentEvent](docs/LoanPrincipalRepaymentEvent.md)
1307
1309
  - [LockPeriodDiaryEntryRequest](docs/LockPeriodDiaryEntryRequest.md)
1310
+ - [LusidEntityDataset](docs/LusidEntityDataset.md)
1311
+ - [LusidEntityResult](docs/LusidEntityResult.md)
1308
1312
  - [LusidInstrument](docs/LusidInstrument.md)
1309
1313
  - [LusidProblemDetails](docs/LusidProblemDetails.md)
1310
1314
  - [LusidTradeTicket](docs/LusidTradeTicket.md)
@@ -1719,6 +1723,8 @@ Class | Method | HTTP request | Description
1719
1723
  - [RoundingConfigurationComponent](docs/RoundingConfigurationComponent.md)
1720
1724
  - [RoundingConvention](docs/RoundingConvention.md)
1721
1725
  - [RulesInterval](docs/RulesInterval.md)
1726
+ - [RunCheckRequest](docs/RunCheckRequest.md)
1727
+ - [RunCheckResponse](docs/RunCheckResponse.md)
1722
1728
  - [ScalingMethodology](docs/ScalingMethodology.md)
1723
1729
  - [Schedule](docs/Schedule.md)
1724
1730
  - [ScheduleType](docs/ScheduleType.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=7jMeT4MnqKaDCaHGTuADcb6mDXE0QE1V2SSlJn_ZF4k,147489
1
+ lusid/__init__.py,sha256=EbQBMkuCMi064zl-N5pXaMvvKrVtj1dAu1IqXZn_D9o,147939
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=zw7_DW1YE54fudySGCKA-xchihCFleCZXlyum3dlllg,61393
14
+ lusid/api/check_definitions_api.py,sha256=TpMePfYFXB8NiUQYlqy7SWFIS-7ofxPGo3B97-Skg0U,70425
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=JMW3IaI4FuEEWzp0n8UHeDU5tpigS-0Zo7py9j3y9G0,17980
83
+ lusid/configuration.py,sha256=yBlr_BYRXWOXRFy-tBqJGI5P1p_C-MHvJtQ5KbBf9jE,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=ZTmJc1-mETQ0J9F39X7ggKOGs_q3niYo-Z1I0f8Kxko,139673
98
+ lusid/models/__init__.py,sha256=9umlLCsRnEkWYXQjro550_MXVFVFbKEMwPzObwIt5HY,140123
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
@@ -404,6 +404,7 @@ lusid/models/data_map_key.py,sha256=Gxe4xysNghZtf5G9d6ROkGF1tJiV5DwjsyGqD-undvI,
404
404
  lusid/models/data_mapping.py,sha256=xRTIttedYFaOM3uEOkMoNWUO5wd28igV-FeRmSI_WL8,3869
405
405
  lusid/models/data_model_membership.py,sha256=LFZAVhRrWOLM6wCvVKSiao4oAiLQuKRT7Tb9nmZjGYw,3143
406
406
  lusid/models/data_model_summary.py,sha256=UpqSS7hmnQI-53Ie8a8EB_Naj3SJI5-lJAYJINDump0,4103
407
+ lusid/models/data_quality_check_result.py,sha256=TFqBfAbOJ8FzbC5yuDOIXvAJwVZI-zBoEonuTcmr1c0,9348
407
408
  lusid/models/data_scope.py,sha256=YPqqE1B6oL7uqqx0YohrqqiQhMYBBT3GsSjo-l4qUdE,2579
408
409
  lusid/models/data_type.py,sha256=XYLnShK3ZT6EajnWw41dqrmABir6IaDqOaaRd8YEPB4,17901
409
410
  lusid/models/data_type_entity.py,sha256=eVjZ1fRZMwjY0WSM7LBQPjJ8CJpCHU53xkbsFGIWRck,7612
@@ -433,7 +434,7 @@ lusid/models/deleted_entity_response.py,sha256=B11ZEZwBxb_PLgbykXdBdLo6Iu6O8Otzq
433
434
  lusid/models/dependency_source_filter.py,sha256=4GKl5zFqKpWH4ob8beEW7AgSQ97NffrxUXVeRZZU8ec,5939
434
435
  lusid/models/deposit_close_event.py,sha256=XSLQbANRq2ADWjZ9N4tkxBlMd4RHQHaOQg16OTpbs8o,11341
435
436
  lusid/models/deposit_interest_payment_event.py,sha256=7gxsFwx1inGEEwSy0UGNoNxobTg67GASgoM8if031fw,11782
436
- lusid/models/derivation_formula_explain_request.py,sha256=p7eflm_24FSlekRFQrYn2mbkYg07Mdxvg_XfqvRF0vg,4481
437
+ lusid/models/derivation_formula_explain_request.py,sha256=aLS9Xf9GQ_GFRw3gdoMQJNDGhNyEYoYczTBJyzXQ4wE,5117
437
438
  lusid/models/derived_property_component.py,sha256=ZGFCCt8fCprTvEoCWk-A8zsmHndZCf757kQyOI2xuf0,5490
438
439
  lusid/models/described_address_key.py,sha256=UHxYHgYe3uM-6rQSTCzeEqft0ngze4TdCc-JesxCp_I,2932
439
440
  lusid/models/dialect.py,sha256=oiXWtrDKwEoOa9yGObMfDLhH0QlJAaKOgCRraDYiim0,3227
@@ -706,6 +707,8 @@ lusid/models/loan_interest_repayment_event.py,sha256=uA3m7fBv5OjVDgn_IVrQyZ10Rgg
706
707
  lusid/models/loan_period.py,sha256=aYoZLiXQRkjj0DWmXs4ihxHUxYW7Nc0-mfkFaSBAE4k,2383
707
708
  lusid/models/loan_principal_repayment_event.py,sha256=KLplsHpXj5CSi8jXWe-0ooEMfcqG-iGZXFgkdQBJ_Dg,13770
708
709
  lusid/models/lock_period_diary_entry_request.py,sha256=pqJQGtnL8Oy8WJ1St3QgA5HhESmvrunFPeBZ0fP9O3I,3126
710
+ lusid/models/lusid_entity_dataset.py,sha256=liQjIxxpwWPoOosVGiuQjd0GylhpgiEkXPsYHHU9Vmg,4706
711
+ lusid/models/lusid_entity_result.py,sha256=FcDEYQ-VyYsnfruavcwVwL8jxsQKURt9wfRAsPTr3ys,4934
709
712
  lusid/models/lusid_instrument.py,sha256=d_wmtAY5dtD8vEaAoAjKtmAryC3W_7N03oENYjs7Ba0,11448
710
713
  lusid/models/lusid_problem_details.py,sha256=BkzYYV7IX1vrdC8TZNika8RBXHp0s5HIUgq-Jh2Ohd0,4162
711
714
  lusid/models/lusid_trade_ticket.py,sha256=CLvRuxyzxlMC9Lc4fS0She-41iMedrIIEsN7DiYtS_o,12704
@@ -1120,6 +1123,8 @@ lusid/models/rounding_configuration.py,sha256=omjrizntdNApbrOAlN-a1b3n8Y4tOwY_PR
1120
1123
  lusid/models/rounding_configuration_component.py,sha256=UTD9vmAJSHzBsxG3YIpaJwVM1Gscf5zKh_-untK-Sg8,2320
1121
1124
  lusid/models/rounding_convention.py,sha256=x_rQcvmU6IWuTAibUPKP_izyiV6FU601X5EaUKHrb18,4299
1122
1125
  lusid/models/rules_interval.py,sha256=Bs3nL2xYdaaINdFZesQ0mfce5MeA95ose8aItQdCi1w,3003
1126
+ lusid/models/run_check_request.py,sha256=SteXDIntK3B27Ud85f2XSQq3thbt8zVjqvOmtdfzK2k,2881
1127
+ lusid/models/run_check_response.py,sha256=TUgY8poUxJPa9yEi8S2MF2AKu07a-0CRBCSYXIDbJiE,3179
1123
1128
  lusid/models/scaling_methodology.py,sha256=rP8s-CkaG3rZGG9E9MxCJu3NzbKKool_r_fB-DxMlg0,699
1124
1129
  lusid/models/schedule.py,sha256=cqHH_wfTBW4TXCab7IUf4Bs3GbGLyGQuoo2KTBMbKWE,7563
1125
1130
  lusid/models/schedule_type.py,sha256=hdAqhI4A6L1z-Ipwd2xaecMiTCFqRN1Bz1Lc2BWXZTg,955
@@ -1395,6 +1400,6 @@ lusid/models/year_month_day.py,sha256=gwSoxFwlD_wffKdddo1wfvAcLq3Cht3FHQidiaHzAA
1395
1400
  lusid/models/yield_curve_data.py,sha256=sifVmM0PAAB9wfI3aKf4dLbZS45bqiRv9ffZxQx7JRU,9663
1396
1401
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1397
1402
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1398
- lusid_sdk-2.1.983.dist-info/METADATA,sha256=Me8g8DKYV8Ju_E0Uy1GqhY4rLGlmE41Gp3kdiAqXMMk,234533
1399
- lusid_sdk-2.1.983.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1400
- lusid_sdk-2.1.983.dist-info/RECORD,,
1403
+ lusid_sdk-2.1.984.dist-info/METADATA,sha256=wFhlUclppwT3BuRXQS4zwa4me2geJRe6FFp7ry9XKt0,235038
1404
+ lusid_sdk-2.1.984.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1405
+ lusid_sdk-2.1.984.dist-info/RECORD,,