lusid-sdk 2.1.982__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/api/funds_api.py CHANGED
@@ -3463,22 +3463,22 @@ class FundsApi:
3463
3463
 
3464
3464
 
3465
3465
  @overload
3466
- async def get_valuation_point_transactions(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, **kwargs) -> ValuationPointResourceListOfAccountedTransaction: # noqa: E501
3466
+ async def get_valuation_point_transactions(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, show_cancelled_transactions : Annotated[Optional[StrictBool], Field(description="Option to specify whether or not to include cancelled transactions, including previous versions of transactions which have since been amended. Defaults to False if not specified.")] = None, **kwargs) -> ValuationPointResourceListOfAccountedTransaction: # noqa: E501
3467
3467
  ...
3468
3468
 
3469
3469
  @overload
3470
- def get_valuation_point_transactions(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, async_req: Optional[bool]=True, **kwargs) -> ValuationPointResourceListOfAccountedTransaction: # noqa: E501
3470
+ def get_valuation_point_transactions(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, show_cancelled_transactions : Annotated[Optional[StrictBool], Field(description="Option to specify whether or not to include cancelled transactions, including previous versions of transactions which have since been amended. Defaults to False if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> ValuationPointResourceListOfAccountedTransaction: # noqa: E501
3471
3471
  ...
3472
3472
 
3473
3473
  @validate_arguments
3474
- def get_valuation_point_transactions(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ValuationPointResourceListOfAccountedTransaction, Awaitable[ValuationPointResourceListOfAccountedTransaction]]: # noqa: E501
3474
+ def get_valuation_point_transactions(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, show_cancelled_transactions : Annotated[Optional[StrictBool], Field(description="Option to specify whether or not to include cancelled transactions, including previous versions of transactions which have since been amended. Defaults to False if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ValuationPointResourceListOfAccountedTransaction, Awaitable[ValuationPointResourceListOfAccountedTransaction]]: # noqa: E501
3475
3475
  """[EXPERIMENTAL] GetValuationPointTransactions: Get the Transactions for the given Fund. # noqa: E501
3476
3476
 
3477
3477
  Gets the Transactions for the given Valuation Point for a Fund. # noqa: E501
3478
3478
  This method makes a synchronous HTTP request by default. To make an
3479
3479
  asynchronous HTTP request, please pass async_req=True
3480
3480
 
3481
- >>> thread = api.get_valuation_point_transactions(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, nav_type_code, data_model_scope, data_model_code, async_req=True)
3481
+ >>> thread = api.get_valuation_point_transactions(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, nav_type_code, data_model_scope, data_model_code, show_cancelled_transactions, async_req=True)
3482
3482
  >>> result = thread.get()
3483
3483
 
3484
3484
  :param scope: The scope of the Fund. (required)
@@ -3503,6 +3503,8 @@ class FundsApi:
3503
3503
  :type data_model_scope: str
3504
3504
  :param data_model_code: The optional code of a Custom Data Model to use
3505
3505
  :type data_model_code: str
3506
+ :param show_cancelled_transactions: Option to specify whether or not to include cancelled transactions, including previous versions of transactions which have since been amended. Defaults to False if not specified.
3507
+ :type show_cancelled_transactions: bool
3506
3508
  :param async_req: Whether to execute the request asynchronously.
3507
3509
  :type async_req: bool, optional
3508
3510
  :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
@@ -3519,17 +3521,17 @@ class FundsApi:
3519
3521
  raise ValueError(message)
3520
3522
  if async_req is not None:
3521
3523
  kwargs['async_req'] = async_req
3522
- return self.get_valuation_point_transactions_with_http_info(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, nav_type_code, data_model_scope, data_model_code, **kwargs) # noqa: E501
3524
+ return self.get_valuation_point_transactions_with_http_info(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, nav_type_code, data_model_scope, data_model_code, show_cancelled_transactions, **kwargs) # noqa: E501
3523
3525
 
3524
3526
  @validate_arguments
3525
- def get_valuation_point_transactions_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, **kwargs) -> ApiResponse: # noqa: E501
3527
+ def get_valuation_point_transactions_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Fund.")], code : Annotated[StrictStr, Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_query_parameters : Annotated[ValuationPointDataQueryParameters, Field(..., description="The arguments to use for querying the transactions.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve transactions. Defaults to returning the latest version of each transaction if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set.")] = None, limit : Annotated[Optional[conint(strict=True)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, page : Annotated[Optional[StrictStr], Field( description="The pagination token to use to continue listing transactions from a previous call to GetValuationPointTransactions.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the 'Instrument', 'Transaction', 'Portfolio', 'Account', 'LegalEntity' or 'CustodianAccount' domain to decorate onto the transactions.")] = None, nav_type_code : Annotated[Optional[StrictStr], Field( description="When provided, runs against the specified NAV Type, otherwise the Primary NAV Type will be used.")] = None, data_model_scope : Annotated[Optional[StrictStr], Field( description="The optional scope of a Custom Data Model to use")] = None, data_model_code : Annotated[Optional[StrictStr], Field( description="The optional code of a Custom Data Model to use")] = None, show_cancelled_transactions : Annotated[Optional[StrictBool], Field(description="Option to specify whether or not to include cancelled transactions, including previous versions of transactions which have since been amended. Defaults to False if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
3526
3528
  """[EXPERIMENTAL] GetValuationPointTransactions: Get the Transactions for the given Fund. # noqa: E501
3527
3529
 
3528
3530
  Gets the Transactions for the given Valuation Point for a Fund. # noqa: E501
3529
3531
  This method makes a synchronous HTTP request by default. To make an
3530
3532
  asynchronous HTTP request, please pass async_req=True
3531
3533
 
3532
- >>> thread = api.get_valuation_point_transactions_with_http_info(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, nav_type_code, data_model_scope, data_model_code, async_req=True)
3534
+ >>> thread = api.get_valuation_point_transactions_with_http_info(scope, code, valuation_point_data_query_parameters, as_at, filter, limit, page, property_keys, nav_type_code, data_model_scope, data_model_code, show_cancelled_transactions, async_req=True)
3533
3535
  >>> result = thread.get()
3534
3536
 
3535
3537
  :param scope: The scope of the Fund. (required)
@@ -3554,6 +3556,8 @@ class FundsApi:
3554
3556
  :type data_model_scope: str
3555
3557
  :param data_model_code: The optional code of a Custom Data Model to use
3556
3558
  :type data_model_code: str
3559
+ :param show_cancelled_transactions: Option to specify whether or not to include cancelled transactions, including previous versions of transactions which have since been amended. Defaults to False if not specified.
3560
+ :type show_cancelled_transactions: bool
3557
3561
  :param async_req: Whether to execute the request asynchronously.
3558
3562
  :type async_req: bool, optional
3559
3563
  :param _preload_content: if False, the ApiResponse.data will
@@ -3591,7 +3595,8 @@ class FundsApi:
3591
3595
  'property_keys',
3592
3596
  'nav_type_code',
3593
3597
  'data_model_scope',
3594
- 'data_model_code'
3598
+ 'data_model_code',
3599
+ 'show_cancelled_transactions'
3595
3600
  ]
3596
3601
  _all_params.extend(
3597
3602
  [
@@ -3657,6 +3662,9 @@ class FundsApi:
3657
3662
  if _params.get('data_model_code') is not None: # noqa: E501
3658
3663
  _query_params.append(('dataModelCode', _params['data_model_code']))
3659
3664
 
3665
+ if _params.get('show_cancelled_transactions') is not None: # noqa: E501
3666
+ _query_params.append(('showCancelledTransactions', _params['show_cancelled_transactions']))
3667
+
3660
3668
  # process the header parameters
3661
3669
  _header_params = dict(_params.get('_headers', {}))
3662
3670
  # process the form parameters
@@ -753,7 +753,7 @@ class PropertyDefinitionsApi:
753
753
 
754
754
  @validate_arguments
755
755
  def get_derived_formula_explanation(self, derivation_formula_explain_request : Annotated[DerivationFormulaExplainRequest, Field(..., description="Information about the derivation formula to explain, and optionally, the entity to resolve the formula against.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to resolve the entity. Defaults to returning the latest asAt in LUSID if not specified.")] = None, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to resolve the entity. Defaults to the current LUSID system datetime if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[DerivedPropertyComponent, Awaitable[DerivedPropertyComponent]]: # noqa: E501
756
- """[INTERNAL] GetDerivedFormulaExplanation: Get explanation of a derived property formula # noqa: E501
756
+ """GetDerivedFormulaExplanation: Get explanation of a derived property formula # noqa: E501
757
757
 
758
758
  Produces a manifest that shows the nested hierarchy of any source properties and the actions taken upon them to create the derived property. This can either be done against an existing entity, which will produce a manifest that includes the values of the source properties at the specified effective date time, or it can be done without providing an entity which will produce a manifest without values. # noqa: E501
759
759
  This method makes a synchronous HTTP request by default. To make an
@@ -788,7 +788,7 @@ class PropertyDefinitionsApi:
788
788
 
789
789
  @validate_arguments
790
790
  def get_derived_formula_explanation_with_http_info(self, derivation_formula_explain_request : Annotated[DerivationFormulaExplainRequest, Field(..., description="Information about the derivation formula to explain, and optionally, the entity to resolve the formula against.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to resolve the entity. Defaults to returning the latest asAt in LUSID if not specified.")] = None, effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime or cut label at which to resolve the entity. Defaults to the current LUSID system datetime if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
791
- """[INTERNAL] GetDerivedFormulaExplanation: Get explanation of a derived property formula # noqa: E501
791
+ """GetDerivedFormulaExplanation: Get explanation of a derived property formula # noqa: E501
792
792
 
793
793
  Produces a manifest that shows the nested hierarchy of any source properties and the actions taken upon them to create the derived property. This can either be done against an existing entity, which will produce a manifest that includes the values of the source properties at the specified effective date time, or it can be done without providing an entity which will produce a manifest without values. # noqa: E501
794
794
  This method makes a synchronous HTTP request by default. To make an
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.8375\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.982
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
@@ -493,7 +494,7 @@ Class | Method | HTTP request | Description
493
494
  *PropertyDefinitionsApi* | [**create_property_definition**](docs/PropertyDefinitionsApi.md#create_property_definition) | **POST** /api/propertydefinitions | CreatePropertyDefinition: Create property definition
494
495
  *PropertyDefinitionsApi* | [**delete_property_definition**](docs/PropertyDefinitionsApi.md#delete_property_definition) | **DELETE** /api/propertydefinitions/{domain}/{scope}/{code} | DeletePropertyDefinition: Delete property definition
495
496
  *PropertyDefinitionsApi* | [**delete_property_definition_properties**](docs/PropertyDefinitionsApi.md#delete_property_definition_properties) | **POST** /api/propertydefinitions/{domain}/{scope}/{code}/properties/$delete | [EARLY ACCESS] DeletePropertyDefinitionProperties: Delete property definition properties
496
- *PropertyDefinitionsApi* | [**get_derived_formula_explanation**](docs/PropertyDefinitionsApi.md#get_derived_formula_explanation) | **POST** /api/propertydefinitions/derived/$formulaExplanation | [INTERNAL] GetDerivedFormulaExplanation: Get explanation of a derived property formula
497
+ *PropertyDefinitionsApi* | [**get_derived_formula_explanation**](docs/PropertyDefinitionsApi.md#get_derived_formula_explanation) | **POST** /api/propertydefinitions/derived/$formulaExplanation | GetDerivedFormulaExplanation: Get explanation of a derived property formula
497
498
  *PropertyDefinitionsApi* | [**get_multiple_property_definitions**](docs/PropertyDefinitionsApi.md#get_multiple_property_definitions) | **GET** /api/propertydefinitions | GetMultiplePropertyDefinitions: Get multiple property definitions
498
499
  *PropertyDefinitionsApi* | [**get_property_definition**](docs/PropertyDefinitionsApi.md#get_property_definition) | **GET** /api/propertydefinitions/{domain}/{scope}/{code} | GetPropertyDefinition: Get property definition
499
500
  *PropertyDefinitionsApi* | [**get_property_definition_property_time_series**](docs/PropertyDefinitionsApi.md#get_property_definition_property_time_series) | **GET** /api/propertydefinitions/{domain}/{scope}/{code}/properties/time-series | [EARLY ACCESS] GetPropertyDefinitionPropertyTimeSeries: Get Property Definition Property Time Series
@@ -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
@@ -29,7 +29,7 @@ lusid/api/entities_api.py,sha256=uImduqQPNkudngZn85Zwk35oAG-JEFvGEpADfJeMf_E,836
29
29
  lusid/api/executions_api.py,sha256=ZL8xmOxGpjIJtdU7lCdwcapILElWx7FGBDr8cjskCZs,44076
30
30
  lusid/api/fee_types_api.py,sha256=qRVfNS91XHBlD_CrewsPMsetIHB6M0mn3RWbD4LTuro,54620
31
31
  lusid/api/fund_configuration_api.py,sha256=18oHsK1ncAobjd8_uDHAI7UbWz4Vm5bPVubFmBdoERo,72665
32
- lusid/api/funds_api.py,sha256=Xl1Kyo9ijxkaKdipKdN2pPXYop6pyHpCijnDAtn8CiI,403694
32
+ lusid/api/funds_api.py,sha256=5EV7Jd-o8tFrC9i0e5ymS_XYG7iPY6cusIU2WNCe8lY,405792
33
33
  lusid/api/group_reconciliations_api.py,sha256=aoGqJa8X-uS9rVr7xOJOdbeu8jYLqYM2DoHVH7UGTj0,162917
34
34
  lusid/api/identifier_definitions_api.py,sha256=x79uhIBI0BJITjwmE7oPMWFOtox60FrrL9Dq4YH60MI,64305
35
35
  lusid/api/instrument_event_types_api.py,sha256=RHuGNd8Xf8x0vyvAUFwRNgEB_kpzQTtbsBwlFC3QJcs,79862
@@ -49,7 +49,7 @@ lusid/api/persons_api.py,sha256=SlNOfUj8ww6vBD-zQoisNNe45scWn1QNkDOZu8ostb4,2502
49
49
  lusid/api/placements_api.py,sha256=LsjljDP59rUcpkkGG_hJX-HX06fFIeNnoVomsFpL-QY,45498
50
50
  lusid/api/portfolio_groups_api.py,sha256=dnbfzVTb7Ytn2PjHW4KcQD7w9PK2Swjz1zpgPPdPXXA,371285
51
51
  lusid/api/portfolios_api.py,sha256=noShU8FEhBz1FEIWc9WQMuPnk9mlhSmZuZcoKax8SCY,417537
52
- lusid/api/property_definitions_api.py,sha256=BSLa9E5QkhQlq1oOll4MDiAQjGjHMEED1UdKwNkCXaI,149143
52
+ lusid/api/property_definitions_api.py,sha256=oj0-nNVyLzCQ23DNyrZwOsa99QAHtVPI4ZIyJSz5p6U,149121
53
53
  lusid/api/queryable_keys_api.py,sha256=oZWb9BugLDEKmYay_DhuYu4B7pwEramzz5dBHiqgGsc,10297
54
54
  lusid/api/quotes_api.py,sha256=39bA_DRmTQDsvQ16xHqiAb3aOAGCBOBbxKJ2M_C6mao,112799
55
55
  lusid/api/reconciliations_api.py,sha256=3E0OpDv4f6Si8wF1HCEItx0wp27Ii_UHR5FG40f6F5Q,140586
@@ -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=8yJbQ6yItn8hicgROmu3IodDoGf680wcc_DChhn6yNg,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.982.dist-info/METADATA,sha256=gvmYlADwRwUgZdRVRJIPCytNbexHhGHlIxrtg3Rpbmo,234544
1399
- lusid_sdk-2.1.982.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1400
- lusid_sdk-2.1.982.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,,