lusid-sdk 2.1.572__py3-none-any.whl → 2.1.574__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
@@ -290,6 +290,7 @@ from lusid.models.configuration_recipe import ConfigurationRecipe
290
290
  from lusid.models.constant_volatility_surface import ConstantVolatilitySurface
291
291
  from lusid.models.constituents_adjustment_header import ConstituentsAdjustmentHeader
292
292
  from lusid.models.contract_for_difference import ContractForDifference
293
+ from lusid.models.contribution_to_non_passing_rule_detail import ContributionToNonPassingRuleDetail
293
294
  from lusid.models.corporate_action import CorporateAction
294
295
  from lusid.models.corporate_action_source import CorporateActionSource
295
296
  from lusid.models.corporate_action_transition import CorporateActionTransition
@@ -1511,6 +1512,7 @@ __all__ = [
1511
1512
  "ConstantVolatilitySurface",
1512
1513
  "ConstituentsAdjustmentHeader",
1513
1514
  "ContractForDifference",
1515
+ "ContributionToNonPassingRuleDetail",
1514
1516
  "CorporateAction",
1515
1517
  "CorporateActionSource",
1516
1518
  "CorporateActionTransition",
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.7028\n"\
448
+ "Version of the API: 0.11.7030\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
@@ -209,6 +209,7 @@ from lusid.models.configuration_recipe import ConfigurationRecipe
209
209
  from lusid.models.constant_volatility_surface import ConstantVolatilitySurface
210
210
  from lusid.models.constituents_adjustment_header import ConstituentsAdjustmentHeader
211
211
  from lusid.models.contract_for_difference import ContractForDifference
212
+ from lusid.models.contribution_to_non_passing_rule_detail import ContributionToNonPassingRuleDetail
212
213
  from lusid.models.corporate_action import CorporateAction
213
214
  from lusid.models.corporate_action_source import CorporateActionSource
214
215
  from lusid.models.corporate_action_transition import CorporateActionTransition
@@ -1350,6 +1351,7 @@ __all__ = [
1350
1351
  "ConstantVolatilitySurface",
1351
1352
  "ConstituentsAdjustmentHeader",
1352
1353
  "ContractForDifference",
1354
+ "ContributionToNonPassingRuleDetail",
1353
1355
  "CorporateAction",
1354
1356
  "CorporateActionSource",
1355
1357
  "CorporateActionTransition",
@@ -0,0 +1,89 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictBool, StrictStr, conlist
23
+ from lusid.models.resource_id import ResourceId
24
+
25
+ class ContributionToNonPassingRuleDetail(BaseModel):
26
+ """
27
+ ContributionToNonPassingRuleDetail
28
+ """
29
+ rule_id: Optional[ResourceId] = Field(None, alias="ruleId")
30
+ rule_status: Optional[StrictStr] = Field(None, alias="ruleStatus", description="The status of the non-passing rule.")
31
+ breach_task_ids: Optional[conlist(StrictStr)] = Field(None, alias="breachTaskIds", description="The task ids associated with the compliance breach for this order's groups (if failing).")
32
+ likely_responsible_for_status: Optional[StrictBool] = Field(None, alias="likelyResponsibleForStatus", description="Whether this order is deemed as a likely contributor to the non-passing rule for this group.")
33
+ __properties = ["ruleId", "ruleStatus", "breachTaskIds", "likelyResponsibleForStatus"]
34
+
35
+ class Config:
36
+ """Pydantic configuration"""
37
+ allow_population_by_field_name = True
38
+ validate_assignment = True
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.dict(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ return json.dumps(self.to_dict())
47
+
48
+ @classmethod
49
+ def from_json(cls, json_str: str) -> ContributionToNonPassingRuleDetail:
50
+ """Create an instance of ContributionToNonPassingRuleDetail from a JSON string"""
51
+ return cls.from_dict(json.loads(json_str))
52
+
53
+ def to_dict(self):
54
+ """Returns the dictionary representation of the model using alias"""
55
+ _dict = self.dict(by_alias=True,
56
+ exclude={
57
+ },
58
+ exclude_none=True)
59
+ # override the default output from pydantic by calling `to_dict()` of rule_id
60
+ if self.rule_id:
61
+ _dict['ruleId'] = self.rule_id.to_dict()
62
+ # set to None if rule_status (nullable) is None
63
+ # and __fields_set__ contains the field
64
+ if self.rule_status is None and "rule_status" in self.__fields_set__:
65
+ _dict['ruleStatus'] = None
66
+
67
+ # set to None if breach_task_ids (nullable) is None
68
+ # and __fields_set__ contains the field
69
+ if self.breach_task_ids is None and "breach_task_ids" in self.__fields_set__:
70
+ _dict['breachTaskIds'] = None
71
+
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: dict) -> ContributionToNonPassingRuleDetail:
76
+ """Create an instance of ContributionToNonPassingRuleDetail from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return ContributionToNonPassingRuleDetail.parse_obj(obj)
82
+
83
+ _obj = ContributionToNonPassingRuleDetail.parse_obj({
84
+ "rule_id": ResourceId.from_dict(obj.get("ruleId")) if obj.get("ruleId") is not None else None,
85
+ "rule_status": obj.get("ruleStatus"),
86
+ "breach_task_ids": obj.get("breachTaskIds"),
87
+ "likely_responsible_for_status": obj.get("likelyResponsibleForStatus")
88
+ })
89
+ return _obj
@@ -18,8 +18,9 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
 
21
- from typing import Any, Dict, Optional
22
- from pydantic.v1 import BaseModel, Field, StrictStr, constr
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr, conlist, constr
23
+ from lusid.models.contribution_to_non_passing_rule_detail import ContributionToNonPassingRuleDetail
23
24
  from lusid.models.resource_id import ResourceId
24
25
 
25
26
  class OrderGraphBlockOrderDetail(BaseModel):
@@ -33,7 +34,8 @@ class OrderGraphBlockOrderDetail(BaseModel):
33
34
  portfolio_name: Optional[StrictStr] = Field(None, alias="portfolioName", description="The name of the order's referenced Portfolio.")
34
35
  order_approval_task_id: Optional[StrictStr] = Field(None, alias="orderApprovalTaskId", description="The task id associated with the approval state of the order.")
35
36
  order_approval_task_definition_id: Optional[ResourceId] = Field(None, alias="orderApprovalTaskDefinitionId")
36
- __properties = ["id", "complianceState", "approvalState", "portfolioId", "portfolioName", "orderApprovalTaskId", "orderApprovalTaskDefinitionId"]
37
+ non_passing_compliance_rule_results: Optional[conlist(ContributionToNonPassingRuleDetail)] = Field(None, alias="nonPassingComplianceRuleResults", description="The details of compliance rules in non-passing states.")
38
+ __properties = ["id", "complianceState", "approvalState", "portfolioId", "portfolioName", "orderApprovalTaskId", "orderApprovalTaskDefinitionId", "nonPassingComplianceRuleResults"]
37
39
 
38
40
  class Config:
39
41
  """Pydantic configuration"""
@@ -68,6 +70,13 @@ class OrderGraphBlockOrderDetail(BaseModel):
68
70
  # override the default output from pydantic by calling `to_dict()` of order_approval_task_definition_id
69
71
  if self.order_approval_task_definition_id:
70
72
  _dict['orderApprovalTaskDefinitionId'] = self.order_approval_task_definition_id.to_dict()
73
+ # override the default output from pydantic by calling `to_dict()` of each item in non_passing_compliance_rule_results (list)
74
+ _items = []
75
+ if self.non_passing_compliance_rule_results:
76
+ for _item in self.non_passing_compliance_rule_results:
77
+ if _item:
78
+ _items.append(_item.to_dict())
79
+ _dict['nonPassingComplianceRuleResults'] = _items
71
80
  # set to None if portfolio_name (nullable) is None
72
81
  # and __fields_set__ contains the field
73
82
  if self.portfolio_name is None and "portfolio_name" in self.__fields_set__:
@@ -78,6 +87,11 @@ class OrderGraphBlockOrderDetail(BaseModel):
78
87
  if self.order_approval_task_id is None and "order_approval_task_id" in self.__fields_set__:
79
88
  _dict['orderApprovalTaskId'] = None
80
89
 
90
+ # set to None if non_passing_compliance_rule_results (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.non_passing_compliance_rule_results is None and "non_passing_compliance_rule_results" in self.__fields_set__:
93
+ _dict['nonPassingComplianceRuleResults'] = None
94
+
81
95
  return _dict
82
96
 
83
97
  @classmethod
@@ -96,6 +110,7 @@ class OrderGraphBlockOrderDetail(BaseModel):
96
110
  "portfolio_id": ResourceId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None,
97
111
  "portfolio_name": obj.get("portfolioName"),
98
112
  "order_approval_task_id": obj.get("orderApprovalTaskId"),
99
- "order_approval_task_definition_id": ResourceId.from_dict(obj.get("orderApprovalTaskDefinitionId")) if obj.get("orderApprovalTaskDefinitionId") is not None else None
113
+ "order_approval_task_definition_id": ResourceId.from_dict(obj.get("orderApprovalTaskDefinitionId")) if obj.get("orderApprovalTaskDefinitionId") is not None else None,
114
+ "non_passing_compliance_rule_results": [ContributionToNonPassingRuleDetail.from_dict(_item) for _item in obj.get("nonPassingComplianceRuleResults")] if obj.get("nonPassingComplianceRuleResults") is not None else None
100
115
  })
101
116
  return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.572
3
+ Version: 2.1.574
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -823,6 +823,7 @@ Class | Method | HTTP request | Description
823
823
  - [ConstantVolatilitySurface](docs/ConstantVolatilitySurface.md)
824
824
  - [ConstituentsAdjustmentHeader](docs/ConstituentsAdjustmentHeader.md)
825
825
  - [ContractForDifference](docs/ContractForDifference.md)
826
+ - [ContributionToNonPassingRuleDetail](docs/ContributionToNonPassingRuleDetail.md)
826
827
  - [CorporateAction](docs/CorporateAction.md)
827
828
  - [CorporateActionSource](docs/CorporateActionSource.md)
828
829
  - [CorporateActionTransition](docs/CorporateActionTransition.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=8ygon1YnAaEg8-1lZQ9Kw2m-ydURNqgR-0BSUhuK1pY,128173
1
+ lusid/__init__.py,sha256=BwcuHXib4FT7Z9ewkibm4sADnZbkW8JjQA98V1tRGxk,128315
2
2
  lusid/api/__init__.py,sha256=6h2et93uMZgjdpV3C3_ITp_VbSBlwYu5BtqZ2puZPoI,5821
3
3
  lusid/api/abor_api.py,sha256=CC0f6Aqqiqkgmpguvoqe8teU0bRRuc771AdUSyI4rJw,158222
4
4
  lusid/api/abor_configuration_api.py,sha256=TmssMn5ni0mZV1q7LyPXYhBqqUGJqLYZapo8By8DFuI,63875
@@ -70,7 +70,7 @@ lusid/api/translation_api.py,sha256=nIyuLncCvVC5k2d7Nm32zR8AQ1dkrVm1OThkmELY_OM,
70
70
  lusid/api/workspace_api.py,sha256=mYQPqFUVf1VKYeWQUV5VkcdSqwejSmPDGd66Az86-_E,191319
71
71
  lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
72
72
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
73
- lusid/configuration.py,sha256=N5I3sASojanOPpiPNBKHPTG9rcNEp5V6-SDxixixgJo,17972
73
+ lusid/configuration.py,sha256=35FiKF3M68JYSf6aGJ8yl8pRbdmn-aSAvFXtiXXpM0o,17972
74
74
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
75
75
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
76
76
  lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
@@ -85,7 +85,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
85
85
  lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
86
86
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
87
87
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
88
- lusid/models/__init__.py,sha256=13vESVXa-spgKv7bkBEZkI5iHNwsz9ZW7Hn9txX8O_E,121320
88
+ lusid/models/__init__.py,sha256=M6oJsCag3G62sbuaVgtPRzeH1E_QVN3oUxtO1LoHgcs,121462
89
89
  lusid/models/a2_b_breakdown.py,sha256=Txi12EIQw3mH6NM-25QkOnHSQc3BVAWrP7yl9bZswSY,2947
90
90
  lusid/models/a2_b_category.py,sha256=k6NPAACi0CUjKyhdQac4obQSrPmp2PXD6lkAtCnyEFM,2725
91
91
  lusid/models/a2_b_data_record.py,sha256=zKGS2P4fzNpzdcGJiSIpkY4P3d_jAcawYfyuPCDeQgk,9737
@@ -281,6 +281,7 @@ lusid/models/configuration_recipe.py,sha256=O9gOzlKxFhnnzMxZQwPEwc29wF9fPS86s771
281
281
  lusid/models/constant_volatility_surface.py,sha256=1l4eyD78UaUsyjkX7NhPTuGUYgJY-nXzs4ZACc0dQQs,5178
282
282
  lusid/models/constituents_adjustment_header.py,sha256=2wnnigKPOPttpRFJa8yzJspIhyfdLq_8_H5QLsWOQy0,3233
283
283
  lusid/models/contract_for_difference.py,sha256=l5rAKgtcZRkx3E83m-qkcLr7Mmzf5MX8rRdyDu0MNq0,7393
284
+ lusid/models/contribution_to_non_passing_rule_detail.py,sha256=rhNT_zuuDBFojzGXea-tdIosXLw43rLDzPgK22ZqtCU,3556
284
285
  lusid/models/corporate_action.py,sha256=L2jWWTX1qcCL4sxqJw9cp6xjjbGo1aezfHlt84TMRTg,4151
285
286
  lusid/models/corporate_action_source.py,sha256=n99ggLwqEUf2ik9Z882RIYVS29IZqI2LqYlPgOBF3zQ,5011
286
287
  lusid/models/corporate_action_transition.py,sha256=ZGFoyxH9IrTwlOWPzf7P81dsoRjrbUlYHwgNaeb7a_E,3508
@@ -676,7 +677,7 @@ lusid/models/order_graph_block_allocation_detail.py,sha256=L51Rl6sgG8R7jiwRtSYH6
676
677
  lusid/models/order_graph_block_allocation_synopsis.py,sha256=PTlPTHowUDna144w0yNEESTbK5cZ4BWLDL_jur42Nro,2766
677
678
  lusid/models/order_graph_block_execution_detail.py,sha256=IEEbVtfZFelskKbK8IbcLqw30jICItS8zhvy7rfeUmA,2170
678
679
  lusid/models/order_graph_block_execution_synopsis.py,sha256=x_ljrTcK_HXqq6aqNBM-EUnsY6jTb1seZH5P-uFDcf4,2752
679
- lusid/models/order_graph_block_order_detail.py,sha256=JATf9welqDkvI5zRLClmOXjk5XDmt2YTSqPRPE1dmS4,4701
680
+ lusid/models/order_graph_block_order_detail.py,sha256=vkTckebvYHtwKZLdRK34t6ruYJ7v9KAKMQe_Jdd-4-c,6029
680
681
  lusid/models/order_graph_block_order_synopsis.py,sha256=UYhXd7jsqdLKia6UclAKUYcarMQ0z9SSahWcoLu5zfs,3207
681
682
  lusid/models/order_graph_block_placement_detail.py,sha256=gcm_3SH6OhYyLUz6OILwZs6cKzq4JUm0kO8Ya-YV780,2170
682
683
  lusid/models/order_graph_block_placement_synopsis.py,sha256=K2BAK89iTOPXtk9Fj-AJ0KhZduFhw3eOyHDecB3lccg,3243
@@ -1226,6 +1227,6 @@ lusid/models/workspace_update_request.py,sha256=uUXEpX-dJ5UiL9w1wMxIFeovSBiTJ-vi
1226
1227
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1227
1228
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1228
1229
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1229
- lusid_sdk-2.1.572.dist-info/METADATA,sha256=euVcV49eColI4gFtlxxps-Ojkby6AG8CjhoktMNKDrU,209088
1230
- lusid_sdk-2.1.572.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1231
- lusid_sdk-2.1.572.dist-info/RECORD,,
1230
+ lusid_sdk-2.1.574.dist-info/METADATA,sha256=W4qwWLVbOF2npf1Etjb2gDPMeZ0H8z_ljZPglKb5Xqo,209172
1231
+ lusid_sdk-2.1.574.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1232
+ lusid_sdk-2.1.574.dist-info/RECORD,,