lusid-sdk 2.1.462__py3-none-any.whl → 2.1.542__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.
Files changed (107) hide show
  1. lusid/__init__.py +62 -0
  2. lusid/api/group_reconciliations_api.py +806 -79
  3. lusid/api/instruments_api.py +187 -0
  4. lusid/api/transaction_portfolios_api.py +202 -2
  5. lusid/configuration.py +1 -1
  6. lusid/models/__init__.py +62 -0
  7. lusid/models/accumulation_event.py +3 -3
  8. lusid/models/amortisation_event.py +3 -3
  9. lusid/models/applicable_instrument_event.py +7 -2
  10. lusid/models/asset_leg.py +1 -1
  11. lusid/models/batch_update_user_review_for_comparison_result_request.py +81 -0
  12. lusid/models/batch_update_user_review_for_comparison_result_response.py +146 -0
  13. lusid/models/bond_coupon_event.py +10 -5
  14. lusid/models/bond_default_event.py +3 -3
  15. lusid/models/bond_principal_event.py +10 -5
  16. lusid/models/bonus_issue_event.py +3 -3
  17. lusid/models/call_on_intermediate_securities_event.py +139 -0
  18. lusid/models/capital_distribution_event.py +3 -3
  19. lusid/models/cash_dividend_event.py +3 -3
  20. lusid/models/cash_flow_event.py +3 -3
  21. lusid/models/cds_credit_event.py +3 -3
  22. lusid/models/cdx_credit_event.py +3 -3
  23. lusid/models/close_event.py +3 -3
  24. lusid/models/comparison_attribute_value_pair.py +71 -0
  25. lusid/models/component_transaction.py +10 -3
  26. lusid/models/create_staging_rule_set_request.py +1 -6
  27. lusid/models/credit_premium_cash_flow_event.py +3 -3
  28. lusid/models/custodian_account_request.py +1 -1
  29. lusid/models/delete_instrument_properties_response.py +7 -1
  30. lusid/models/delete_instrument_response.py +7 -1
  31. lusid/models/delete_instruments_response.py +22 -1
  32. lusid/models/deleted_entity_response.py +7 -1
  33. lusid/models/dividend_option_event.py +3 -3
  34. lusid/models/dividend_reinvestment_event.py +9 -4
  35. lusid/models/equity_option.py +19 -4
  36. lusid/models/exchange_traded_option_contract_details.py +1 -1
  37. lusid/models/exercise_event.py +3 -3
  38. lusid/models/expiry_event.py +3 -3
  39. lusid/models/fee.py +10 -3
  40. lusid/models/fee_request.py +13 -6
  41. lusid/models/fund_valuation_point_data.py +1 -7
  42. lusid/models/future_expiry_event.py +3 -3
  43. lusid/models/fx_forward_settlement_event.py +3 -3
  44. lusid/models/group_reconciliation_aggregate_attribute_values.py +86 -0
  45. lusid/models/group_reconciliation_comparison_result.py +148 -0
  46. lusid/models/group_reconciliation_core_attribute_values.py +86 -0
  47. lusid/models/group_reconciliation_date_pair.py +81 -0
  48. lusid/models/group_reconciliation_dates.py +78 -0
  49. lusid/models/group_reconciliation_instance_id.py +71 -0
  50. lusid/models/group_reconciliation_result_statuses.py +89 -0
  51. lusid/models/group_reconciliation_result_types.py +96 -0
  52. lusid/models/group_reconciliation_review_statuses.py +96 -0
  53. lusid/models/group_reconciliation_run_details.py +76 -0
  54. lusid/models/group_reconciliation_run_request.py +75 -0
  55. lusid/models/group_reconciliation_run_response.py +77 -0
  56. lusid/models/group_reconciliation_summary.py +121 -0
  57. lusid/models/group_reconciliation_user_review.py +112 -0
  58. lusid/models/group_reconciliation_user_review_add.py +88 -0
  59. lusid/models/group_reconciliation_user_review_break_code.py +80 -0
  60. lusid/models/group_reconciliation_user_review_comment.py +80 -0
  61. lusid/models/group_reconciliation_user_review_match_key.py +80 -0
  62. lusid/models/group_reconciliation_user_review_remove.py +88 -0
  63. lusid/models/informational_error_event.py +3 -3
  64. lusid/models/informational_event.py +3 -3
  65. lusid/models/instrument_event.py +10 -5
  66. lusid/models/instrument_event_type.py +5 -0
  67. lusid/models/intermediate_securities_distribution_event.py +140 -0
  68. lusid/models/mastered_instrument.py +10 -10
  69. lusid/models/maturity_event.py +3 -3
  70. lusid/models/mbs_coupon_event.py +10 -5
  71. lusid/models/mbs_interest_deferral_event.py +10 -5
  72. lusid/models/mbs_interest_shortfall_event.py +10 -5
  73. lusid/models/mbs_principal_event.py +10 -5
  74. lusid/models/mbs_principal_write_off_event.py +10 -5
  75. lusid/models/merger_event.py +3 -3
  76. lusid/models/new_instrument.py +1 -1
  77. lusid/models/open_event.py +3 -3
  78. lusid/models/option_exercise_cash_event.py +144 -0
  79. lusid/models/option_exercise_election.py +73 -0
  80. lusid/models/option_exercise_physical_event.py +149 -0
  81. lusid/models/paged_resource_list_of_group_reconciliation_comparison_result.py +113 -0
  82. lusid/models/previous_fund_valuation_point_data.py +3 -9
  83. lusid/models/pricing_options.py +8 -2
  84. lusid/models/protection_payout_cash_flow_event.py +102 -0
  85. lusid/models/raw_vendor_event.py +3 -3
  86. lusid/models/reset_event.py +3 -3
  87. lusid/models/resource_list_of_output_transaction.py +113 -0
  88. lusid/models/return_zero_pv_options.py +69 -0
  89. lusid/models/reverse_stock_split_event.py +3 -3
  90. lusid/models/scrip_dividend_event.py +3 -3
  91. lusid/models/spin_off_event.py +3 -3
  92. lusid/models/stock_dividend_event.py +3 -3
  93. lusid/models/stock_split_event.py +3 -3
  94. lusid/models/swap_cash_flow_event.py +3 -3
  95. lusid/models/swap_principal_event.py +3 -3
  96. lusid/models/target_tax_lot.py +23 -2
  97. lusid/models/target_tax_lot_request.py +23 -2
  98. lusid/models/tender_event.py +3 -3
  99. lusid/models/total_return_swap.py +1 -1
  100. lusid/models/transaction_price.py +3 -3
  101. lusid/models/transaction_price_type.py +2 -0
  102. lusid/models/transition_event.py +3 -3
  103. lusid/models/trigger_event.py +3 -3
  104. lusid/models/update_staging_rule_set_request.py +1 -6
  105. {lusid_sdk-2.1.462.dist-info → lusid_sdk-2.1.542.dist-info}/METADATA +40 -3
  106. {lusid_sdk-2.1.462.dist-info → lusid_sdk-2.1.542.dist-info}/RECORD +107 -76
  107. {lusid_sdk-2.1.462.dist-info → lusid_sdk-2.1.542.dist-info}/WHEEL +0 -0
@@ -0,0 +1,112 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, conlist
23
+ from lusid.models.group_reconciliation_user_review_break_code import GroupReconciliationUserReviewBreakCode
24
+ from lusid.models.group_reconciliation_user_review_comment import GroupReconciliationUserReviewComment
25
+ from lusid.models.group_reconciliation_user_review_match_key import GroupReconciliationUserReviewMatchKey
26
+
27
+ class GroupReconciliationUserReview(BaseModel):
28
+ """
29
+ GroupReconciliationUserReview
30
+ """
31
+ break_codes: Optional[conlist(GroupReconciliationUserReviewBreakCode)] = Field(None, alias="breakCodes", description="A list of break codes shared between the reconciliation runs of the same run instance and result hash.")
32
+ match_keys: Optional[conlist(GroupReconciliationUserReviewMatchKey)] = Field(None, alias="matchKeys", description="A list of match keys shared between the reconciliation runs of the same run instance and result hash.")
33
+ comments: Optional[conlist(GroupReconciliationUserReviewComment)] = Field(None, description="A list of comments shared between the reconciliation runs of the same run instance and result hash.")
34
+ __properties = ["breakCodes", "matchKeys", "comments"]
35
+
36
+ class Config:
37
+ """Pydantic configuration"""
38
+ allow_population_by_field_name = True
39
+ validate_assignment = True
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.dict(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> GroupReconciliationUserReview:
51
+ """Create an instance of GroupReconciliationUserReview from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self):
55
+ """Returns the dictionary representation of the model using alias"""
56
+ _dict = self.dict(by_alias=True,
57
+ exclude={
58
+ },
59
+ exclude_none=True)
60
+ # override the default output from pydantic by calling `to_dict()` of each item in break_codes (list)
61
+ _items = []
62
+ if self.break_codes:
63
+ for _item in self.break_codes:
64
+ if _item:
65
+ _items.append(_item.to_dict())
66
+ _dict['breakCodes'] = _items
67
+ # override the default output from pydantic by calling `to_dict()` of each item in match_keys (list)
68
+ _items = []
69
+ if self.match_keys:
70
+ for _item in self.match_keys:
71
+ if _item:
72
+ _items.append(_item.to_dict())
73
+ _dict['matchKeys'] = _items
74
+ # override the default output from pydantic by calling `to_dict()` of each item in comments (list)
75
+ _items = []
76
+ if self.comments:
77
+ for _item in self.comments:
78
+ if _item:
79
+ _items.append(_item.to_dict())
80
+ _dict['comments'] = _items
81
+ # set to None if break_codes (nullable) is None
82
+ # and __fields_set__ contains the field
83
+ if self.break_codes is None and "break_codes" in self.__fields_set__:
84
+ _dict['breakCodes'] = None
85
+
86
+ # set to None if match_keys (nullable) is None
87
+ # and __fields_set__ contains the field
88
+ if self.match_keys is None and "match_keys" in self.__fields_set__:
89
+ _dict['matchKeys'] = None
90
+
91
+ # set to None if comments (nullable) is None
92
+ # and __fields_set__ contains the field
93
+ if self.comments is None and "comments" in self.__fields_set__:
94
+ _dict['comments'] = None
95
+
96
+ return _dict
97
+
98
+ @classmethod
99
+ def from_dict(cls, obj: dict) -> GroupReconciliationUserReview:
100
+ """Create an instance of GroupReconciliationUserReview from a dict"""
101
+ if obj is None:
102
+ return None
103
+
104
+ if not isinstance(obj, dict):
105
+ return GroupReconciliationUserReview.parse_obj(obj)
106
+
107
+ _obj = GroupReconciliationUserReview.parse_obj({
108
+ "break_codes": [GroupReconciliationUserReviewBreakCode.from_dict(_item) for _item in obj.get("breakCodes")] if obj.get("breakCodes") is not None else None,
109
+ "match_keys": [GroupReconciliationUserReviewMatchKey.from_dict(_item) for _item in obj.get("matchKeys")] if obj.get("matchKeys") is not None else None,
110
+ "comments": [GroupReconciliationUserReviewComment.from_dict(_item) for _item in obj.get("comments")] if obj.get("comments") is not None else None
111
+ })
112
+ return _obj
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr
23
+
24
+ class GroupReconciliationUserReviewAdd(BaseModel):
25
+ """
26
+ GroupReconciliationUserReviewAdd
27
+ """
28
+ break_code: Optional[StrictStr] = Field(None, alias="breakCode", description="The break code of the reconciliation result.")
29
+ match_key: Optional[StrictStr] = Field(None, alias="matchKey", description="The match key of the reconciliation result.")
30
+ comment_text: Optional[StrictStr] = Field(None, alias="commentText", description="User's comment regarding the reconciliation result.")
31
+ __properties = ["breakCode", "matchKey", "commentText"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> GroupReconciliationUserReviewAdd:
48
+ """Create an instance of GroupReconciliationUserReviewAdd from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ # set to None if break_code (nullable) is None
58
+ # and __fields_set__ contains the field
59
+ if self.break_code is None and "break_code" in self.__fields_set__:
60
+ _dict['breakCode'] = None
61
+
62
+ # set to None if match_key (nullable) is None
63
+ # and __fields_set__ contains the field
64
+ if self.match_key is None and "match_key" in self.__fields_set__:
65
+ _dict['matchKey'] = None
66
+
67
+ # set to None if comment_text (nullable) is None
68
+ # and __fields_set__ contains the field
69
+ if self.comment_text is None and "comment_text" in self.__fields_set__:
70
+ _dict['commentText'] = None
71
+
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: dict) -> GroupReconciliationUserReviewAdd:
76
+ """Create an instance of GroupReconciliationUserReviewAdd from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return GroupReconciliationUserReviewAdd.parse_obj(obj)
82
+
83
+ _obj = GroupReconciliationUserReviewAdd.parse_obj({
84
+ "break_code": obj.get("breakCode"),
85
+ "match_key": obj.get("matchKey"),
86
+ "comment_text": obj.get("commentText")
87
+ })
88
+ return _obj
@@ -0,0 +1,80 @@
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 BaseModel, Field, constr
23
+
24
+ class GroupReconciliationUserReviewBreakCode(BaseModel):
25
+ """
26
+ GroupReconciliationUserReviewBreakCode
27
+ """
28
+ break_code: constr(strict=True, min_length=1) = Field(..., alias="breakCode", description="The break code of the reconciliation result.")
29
+ user_id: Optional[constr(strict=True, max_length=16384, min_length=0)] = Field(None, alias="userId", description="Id of the user who made a User Review input.")
30
+ as_at_added: Optional[datetime] = Field(None, alias="asAtAdded", description="The timestamp of the added User Review input.")
31
+ as_at_invalid: Optional[datetime] = Field(None, alias="asAtInvalid", description="The timestamp when User Review input became invalid e.g. because of the different attribute values within the new run.")
32
+ __properties = ["breakCode", "userId", "asAtAdded", "asAtInvalid"]
33
+
34
+ class Config:
35
+ """Pydantic configuration"""
36
+ allow_population_by_field_name = True
37
+ validate_assignment = True
38
+
39
+ def to_str(self) -> str:
40
+ """Returns the string representation of the model using alias"""
41
+ return pprint.pformat(self.dict(by_alias=True))
42
+
43
+ def to_json(self) -> str:
44
+ """Returns the JSON representation of the model using alias"""
45
+ return json.dumps(self.to_dict())
46
+
47
+ @classmethod
48
+ def from_json(cls, json_str: str) -> GroupReconciliationUserReviewBreakCode:
49
+ """Create an instance of GroupReconciliationUserReviewBreakCode from a JSON string"""
50
+ return cls.from_dict(json.loads(json_str))
51
+
52
+ def to_dict(self):
53
+ """Returns the dictionary representation of the model using alias"""
54
+ _dict = self.dict(by_alias=True,
55
+ exclude={
56
+ },
57
+ exclude_none=True)
58
+ # set to None if user_id (nullable) is None
59
+ # and __fields_set__ contains the field
60
+ if self.user_id is None and "user_id" in self.__fields_set__:
61
+ _dict['userId'] = None
62
+
63
+ return _dict
64
+
65
+ @classmethod
66
+ def from_dict(cls, obj: dict) -> GroupReconciliationUserReviewBreakCode:
67
+ """Create an instance of GroupReconciliationUserReviewBreakCode from a dict"""
68
+ if obj is None:
69
+ return None
70
+
71
+ if not isinstance(obj, dict):
72
+ return GroupReconciliationUserReviewBreakCode.parse_obj(obj)
73
+
74
+ _obj = GroupReconciliationUserReviewBreakCode.parse_obj({
75
+ "break_code": obj.get("breakCode"),
76
+ "user_id": obj.get("userId"),
77
+ "as_at_added": obj.get("asAtAdded"),
78
+ "as_at_invalid": obj.get("asAtInvalid")
79
+ })
80
+ return _obj
@@ -0,0 +1,80 @@
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 BaseModel, Field, constr
23
+
24
+ class GroupReconciliationUserReviewComment(BaseModel):
25
+ """
26
+ GroupReconciliationUserReviewComment
27
+ """
28
+ comment_text: constr(strict=True, min_length=1) = Field(..., alias="commentText", description="User's comment regarding the reconciliation result.")
29
+ user_id: Optional[constr(strict=True, max_length=16384, min_length=0)] = Field(None, alias="userId", description="Id of the user who made a User Review input.")
30
+ as_at_added: Optional[datetime] = Field(None, alias="asAtAdded", description="The timestamp of the added User Review input.")
31
+ as_at_invalid: Optional[datetime] = Field(None, alias="asAtInvalid", description="The timestamp when User Review input became invalid e.g. because of the different attribute values within the new run.")
32
+ __properties = ["commentText", "userId", "asAtAdded", "asAtInvalid"]
33
+
34
+ class Config:
35
+ """Pydantic configuration"""
36
+ allow_population_by_field_name = True
37
+ validate_assignment = True
38
+
39
+ def to_str(self) -> str:
40
+ """Returns the string representation of the model using alias"""
41
+ return pprint.pformat(self.dict(by_alias=True))
42
+
43
+ def to_json(self) -> str:
44
+ """Returns the JSON representation of the model using alias"""
45
+ return json.dumps(self.to_dict())
46
+
47
+ @classmethod
48
+ def from_json(cls, json_str: str) -> GroupReconciliationUserReviewComment:
49
+ """Create an instance of GroupReconciliationUserReviewComment from a JSON string"""
50
+ return cls.from_dict(json.loads(json_str))
51
+
52
+ def to_dict(self):
53
+ """Returns the dictionary representation of the model using alias"""
54
+ _dict = self.dict(by_alias=True,
55
+ exclude={
56
+ },
57
+ exclude_none=True)
58
+ # set to None if user_id (nullable) is None
59
+ # and __fields_set__ contains the field
60
+ if self.user_id is None and "user_id" in self.__fields_set__:
61
+ _dict['userId'] = None
62
+
63
+ return _dict
64
+
65
+ @classmethod
66
+ def from_dict(cls, obj: dict) -> GroupReconciliationUserReviewComment:
67
+ """Create an instance of GroupReconciliationUserReviewComment from a dict"""
68
+ if obj is None:
69
+ return None
70
+
71
+ if not isinstance(obj, dict):
72
+ return GroupReconciliationUserReviewComment.parse_obj(obj)
73
+
74
+ _obj = GroupReconciliationUserReviewComment.parse_obj({
75
+ "comment_text": obj.get("commentText"),
76
+ "user_id": obj.get("userId"),
77
+ "as_at_added": obj.get("asAtAdded"),
78
+ "as_at_invalid": obj.get("asAtInvalid")
79
+ })
80
+ return _obj
@@ -0,0 +1,80 @@
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 BaseModel, Field, constr
23
+
24
+ class GroupReconciliationUserReviewMatchKey(BaseModel):
25
+ """
26
+ GroupReconciliationUserReviewMatchKey
27
+ """
28
+ match_key: constr(strict=True, min_length=1) = Field(..., alias="matchKey", description="The match key of the reconciliation result.")
29
+ user_id: Optional[constr(strict=True, max_length=16384, min_length=0)] = Field(None, alias="userId", description="Id of the user who made a User Review input.")
30
+ as_at_added: Optional[datetime] = Field(None, alias="asAtAdded", description="The timestamp of the added User Review input.")
31
+ as_at_invalid: Optional[datetime] = Field(None, alias="asAtInvalid", description="The timestamp when User Review input became invalid e.g. because of the different attribute values within the new run.")
32
+ __properties = ["matchKey", "userId", "asAtAdded", "asAtInvalid"]
33
+
34
+ class Config:
35
+ """Pydantic configuration"""
36
+ allow_population_by_field_name = True
37
+ validate_assignment = True
38
+
39
+ def to_str(self) -> str:
40
+ """Returns the string representation of the model using alias"""
41
+ return pprint.pformat(self.dict(by_alias=True))
42
+
43
+ def to_json(self) -> str:
44
+ """Returns the JSON representation of the model using alias"""
45
+ return json.dumps(self.to_dict())
46
+
47
+ @classmethod
48
+ def from_json(cls, json_str: str) -> GroupReconciliationUserReviewMatchKey:
49
+ """Create an instance of GroupReconciliationUserReviewMatchKey from a JSON string"""
50
+ return cls.from_dict(json.loads(json_str))
51
+
52
+ def to_dict(self):
53
+ """Returns the dictionary representation of the model using alias"""
54
+ _dict = self.dict(by_alias=True,
55
+ exclude={
56
+ },
57
+ exclude_none=True)
58
+ # set to None if user_id (nullable) is None
59
+ # and __fields_set__ contains the field
60
+ if self.user_id is None and "user_id" in self.__fields_set__:
61
+ _dict['userId'] = None
62
+
63
+ return _dict
64
+
65
+ @classmethod
66
+ def from_dict(cls, obj: dict) -> GroupReconciliationUserReviewMatchKey:
67
+ """Create an instance of GroupReconciliationUserReviewMatchKey from a dict"""
68
+ if obj is None:
69
+ return None
70
+
71
+ if not isinstance(obj, dict):
72
+ return GroupReconciliationUserReviewMatchKey.parse_obj(obj)
73
+
74
+ _obj = GroupReconciliationUserReviewMatchKey.parse_obj({
75
+ "match_key": obj.get("matchKey"),
76
+ "user_id": obj.get("userId"),
77
+ "as_at_added": obj.get("asAtAdded"),
78
+ "as_at_invalid": obj.get("asAtInvalid")
79
+ })
80
+ return _obj
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import BaseModel, Field
23
+
24
+ class GroupReconciliationUserReviewRemove(BaseModel):
25
+ """
26
+ GroupReconciliationUserReviewRemove
27
+ """
28
+ break_code_as_at_added: Optional[datetime] = Field(None, alias="breakCodeAsAtAdded", description="The timestamp of the added User Review input.")
29
+ match_key_as_at_added: Optional[datetime] = Field(None, alias="matchKeyAsAtAdded", description="The timestamp of the added User Review input.")
30
+ comment_text_as_at_added: Optional[datetime] = Field(None, alias="commentTextAsAtAdded", description="The timestamp of the added User Review input.")
31
+ __properties = ["breakCodeAsAtAdded", "matchKeyAsAtAdded", "commentTextAsAtAdded"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> GroupReconciliationUserReviewRemove:
48
+ """Create an instance of GroupReconciliationUserReviewRemove from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ # set to None if break_code_as_at_added (nullable) is None
58
+ # and __fields_set__ contains the field
59
+ if self.break_code_as_at_added is None and "break_code_as_at_added" in self.__fields_set__:
60
+ _dict['breakCodeAsAtAdded'] = None
61
+
62
+ # set to None if match_key_as_at_added (nullable) is None
63
+ # and __fields_set__ contains the field
64
+ if self.match_key_as_at_added is None and "match_key_as_at_added" in self.__fields_set__:
65
+ _dict['matchKeyAsAtAdded'] = None
66
+
67
+ # set to None if comment_text_as_at_added (nullable) is None
68
+ # and __fields_set__ contains the field
69
+ if self.comment_text_as_at_added is None and "comment_text_as_at_added" in self.__fields_set__:
70
+ _dict['commentTextAsAtAdded'] = None
71
+
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: dict) -> GroupReconciliationUserReviewRemove:
76
+ """Create an instance of GroupReconciliationUserReviewRemove from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return GroupReconciliationUserReviewRemove.parse_obj(obj)
82
+
83
+ _obj = GroupReconciliationUserReviewRemove.parse_obj({
84
+ "break_code_as_at_added": obj.get("breakCodeAsAtAdded"),
85
+ "match_key_as_at_added": obj.get("matchKeyAsAtAdded"),
86
+ "comment_text_as_at_added": obj.get("commentTextAsAtAdded")
87
+ })
88
+ return _obj
@@ -29,15 +29,15 @@ class InformationalErrorEvent(InstrumentEvent):
29
29
  error_detail: constr(strict=True, min_length=1) = Field(..., alias="errorDetail", description="The details of the error")
30
30
  error_reason: constr(strict=True, min_length=1) = Field(..., alias="errorReason", description="The error reason")
31
31
  effective_at: datetime = Field(..., alias="effectiveAt", description="The effective date of the evaulation")
32
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent")
32
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent, CallOnIntermediateSecuritiesEvent, IntermediateSecuritiesDistributionEvent, OptionExercisePhysicalEvent, OptionExerciseCashEvent, ProtectionPayoutCashFlowEvent")
33
33
  additional_properties: Dict[str, Any] = {}
34
34
  __properties = ["instrumentEventType", "errorDetail", "errorReason", "effectiveAt"]
35
35
 
36
36
  @validator('instrument_event_type')
37
37
  def instrument_event_type_validate_enum(cls, value):
38
38
  """Validates the enum"""
39
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent'):
40
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent')")
39
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent'):
40
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent')")
41
41
  return value
42
42
 
43
43
  class Config:
@@ -31,15 +31,15 @@ class InformationalEvent(InstrumentEvent):
31
31
  anchor_date: datetime = Field(..., alias="anchorDate", description="In the case of a point event, the single date on which the event occurs. In the case of an event which is spread over a window, e.g. a barrier or American option, the start of that window.")
32
32
  event_window_end: Optional[datetime] = Field(None, alias="eventWindowEnd", description="In the case of a point event this is identical to the anchor date. In the case of an event that is spread over a window, this is the end of that window.")
33
33
  diagnostics: Optional[ResultValueDictionary] = None
34
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent")
34
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent, CallOnIntermediateSecuritiesEvent, IntermediateSecuritiesDistributionEvent, OptionExercisePhysicalEvent, OptionExerciseCashEvent, ProtectionPayoutCashFlowEvent")
35
35
  additional_properties: Dict[str, Any] = {}
36
36
  __properties = ["instrumentEventType", "eventType", "anchorDate", "eventWindowEnd", "diagnostics"]
37
37
 
38
38
  @validator('instrument_event_type')
39
39
  def instrument_event_type_validate_enum(cls, value):
40
40
  """Validates the enum"""
41
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent'):
42
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent')")
41
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent'):
42
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent')")
43
43
  return value
44
44
 
45
45
  class Config: