lusid-sdk 2.1.198__py3-none-any.whl → 2.1.261__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (167) hide show
  1. lusid/__init__.py +36 -0
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/entities_api.py +360 -0
  4. lusid/api/fee_types_api.py +143 -0
  5. lusid/api/fund_configurations_api.py +944 -0
  6. lusid/api/funds_api.py +8 -16
  7. lusid/api/order_management_api.py +320 -1
  8. lusid/api/persons_api.py +167 -0
  9. lusid/api/portfolios_api.py +2 -2
  10. lusid/configuration.py +1 -1
  11. lusid/extensions/__init__.py +1 -1
  12. lusid/models/__init__.py +34 -0
  13. lusid/models/accounting_method.py +3 -0
  14. lusid/models/accumulation_event.py +3 -3
  15. lusid/models/address_key_compliance_parameter.py +3 -3
  16. lusid/models/address_key_list_compliance_parameter.py +3 -3
  17. lusid/models/amortisation_event.py +3 -3
  18. lusid/models/basket.py +3 -3
  19. lusid/models/bond.py +3 -3
  20. lusid/models/bond_coupon_event.py +3 -3
  21. lusid/models/bond_default_event.py +3 -3
  22. lusid/models/bond_principal_event.py +3 -3
  23. lusid/models/bool_compliance_parameter.py +3 -3
  24. lusid/models/bool_list_compliance_parameter.py +3 -3
  25. lusid/models/branch_step.py +3 -3
  26. lusid/models/branch_step_request.py +10 -3
  27. lusid/models/cancel_placements_response.py +153 -0
  28. lusid/models/cancelled_placement_result.py +83 -0
  29. lusid/models/cap_floor.py +3 -3
  30. lusid/models/capital_distribution_event.py +3 -3
  31. lusid/models/cash_dividend_event.py +3 -3
  32. lusid/models/cash_flow_event.py +3 -3
  33. lusid/models/cash_perpetual.py +3 -3
  34. lusid/models/cds_index.py +3 -3
  35. lusid/models/check_step.py +3 -3
  36. lusid/models/check_step_request.py +10 -3
  37. lusid/models/close_event.py +3 -3
  38. lusid/models/complex_bond.py +3 -3
  39. lusid/models/compliance_parameter.py +6 -5
  40. lusid/models/compliance_parameter_type.py +1 -0
  41. lusid/models/compliance_step.py +6 -5
  42. lusid/models/compliance_step_request.py +7 -6
  43. lusid/models/compliance_step_type.py +1 -0
  44. lusid/models/compliance_step_type_request.py +1 -0
  45. lusid/models/component_rule.py +83 -0
  46. lusid/models/contract_for_difference.py +3 -3
  47. lusid/models/create_derived_property_definition_request.py +3 -3
  48. lusid/models/create_derived_transaction_portfolio_request.py +3 -3
  49. lusid/models/create_property_definition_request.py +3 -3
  50. lusid/models/create_transaction_portfolio_request.py +3 -3
  51. lusid/models/credit_default_swap.py +3 -3
  52. lusid/models/currency_and_amount.py +2 -7
  53. lusid/models/date_time_compliance_parameter.py +3 -3
  54. lusid/models/date_time_list_compliance_parameter.py +3 -3
  55. lusid/models/decimal_compliance_parameter.py +3 -3
  56. lusid/models/decimal_list_compliance_parameter.py +3 -3
  57. lusid/models/dependency_source_filter.py +9 -2
  58. lusid/models/dividend_option_event.py +3 -3
  59. lusid/models/dividend_reinvestment_event.py +3 -3
  60. lusid/models/equity.py +3 -3
  61. lusid/models/equity_option.py +3 -3
  62. lusid/models/equity_swap.py +3 -3
  63. lusid/models/exchange_traded_option.py +3 -3
  64. lusid/models/exercise_event.py +3 -3
  65. lusid/models/exotic_instrument.py +3 -3
  66. lusid/models/expiry_event.py +3 -3
  67. lusid/models/fee.py +1 -15
  68. lusid/models/fee_accrual.py +32 -14
  69. lusid/models/fee_request.py +10 -1
  70. lusid/models/fee_transaction_template_specification.py +79 -0
  71. lusid/models/filter_predicate_compliance_parameter.py +3 -3
  72. lusid/models/filter_step.py +3 -3
  73. lusid/models/filter_step_request.py +10 -3
  74. lusid/models/fixed_leg.py +3 -3
  75. lusid/models/flexible_loan.py +3 -3
  76. lusid/models/floating_leg.py +3 -3
  77. lusid/models/forward_rate_agreement.py +3 -3
  78. lusid/models/fund_configuration.py +150 -0
  79. lusid/models/fund_configuration_properties.py +115 -0
  80. lusid/models/fund_configuration_request.py +130 -0
  81. lusid/models/fund_share_class.py +3 -3
  82. lusid/models/funding_leg.py +3 -3
  83. lusid/models/future.py +3 -3
  84. lusid/models/future_expiry_event.py +100 -0
  85. lusid/models/fx_forward.py +3 -3
  86. lusid/models/fx_forward_settlement_event.py +3 -3
  87. lusid/models/fx_option.py +3 -3
  88. lusid/models/fx_swap.py +3 -3
  89. lusid/models/group_by_selector_compliance_parameter.py +3 -3
  90. lusid/models/group_by_step.py +3 -3
  91. lusid/models/group_by_step_request.py +10 -3
  92. lusid/models/group_calculation_compliance_parameter.py +91 -0
  93. lusid/models/group_filter_predicate_compliance_parameter.py +3 -3
  94. lusid/models/group_filter_step.py +3 -3
  95. lusid/models/group_filter_step_request.py +10 -3
  96. lusid/models/inflation_leg.py +3 -3
  97. lusid/models/inflation_linked_bond.py +3 -3
  98. lusid/models/inflation_swap.py +3 -3
  99. lusid/models/informational_error_event.py +3 -3
  100. lusid/models/informational_event.py +3 -3
  101. lusid/models/instrument.py +7 -1
  102. lusid/models/instrument_entity.py +146 -0
  103. lusid/models/instrument_event.py +6 -5
  104. lusid/models/instrument_event_type.py +1 -0
  105. lusid/models/instrument_leg.py +3 -3
  106. lusid/models/instrument_list_compliance_parameter.py +3 -3
  107. lusid/models/instrument_type.py +2 -0
  108. lusid/models/interest_rate_swap.py +3 -3
  109. lusid/models/interest_rate_swaption.py +3 -3
  110. lusid/models/intermediate_compliance_step.py +3 -3
  111. lusid/models/intermediate_compliance_step_request.py +10 -3
  112. lusid/models/lusid_instrument.py +3 -3
  113. lusid/models/maturity_event.py +3 -3
  114. lusid/models/merger_event.py +3 -3
  115. lusid/models/open_event.py +3 -3
  116. lusid/models/order_flow_configuration.py +1 -1
  117. lusid/models/paged_resource_list_of_fund_configuration.py +113 -0
  118. lusid/models/percent_check_step.py +110 -0
  119. lusid/models/percent_check_step_request.py +98 -0
  120. lusid/models/placement_update_request.py +116 -0
  121. lusid/models/portfolio.py +3 -3
  122. lusid/models/portfolio_details.py +3 -3
  123. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  124. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  125. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  126. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  127. lusid/models/portfolio_without_href.py +3 -3
  128. lusid/models/property_definition.py +10 -4
  129. lusid/models/property_definition_entity.py +146 -0
  130. lusid/models/property_definition_search_result.py +3 -3
  131. lusid/models/property_domain.py +34 -0
  132. lusid/models/property_key_compliance_parameter.py +3 -3
  133. lusid/models/property_key_list_compliance_parameter.py +3 -3
  134. lusid/models/property_list_compliance_parameter.py +3 -3
  135. lusid/models/quote_access_metadata_rule_id.py +2 -2
  136. lusid/models/quote_series_id.py +2 -2
  137. lusid/models/raw_vendor_event.py +3 -3
  138. lusid/models/realised_gain_loss.py +2 -2
  139. lusid/models/recombine_step.py +3 -3
  140. lusid/models/reference_instrument.py +3 -3
  141. lusid/models/repo.py +3 -3
  142. lusid/models/reset_event.py +3 -3
  143. lusid/models/reverse_stock_split_event.py +3 -3
  144. lusid/models/scrip_dividend_event.py +3 -3
  145. lusid/models/simple_cash_flow_loan.py +3 -3
  146. lusid/models/simple_instrument.py +3 -3
  147. lusid/models/spin_off_event.py +3 -3
  148. lusid/models/staging_rule_approval_criteria.py +10 -3
  149. lusid/models/stock_dividend_event.py +3 -3
  150. lusid/models/stock_split_event.py +3 -3
  151. lusid/models/string_compliance_parameter.py +3 -3
  152. lusid/models/string_list_compliance_parameter.py +3 -3
  153. lusid/models/term_deposit.py +3 -3
  154. lusid/models/total_return_swap.py +3 -3
  155. lusid/models/transaction_configuration_movement_data.py +1 -1
  156. lusid/models/transaction_configuration_movement_data_request.py +1 -1
  157. lusid/models/transaction_field_map.py +7 -2
  158. lusid/models/transaction_type_calculation.py +11 -14
  159. lusid/models/transaction_type_movement.py +20 -3
  160. lusid/models/transition_event.py +3 -3
  161. lusid/models/trigger_event.py +3 -3
  162. lusid/models/update_placements_response.py +153 -0
  163. lusid/models/upsert_instruments_response.py +20 -1
  164. lusid/models/upsert_persons_response.py +114 -0
  165. {lusid_sdk-2.1.198.dist-info → lusid_sdk-2.1.261.dist-info}/METADATA +32 -4
  166. {lusid_sdk-2.1.198.dist-info → lusid_sdk-2.1.261.dist-info}/RECORD +167 -149
  167. {lusid_sdk-2.1.198.dist-info → lusid_sdk-2.1.261.dist-info}/WHEEL +0 -0
@@ -0,0 +1,113 @@
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, StrictStr, conlist
23
+ from lusid.models.fund_configuration import FundConfiguration
24
+ from lusid.models.link import Link
25
+
26
+ class PagedResourceListOfFundConfiguration(BaseModel):
27
+ """
28
+ PagedResourceListOfFundConfiguration
29
+ """
30
+ next_page: Optional[StrictStr] = Field(None, alias="nextPage")
31
+ previous_page: Optional[StrictStr] = Field(None, alias="previousPage")
32
+ values: conlist(FundConfiguration) = Field(...)
33
+ href: Optional[StrictStr] = None
34
+ links: Optional[conlist(Link)] = None
35
+ __properties = ["nextPage", "previousPage", "values", "href", "links"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.dict(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> PagedResourceListOfFundConfiguration:
52
+ """Create an instance of PagedResourceListOfFundConfiguration from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self):
56
+ """Returns the dictionary representation of the model using alias"""
57
+ _dict = self.dict(by_alias=True,
58
+ exclude={
59
+ },
60
+ exclude_none=True)
61
+ # override the default output from pydantic by calling `to_dict()` of each item in values (list)
62
+ _items = []
63
+ if self.values:
64
+ for _item in self.values:
65
+ if _item:
66
+ _items.append(_item.to_dict())
67
+ _dict['values'] = _items
68
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
69
+ _items = []
70
+ if self.links:
71
+ for _item in self.links:
72
+ if _item:
73
+ _items.append(_item.to_dict())
74
+ _dict['links'] = _items
75
+ # set to None if next_page (nullable) is None
76
+ # and __fields_set__ contains the field
77
+ if self.next_page is None and "next_page" in self.__fields_set__:
78
+ _dict['nextPage'] = None
79
+
80
+ # set to None if previous_page (nullable) is None
81
+ # and __fields_set__ contains the field
82
+ if self.previous_page is None and "previous_page" in self.__fields_set__:
83
+ _dict['previousPage'] = None
84
+
85
+ # set to None if href (nullable) is None
86
+ # and __fields_set__ contains the field
87
+ if self.href is None and "href" in self.__fields_set__:
88
+ _dict['href'] = None
89
+
90
+ # set to None if links (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.links is None and "links" in self.__fields_set__:
93
+ _dict['links'] = None
94
+
95
+ return _dict
96
+
97
+ @classmethod
98
+ def from_dict(cls, obj: dict) -> PagedResourceListOfFundConfiguration:
99
+ """Create an instance of PagedResourceListOfFundConfiguration from a dict"""
100
+ if obj is None:
101
+ return None
102
+
103
+ if not isinstance(obj, dict):
104
+ return PagedResourceListOfFundConfiguration.parse_obj(obj)
105
+
106
+ _obj = PagedResourceListOfFundConfiguration.parse_obj({
107
+ "next_page": obj.get("nextPage"),
108
+ "previous_page": obj.get("previousPage"),
109
+ "values": [FundConfiguration.from_dict(_item) for _item in obj.get("values")] if obj.get("values") is not None else None,
110
+ "href": obj.get("href"),
111
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
112
+ })
113
+ return _obj
@@ -0,0 +1,110 @@
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
22
+ from pydantic.v1 import Field, StrictStr, conlist, constr, validator
23
+ from lusid.models.compliance_step import ComplianceStep
24
+ from lusid.models.compliance_template_parameter import ComplianceTemplateParameter
25
+
26
+ class PercentCheckStep(ComplianceStep):
27
+ """
28
+ PercentCheckStep
29
+ """
30
+ label: constr(strict=True, min_length=1) = Field(..., description="The label of the compliance step")
31
+ limit_check_parameters: conlist(ComplianceTemplateParameter) = Field(..., alias="limitCheckParameters", description="Parameters required for an absolute limit check")
32
+ warning_check_parameters: conlist(ComplianceTemplateParameter) = Field(..., alias="warningCheckParameters", description="Parameters required for a warning limit check")
33
+ compliance_step_type: StrictStr = Field(..., alias="complianceStepType", description=". The available values are: FilterStep, GroupByStep, GroupFilterStep, BranchStep, RecombineStep, CheckStep, PercentCheckStep")
34
+ additional_properties: Dict[str, Any] = {}
35
+ __properties = ["complianceStepType", "label", "limitCheckParameters", "warningCheckParameters"]
36
+
37
+ @validator('compliance_step_type')
38
+ def compliance_step_type_validate_enum(cls, value):
39
+ """Validates the enum"""
40
+ if value not in ('FilterStep', 'GroupByStep', 'GroupFilterStep', 'BranchStep', 'RecombineStep', 'CheckStep', 'PercentCheckStep'):
41
+ raise ValueError("must be one of enum values ('FilterStep', 'GroupByStep', 'GroupFilterStep', 'BranchStep', 'RecombineStep', 'CheckStep', 'PercentCheckStep')")
42
+ return value
43
+
44
+ class Config:
45
+ """Pydantic configuration"""
46
+ allow_population_by_field_name = True
47
+ validate_assignment = True
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.dict(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ return json.dumps(self.to_dict())
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> PercentCheckStep:
59
+ """Create an instance of PercentCheckStep from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self):
63
+ """Returns the dictionary representation of the model using alias"""
64
+ _dict = self.dict(by_alias=True,
65
+ exclude={
66
+ "additional_properties"
67
+ },
68
+ exclude_none=True)
69
+ # override the default output from pydantic by calling `to_dict()` of each item in limit_check_parameters (list)
70
+ _items = []
71
+ if self.limit_check_parameters:
72
+ for _item in self.limit_check_parameters:
73
+ if _item:
74
+ _items.append(_item.to_dict())
75
+ _dict['limitCheckParameters'] = _items
76
+ # override the default output from pydantic by calling `to_dict()` of each item in warning_check_parameters (list)
77
+ _items = []
78
+ if self.warning_check_parameters:
79
+ for _item in self.warning_check_parameters:
80
+ if _item:
81
+ _items.append(_item.to_dict())
82
+ _dict['warningCheckParameters'] = _items
83
+ # puts key-value pairs in additional_properties in the top level
84
+ if self.additional_properties is not None:
85
+ for _key, _value in self.additional_properties.items():
86
+ _dict[_key] = _value
87
+
88
+ return _dict
89
+
90
+ @classmethod
91
+ def from_dict(cls, obj: dict) -> PercentCheckStep:
92
+ """Create an instance of PercentCheckStep from a dict"""
93
+ if obj is None:
94
+ return None
95
+
96
+ if not isinstance(obj, dict):
97
+ return PercentCheckStep.parse_obj(obj)
98
+
99
+ _obj = PercentCheckStep.parse_obj({
100
+ "compliance_step_type": obj.get("complianceStepType"),
101
+ "label": obj.get("label"),
102
+ "limit_check_parameters": [ComplianceTemplateParameter.from_dict(_item) for _item in obj.get("limitCheckParameters")] if obj.get("limitCheckParameters") is not None else None,
103
+ "warning_check_parameters": [ComplianceTemplateParameter.from_dict(_item) for _item in obj.get("warningCheckParameters")] if obj.get("warningCheckParameters") is not None else None
104
+ })
105
+ # store additional fields in additional_properties
106
+ for _key in obj.keys():
107
+ if _key not in cls.__properties:
108
+ _obj.additional_properties[_key] = obj.get(_key)
109
+
110
+ return _obj
@@ -0,0 +1,98 @@
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
22
+ from pydantic.v1 import Field, StrictStr, constr, validator
23
+ from lusid.models.compliance_step_request import ComplianceStepRequest
24
+
25
+ class PercentCheckStepRequest(ComplianceStepRequest):
26
+ """
27
+ PercentCheckStepRequest
28
+ """
29
+ label: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The label of the compliance step")
30
+ compliance_step_type_request: StrictStr = Field(..., alias="complianceStepTypeRequest", description=". The available values are: FilterStepRequest, GroupByStepRequest, GroupFilterStepRequest, BranchStepRequest, CheckStepRequest, PercentCheckStepRequest")
31
+ additional_properties: Dict[str, Any] = {}
32
+ __properties = ["complianceStepTypeRequest", "label"]
33
+
34
+ @validator('label')
35
+ def label_validate_regular_expression(cls, value):
36
+ """Validates the regular expression"""
37
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
38
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
39
+ return value
40
+
41
+ @validator('compliance_step_type_request')
42
+ def compliance_step_type_request_validate_enum(cls, value):
43
+ """Validates the enum"""
44
+ if value not in ('FilterStepRequest', 'GroupByStepRequest', 'GroupFilterStepRequest', 'BranchStepRequest', 'CheckStepRequest', 'PercentCheckStepRequest'):
45
+ raise ValueError("must be one of enum values ('FilterStepRequest', 'GroupByStepRequest', 'GroupFilterStepRequest', 'BranchStepRequest', 'CheckStepRequest', 'PercentCheckStepRequest')")
46
+ return value
47
+
48
+ class Config:
49
+ """Pydantic configuration"""
50
+ allow_population_by_field_name = True
51
+ validate_assignment = True
52
+
53
+ def to_str(self) -> str:
54
+ """Returns the string representation of the model using alias"""
55
+ return pprint.pformat(self.dict(by_alias=True))
56
+
57
+ def to_json(self) -> str:
58
+ """Returns the JSON representation of the model using alias"""
59
+ return json.dumps(self.to_dict())
60
+
61
+ @classmethod
62
+ def from_json(cls, json_str: str) -> PercentCheckStepRequest:
63
+ """Create an instance of PercentCheckStepRequest from a JSON string"""
64
+ return cls.from_dict(json.loads(json_str))
65
+
66
+ def to_dict(self):
67
+ """Returns the dictionary representation of the model using alias"""
68
+ _dict = self.dict(by_alias=True,
69
+ exclude={
70
+ "additional_properties"
71
+ },
72
+ exclude_none=True)
73
+ # puts key-value pairs in additional_properties in the top level
74
+ if self.additional_properties is not None:
75
+ for _key, _value in self.additional_properties.items():
76
+ _dict[_key] = _value
77
+
78
+ return _dict
79
+
80
+ @classmethod
81
+ def from_dict(cls, obj: dict) -> PercentCheckStepRequest:
82
+ """Create an instance of PercentCheckStepRequest from a dict"""
83
+ if obj is None:
84
+ return None
85
+
86
+ if not isinstance(obj, dict):
87
+ return PercentCheckStepRequest.parse_obj(obj)
88
+
89
+ _obj = PercentCheckStepRequest.parse_obj({
90
+ "compliance_step_type_request": obj.get("complianceStepTypeRequest"),
91
+ "label": obj.get("label")
92
+ })
93
+ # store additional fields in additional_properties
94
+ for _key in obj.keys():
95
+ if _key not in cls.__properties:
96
+ _obj.additional_properties[_key] = obj.get(_key)
97
+
98
+ return _obj
@@ -0,0 +1,116 @@
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, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, constr
23
+ from lusid.models.perpetual_property import PerpetualProperty
24
+ from lusid.models.resource_id import ResourceId
25
+
26
+ class PlacementUpdateRequest(BaseModel):
27
+ """
28
+ A request to create or update a Placement. # noqa: E501
29
+ """
30
+ id: ResourceId = Field(...)
31
+ quantity: Union[StrictFloat, StrictInt] = Field(..., description="The quantity of given instrument ordered.")
32
+ properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="Client-defined properties associated with this placement.")
33
+ counterparty: Optional[StrictStr] = Field(None, description="Optionally specifies the market entity this placement is placed with.")
34
+ execution_system: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="executionSystem", description="Optionally specifies the execution system in use.")
35
+ entry_type: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="entryType", description="Optionally specifies the entry type of this placement.")
36
+ __properties = ["id", "quantity", "properties", "counterparty", "executionSystem", "entryType"]
37
+
38
+ class Config:
39
+ """Pydantic configuration"""
40
+ allow_population_by_field_name = True
41
+ validate_assignment = True
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.dict(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> PlacementUpdateRequest:
53
+ """Create an instance of PlacementUpdateRequest from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self):
57
+ """Returns the dictionary representation of the model using alias"""
58
+ _dict = self.dict(by_alias=True,
59
+ exclude={
60
+ },
61
+ exclude_none=True)
62
+ # override the default output from pydantic by calling `to_dict()` of id
63
+ if self.id:
64
+ _dict['id'] = self.id.to_dict()
65
+ # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
66
+ _field_dict = {}
67
+ if self.properties:
68
+ for _key in self.properties:
69
+ if self.properties[_key]:
70
+ _field_dict[_key] = self.properties[_key].to_dict()
71
+ _dict['properties'] = _field_dict
72
+ # set to None if properties (nullable) is None
73
+ # and __fields_set__ contains the field
74
+ if self.properties is None and "properties" in self.__fields_set__:
75
+ _dict['properties'] = None
76
+
77
+ # set to None if counterparty (nullable) is None
78
+ # and __fields_set__ contains the field
79
+ if self.counterparty is None and "counterparty" in self.__fields_set__:
80
+ _dict['counterparty'] = None
81
+
82
+ # set to None if execution_system (nullable) is None
83
+ # and __fields_set__ contains the field
84
+ if self.execution_system is None and "execution_system" in self.__fields_set__:
85
+ _dict['executionSystem'] = None
86
+
87
+ # set to None if entry_type (nullable) is None
88
+ # and __fields_set__ contains the field
89
+ if self.entry_type is None and "entry_type" in self.__fields_set__:
90
+ _dict['entryType'] = None
91
+
92
+ return _dict
93
+
94
+ @classmethod
95
+ def from_dict(cls, obj: dict) -> PlacementUpdateRequest:
96
+ """Create an instance of PlacementUpdateRequest from a dict"""
97
+ if obj is None:
98
+ return None
99
+
100
+ if not isinstance(obj, dict):
101
+ return PlacementUpdateRequest.parse_obj(obj)
102
+
103
+ _obj = PlacementUpdateRequest.parse_obj({
104
+ "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
105
+ "quantity": obj.get("quantity"),
106
+ "properties": dict(
107
+ (_k, PerpetualProperty.from_dict(_v))
108
+ for _k, _v in obj.get("properties").items()
109
+ )
110
+ if obj.get("properties") is not None
111
+ else None,
112
+ "counterparty": obj.get("counterparty"),
113
+ "execution_system": obj.get("executionSystem"),
114
+ "entry_type": obj.get("entryType")
115
+ })
116
+ return _obj
lusid/models/portfolio.py CHANGED
@@ -46,7 +46,7 @@ class Portfolio(BaseModel):
46
46
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="The requested portfolio properties. These will be from the 'Portfolio' domain.")
47
47
  relationships: Optional[conlist(Relationship)] = Field(None, description="A set of relationships associated to the portfolio.")
48
48
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The instrument scope resolution strategy of this portfolio.")
49
- accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
49
+ accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst, ProRateByUnits, ProRateByCost, ProRateByCostPortfolioCurrency")
50
50
  amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
51
51
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
52
52
  cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The scope of the transaction types.")
@@ -68,8 +68,8 @@ class Portfolio(BaseModel):
68
68
  if value is None:
69
69
  return value
70
70
 
71
- if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst'):
72
- raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst')")
71
+ if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency'):
72
+ raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency')")
73
73
  return value
74
74
 
75
75
  class Config:
@@ -37,7 +37,7 @@ class PortfolioDetails(BaseModel):
37
37
  corporate_action_source_id: Optional[ResourceId] = Field(None, alias="corporateActionSourceId")
38
38
  sub_holding_keys: Optional[conlist(StrictStr)] = Field(None, alias="subHoldingKeys")
39
39
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The resolution strategy used to resolve instruments of transactions/holdings upserted to the transaction portfolio.")
40
- accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
40
+ accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst, ProRateByUnits, ProRateByCost, ProRateByCostPortfolioCurrency")
41
41
  amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
42
42
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
43
43
  cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The option when the Cash Gain Loss to be calulated, TransactionDate/SettlementDate. Defaults to SettlementDate.")
@@ -53,8 +53,8 @@ class PortfolioDetails(BaseModel):
53
53
  if value is None:
54
54
  return value
55
55
 
56
- if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst'):
57
- raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst')")
56
+ if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency'):
57
+ raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency')")
58
58
  return value
59
59
 
60
60
  class Config:
@@ -28,15 +28,15 @@ class PortfolioGroupIdComplianceParameter(ComplianceParameter):
28
28
  PortfolioGroupIdComplianceParameter
29
29
  """
30
30
  value: ResourceId = Field(...)
31
- compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter")
31
+ compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter, GroupCalculationComplianceParameter")
32
32
  additional_properties: Dict[str, Any] = {}
33
33
  __properties = ["complianceParameterType", "value"]
34
34
 
35
35
  @validator('compliance_parameter_type')
36
36
  def compliance_parameter_type_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter'):
39
- raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter')")
38
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter'):
39
+ raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter')")
40
40
  return value
41
41
 
42
42
  class Config:
@@ -28,15 +28,15 @@ class PortfolioGroupIdListComplianceParameter(ComplianceParameter):
28
28
  PortfolioGroupIdListComplianceParameter
29
29
  """
30
30
  value: ResourceId = Field(...)
31
- compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter")
31
+ compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter, GroupCalculationComplianceParameter")
32
32
  additional_properties: Dict[str, Any] = {}
33
33
  __properties = ["complianceParameterType", "value"]
34
34
 
35
35
  @validator('compliance_parameter_type')
36
36
  def compliance_parameter_type_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter'):
39
- raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter')")
38
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter'):
39
+ raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter')")
40
40
  return value
41
41
 
42
42
  class Config:
@@ -28,15 +28,15 @@ class PortfolioIdComplianceParameter(ComplianceParameter):
28
28
  PortfolioIdComplianceParameter
29
29
  """
30
30
  value: ResourceId = Field(...)
31
- compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter")
31
+ compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter, GroupCalculationComplianceParameter")
32
32
  additional_properties: Dict[str, Any] = {}
33
33
  __properties = ["complianceParameterType", "value"]
34
34
 
35
35
  @validator('compliance_parameter_type')
36
36
  def compliance_parameter_type_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter'):
39
- raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter')")
38
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter'):
39
+ raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter')")
40
40
  return value
41
41
 
42
42
  class Config:
@@ -28,15 +28,15 @@ class PortfolioIdListComplianceParameter(ComplianceParameter):
28
28
  PortfolioIdListComplianceParameter
29
29
  """
30
30
  value: ResourceId = Field(...)
31
- compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter")
31
+ compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter, GroupCalculationComplianceParameter")
32
32
  additional_properties: Dict[str, Any] = {}
33
33
  __properties = ["complianceParameterType", "value"]
34
34
 
35
35
  @validator('compliance_parameter_type')
36
36
  def compliance_parameter_type_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter'):
39
- raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter')")
38
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter'):
39
+ raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter')")
40
40
  return value
41
41
 
42
42
  class Config:
@@ -45,7 +45,7 @@ class PortfolioWithoutHref(BaseModel):
45
45
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="The requested portfolio properties. These will be from the 'Portfolio' domain.")
46
46
  relationships: Optional[conlist(Relationship)] = Field(None, description="A set of relationships associated to the portfolio.")
47
47
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The instrument scope resolution strategy of this portfolio.")
48
- accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
48
+ accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst, ProRateByUnits, ProRateByCost, ProRateByCostPortfolioCurrency")
49
49
  amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
50
50
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
51
51
  cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The scope of the transaction types.")
@@ -67,8 +67,8 @@ class PortfolioWithoutHref(BaseModel):
67
67
  if value is None:
68
68
  return value
69
69
 
70
- if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst'):
71
- raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst')")
70
+ if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency'):
71
+ raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency')")
72
72
  return value
73
73
 
74
74
  class Config: