lusid-sdk 2.1.580__py3-none-any.whl → 2.1.585__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lusid/__init__.py +2 -0
- lusid/configuration.py +1 -1
- lusid/models/__init__.py +2 -0
- lusid/models/additional_payment.py +3 -3
- lusid/models/cds_index.py +20 -5
- lusid/models/contribution_to_non_passing_rule_detail.py +89 -0
- lusid/models/credit_default_swap.py +21 -6
- lusid/models/equity_swap.py +20 -5
- lusid/models/inflation_swap.py +20 -5
- lusid/models/interest_rate_swap.py +1 -1
- lusid/models/order_graph_block_order_detail.py +19 -4
- lusid/models/total_return_swap.py +20 -5
- {lusid_sdk-2.1.580.dist-info → lusid_sdk-2.1.585.dist-info}/METADATA +2 -1
- {lusid_sdk-2.1.580.dist-info → lusid_sdk-2.1.585.dist-info}/RECORD +15 -14
- {lusid_sdk-2.1.580.dist-info → lusid_sdk-2.1.585.dist-info}/WHEEL +0 -0
lusid/__init__.py
CHANGED
@@ -290,6 +290,7 @@ from lusid.models.configuration_recipe import ConfigurationRecipe
|
|
290
290
|
from lusid.models.constant_volatility_surface import ConstantVolatilitySurface
|
291
291
|
from lusid.models.constituents_adjustment_header import ConstituentsAdjustmentHeader
|
292
292
|
from lusid.models.contract_for_difference import ContractForDifference
|
293
|
+
from lusid.models.contribution_to_non_passing_rule_detail import ContributionToNonPassingRuleDetail
|
293
294
|
from lusid.models.corporate_action import CorporateAction
|
294
295
|
from lusid.models.corporate_action_source import CorporateActionSource
|
295
296
|
from lusid.models.corporate_action_transition import CorporateActionTransition
|
@@ -1512,6 +1513,7 @@ __all__ = [
|
|
1512
1513
|
"ConstantVolatilitySurface",
|
1513
1514
|
"ConstituentsAdjustmentHeader",
|
1514
1515
|
"ContractForDifference",
|
1516
|
+
"ContributionToNonPassingRuleDetail",
|
1515
1517
|
"CorporateAction",
|
1516
1518
|
"CorporateActionSource",
|
1517
1519
|
"CorporateActionTransition",
|
lusid/configuration.py
CHANGED
@@ -445,7 +445,7 @@ class Configuration:
|
|
445
445
|
return "Python SDK Debug Report:\n"\
|
446
446
|
"OS: {env}\n"\
|
447
447
|
"Python Version: {pyversion}\n"\
|
448
|
-
"Version of the API: 0.11.
|
448
|
+
"Version of the API: 0.11.7058\n"\
|
449
449
|
"SDK Package Version: {package_version}".\
|
450
450
|
format(env=sys.platform, pyversion=sys.version, package_version=package_version)
|
451
451
|
|
lusid/models/__init__.py
CHANGED
@@ -209,6 +209,7 @@ from lusid.models.configuration_recipe import ConfigurationRecipe
|
|
209
209
|
from lusid.models.constant_volatility_surface import ConstantVolatilitySurface
|
210
210
|
from lusid.models.constituents_adjustment_header import ConstituentsAdjustmentHeader
|
211
211
|
from lusid.models.contract_for_difference import ContractForDifference
|
212
|
+
from lusid.models.contribution_to_non_passing_rule_detail import ContributionToNonPassingRuleDetail
|
212
213
|
from lusid.models.corporate_action import CorporateAction
|
213
214
|
from lusid.models.corporate_action_source import CorporateActionSource
|
214
215
|
from lusid.models.corporate_action_transition import CorporateActionTransition
|
@@ -1351,6 +1352,7 @@ __all__ = [
|
|
1351
1352
|
"ConstantVolatilitySurface",
|
1352
1353
|
"ConstituentsAdjustmentHeader",
|
1353
1354
|
"ContractForDifference",
|
1355
|
+
"ContributionToNonPassingRuleDetail",
|
1354
1356
|
"CorporateAction",
|
1355
1357
|
"CorporateActionSource",
|
1356
1358
|
"CorporateActionTransition",
|
@@ -25,9 +25,9 @@ class AdditionalPayment(BaseModel):
|
|
25
25
|
"""
|
26
26
|
Record describing additional payment entity. # noqa: E501
|
27
27
|
"""
|
28
|
-
amount: Union[StrictFloat, StrictInt] = Field(..., description="The
|
29
|
-
currency: StrictStr = Field(..., description="The
|
30
|
-
pay_date: datetime = Field(..., alias="payDate", description="Date when the
|
28
|
+
amount: Union[StrictFloat, StrictInt] = Field(..., description="The payment amount.")
|
29
|
+
currency: StrictStr = Field(..., description="The payment currency.")
|
30
|
+
pay_date: datetime = Field(..., alias="payDate", description="Date when the payment is made.")
|
31
31
|
pay_receive: constr(strict=True, min_length=1) = Field(..., alias="payReceive", description="Is it pay or receive. Supported string (enumeration) values are: [Pay, Receive].")
|
32
32
|
__properties = ["amount", "currency", "payDate", "payReceive"]
|
33
33
|
|
lusid/models/cds_index.py
CHANGED
@@ -18,8 +18,9 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
from datetime import datetime
|
21
|
-
from typing import Any, Dict, Optional, Union
|
22
|
-
from pydantic.v1 import Field, StrictFloat, StrictInt, StrictStr, validator
|
21
|
+
from typing import Any, Dict, List, Optional, Union
|
22
|
+
from pydantic.v1 import Field, StrictFloat, StrictInt, StrictStr, conlist, validator
|
23
|
+
from lusid.models.additional_payment import AdditionalPayment
|
23
24
|
from lusid.models.basket import Basket
|
24
25
|
from lusid.models.cds_flow_conventions import CdsFlowConventions
|
25
26
|
from lusid.models.flow_convention_name import FlowConventionName
|
@@ -27,7 +28,7 @@ from lusid.models.lusid_instrument import LusidInstrument
|
|
27
28
|
|
28
29
|
class CdsIndex(LusidInstrument):
|
29
30
|
"""
|
30
|
-
LUSID representation of a Credit Default Swap Index (CDX). This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | ProtectionLeg | Payments made by the protection seller in the case of default across all CDS instruments in the index. | | 2 | PremiumLeg | The premium payments made by the protection buyer across all CDS instruments in the index. | # noqa: E501
|
31
|
+
LUSID representation of a Credit Default Swap Index (CDX). This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | ProtectionLeg | Payments made by the protection seller in the case of default across all CDS instruments in the index. | | 2 | PremiumLeg | The premium payments made by the protection buyer across all CDS instruments in the index. | | 3 | AdditionalPayments | Cash flows relating to any additional payments (optional). | # noqa: E501
|
31
32
|
"""
|
32
33
|
start_date: datetime = Field(..., alias="startDate", description="The start date of the instrument. This is normally synonymous with the trade-date.")
|
33
34
|
maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
|
@@ -37,9 +38,10 @@ class CdsIndex(LusidInstrument):
|
|
37
38
|
basket: Optional[Basket] = None
|
38
39
|
convention_name: Optional[FlowConventionName] = Field(None, alias="conventionName")
|
39
40
|
notional: Union[StrictFloat, StrictInt] = Field(..., description="The notional quantity that applies to both the premium and protection legs.")
|
41
|
+
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
|
40
42
|
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
|
41
43
|
additional_properties: Dict[str, Any] = {}
|
42
|
-
__properties = ["instrumentType", "startDate", "maturityDate", "flowConventions", "couponRate", "identifiers", "basket", "conventionName", "notional"]
|
44
|
+
__properties = ["instrumentType", "startDate", "maturityDate", "flowConventions", "couponRate", "identifiers", "basket", "conventionName", "notional", "additionalPayments"]
|
43
45
|
|
44
46
|
@validator('instrument_type')
|
45
47
|
def instrument_type_validate_enum(cls, value):
|
@@ -82,11 +84,23 @@ class CdsIndex(LusidInstrument):
|
|
82
84
|
# override the default output from pydantic by calling `to_dict()` of convention_name
|
83
85
|
if self.convention_name:
|
84
86
|
_dict['conventionName'] = self.convention_name.to_dict()
|
87
|
+
# override the default output from pydantic by calling `to_dict()` of each item in additional_payments (list)
|
88
|
+
_items = []
|
89
|
+
if self.additional_payments:
|
90
|
+
for _item in self.additional_payments:
|
91
|
+
if _item:
|
92
|
+
_items.append(_item.to_dict())
|
93
|
+
_dict['additionalPayments'] = _items
|
85
94
|
# puts key-value pairs in additional_properties in the top level
|
86
95
|
if self.additional_properties is not None:
|
87
96
|
for _key, _value in self.additional_properties.items():
|
88
97
|
_dict[_key] = _value
|
89
98
|
|
99
|
+
# set to None if additional_payments (nullable) is None
|
100
|
+
# and __fields_set__ contains the field
|
101
|
+
if self.additional_payments is None and "additional_payments" in self.__fields_set__:
|
102
|
+
_dict['additionalPayments'] = None
|
103
|
+
|
90
104
|
return _dict
|
91
105
|
|
92
106
|
@classmethod
|
@@ -107,7 +121,8 @@ class CdsIndex(LusidInstrument):
|
|
107
121
|
"identifiers": obj.get("identifiers"),
|
108
122
|
"basket": Basket.from_dict(obj.get("basket")) if obj.get("basket") is not None else None,
|
109
123
|
"convention_name": FlowConventionName.from_dict(obj.get("conventionName")) if obj.get("conventionName") is not None else None,
|
110
|
-
"notional": obj.get("notional")
|
124
|
+
"notional": obj.get("notional"),
|
125
|
+
"additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
|
111
126
|
})
|
112
127
|
# store additional fields in additional_properties
|
113
128
|
for _key in obj.keys():
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
"""
|
4
|
+
LUSID API
|
5
|
+
|
6
|
+
FINBOURNE Technology # noqa: E501
|
7
|
+
|
8
|
+
Contact: info@finbourne.com
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
10
|
+
|
11
|
+
Do not edit the class manually.
|
12
|
+
"""
|
13
|
+
|
14
|
+
|
15
|
+
from __future__ import annotations
|
16
|
+
import pprint
|
17
|
+
import re # noqa: F401
|
18
|
+
import json
|
19
|
+
|
20
|
+
|
21
|
+
from typing import Any, Dict, List, Optional
|
22
|
+
from pydantic.v1 import BaseModel, Field, StrictBool, StrictStr, conlist
|
23
|
+
from lusid.models.resource_id import ResourceId
|
24
|
+
|
25
|
+
class ContributionToNonPassingRuleDetail(BaseModel):
|
26
|
+
"""
|
27
|
+
ContributionToNonPassingRuleDetail
|
28
|
+
"""
|
29
|
+
rule_id: Optional[ResourceId] = Field(None, alias="ruleId")
|
30
|
+
rule_status: Optional[StrictStr] = Field(None, alias="ruleStatus", description="The status of the non-passing rule.")
|
31
|
+
breach_task_ids: Optional[conlist(StrictStr)] = Field(None, alias="breachTaskIds", description="The task ids associated with the compliance breach for this order's groups (if failing).")
|
32
|
+
likely_responsible_for_status: Optional[StrictBool] = Field(None, alias="likelyResponsibleForStatus", description="Whether this order is deemed as a likely contributor to the non-passing rule for this group.")
|
33
|
+
__properties = ["ruleId", "ruleStatus", "breachTaskIds", "likelyResponsibleForStatus"]
|
34
|
+
|
35
|
+
class Config:
|
36
|
+
"""Pydantic configuration"""
|
37
|
+
allow_population_by_field_name = True
|
38
|
+
validate_assignment = True
|
39
|
+
|
40
|
+
def to_str(self) -> str:
|
41
|
+
"""Returns the string representation of the model using alias"""
|
42
|
+
return pprint.pformat(self.dict(by_alias=True))
|
43
|
+
|
44
|
+
def to_json(self) -> str:
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
46
|
+
return json.dumps(self.to_dict())
|
47
|
+
|
48
|
+
@classmethod
|
49
|
+
def from_json(cls, json_str: str) -> ContributionToNonPassingRuleDetail:
|
50
|
+
"""Create an instance of ContributionToNonPassingRuleDetail from a JSON string"""
|
51
|
+
return cls.from_dict(json.loads(json_str))
|
52
|
+
|
53
|
+
def to_dict(self):
|
54
|
+
"""Returns the dictionary representation of the model using alias"""
|
55
|
+
_dict = self.dict(by_alias=True,
|
56
|
+
exclude={
|
57
|
+
},
|
58
|
+
exclude_none=True)
|
59
|
+
# override the default output from pydantic by calling `to_dict()` of rule_id
|
60
|
+
if self.rule_id:
|
61
|
+
_dict['ruleId'] = self.rule_id.to_dict()
|
62
|
+
# set to None if rule_status (nullable) is None
|
63
|
+
# and __fields_set__ contains the field
|
64
|
+
if self.rule_status is None and "rule_status" in self.__fields_set__:
|
65
|
+
_dict['ruleStatus'] = None
|
66
|
+
|
67
|
+
# set to None if breach_task_ids (nullable) is None
|
68
|
+
# and __fields_set__ contains the field
|
69
|
+
if self.breach_task_ids is None and "breach_task_ids" in self.__fields_set__:
|
70
|
+
_dict['breachTaskIds'] = None
|
71
|
+
|
72
|
+
return _dict
|
73
|
+
|
74
|
+
@classmethod
|
75
|
+
def from_dict(cls, obj: dict) -> ContributionToNonPassingRuleDetail:
|
76
|
+
"""Create an instance of ContributionToNonPassingRuleDetail from a dict"""
|
77
|
+
if obj is None:
|
78
|
+
return None
|
79
|
+
|
80
|
+
if not isinstance(obj, dict):
|
81
|
+
return ContributionToNonPassingRuleDetail.parse_obj(obj)
|
82
|
+
|
83
|
+
_obj = ContributionToNonPassingRuleDetail.parse_obj({
|
84
|
+
"rule_id": ResourceId.from_dict(obj.get("ruleId")) if obj.get("ruleId") is not None else None,
|
85
|
+
"rule_status": obj.get("ruleStatus"),
|
86
|
+
"breach_task_ids": obj.get("breachTaskIds"),
|
87
|
+
"likely_responsible_for_status": obj.get("likelyResponsibleForStatus")
|
88
|
+
})
|
89
|
+
return _obj
|
@@ -18,8 +18,9 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
from datetime import datetime
|
21
|
-
from typing import Any, Dict, Optional, Union
|
22
|
-
from pydantic.v1 import Field, StrictFloat, StrictInt, StrictStr, constr, validator
|
21
|
+
from typing import Any, Dict, List, Optional, Union
|
22
|
+
from pydantic.v1 import Field, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
|
23
|
+
from lusid.models.additional_payment import AdditionalPayment
|
23
24
|
from lusid.models.cds_flow_conventions import CdsFlowConventions
|
24
25
|
from lusid.models.cds_protection_detail_specification import CdsProtectionDetailSpecification
|
25
26
|
from lusid.models.flow_convention_name import FlowConventionName
|
@@ -27,9 +28,9 @@ from lusid.models.lusid_instrument import LusidInstrument
|
|
27
28
|
|
28
29
|
class CreditDefaultSwap(LusidInstrument):
|
29
30
|
"""
|
30
|
-
LUSID representation of a Credit Default Swap (CDS). This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | ProtectionLeg | Cash flows occurring in the case of default. | | 2 | PremiumLeg | The premium payments made by the protection buyer. | # noqa: E501
|
31
|
+
LUSID representation of a Credit Default Swap (CDS). This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | ProtectionLeg | Cash flows occurring in the case of default. | | 2 | PremiumLeg | The premium payments made by the protection buyer. | | 3 | AdditionalPayments | Cash flows relating to any additional payments (optional). | # noqa: E501
|
31
32
|
"""
|
32
|
-
ticker: constr(strict=True, min_length=1) = Field(..., description="A ticker to uniquely specify
|
33
|
+
ticker: constr(strict=True, min_length=1) = Field(..., description="A ticker to uniquely specify the entity against which the CDS is written.")
|
33
34
|
start_date: datetime = Field(..., alias="startDate", description="The start date of the instrument. This is normally synonymous with the trade-date.")
|
34
35
|
maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
|
35
36
|
flow_conventions: Optional[CdsFlowConventions] = Field(None, alias="flowConventions")
|
@@ -37,9 +38,10 @@ class CreditDefaultSwap(LusidInstrument):
|
|
37
38
|
convention_name: Optional[FlowConventionName] = Field(None, alias="conventionName")
|
38
39
|
notional: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="The notional protected by the Credit Default Swap")
|
39
40
|
protection_detail_specification: CdsProtectionDetailSpecification = Field(..., alias="protectionDetailSpecification")
|
41
|
+
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
|
40
42
|
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
|
41
43
|
additional_properties: Dict[str, Any] = {}
|
42
|
-
__properties = ["instrumentType", "ticker", "startDate", "maturityDate", "flowConventions", "couponRate", "conventionName", "notional", "protectionDetailSpecification"]
|
44
|
+
__properties = ["instrumentType", "ticker", "startDate", "maturityDate", "flowConventions", "couponRate", "conventionName", "notional", "protectionDetailSpecification", "additionalPayments"]
|
43
45
|
|
44
46
|
@validator('instrument_type')
|
45
47
|
def instrument_type_validate_enum(cls, value):
|
@@ -82,6 +84,13 @@ class CreditDefaultSwap(LusidInstrument):
|
|
82
84
|
# override the default output from pydantic by calling `to_dict()` of protection_detail_specification
|
83
85
|
if self.protection_detail_specification:
|
84
86
|
_dict['protectionDetailSpecification'] = self.protection_detail_specification.to_dict()
|
87
|
+
# override the default output from pydantic by calling `to_dict()` of each item in additional_payments (list)
|
88
|
+
_items = []
|
89
|
+
if self.additional_payments:
|
90
|
+
for _item in self.additional_payments:
|
91
|
+
if _item:
|
92
|
+
_items.append(_item.to_dict())
|
93
|
+
_dict['additionalPayments'] = _items
|
85
94
|
# puts key-value pairs in additional_properties in the top level
|
86
95
|
if self.additional_properties is not None:
|
87
96
|
for _key, _value in self.additional_properties.items():
|
@@ -92,6 +101,11 @@ class CreditDefaultSwap(LusidInstrument):
|
|
92
101
|
if self.notional is None and "notional" in self.__fields_set__:
|
93
102
|
_dict['notional'] = None
|
94
103
|
|
104
|
+
# set to None if additional_payments (nullable) is None
|
105
|
+
# and __fields_set__ contains the field
|
106
|
+
if self.additional_payments is None and "additional_payments" in self.__fields_set__:
|
107
|
+
_dict['additionalPayments'] = None
|
108
|
+
|
95
109
|
return _dict
|
96
110
|
|
97
111
|
@classmethod
|
@@ -112,7 +126,8 @@ class CreditDefaultSwap(LusidInstrument):
|
|
112
126
|
"coupon_rate": obj.get("couponRate"),
|
113
127
|
"convention_name": FlowConventionName.from_dict(obj.get("conventionName")) if obj.get("conventionName") is not None else None,
|
114
128
|
"notional": obj.get("notional"),
|
115
|
-
"protection_detail_specification": CdsProtectionDetailSpecification.from_dict(obj.get("protectionDetailSpecification")) if obj.get("protectionDetailSpecification") is not None else None
|
129
|
+
"protection_detail_specification": CdsProtectionDetailSpecification.from_dict(obj.get("protectionDetailSpecification")) if obj.get("protectionDetailSpecification") is not None else None,
|
130
|
+
"additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
|
116
131
|
})
|
117
132
|
# store additional fields in additional_properties
|
118
133
|
for _key in obj.keys():
|
lusid/models/equity_swap.py
CHANGED
@@ -18,15 +18,16 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
from datetime import datetime
|
21
|
-
from typing import Any, Dict, Optional, Union
|
22
|
-
from pydantic.v1 import Field, StrictBool, StrictFloat, StrictInt, StrictStr, constr, validator
|
21
|
+
from typing import Any, Dict, List, Optional, Union
|
22
|
+
from pydantic.v1 import Field, StrictBool, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
|
23
|
+
from lusid.models.additional_payment import AdditionalPayment
|
23
24
|
from lusid.models.flow_conventions import FlowConventions
|
24
25
|
from lusid.models.instrument_leg import InstrumentLeg
|
25
26
|
from lusid.models.lusid_instrument import LusidInstrument
|
26
27
|
|
27
28
|
class EquitySwap(LusidInstrument):
|
28
29
|
"""
|
29
|
-
LUSID representation of an Equity Swap. This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | EquityLeg | Cash flows relating to the performance of the underlying equity. | | 2 | FundingLeg | The funding leg of the swap. | | 3 | EquityDividendLeg | Cash flows relating to dividend payments on the underlying equity (optional). | # noqa: E501
|
30
|
+
LUSID representation of an Equity Swap. This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | EquityLeg | Cash flows relating to the performance of the underlying equity. | | 2 | FundingLeg | The funding leg of the swap. | | 3 | EquityDividendLeg | Cash flows relating to dividend payments on the underlying equity (optional). | | 4 | AdditionalPayments | Cash flows relating to any additional payments (optional). | # noqa: E501
|
30
31
|
"""
|
31
32
|
start_date: datetime = Field(..., alias="startDate", description="The start date of the EquitySwap.")
|
32
33
|
maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
|
@@ -39,9 +40,10 @@ class EquitySwap(LusidInstrument):
|
|
39
40
|
quantity: Union[StrictFloat, StrictInt] = Field(..., description="The quantity or number of shares in the Equity Swap.")
|
40
41
|
underlying_identifier: constr(strict=True, min_length=1) = Field(..., alias="underlyingIdentifier", description="External market codes and identifiers for the EquitySwap, e.g. RIC. Supported string (enumeration) values are: [LusidInstrumentId, Isin, Sedol, Cusip, ClientInternal, Figi, RIC, QuotePermId, REDCode, BBGId, ICECode].")
|
41
42
|
equity_swap_dividend_payment_timing: Optional[StrictStr] = Field(None, alias="equitySwapDividendPaymentTiming", description="Determines how the payment of dividends is handled for the equity swap. Defaults to paying at the next Equity coupon date. Supported string (enumeration) values are: [PayAtNextEquityCouponDate, PayAtMaturityOfSwap, PayAtNextFundingLegCouponDate, PayAtPaymentDateOfDividendEvent].")
|
43
|
+
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven equity swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
|
42
44
|
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
|
43
45
|
additional_properties: Dict[str, Any] = {}
|
44
|
-
__properties = ["instrumentType", "startDate", "maturityDate", "code", "equityFlowConventions", "fundingLeg", "includeDividends", "initialPrice", "notionalReset", "quantity", "underlyingIdentifier", "equitySwapDividendPaymentTiming"]
|
46
|
+
__properties = ["instrumentType", "startDate", "maturityDate", "code", "equityFlowConventions", "fundingLeg", "includeDividends", "initialPrice", "notionalReset", "quantity", "underlyingIdentifier", "equitySwapDividendPaymentTiming", "additionalPayments"]
|
45
47
|
|
46
48
|
@validator('instrument_type')
|
47
49
|
def instrument_type_validate_enum(cls, value):
|
@@ -81,6 +83,13 @@ class EquitySwap(LusidInstrument):
|
|
81
83
|
# override the default output from pydantic by calling `to_dict()` of funding_leg
|
82
84
|
if self.funding_leg:
|
83
85
|
_dict['fundingLeg'] = self.funding_leg.to_dict()
|
86
|
+
# override the default output from pydantic by calling `to_dict()` of each item in additional_payments (list)
|
87
|
+
_items = []
|
88
|
+
if self.additional_payments:
|
89
|
+
for _item in self.additional_payments:
|
90
|
+
if _item:
|
91
|
+
_items.append(_item.to_dict())
|
92
|
+
_dict['additionalPayments'] = _items
|
84
93
|
# puts key-value pairs in additional_properties in the top level
|
85
94
|
if self.additional_properties is not None:
|
86
95
|
for _key, _value in self.additional_properties.items():
|
@@ -91,6 +100,11 @@ class EquitySwap(LusidInstrument):
|
|
91
100
|
if self.equity_swap_dividend_payment_timing is None and "equity_swap_dividend_payment_timing" in self.__fields_set__:
|
92
101
|
_dict['equitySwapDividendPaymentTiming'] = None
|
93
102
|
|
103
|
+
# set to None if additional_payments (nullable) is None
|
104
|
+
# and __fields_set__ contains the field
|
105
|
+
if self.additional_payments is None and "additional_payments" in self.__fields_set__:
|
106
|
+
_dict['additionalPayments'] = None
|
107
|
+
|
94
108
|
return _dict
|
95
109
|
|
96
110
|
@classmethod
|
@@ -114,7 +128,8 @@ class EquitySwap(LusidInstrument):
|
|
114
128
|
"notional_reset": obj.get("notionalReset"),
|
115
129
|
"quantity": obj.get("quantity"),
|
116
130
|
"underlying_identifier": obj.get("underlyingIdentifier"),
|
117
|
-
"equity_swap_dividend_payment_timing": obj.get("equitySwapDividendPaymentTiming")
|
131
|
+
"equity_swap_dividend_payment_timing": obj.get("equitySwapDividendPaymentTiming"),
|
132
|
+
"additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
|
118
133
|
})
|
119
134
|
# store additional fields in additional_properties
|
120
135
|
for _key in obj.keys():
|
lusid/models/inflation_swap.py
CHANGED
@@ -18,23 +18,25 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
from datetime import datetime
|
21
|
-
from typing import Any, Dict
|
22
|
-
from pydantic.v1 import Field, StrictStr, validator
|
21
|
+
from typing import Any, Dict, List, Optional
|
22
|
+
from pydantic.v1 import Field, StrictStr, conlist, validator
|
23
|
+
from lusid.models.additional_payment import AdditionalPayment
|
23
24
|
from lusid.models.fixed_leg import FixedLeg
|
24
25
|
from lusid.models.inflation_leg import InflationLeg
|
25
26
|
from lusid.models.lusid_instrument import LusidInstrument
|
26
27
|
|
27
28
|
class InflationSwap(LusidInstrument):
|
28
29
|
"""
|
29
|
-
LUSID representation of an Inflation Swap. The implementation supports the following swap types: * Zero Coupon inflation swap, with a single payment at maturity. * LPI Swap (capped and floored) * Year on Year inflation swap This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | InflationLeg | Cash flows with a rate relating to an underlying inflation index. | | 2 | FixedLeg | Cash flows with a fixed rate. | # noqa: E501
|
30
|
+
LUSID representation of an Inflation Swap. The implementation supports the following swap types: * Zero Coupon inflation swap, with a single payment at maturity. * LPI Swap (capped and floored) * Year on Year inflation swap This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | InflationLeg | Cash flows with a rate relating to an underlying inflation index. | | 2 | FixedLeg | Cash flows with a fixed rate. | | 3 | AdditionalPayments | Cash flows relating to any additional payments (optional). | # noqa: E501
|
30
31
|
"""
|
31
32
|
start_date: datetime = Field(..., alias="startDate", description="The start date of the instrument. This is normally synonymous with the trade-date.")
|
32
33
|
maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
|
33
34
|
inflation_leg: InflationLeg = Field(..., alias="inflationLeg")
|
34
35
|
fixed_leg: FixedLeg = Field(..., alias="fixedLeg")
|
36
|
+
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven inflation swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
|
35
37
|
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
|
36
38
|
additional_properties: Dict[str, Any] = {}
|
37
|
-
__properties = ["instrumentType", "startDate", "maturityDate", "inflationLeg", "fixedLeg"]
|
39
|
+
__properties = ["instrumentType", "startDate", "maturityDate", "inflationLeg", "fixedLeg", "additionalPayments"]
|
38
40
|
|
39
41
|
@validator('instrument_type')
|
40
42
|
def instrument_type_validate_enum(cls, value):
|
@@ -74,11 +76,23 @@ class InflationSwap(LusidInstrument):
|
|
74
76
|
# override the default output from pydantic by calling `to_dict()` of fixed_leg
|
75
77
|
if self.fixed_leg:
|
76
78
|
_dict['fixedLeg'] = self.fixed_leg.to_dict()
|
79
|
+
# override the default output from pydantic by calling `to_dict()` of each item in additional_payments (list)
|
80
|
+
_items = []
|
81
|
+
if self.additional_payments:
|
82
|
+
for _item in self.additional_payments:
|
83
|
+
if _item:
|
84
|
+
_items.append(_item.to_dict())
|
85
|
+
_dict['additionalPayments'] = _items
|
77
86
|
# puts key-value pairs in additional_properties in the top level
|
78
87
|
if self.additional_properties is not None:
|
79
88
|
for _key, _value in self.additional_properties.items():
|
80
89
|
_dict[_key] = _value
|
81
90
|
|
91
|
+
# set to None if additional_payments (nullable) is None
|
92
|
+
# and __fields_set__ contains the field
|
93
|
+
if self.additional_payments is None and "additional_payments" in self.__fields_set__:
|
94
|
+
_dict['additionalPayments'] = None
|
95
|
+
|
82
96
|
return _dict
|
83
97
|
|
84
98
|
@classmethod
|
@@ -95,7 +109,8 @@ class InflationSwap(LusidInstrument):
|
|
95
109
|
"start_date": obj.get("startDate"),
|
96
110
|
"maturity_date": obj.get("maturityDate"),
|
97
111
|
"inflation_leg": InflationLeg.from_dict(obj.get("inflationLeg")) if obj.get("inflationLeg") is not None else None,
|
98
|
-
"fixed_leg": FixedLeg.from_dict(obj.get("fixedLeg")) if obj.get("fixedLeg") is not None else None
|
112
|
+
"fixed_leg": FixedLeg.from_dict(obj.get("fixedLeg")) if obj.get("fixedLeg") is not None else None,
|
113
|
+
"additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
|
99
114
|
})
|
100
115
|
# store additional fields in additional_properties
|
101
116
|
for _key in obj.keys():
|
@@ -33,7 +33,7 @@ class InterestRateSwap(LusidInstrument):
|
|
33
33
|
is_non_deliverable: Optional[StrictBool] = Field(None, alias="isNonDeliverable", description="Is the contract an IRS of \"Non-Deliverable\" type, meaning a single payment in the settlement currency based on the difference between the fixed and floating rates.")
|
34
34
|
legs: conlist(InstrumentLeg) = Field(..., description="The set of instrument legs that define the swap instrument, these should be FloatingLeg or FixedLeg.")
|
35
35
|
settlement_ccy: Optional[StrictStr] = Field(None, alias="settlementCcy", description="Settlement currency if IRS is non-deliverable.")
|
36
|
-
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven fixed-floating swap. The dates must be distinct and either all payments are Pay or all payments are
|
36
|
+
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven fixed-floating swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
|
37
37
|
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
|
38
38
|
additional_properties: Dict[str, Any] = {}
|
39
39
|
__properties = ["instrumentType", "startDate", "maturityDate", "isNonDeliverable", "legs", "settlementCcy", "additionalPayments"]
|
@@ -18,8 +18,9 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
|
21
|
-
from typing import Any, Dict, Optional
|
22
|
-
from pydantic.v1 import BaseModel, Field, StrictStr, constr
|
21
|
+
from typing import Any, Dict, List, Optional
|
22
|
+
from pydantic.v1 import BaseModel, Field, StrictStr, conlist, constr
|
23
|
+
from lusid.models.contribution_to_non_passing_rule_detail import ContributionToNonPassingRuleDetail
|
23
24
|
from lusid.models.resource_id import ResourceId
|
24
25
|
|
25
26
|
class OrderGraphBlockOrderDetail(BaseModel):
|
@@ -33,7 +34,8 @@ class OrderGraphBlockOrderDetail(BaseModel):
|
|
33
34
|
portfolio_name: Optional[StrictStr] = Field(None, alias="portfolioName", description="The name of the order's referenced Portfolio.")
|
34
35
|
order_approval_task_id: Optional[StrictStr] = Field(None, alias="orderApprovalTaskId", description="The task id associated with the approval state of the order.")
|
35
36
|
order_approval_task_definition_id: Optional[ResourceId] = Field(None, alias="orderApprovalTaskDefinitionId")
|
36
|
-
|
37
|
+
non_passing_compliance_rule_results: Optional[conlist(ContributionToNonPassingRuleDetail)] = Field(None, alias="nonPassingComplianceRuleResults", description="The details of compliance rules in non-passing states.")
|
38
|
+
__properties = ["id", "complianceState", "approvalState", "portfolioId", "portfolioName", "orderApprovalTaskId", "orderApprovalTaskDefinitionId", "nonPassingComplianceRuleResults"]
|
37
39
|
|
38
40
|
class Config:
|
39
41
|
"""Pydantic configuration"""
|
@@ -68,6 +70,13 @@ class OrderGraphBlockOrderDetail(BaseModel):
|
|
68
70
|
# override the default output from pydantic by calling `to_dict()` of order_approval_task_definition_id
|
69
71
|
if self.order_approval_task_definition_id:
|
70
72
|
_dict['orderApprovalTaskDefinitionId'] = self.order_approval_task_definition_id.to_dict()
|
73
|
+
# override the default output from pydantic by calling `to_dict()` of each item in non_passing_compliance_rule_results (list)
|
74
|
+
_items = []
|
75
|
+
if self.non_passing_compliance_rule_results:
|
76
|
+
for _item in self.non_passing_compliance_rule_results:
|
77
|
+
if _item:
|
78
|
+
_items.append(_item.to_dict())
|
79
|
+
_dict['nonPassingComplianceRuleResults'] = _items
|
71
80
|
# set to None if portfolio_name (nullable) is None
|
72
81
|
# and __fields_set__ contains the field
|
73
82
|
if self.portfolio_name is None and "portfolio_name" in self.__fields_set__:
|
@@ -78,6 +87,11 @@ class OrderGraphBlockOrderDetail(BaseModel):
|
|
78
87
|
if self.order_approval_task_id is None and "order_approval_task_id" in self.__fields_set__:
|
79
88
|
_dict['orderApprovalTaskId'] = None
|
80
89
|
|
90
|
+
# set to None if non_passing_compliance_rule_results (nullable) is None
|
91
|
+
# and __fields_set__ contains the field
|
92
|
+
if self.non_passing_compliance_rule_results is None and "non_passing_compliance_rule_results" in self.__fields_set__:
|
93
|
+
_dict['nonPassingComplianceRuleResults'] = None
|
94
|
+
|
81
95
|
return _dict
|
82
96
|
|
83
97
|
@classmethod
|
@@ -96,6 +110,7 @@ class OrderGraphBlockOrderDetail(BaseModel):
|
|
96
110
|
"portfolio_id": ResourceId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None,
|
97
111
|
"portfolio_name": obj.get("portfolioName"),
|
98
112
|
"order_approval_task_id": obj.get("orderApprovalTaskId"),
|
99
|
-
"order_approval_task_definition_id": ResourceId.from_dict(obj.get("orderApprovalTaskDefinitionId")) if obj.get("orderApprovalTaskDefinitionId") is not None else None
|
113
|
+
"order_approval_task_definition_id": ResourceId.from_dict(obj.get("orderApprovalTaskDefinitionId")) if obj.get("orderApprovalTaskDefinitionId") is not None else None,
|
114
|
+
"non_passing_compliance_rule_results": [ContributionToNonPassingRuleDetail.from_dict(_item) for _item in obj.get("nonPassingComplianceRuleResults")] if obj.get("nonPassingComplianceRuleResults") is not None else None
|
100
115
|
})
|
101
116
|
return _obj
|
@@ -18,23 +18,25 @@ import re # noqa: F401
|
|
18
18
|
import json
|
19
19
|
|
20
20
|
from datetime import datetime
|
21
|
-
from typing import Any, Dict
|
22
|
-
from pydantic.v1 import Field, StrictStr, validator
|
21
|
+
from typing import Any, Dict, List, Optional
|
22
|
+
from pydantic.v1 import Field, StrictStr, conlist, validator
|
23
|
+
from lusid.models.additional_payment import AdditionalPayment
|
23
24
|
from lusid.models.asset_leg import AssetLeg
|
24
25
|
from lusid.models.instrument_leg import InstrumentLeg
|
25
26
|
from lusid.models.lusid_instrument import LusidInstrument
|
26
27
|
|
27
28
|
class TotalReturnSwap(LusidInstrument):
|
28
29
|
"""
|
29
|
-
A swap in which one party makes payments based on leg rates (fixed or floating) while the other party makes payments based on the return of an underlying instrument. The underlying instrument can be provided as an inline economic definition or as a reference instrument pointing to an already upserted instrument. A reference instrument in this case would consist of instrument scope, instrument id and instrument id type (ISIN, LUID etc.). Note that TRS currently only supports an asset of Bond or ComplexBond, no other instruments are allowed. Support for additional instrument types will be added in the future. This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | AssetLeg | Cash flows relating to the returns generated by an underlying bond. | | 2 | FundingLeg | The funding leg of the swap. | # noqa: E501
|
30
|
+
A swap in which one party makes payments based on leg rates (fixed or floating) while the other party makes payments based on the return of an underlying instrument. The underlying instrument can be provided as an inline economic definition or as a reference instrument pointing to an already upserted instrument. A reference instrument in this case would consist of instrument scope, instrument id and instrument id type (ISIN, LUID etc.). Note that TRS currently only supports an asset of Bond or ComplexBond, no other instruments are allowed. Support for additional instrument types will be added in the future. This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | AssetLeg | Cash flows relating to the returns generated by an underlying bond. | | 2 | FundingLeg | The funding leg of the swap. | | 3 | AdditionalPayments | Cash flows relating to any additional payments (optional). | # noqa: E501
|
30
31
|
"""
|
31
32
|
start_date: datetime = Field(..., alias="startDate", description="The start date of the instrument. This is normally synonymous with the trade-date.")
|
32
33
|
maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
|
33
34
|
asset_leg: AssetLeg = Field(..., alias="assetLeg")
|
34
35
|
funding_leg: InstrumentLeg = Field(..., alias="fundingLeg")
|
36
|
+
additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven total return swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
|
35
37
|
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
|
36
38
|
additional_properties: Dict[str, Any] = {}
|
37
|
-
__properties = ["instrumentType", "startDate", "maturityDate", "assetLeg", "fundingLeg"]
|
39
|
+
__properties = ["instrumentType", "startDate", "maturityDate", "assetLeg", "fundingLeg", "additionalPayments"]
|
38
40
|
|
39
41
|
@validator('instrument_type')
|
40
42
|
def instrument_type_validate_enum(cls, value):
|
@@ -74,11 +76,23 @@ class TotalReturnSwap(LusidInstrument):
|
|
74
76
|
# override the default output from pydantic by calling `to_dict()` of funding_leg
|
75
77
|
if self.funding_leg:
|
76
78
|
_dict['fundingLeg'] = self.funding_leg.to_dict()
|
79
|
+
# override the default output from pydantic by calling `to_dict()` of each item in additional_payments (list)
|
80
|
+
_items = []
|
81
|
+
if self.additional_payments:
|
82
|
+
for _item in self.additional_payments:
|
83
|
+
if _item:
|
84
|
+
_items.append(_item.to_dict())
|
85
|
+
_dict['additionalPayments'] = _items
|
77
86
|
# puts key-value pairs in additional_properties in the top level
|
78
87
|
if self.additional_properties is not None:
|
79
88
|
for _key, _value in self.additional_properties.items():
|
80
89
|
_dict[_key] = _value
|
81
90
|
|
91
|
+
# set to None if additional_payments (nullable) is None
|
92
|
+
# and __fields_set__ contains the field
|
93
|
+
if self.additional_payments is None and "additional_payments" in self.__fields_set__:
|
94
|
+
_dict['additionalPayments'] = None
|
95
|
+
|
82
96
|
return _dict
|
83
97
|
|
84
98
|
@classmethod
|
@@ -95,7 +109,8 @@ class TotalReturnSwap(LusidInstrument):
|
|
95
109
|
"start_date": obj.get("startDate"),
|
96
110
|
"maturity_date": obj.get("maturityDate"),
|
97
111
|
"asset_leg": AssetLeg.from_dict(obj.get("assetLeg")) if obj.get("assetLeg") is not None else None,
|
98
|
-
"funding_leg": InstrumentLeg.from_dict(obj.get("fundingLeg")) if obj.get("fundingLeg") is not None else None
|
112
|
+
"funding_leg": InstrumentLeg.from_dict(obj.get("fundingLeg")) if obj.get("fundingLeg") is not None else None,
|
113
|
+
"additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
|
99
114
|
})
|
100
115
|
# store additional fields in additional_properties
|
101
116
|
for _key in obj.keys():
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lusid-sdk
|
3
|
-
Version: 2.1.
|
3
|
+
Version: 2.1.585
|
4
4
|
Summary: LUSID API
|
5
5
|
Home-page: https://github.com/finbourne/lusid-sdk-python
|
6
6
|
License: MIT
|
@@ -823,6 +823,7 @@ Class | Method | HTTP request | Description
|
|
823
823
|
- [ConstantVolatilitySurface](docs/ConstantVolatilitySurface.md)
|
824
824
|
- [ConstituentsAdjustmentHeader](docs/ConstituentsAdjustmentHeader.md)
|
825
825
|
- [ContractForDifference](docs/ContractForDifference.md)
|
826
|
+
- [ContributionToNonPassingRuleDetail](docs/ContributionToNonPassingRuleDetail.md)
|
826
827
|
- [CorporateAction](docs/CorporateAction.md)
|
827
828
|
- [CorporateActionSource](docs/CorporateActionSource.md)
|
828
829
|
- [CorporateActionTransition](docs/CorporateActionTransition.md)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
lusid/__init__.py,sha256=
|
1
|
+
lusid/__init__.py,sha256=_PBYI8M-0tMTyzJuC7GMVLrgTMoiFNVZQaP5ZJK3eQ0,128418
|
2
2
|
lusid/api/__init__.py,sha256=6h2et93uMZgjdpV3C3_ITp_VbSBlwYu5BtqZ2puZPoI,5821
|
3
3
|
lusid/api/abor_api.py,sha256=CC0f6Aqqiqkgmpguvoqe8teU0bRRuc771AdUSyI4rJw,158222
|
4
4
|
lusid/api/abor_configuration_api.py,sha256=TmssMn5ni0mZV1q7LyPXYhBqqUGJqLYZapo8By8DFuI,63875
|
@@ -70,7 +70,7 @@ lusid/api/translation_api.py,sha256=nIyuLncCvVC5k2d7Nm32zR8AQ1dkrVm1OThkmELY_OM,
|
|
70
70
|
lusid/api/workspace_api.py,sha256=mYQPqFUVf1VKYeWQUV5VkcdSqwejSmPDGd66Az86-_E,191319
|
71
71
|
lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
|
72
72
|
lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
|
73
|
-
lusid/configuration.py,sha256=
|
73
|
+
lusid/configuration.py,sha256=yX8jOLzW0mpGiqKnSv2Vc8TkfNutF1HATWJUd8GmJZU,17972
|
74
74
|
lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
|
75
75
|
lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
|
76
76
|
lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
|
@@ -85,7 +85,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
|
|
85
85
|
lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
|
86
86
|
lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
|
87
87
|
lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
|
88
|
-
lusid/models/__init__.py,sha256=
|
88
|
+
lusid/models/__init__.py,sha256=PNecue2ayHFIaWlv2W_PPU0mSIbrSubdo_JMvHooVqg,121565
|
89
89
|
lusid/models/a2_b_breakdown.py,sha256=Txi12EIQw3mH6NM-25QkOnHSQc3BVAWrP7yl9bZswSY,2947
|
90
90
|
lusid/models/a2_b_category.py,sha256=k6NPAACi0CUjKyhdQac4obQSrPmp2PXD6lkAtCnyEFM,2725
|
91
91
|
lusid/models/a2_b_data_record.py,sha256=zKGS2P4fzNpzdcGJiSIpkY4P3d_jAcawYfyuPCDeQgk,9737
|
@@ -109,7 +109,7 @@ lusid/models/accumulation_event.py,sha256=4lTtlXleReQJlgAHexzuPzEJ8c6lgQ_Hv4lqlv
|
|
109
109
|
lusid/models/action_id.py,sha256=NuJ7So7BAckiGCTpPdnwCmGVUEtsImy8r7PFLRYb6Ok,2057
|
110
110
|
lusid/models/add_business_days_to_date_request.py,sha256=AfWmdr91A1Wpf0yT6CEEymkHYLXYha5Lll3EXe8FDtE,2640
|
111
111
|
lusid/models/add_business_days_to_date_response.py,sha256=wWo01x8xabbdMWzv73T7nRNBsKi1LYXJWTSaj4VCnWs,2013
|
112
|
-
lusid/models/additional_payment.py,sha256=
|
112
|
+
lusid/models/additional_payment.py,sha256=TRuvS77hMMTov9wq1_ftBdNtmF7BzBDXJoiB4g8qUUA,2534
|
113
113
|
lusid/models/address_definition.py,sha256=zTk3p8hfx0CcP_LcHSihJ8bKqT8R5p6RJe3h7mL4yYQ,4999
|
114
114
|
lusid/models/address_key_compliance_parameter.py,sha256=LWG_jU7-xkSG5r8X_C_ssgObWV6NgVg1dUNemShn0cw,5396
|
115
115
|
lusid/models/address_key_definition.py,sha256=ZBOa_DoY_hGC1jaMwKERn1sFhqsk2YsP1HZ0F8tQDek,3212
|
@@ -212,7 +212,7 @@ lusid/models/cash_offer_election.py,sha256=qefe020_tlp2w0Q1ohYzAC-q-t4m7UsRYl_mO
|
|
212
212
|
lusid/models/cash_perpetual.py,sha256=43DlKqPbLiyBO9RH9ZOzwA9aDgG6KtMOAodz-KJE1iY,5364
|
213
213
|
lusid/models/cds_credit_event.py,sha256=I-z3-YvZ06hVim-FrzapuYIonzaowhQ6okuQwaAIOKM,7308
|
214
214
|
lusid/models/cds_flow_conventions.py,sha256=_WpM6p1v-kxjbzRQu7DzK3cJNJqyr_rRkgjTEaRic1Y,8161
|
215
|
-
lusid/models/cds_index.py,sha256=
|
215
|
+
lusid/models/cds_index.py,sha256=p2spEHBWaFWdd41oI03IvL-zuKKI3NLSQqfYvP24K3M,9548
|
216
216
|
lusid/models/cds_protection_detail_specification.py,sha256=k0mkP4WGJFjfouhI6WtCnR4y2rx2yFwBelO8D33lbaE,3213
|
217
217
|
lusid/models/cdx_credit_event.py,sha256=w-LYEWDHSCmQyzxy32dIjU_vl9oP21TFocs1a_hFV80,8068
|
218
218
|
lusid/models/change.py,sha256=QHC1wtZL_TXDfSertnsg-tNRpkHkcbk5wk8O5rOjby4,5076
|
@@ -281,6 +281,7 @@ lusid/models/configuration_recipe.py,sha256=O9gOzlKxFhnnzMxZQwPEwc29wF9fPS86s771
|
|
281
281
|
lusid/models/constant_volatility_surface.py,sha256=1l4eyD78UaUsyjkX7NhPTuGUYgJY-nXzs4ZACc0dQQs,5178
|
282
282
|
lusid/models/constituents_adjustment_header.py,sha256=2wnnigKPOPttpRFJa8yzJspIhyfdLq_8_H5QLsWOQy0,3233
|
283
283
|
lusid/models/contract_for_difference.py,sha256=l5rAKgtcZRkx3E83m-qkcLr7Mmzf5MX8rRdyDu0MNq0,7393
|
284
|
+
lusid/models/contribution_to_non_passing_rule_detail.py,sha256=rhNT_zuuDBFojzGXea-tdIosXLw43rLDzPgK22ZqtCU,3556
|
284
285
|
lusid/models/corporate_action.py,sha256=L2jWWTX1qcCL4sxqJw9cp6xjjbGo1aezfHlt84TMRTg,4151
|
285
286
|
lusid/models/corporate_action_source.py,sha256=n99ggLwqEUf2ik9Z882RIYVS29IZqI2LqYlPgOBF3zQ,5011
|
286
287
|
lusid/models/corporate_action_transition.py,sha256=ZGFoyxH9IrTwlOWPzf7P81dsoRjrbUlYHwgNaeb7a_E,3508
|
@@ -320,7 +321,7 @@ lusid/models/create_tax_rule_set_request.py,sha256=4K9Kysssj-zFpvE6tVu-DXyVJYu0Y
|
|
320
321
|
lusid/models/create_trade_tickets_response.py,sha256=hMgaSmMWyWbpp2SQqg6p9fnMrUjNE6F35mo4fmvwf2M,2961
|
321
322
|
lusid/models/create_transaction_portfolio_request.py,sha256=MEsPFBS6TxHORxj_5Y-8oFnmvwHIZuxFJosY5vg8Mfo,11818
|
322
323
|
lusid/models/create_unit_definition.py,sha256=hPfMi0Wew-HYzTQEaZ_wfDnN1dKMW6KYGB8kgyXjwlU,3418
|
323
|
-
lusid/models/credit_default_swap.py,sha256=
|
324
|
+
lusid/models/credit_default_swap.py,sha256=1_4KJc6Uf9bzx-80aCmctchtP3FljZ3gttdwq8YA1kk,10043
|
324
325
|
lusid/models/credit_premium_cash_flow_event.py,sha256=iwHmuCR3gdG74eqsT40fc4ShfXYc3--7h4EE6XGddKY,7231
|
325
326
|
lusid/models/credit_rating.py,sha256=3EJjCwgdDT04iclq5OTBWughXAbXc9FkOtz-x7i5rks,3088
|
326
327
|
lusid/models/credit_spread_curve_data.py,sha256=N2gish4RNEdHNRwo8AceZbY5dPUtKy8Lt1WTRxrDHNw,7174
|
@@ -399,7 +400,7 @@ lusid/models/equity_curve_by_prices_data.py,sha256=bfvm9uAlWWiI_jhLacOXk-v_IvdyT
|
|
399
400
|
lusid/models/equity_curve_dependency.py,sha256=bXyEO_TzvZtxmi16cFQYZwL9W6qApALe5pIHC4M8jRc,5028
|
400
401
|
lusid/models/equity_model_options.py,sha256=taOqGGZiLmchhJRrv8wjvrKPKCh32njkp0DgfwAb7AE,3698
|
401
402
|
lusid/models/equity_option.py,sha256=ZAuN7PXXEyQOgxKgy12vwa9iw1VDqa-VsKYm4klTIAE,9922
|
402
|
-
lusid/models/equity_swap.py,sha256=
|
403
|
+
lusid/models/equity_swap.py,sha256=GlpM1bw0FAqpWhi_LaOgOlCdYTpc5DmhOnbOZ840J10,10781
|
403
404
|
lusid/models/equity_vol_dependency.py,sha256=GcZrPW9sJS5nKXBjVNjcUKIp4UDeovABErfg6uZXGH0,4909
|
404
405
|
lusid/models/equity_vol_surface_data.py,sha256=INLwejaCYkya6fjf_rrG33B_z2FFcgFaIEwWUokfh2Y,5865
|
405
406
|
lusid/models/error_detail.py,sha256=XkNJc5yCGsIri9wDciaONqobIbADaU90i5UrI71WM4c,3279
|
@@ -555,7 +556,7 @@ lusid/models/inflation_fixing_dependency.py,sha256=PKxpTIJcyNIMums66g2qG0p6l6F19
|
|
555
556
|
lusid/models/inflation_index_conventions.py,sha256=I9uG6oCE8M5IHq63DZXvH1fI_5TzMcOnSThnfQW97Y0,4811
|
556
557
|
lusid/models/inflation_leg.py,sha256=Hpppt_7SGS725JuLRLywbBmYJz15EO6fzp_I_sSsQ5k,10000
|
557
558
|
lusid/models/inflation_linked_bond.py,sha256=3wB-6FJDqvbbfsTCyIanB0ia3_4qCemnNOfSkyccU6s,14009
|
558
|
-
lusid/models/inflation_swap.py,sha256=
|
559
|
+
lusid/models/inflation_swap.py,sha256=yNBiPnoFg8tZVhMBF1T9EVif9wAnawHCfzsMOfltUIc,8292
|
559
560
|
lusid/models/informational_error_event.py,sha256=Z2WkMeq3PbRRvXT689KuelB3xudBLRz9B5_psEL4ta0,6628
|
560
561
|
lusid/models/informational_event.py,sha256=KQDUSidVhEtKyzSPUTkgeYX1CNRCAFtiSLoB1b2eWws,7641
|
561
562
|
lusid/models/inline_valuation_request.py,sha256=Qn5CwniPwvIDFzkF2GFubAyFFUkT2I9VK99q4mAHK2w,10449
|
@@ -589,7 +590,7 @@ lusid/models/instrument_properties.py,sha256=h9V6xOKHuhGwwZta08fUhutktMZFS6JDbuJ
|
|
589
590
|
lusid/models/instrument_resolution_detail.py,sha256=glEyZuZ2H965P3XHNiWNMsP-31v-cKH9fjDSeEJzQbI,4989
|
590
591
|
lusid/models/instrument_search_property.py,sha256=yQNCLmODfYEkps4RPRfU30ZM6WMyGCR-oLMyHNhSPh4,2297
|
591
592
|
lusid/models/instrument_type.py,sha256=fKBxcVqkJA5KVocOe7yZtBhFUJFht6LtKbgrlSyFOBk,2065
|
592
|
-
lusid/models/interest_rate_swap.py,sha256=
|
593
|
+
lusid/models/interest_rate_swap.py,sha256=eSnamsyshjo46jgslTx87Cz8KHDgVhktCxTkAl_xfWE,9002
|
593
594
|
lusid/models/interest_rate_swaption.py,sha256=u2w04LaM9W74KjaZgiPW_wDdl1A7_nx7iPNOwS8agEY,6420
|
594
595
|
lusid/models/intermediate_compliance_step.py,sha256=T6P2hdd-otQCQJMz3avj8_NmTvlI5CVz3Us3VY3ejK0,4461
|
595
596
|
lusid/models/intermediate_compliance_step_request.py,sha256=cx9WUvfU_jlcOv3RskTeEyn8_WE72Kvfi1KBaqHF9AE,3859
|
@@ -676,7 +677,7 @@ lusid/models/order_graph_block_allocation_detail.py,sha256=L51Rl6sgG8R7jiwRtSYH6
|
|
676
677
|
lusid/models/order_graph_block_allocation_synopsis.py,sha256=PTlPTHowUDna144w0yNEESTbK5cZ4BWLDL_jur42Nro,2766
|
677
678
|
lusid/models/order_graph_block_execution_detail.py,sha256=IEEbVtfZFelskKbK8IbcLqw30jICItS8zhvy7rfeUmA,2170
|
678
679
|
lusid/models/order_graph_block_execution_synopsis.py,sha256=x_ljrTcK_HXqq6aqNBM-EUnsY6jTb1seZH5P-uFDcf4,2752
|
679
|
-
lusid/models/order_graph_block_order_detail.py,sha256=
|
680
|
+
lusid/models/order_graph_block_order_detail.py,sha256=vkTckebvYHtwKZLdRK34t6ruYJ7v9KAKMQe_Jdd-4-c,6029
|
680
681
|
lusid/models/order_graph_block_order_synopsis.py,sha256=UYhXd7jsqdLKia6UclAKUYcarMQ0z9SSahWcoLu5zfs,3207
|
681
682
|
lusid/models/order_graph_block_placement_detail.py,sha256=gcm_3SH6OhYyLUz6OILwZs6cKzq4JUm0kO8Ya-YV780,2170
|
682
683
|
lusid/models/order_graph_block_placement_synopsis.py,sha256=K2BAK89iTOPXtk9Fj-AJ0KhZduFhw3eOyHDecB3lccg,3243
|
@@ -1058,7 +1059,7 @@ lusid/models/tender_event.py,sha256=qckP0p8lXS_lM0pKkuKnfyHZEpEtgkaW1Berakx4Tdo,
|
|
1058
1059
|
lusid/models/term_deposit.py,sha256=idaPCCw1PXdaVCDvrYRGR_Z_nYZM6xgjNLMhkmGNOzg,6837
|
1059
1060
|
lusid/models/term_deposit_interest_event.py,sha256=pAzxLyblEb0TMuuu7oIUM3jXkKmRwIMLqBoB5Zkmaok,7009
|
1060
1061
|
lusid/models/term_deposit_principal_event.py,sha256=qK1-hhoVg8C2fXwbUNeKnHWVPvCGzoi37hPjBKPEGLk,7029
|
1061
|
-
lusid/models/total_return_swap.py,sha256=
|
1062
|
+
lusid/models/total_return_swap.py,sha256=hyrhC-Z4jB8Dsv4C-XTX8h589uMvO29Vp06k3C8rEwA,8697
|
1062
1063
|
lusid/models/touch.py,sha256=OECUpEFcCT1kPT5SJIsoNHtR8k2AhEAbDd6P86NcF4s,2726
|
1063
1064
|
lusid/models/trade_ticket.py,sha256=ONpDAdaWs3yfUqMxI7Mq0cYpX0aJkN8XH_9n9rIs5IA,2320
|
1064
1065
|
lusid/models/trade_ticket_type.py,sha256=j7f2bfiA_cxaFtjZpT3Natl4BoaGAaEXF6E0ltEzTWE,706
|
@@ -1227,6 +1228,6 @@ lusid/models/workspace_update_request.py,sha256=uUXEpX-dJ5UiL9w1wMxIFeovSBiTJ-vi
|
|
1227
1228
|
lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
|
1228
1229
|
lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1229
1230
|
lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
|
1230
|
-
lusid_sdk-2.1.
|
1231
|
-
lusid_sdk-2.1.
|
1232
|
-
lusid_sdk-2.1.
|
1231
|
+
lusid_sdk-2.1.585.dist-info/METADATA,sha256=SmSIKY7ABd-yxthbuGI4NmEQIxwnXulnkMz8hBYWKK0,209232
|
1232
|
+
lusid_sdk-2.1.585.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
1233
|
+
lusid_sdk-2.1.585.dist-info/RECORD,,
|
File without changes
|